re-mocd


Namere-mocd JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryRapid multi-objective community detection with parallel computation and caching to efficiently handle large-scale graphs. With networkx compatibilityy
upload_time2025-02-08 21:07:33
maintainerNone
docs_urlNone
authorGuilherme Santos
requires_pythonNone
licenseGPL-3.0-or-later
keywords rust python community detection multi-objective optimization graph analysis
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">
  <img src="res/logo.png" alt="logo" style="width: 40%;"> 

   <strong>rapid evolutionary multi-objective community detection</strong>

![PyPI - Implementation](https://img.shields.io/pypi/implementation/re_mocd)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/re_mocd)
![PyPI - Downloads](https://img.shields.io/pypi/dm/re_mocd)
[![PyPI - Stats](https://img.shields.io/badge/More%20Info-F58025?logo=PyPi)](https://pypistats.org/packages/re_mocd)

<hr>

</div>

> [!NOTE]  
> **This project is in its early stages.** Performance and results may not be optimal yet.

## Overview  

**re-mocd** is a Rust-based library designed for efficient and high-performance community detection in graphs. By leveraging the speed and memory safety of Rust, the project aims to handle large-scale graphs while addressing limitations in traditional algorithms, such as Louvain.   

---

## Installation  

### Via PyPI  

Install the library using pip:  
```bash
pip install re-mocd
```

---

## Usage  

### From `networkx.Graph()`  

Using **re-mocd** with a `networkx.Graph()` is simple. For example:  
```python
import networkx as nx 
import re_mocd

# Create a graph
G = nx.Graph([
    (0, 1), (0, 3), (0, 7), 
    (1, 2), (1, 3), (1, 5), 
    (2, 3), 
    (3, 6), 
    (4, 5), (4, 6), 
    (5, 6), 
    (7, 8)
])

# detect from a networkx.Graph()
partition = re_mocd.from_nx(G)

# Check modularity
mod = re_mocd.get_modularity(G, partition)
```

### From an Edge List File  

Prepare an edge list file formatted as:  
```plaintext
0,1,{'weight': 4}
0,2,{'weight': 5}
0,3,{'weight': 3}
...
0,10,{'weight': 2}
```

The `weight` attribute is optional and can be omitted (`{}`). Save your `networkx` graph as an edge list:  
```python
nx.write_edgelist(G, file_path, delimiter=",", data=False)
```

Run the algorithm:  
```python
import re_mocd

edgelist_file = "my.edgelist"
partition = re_mocd.from_file(edgelist_file)
```

### Examples  

- [Plotting Example](tests/python/example.py)  
- [Comparison with Other Algorithms](tests/python/main.py)  
- [Modularity ring problem](tests/python/benchmarks/ring.py)
- [Single file test](tests/python/benchmarks/single.py)

---

<center>  
<img src="res/example.png" alt="Example Plot" width="600">  
</center>  

---

## Running from Scratch  

### Build and Run  

1. Clone the repository:  
   ```bash
   git clone https://github.com/0l1ve1r4/re_mocd
   cd re_mocd
   ```

2. Compile and execute the algorithm:  
   ```bash
   cargo run --release mygraph.edgelist
   ```

### Debug Mode  

Use the `-d` flag for additional debug output:  
```bash
cargo run --release mygraph.edgelist -d
```

Debug mode helps troubleshoot and monitor the algorithm's progress effectively.  

---

### Contributing  

Contributions are welcome! Feel free to submit issues, feature requests, or pull requests to improve the project.  

**License:** GPL-3.0 or later  
**Author:** [Guilherme Santos](https://github.com/0l1ve1r4)  


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "re-mocd",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "rust, python, community detection, multi-objective optimization, graph analysis",
    "author": "Guilherme Santos",
    "author_email": "Guilherme Santos <gs.oliveira.dev@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/de/75/f665e248af6842c764d8d26946258140c35ef3cafbb45230ae02f1c72b83/re_mocd-0.2.2.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n  <img src=\"res/logo.png\" alt=\"logo\" style=\"width: 40%;\"> \n\n   <strong>rapid evolutionary multi-objective community detection</strong>\n\n![PyPI - Implementation](https://img.shields.io/pypi/implementation/re_mocd)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/re_mocd)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/re_mocd)\n[![PyPI - Stats](https://img.shields.io/badge/More%20Info-F58025?logo=PyPi)](https://pypistats.org/packages/re_mocd)\n\n<hr>\n\n</div>\n\n> [!NOTE]  \n> **This project is in its early stages.** Performance and results may not be optimal yet.\n\n## Overview  \n\n**re-mocd** is a Rust-based library designed for efficient and high-performance community detection in graphs. By leveraging the speed and memory safety of Rust, the project aims to handle large-scale graphs while addressing limitations in traditional algorithms, such as Louvain.   \n\n---\n\n## Installation  \n\n### Via PyPI  \n\nInstall the library using pip:  \n```bash\npip install re-mocd\n```\n\n---\n\n## Usage  \n\n### From `networkx.Graph()`  \n\nUsing **re-mocd** with a `networkx.Graph()` is simple. For example:  \n```python\nimport networkx as nx \nimport re_mocd\n\n# Create a graph\nG = nx.Graph([\n    (0, 1), (0, 3), (0, 7), \n    (1, 2), (1, 3), (1, 5), \n    (2, 3), \n    (3, 6), \n    (4, 5), (4, 6), \n    (5, 6), \n    (7, 8)\n])\n\n# detect from a networkx.Graph()\npartition = re_mocd.from_nx(G)\n\n# Check modularity\nmod = re_mocd.get_modularity(G, partition)\n```\n\n### From an Edge List File  \n\nPrepare an edge list file formatted as:  \n```plaintext\n0,1,{'weight': 4}\n0,2,{'weight': 5}\n0,3,{'weight': 3}\n...\n0,10,{'weight': 2}\n```\n\nThe `weight` attribute is optional and can be omitted (`{}`). Save your `networkx` graph as an edge list:  \n```python\nnx.write_edgelist(G, file_path, delimiter=\",\", data=False)\n```\n\nRun the algorithm:  \n```python\nimport re_mocd\n\nedgelist_file = \"my.edgelist\"\npartition = re_mocd.from_file(edgelist_file)\n```\n\n### Examples  \n\n- [Plotting Example](tests/python/example.py)  \n- [Comparison with Other Algorithms](tests/python/main.py)  \n- [Modularity ring problem](tests/python/benchmarks/ring.py)\n- [Single file test](tests/python/benchmarks/single.py)\n\n---\n\n<center>  \n<img src=\"res/example.png\" alt=\"Example Plot\" width=\"600\">  \n</center>  \n\n---\n\n## Running from Scratch  \n\n### Build and Run  \n\n1. Clone the repository:  \n   ```bash\n   git clone https://github.com/0l1ve1r4/re_mocd\n   cd re_mocd\n   ```\n\n2. Compile and execute the algorithm:  \n   ```bash\n   cargo run --release mygraph.edgelist\n   ```\n\n### Debug Mode  \n\nUse the `-d` flag for additional debug output:  \n```bash\ncargo run --release mygraph.edgelist -d\n```\n\nDebug mode helps troubleshoot and monitor the algorithm's progress effectively.  \n\n---\n\n### Contributing  \n\nContributions are welcome! Feel free to submit issues, feature requests, or pull requests to improve the project.  \n\n**License:** GPL-3.0 or later  \n**Author:** [Guilherme Santos](https://github.com/0l1ve1r4)  \n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "Rapid multi-objective community detection with parallel computation and caching to efficiently handle large-scale graphs. With networkx compatibilityy",
    "version": "0.2.2",
    "project_urls": {
        "Issues": "https://github.com/0l1ve1r4/re_mocd/issues",
        "Repository": "https://github.com/0l1ve1r4/re_mocd"
    },
    "split_keywords": [
        "rust",
        " python",
        " community detection",
        " multi-objective optimization",
        " graph analysis"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8b38ade3cb959d1687ae89f2e3cac99f9f05519492856229794edffd82d8a1ed",
                "md5": "b5c88549e2eaec21bdd6b34452ad4829",
                "sha256": "c57df9543e16fd8cc6cee1e9ddb811dffd6f0c19c5cdfb2f117d5faea5b9ae6a"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "b5c88549e2eaec21bdd6b34452ad4829",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 366427,
            "upload_time": "2025-02-08T21:07:06",
            "upload_time_iso_8601": "2025-02-08T21:07:06.866613Z",
            "url": "https://files.pythonhosted.org/packages/8b/38/ade3cb959d1687ae89f2e3cac99f9f05519492856229794edffd82d8a1ed/re_mocd-0.2.2-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "585ef3c7ae95648fb211b2defa78bf102b30a982942dcbbb5b8a3a9290a002eb",
                "md5": "4b9dce17a5ad031441699940d80960c5",
                "sha256": "1eca6b79babc1f4f597aac069a7d353da9cd92eafb1f06bc4e5bb355c02ef909"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp310-cp310-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4b9dce17a5ad031441699940d80960c5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 419650,
            "upload_time": "2025-02-08T21:07:08",
            "upload_time_iso_8601": "2025-02-08T21:07:08.910994Z",
            "url": "https://files.pythonhosted.org/packages/58/5e/f3c7ae95648fb211b2defa78bf102b30a982942dcbbb5b8a3a9290a002eb/re_mocd-0.2.2-cp310-cp310-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0f964219649f1c13bea132f829077c4c1b0f191016a0c8ade3589b2a75e148df",
                "md5": "ca2bbadcd98a44af6de6d98f13004b8a",
                "sha256": "381453208c21277f15e02d1abbdada2045c6e2feec2474561b0e01409fe1543d"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ca2bbadcd98a44af6de6d98f13004b8a",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 329393,
            "upload_time": "2025-02-08T21:07:10",
            "upload_time_iso_8601": "2025-02-08T21:07:10.798311Z",
            "url": "https://files.pythonhosted.org/packages/0f/96/4219649f1c13bea132f829077c4c1b0f191016a0c8ade3589b2a75e148df/re_mocd-0.2.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "31ac34a7af842503c7c45e8286c3a42cbefad61f4c8515daafecfda3fddc77c6",
                "md5": "abe5d0de27db845813ea32178284fdd7",
                "sha256": "af388d7ba7643d99537f3d7dcdf301df5636957684d7ef0b971643c0df703723"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "abe5d0de27db845813ea32178284fdd7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 366587,
            "upload_time": "2025-02-08T21:07:12",
            "upload_time_iso_8601": "2025-02-08T21:07:12.091412Z",
            "url": "https://files.pythonhosted.org/packages/31/ac/34a7af842503c7c45e8286c3a42cbefad61f4c8515daafecfda3fddc77c6/re_mocd-0.2.2-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bfde05a5e2f70cb30db800f33ec83293da69dfc4e2cb970052ada46d544b3b0a",
                "md5": "51d127e204e92bf40a8f1a1415eb0439",
                "sha256": "40e8796a34591769ecdfa3581a1eb2bd591bba848a3705562c73d96a1a46cf5b"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp311-cp311-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "51d127e204e92bf40a8f1a1415eb0439",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 419520,
            "upload_time": "2025-02-08T21:07:14",
            "upload_time_iso_8601": "2025-02-08T21:07:14.079747Z",
            "url": "https://files.pythonhosted.org/packages/bf/de/05a5e2f70cb30db800f33ec83293da69dfc4e2cb970052ada46d544b3b0a/re_mocd-0.2.2-cp311-cp311-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "55ece8f6b909f8d2a58532e46570dcfed682220c345afb310a9445c598464afe",
                "md5": "ecffb26e6cc761d370718eb9841e844d",
                "sha256": "b9d8670a86e0fff0b09ad1368f569cc9c474a3aa9535a16247fe141ebd3e4232"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ecffb26e6cc761d370718eb9841e844d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 329427,
            "upload_time": "2025-02-08T21:07:15",
            "upload_time_iso_8601": "2025-02-08T21:07:15.466336Z",
            "url": "https://files.pythonhosted.org/packages/55/ec/e8f6b909f8d2a58532e46570dcfed682220c345afb310a9445c598464afe/re_mocd-0.2.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "471247063f984e31806dfc029ca779055ca807425349d6153cad863072af6106",
                "md5": "5e0563789088a0a91fe3032b400122da",
                "sha256": "d99237bc00da0148de09ac4bf5026e6dc1b7843d901f68b97d9838801178fc91"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "5e0563789088a0a91fe3032b400122da",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 365780,
            "upload_time": "2025-02-08T21:07:17",
            "upload_time_iso_8601": "2025-02-08T21:07:17.453411Z",
            "url": "https://files.pythonhosted.org/packages/47/12/47063f984e31806dfc029ca779055ca807425349d6153cad863072af6106/re_mocd-0.2.2-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2983918e459f1a2688e01ec84899506a8a5c1518eb2145636d480eaaadbe361",
                "md5": "8ea89ed965af0033bda71bd8c8d6b651",
                "sha256": "0c3fee9fc7b196c3e229650aa4208192ae374ca8ba9a4d92bd0151006d70742a"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp312-cp312-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8ea89ed965af0033bda71bd8c8d6b651",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 419834,
            "upload_time": "2025-02-08T21:07:19",
            "upload_time_iso_8601": "2025-02-08T21:07:19.530891Z",
            "url": "https://files.pythonhosted.org/packages/b2/98/3918e459f1a2688e01ec84899506a8a5c1518eb2145636d480eaaadbe361/re_mocd-0.2.2-cp312-cp312-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dcab02b379dfb7804b8ceb9add0ac825cd4c4b032df986f9276bae28d3b4fc2b",
                "md5": "2ab282ec34b36c8b590a7693fc3afb60",
                "sha256": "4a0c07d7d8cb3e1067547ec90fd0c356c9aad34ed3657956338ee210ccdbee9e"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2ab282ec34b36c8b590a7693fc3afb60",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": null,
            "size": 329473,
            "upload_time": "2025-02-08T21:07:21",
            "upload_time_iso_8601": "2025-02-08T21:07:21.612297Z",
            "url": "https://files.pythonhosted.org/packages/dc/ab/02b379dfb7804b8ceb9add0ac825cd4c4b032df986f9276bae28d3b4fc2b/re_mocd-0.2.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b8ba52335d2e4c6a165767ce1b27bb292d0055d54f5db5646ddce4f845c89478",
                "md5": "ce3f599b29c2f50f990ff0ed4ac51439",
                "sha256": "241f8acff42c513b42512969ac084c36c4c03c086ad6fb0bb14781ad404330b1"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ce3f599b29c2f50f990ff0ed4ac51439",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 366454,
            "upload_time": "2025-02-08T21:07:23",
            "upload_time_iso_8601": "2025-02-08T21:07:23.661998Z",
            "url": "https://files.pythonhosted.org/packages/b8/ba/52335d2e4c6a165767ce1b27bb292d0055d54f5db5646ddce4f845c89478/re_mocd-0.2.2-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0dbc4bfc19644ef3b9c6145093f007498270f5b62bd31af0b8959cf6e7e436b6",
                "md5": "9860befcb481b562c3e7d6979791dd87",
                "sha256": "a31c7d9de9f45b11bf8a3c034aacc46e30081271633e86933bc4bcfe581e3ae6"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp38-cp38-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9860befcb481b562c3e7d6979791dd87",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 419819,
            "upload_time": "2025-02-08T21:07:25",
            "upload_time_iso_8601": "2025-02-08T21:07:25.630425Z",
            "url": "https://files.pythonhosted.org/packages/0d/bc/4bfc19644ef3b9c6145093f007498270f5b62bd31af0b8959cf6e7e436b6/re_mocd-0.2.2-cp38-cp38-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0dec4adfff4e389cf03fccd244f09d9c0ad35d8a32607f442a97259d4054f005",
                "md5": "db7f0ac9a75c53b51071a0e35b01754c",
                "sha256": "0aee2b5db49bfc1aec961bf80d1b53ef0e1e3f29f5d18c89d7c2105ca5df5873"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "db7f0ac9a75c53b51071a0e35b01754c",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 329872,
            "upload_time": "2025-02-08T21:07:27",
            "upload_time_iso_8601": "2025-02-08T21:07:27.562584Z",
            "url": "https://files.pythonhosted.org/packages/0d/ec/4adfff4e389cf03fccd244f09d9c0ad35d8a32607f442a97259d4054f005/re_mocd-0.2.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7e93437b7810b8448be13e9d18ff3b3c022e054ba1c3ffdc3b3cd665467e7747",
                "md5": "778a273e3a97203e28765c4a3aac30b5",
                "sha256": "b991a52bdf6f324df15d4ed7b5738bddeec015413e946e168fad37421ad1604e"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "778a273e3a97203e28765c4a3aac30b5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 366467,
            "upload_time": "2025-02-08T21:07:28",
            "upload_time_iso_8601": "2025-02-08T21:07:28.806608Z",
            "url": "https://files.pythonhosted.org/packages/7e/93/437b7810b8448be13e9d18ff3b3c022e054ba1c3ffdc3b3cd665467e7747/re_mocd-0.2.2-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aac350a0e22f63f013a627ba93ea2c5448c9265d61147aeb5f657bcc94d55ca0",
                "md5": "0d5af8b994280646a07e9b2b1b5fdeb7",
                "sha256": "d8ab7d6bfaa4b7785ac08f1a489befa8e82097f0b1e69254181e0cd966cc573b"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp39-cp39-manylinux_2_34_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0d5af8b994280646a07e9b2b1b5fdeb7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 420183,
            "upload_time": "2025-02-08T21:07:29",
            "upload_time_iso_8601": "2025-02-08T21:07:29.971082Z",
            "url": "https://files.pythonhosted.org/packages/aa/c3/50a0e22f63f013a627ba93ea2c5448c9265d61147aeb5f657bcc94d55ca0/re_mocd-0.2.2-cp39-cp39-manylinux_2_34_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4387fe4b7bf8c52d1855aa881d0904905bd299ed32737e7e8bc48c49aa4622de",
                "md5": "bfbae9bbe6cb4be71d6947ac3cbe6337",
                "sha256": "20fb8174a60cf79548e22bc95a24318c02a582a90544046b2297498e1a1a5e44"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bfbae9bbe6cb4be71d6947ac3cbe6337",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 329870,
            "upload_time": "2025-02-08T21:07:31",
            "upload_time_iso_8601": "2025-02-08T21:07:31.929579Z",
            "url": "https://files.pythonhosted.org/packages/43/87/fe4b7bf8c52d1855aa881d0904905bd299ed32737e7e8bc48c49aa4622de/re_mocd-0.2.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "de75f665e248af6842c764d8d26946258140c35ef3cafbb45230ae02f1c72b83",
                "md5": "fb436b16b17fe3b1f27597ee61e7bbcb",
                "sha256": "cbeea694e4513c6cba8738f6278a4e7bad4b93e971992f7c3d1ed70c1420ee67"
            },
            "downloads": -1,
            "filename": "re_mocd-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "fb436b16b17fe3b1f27597ee61e7bbcb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 384491,
            "upload_time": "2025-02-08T21:07:33",
            "upload_time_iso_8601": "2025-02-08T21:07:33.077765Z",
            "url": "https://files.pythonhosted.org/packages/de/75/f665e248af6842c764d8d26946258140c35ef3cafbb45230ae02f1c72b83/re_mocd-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-08 21:07:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "0l1ve1r4",
    "github_project": "re_mocd",
    "github_not_found": true,
    "lcname": "re-mocd"
}
        
Elapsed time: 0.55875s