# cumm
CUda Matrix Multiply library.
[](https://github.com/FindDefinition/cumm/actions?query=workflow%3Abuild)
```cumm``` is developed during learning of [CUTLASS](https://github.com/NVIDIA/cutlass), which use too much c++ template and make code unmaintainable. So I develop [pccm](https://github.com/FindDefinition/PCCM), use python as meta programming language, to replace c++ template meta programming.
Now ```pccm``` become a foundational framework of ```cumm``` and my other c++ project such as [spconv](https://github.com/traveller59/spconv).
```cumm``` also contains a python asyncio-based gemm simulator that **share same meta program** with CUDA code, enable gemm visualization and easy debug experience.
## BREAKING CHANGES
* 0.3.1: tv::DType enum value changed, this will affect all binary code of tv::Tensor user. you must recompile all code if upgrade to cumm >= 0.3.1.
## News
* Ampere feature support (by [EvernightAurora](https://github.com/EvernightAurora))
## Install
### Prebuilt
We offer python 3.9-3.13 and cuda 11.4/11.8/12.1/12.4/12.6 prebuilt binaries for linux (`manylinux_2_28`).
We offer python 3.9-3.13 and cuda 11.4/11.8/12.1/12.4/12.6 prebuilt binaries for windows 10/11.
We offer python 3.9-3.13 prebuilt binaries for Mac OS X >= 14.0 (Apple Silicon Only).
```pip install cumm``` for CPU-only
```pip install cumm-cu114``` for CUDA 11.4
```pip install cumm-cu126``` for CUDA 12.6
### Build from source for development (JIT, recommend for develop)
**WARNING** Use code in [tags](https://github.com/FindDefinition/cumm/releases)!!! code in main branch may contain bugs.
The c++ code will be built automatically when you change c++ code in project.
#### Linux
0. uninstall cumm installed by pip. you must ensure no "cumm" exists in ```pip list | grep cumm```
1. install build-essential, install CUDA
2. ```git clone https://github.com/FindDefinition/cumm```, ```cd ./cumm```, ```git checkout tags/<tag_name>```, ```pip install -e .```
3. in python, ```import cumm``` and wait for build finish.
#### Windows
0. uninstall spconv and cumm installed by pip. you must ensure no "cumm" exists in ```pip list | grep cumm```
1. install visual studio 2019 or newer. make sure C++ development component is installed. install CUDA
2. set [powershell script execution policy](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1)
3. start a new powershell, run ```tools/msvc_setup.ps1```
4. ```git clone https://github.com/FindDefinition/cumm```, ```cd ./cumm```, ```git checkout tags/<tag_name>```, ```pip install -e .```
5. in python, ```import cumm``` and wait for build finish.
### Build wheel from source
**WARNING** Use code in [tags](https://github.com/FindDefinition/cumm/releases)!!! code in main branch may contain bugs.
**WARNING**: If ```CUMM_CUDA_VERSION``` is set with a CUDA version, following steps will create a wheel named "cumm-cuxxx", not "cumm", this means you must use ```cumm-cuxxx``` in dependency of your project which depend on cumm, not ```cumm```. If ```CUMM_CUDA_VERSION``` isn't set, ```cumm``` will always built with CUDA, so the CUDA must exists in your system. The wheel name will be ```cumm``` even if it is built with cuda.
#### Linux
It's recommend to build Linux packages in [official build docker](https://github.com/FindDefinition/cumm/blob/main/.github/workflows/build.yaml). Build with CUDA support don't need a real GPU.
##### Build in Official Docker
1. select a cuda version. available: CUDA 11.1, 11.3, 11.4, 11.5, 12.0
2. (Example for CUDA 11.4) ```git clone https://github.com/FindDefinition/cumm```, ```cd ./cumm```, ```docker run --rm -e PLAT=manylinux2014_x86_64 -e CUMM_CUDA_VERSION=114 -v `pwd`:/io scrin/manylinux2014-cuda:cu114-devel-1.0.0 bash -c "source /etc/bashrc && /io/tools/build-wheels.sh"```
##### Build in your environment
1. install build-essential, install CUDA
2. set env for installed cuda version. for example, ```export CUMM_CUDA_VERSION="11.4"```. If you want to build CPU-only, run ```export CUMM_CUDA_VERSION=""```. If ```CUMM_CUDA_VERSION``` isn't set, you need to ensure cuda libraries are inside OS search path, and the built wheel name will be ```cumm```, otherwise ```cumm-cuxxx```
3. run ```export CUMM_DISABLE_JIT="1"```
4. run ```python setup.py bdist_wheel```+```pip install dists/xxx.whl```
#### Windows 10/11
1. install visual studio 2019 or newer. make sure C++ development package is installed. install CUDA
2. set [powershell script execution policy](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1)
3. start a new powershell, run ```tools/msvc_setup.ps1```
4. set env for installed cuda version. for example, ```$Env:CUMM_CUDA_VERSION = "11.4"```. If you want to build CPU-only, run ```$Env:CUMM_CUDA_VERSION = ""```. . If ```CUMM_CUDA_VERSION``` isn't set, you need to ensure cuda libraries are inside OS search path, and the built wheel name will be ```cumm```, otherwise ```cumm-cuxxx```
4. run ```$Env:CUMM_DISABLE_JIT = "1"```
5. run ```python setup.py bdist_wheel```+```pip install dists/xxx.whl```
## Contributers
* [EvernightAurora](https://github.com/EvernightAurora): add ampere feature.
## Note
The work is done when the author is an employee at [Tusimple](https://www.tusimple.com/).
## LICENSE
Apache 2.0
Raw data
{
"_id": null,
"home_page": "https://github.com/FindDefinition/cumm",
"name": "cumm",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "Yan Yan",
"author_email": "yanyan.sub@outlook.com",
"download_url": null,
"platform": null,
"description": "\r\n# cumm\r\nCUda Matrix Multiply library.\r\n\r\n[](https://github.com/FindDefinition/cumm/actions?query=workflow%3Abuild)\r\n\r\n```cumm``` is developed during learning of [CUTLASS](https://github.com/NVIDIA/cutlass), which use too much c++ template and make code unmaintainable. So I develop [pccm](https://github.com/FindDefinition/PCCM), use python as meta programming language, to replace c++ template meta programming. \r\nNow ```pccm``` become a foundational framework of ```cumm``` and my other c++ project such as [spconv](https://github.com/traveller59/spconv). \r\n```cumm``` also contains a python asyncio-based gemm simulator that **share same meta program** with CUDA code, enable gemm visualization and easy debug experience.\r\n\r\n## BREAKING CHANGES\r\n\r\n* 0.3.1: tv::DType enum value changed, this will affect all binary code of tv::Tensor user. you must recompile all code if upgrade to cumm >= 0.3.1.\r\n\r\n## News\r\n\r\n* Ampere feature support (by [EvernightAurora](https://github.com/EvernightAurora))\r\n\r\n## Install\r\n\r\n### Prebuilt\r\n\r\nWe offer python 3.9-3.13 and cuda 11.4/11.8/12.1/12.4/12.6 prebuilt binaries for linux (`manylinux_2_28`).\r\n\r\nWe offer python 3.9-3.13 and cuda 11.4/11.8/12.1/12.4/12.6 prebuilt binaries for windows 10/11.\r\n\r\nWe offer python 3.9-3.13 prebuilt binaries for Mac OS X >= 14.0 (Apple Silicon Only).\r\n\r\n```pip install cumm``` for CPU-only\r\n\r\n```pip install cumm-cu114``` for CUDA 11.4\r\n\r\n```pip install cumm-cu126``` for CUDA 12.6\r\n\r\n### Build from source for development (JIT, recommend for develop)\r\n\r\n**WARNING** Use code in [tags](https://github.com/FindDefinition/cumm/releases)!!! code in main branch may contain bugs.\r\n\r\nThe c++ code will be built automatically when you change c++ code in project.\r\n\r\n#### Linux\r\n\r\n0. uninstall cumm installed by pip. you must ensure no \"cumm\" exists in ```pip list | grep cumm```\r\n1. install build-essential, install CUDA\r\n2. ```git clone https://github.com/FindDefinition/cumm```, ```cd ./cumm```, ```git checkout tags/<tag_name>```, ```pip install -e .```\r\n3. in python, ```import cumm``` and wait for build finish.\r\n\r\n#### Windows\r\n0. uninstall spconv and cumm installed by pip. you must ensure no \"cumm\" exists in ```pip list | grep cumm```\r\n1. install visual studio 2019 or newer. make sure C++ development component is installed. install CUDA\r\n2. set [powershell script execution policy](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1)\r\n3. start a new powershell, run ```tools/msvc_setup.ps1```\r\n4. ```git clone https://github.com/FindDefinition/cumm```, ```cd ./cumm```, ```git checkout tags/<tag_name>```, ```pip install -e .```\r\n5. in python, ```import cumm``` and wait for build finish.\r\n\r\n### Build wheel from source \r\n\r\n**WARNING** Use code in [tags](https://github.com/FindDefinition/cumm/releases)!!! code in main branch may contain bugs.\r\n\r\n**WARNING**: If ```CUMM_CUDA_VERSION``` is set with a CUDA version, following steps will create a wheel named \"cumm-cuxxx\", not \"cumm\", this means you must use ```cumm-cuxxx``` in dependency of your project which depend on cumm, not ```cumm```. If ```CUMM_CUDA_VERSION``` isn't set, ```cumm``` will always built with CUDA, so the CUDA must exists in your system. The wheel name will be ```cumm``` even if it is built with cuda.\r\n\r\n#### Linux\r\n\r\nIt's recommend to build Linux packages in [official build docker](https://github.com/FindDefinition/cumm/blob/main/.github/workflows/build.yaml). Build with CUDA support don't need a real GPU.\r\n\r\n##### Build in Official Docker\r\n\r\n1. select a cuda version. available: CUDA 11.1, 11.3, 11.4, 11.5, 12.0\r\n2. (Example for CUDA 11.4) ```git clone https://github.com/FindDefinition/cumm```, ```cd ./cumm```, ```docker run --rm -e PLAT=manylinux2014_x86_64 -e CUMM_CUDA_VERSION=114 -v `pwd`:/io scrin/manylinux2014-cuda:cu114-devel-1.0.0 bash -c \"source /etc/bashrc && /io/tools/build-wheels.sh\"```\r\n\r\n##### Build in your environment\r\n\r\n1. install build-essential, install CUDA\r\n2. set env for installed cuda version. for example, ```export CUMM_CUDA_VERSION=\"11.4\"```. If you want to build CPU-only, run ```export CUMM_CUDA_VERSION=\"\"```. If ```CUMM_CUDA_VERSION``` isn't set, you need to ensure cuda libraries are inside OS search path, and the built wheel name will be ```cumm```, otherwise ```cumm-cuxxx```\r\n3. run ```export CUMM_DISABLE_JIT=\"1\"```\r\n4. run ```python setup.py bdist_wheel```+```pip install dists/xxx.whl```\r\n\r\n#### Windows 10/11\r\n\r\n1. install visual studio 2019 or newer. make sure C++ development package is installed. install CUDA\r\n2. set [powershell script execution policy](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1)\r\n3. start a new powershell, run ```tools/msvc_setup.ps1```\r\n4. set env for installed cuda version. for example, ```$Env:CUMM_CUDA_VERSION = \"11.4\"```. If you want to build CPU-only, run ```$Env:CUMM_CUDA_VERSION = \"\"```. . If ```CUMM_CUDA_VERSION``` isn't set, you need to ensure cuda libraries are inside OS search path, and the built wheel name will be ```cumm```, otherwise ```cumm-cuxxx```\r\n4. run ```$Env:CUMM_DISABLE_JIT = \"1\"```\r\n5. run ```python setup.py bdist_wheel```+```pip install dists/xxx.whl```\r\n\r\n## Contributers\r\n\r\n* [EvernightAurora](https://github.com/EvernightAurora): add ampere feature.\r\n\r\n## Note\r\nThe work is done when the author is an employee at [Tusimple](https://www.tusimple.com/).\r\n\r\n## LICENSE\r\n\r\nApache 2.0\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CUda Matrix Multiply library",
"version": "0.7.11",
"project_urls": {
"Homepage": "https://github.com/FindDefinition/cumm"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0a1d8c7a6b96fcbd8b0c1b4bcaf95f2f0d88f0747f4caf1f41d17d8ca4192923",
"md5": "71422ea9f014f99ea458651d46e2dbe6",
"sha256": "dafaab74c1c55606d7df4f20fbb5f1c39002a4f6a029ed28f7192017b1e9dfc0"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp310-cp310-macosx_14_0_universal2.whl",
"has_sig": false,
"md5_digest": "71422ea9f014f99ea458651d46e2dbe6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1382720,
"upload_time": "2024-12-15T13:34:47",
"upload_time_iso_8601": "2024-12-15T13:34:47.119604Z",
"url": "https://files.pythonhosted.org/packages/0a/1d/8c7a6b96fcbd8b0c1b4bcaf95f2f0d88f0747f4caf1f41d17d8ca4192923/cumm-0.7.11-cp310-cp310-macosx_14_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af021312855b4f60b8ebb3fda2367f469b10d928bef664119921e31a49a9166b",
"md5": "f93137b3d7af784984ae027d00a02295",
"sha256": "a2632c003aad2c8ea0ef0d384c7813e786e853389afbf57e8bf53ba2e843a566"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f93137b3d7af784984ae027d00a02295",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 2629275,
"upload_time": "2024-12-15T13:56:59",
"upload_time_iso_8601": "2024-12-15T13:56:59.292602Z",
"url": "https://files.pythonhosted.org/packages/af/02/1312855b4f60b8ebb3fda2367f469b10d928bef664119921e31a49a9166b/cumm-0.7.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3c9d596b715b2db89ccfcdb6b7cf0fe7e7f4d86466d900da610754997e259932",
"md5": "50777d5210cc772fe4b8db573f99ff87",
"sha256": "b805ad12b0f30ace66b764183216ddf95a184e99bdbe3fe578427e5b12d1f46a"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "50777d5210cc772fe4b8db573f99ff87",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 1170120,
"upload_time": "2024-12-15T13:33:21",
"upload_time_iso_8601": "2024-12-15T13:33:21.965546Z",
"url": "https://files.pythonhosted.org/packages/3c/9d/596b715b2db89ccfcdb6b7cf0fe7e7f4d86466d900da610754997e259932/cumm-0.7.11-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e43e796f80be8c4d6dc806fa0dc551212e5e8dbfef6ebe6068999a564e80b022",
"md5": "378dd5a3d11c84b1c30f3471a41fc081",
"sha256": "304d177bc3ba7789d9a3dbbcd38ed84cdbd6b518eecc5b78d79e4241b4e57843"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp311-cp311-macosx_14_0_universal2.whl",
"has_sig": false,
"md5_digest": "378dd5a3d11c84b1c30f3471a41fc081",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1385131,
"upload_time": "2024-12-15T13:34:48",
"upload_time_iso_8601": "2024-12-15T13:34:48.442075Z",
"url": "https://files.pythonhosted.org/packages/e4/3e/796f80be8c4d6dc806fa0dc551212e5e8dbfef6ebe6068999a564e80b022/cumm-0.7.11-cp311-cp311-macosx_14_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "553abbc1a78d325d1db1afd693c7017716942121b4f8ae4422c8b44a5ecc0219",
"md5": "5a700d0d0fcb0c2da86850de02782f85",
"sha256": "611c76672c9e0250fbded6c37147f9713f2900c59379f0c2f6da67a842aca6c5"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "5a700d0d0fcb0c2da86850de02782f85",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 2635106,
"upload_time": "2024-12-15T13:57:02",
"upload_time_iso_8601": "2024-12-15T13:57:02.470571Z",
"url": "https://files.pythonhosted.org/packages/55/3a/bbc1a78d325d1db1afd693c7017716942121b4f8ae4422c8b44a5ecc0219/cumm-0.7.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cf80cb8982189723289523ab7698b5a2c8b0166cdb9397546f7e75acd71724ff",
"md5": "764896b37dbf3baa6f5db5d6b9a7ace2",
"sha256": "635404854126574cef69f3ec0e4dd600544aca4d1aa157ff9ef2ca68d3fc0b27"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "764896b37dbf3baa6f5db5d6b9a7ace2",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1171286,
"upload_time": "2024-12-15T13:34:44",
"upload_time_iso_8601": "2024-12-15T13:34:44.729935Z",
"url": "https://files.pythonhosted.org/packages/cf/80/cb8982189723289523ab7698b5a2c8b0166cdb9397546f7e75acd71724ff/cumm-0.7.11-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2f21637ec00c09ebba31f464d63e740e537e546616d460e07e4fd95ddacda3cb",
"md5": "699a00e8273435b2ad07a5e35ab7aa45",
"sha256": "a17c11cd598f769d412e81733fc88d4644550d054b579c4ad43fb1c89a251391"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp312-cp312-macosx_14_0_universal2.whl",
"has_sig": false,
"md5_digest": "699a00e8273435b2ad07a5e35ab7aa45",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 1384278,
"upload_time": "2024-12-15T13:34:51",
"upload_time_iso_8601": "2024-12-15T13:34:51.410452Z",
"url": "https://files.pythonhosted.org/packages/2f/21/637ec00c09ebba31f464d63e740e537e546616d460e07e4fd95ddacda3cb/cumm-0.7.11-cp312-cp312-macosx_14_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "703c8f48684b001c296d75586a961923e6b629728b0fd16ca8a003d22211766c",
"md5": "1ee2f98844b6d543bdd4d86656f252ac",
"sha256": "96ad9d959a42f2ab768228956ad8af6cf8628f6eefe8edb7de3f9f13f4c92773"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1ee2f98844b6d543bdd4d86656f252ac",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 2633058,
"upload_time": "2024-12-15T13:57:04",
"upload_time_iso_8601": "2024-12-15T13:57:04.152785Z",
"url": "https://files.pythonhosted.org/packages/70/3c/8f48684b001c296d75586a961923e6b629728b0fd16ca8a003d22211766c/cumm-0.7.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e44bd466f9498e387bd39f18979c416dbfec2cf395126350c0a8c888da27f219",
"md5": "99ff777b2f766355e3f75167a634b82f",
"sha256": "29bc8a4f1e174845cecbd9b018dcfc3fc8b337a7f1ba90c8cb7fd8a63aa61e93"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "99ff777b2f766355e3f75167a634b82f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 1170405,
"upload_time": "2024-12-15T13:34:25",
"upload_time_iso_8601": "2024-12-15T13:34:25.888220Z",
"url": "https://files.pythonhosted.org/packages/e4/4b/d466f9498e387bd39f18979c416dbfec2cf395126350c0a8c888da27f219/cumm-0.7.11-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "21861a1f5ace1e3ac0d6ff6d85390b1d8f9d24caf0dbaa3eb8e1c85668db857f",
"md5": "a484e1ad2b21e9d7efabbde761dad7e9",
"sha256": "0a98021dd0db13bbeeffde2250b8235db194636ada8f4be33b1fde21d766bd2f"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp313-cp313-macosx_14_0_universal2.whl",
"has_sig": false,
"md5_digest": "a484e1ad2b21e9d7efabbde761dad7e9",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 1384761,
"upload_time": "2024-12-15T13:34:53",
"upload_time_iso_8601": "2024-12-15T13:34:53.047691Z",
"url": "https://files.pythonhosted.org/packages/21/86/1a1f5ace1e3ac0d6ff6d85390b1d8f9d24caf0dbaa3eb8e1c85668db857f/cumm-0.7.11-cp313-cp313-macosx_14_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b04df80a99cf0e38c6e8f40e523d2a65dc097938abf0efb264c961bf0e5a1328",
"md5": "79da3ec4b20acbf8a3b3e48f0eb890e3",
"sha256": "f138997700f174d87d86f0293d5699121a37b5ba2874df4268ab533636fcb700"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "79da3ec4b20acbf8a3b3e48f0eb890e3",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 2636345,
"upload_time": "2024-12-15T13:57:07",
"upload_time_iso_8601": "2024-12-15T13:57:07.133933Z",
"url": "https://files.pythonhosted.org/packages/b0/4d/f80a99cf0e38c6e8f40e523d2a65dc097938abf0efb264c961bf0e5a1328/cumm-0.7.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f8350d34382267ba36257f4d918784c8e88308b5f798e4fdf23f7245fd9c9d29",
"md5": "04c7f045893ea88a407f49314a202cce",
"sha256": "596d2f0722055e4631a941e797c6ac60115cae256c6b42bfd711d99b3cd360b0"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "04c7f045893ea88a407f49314a202cce",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 1171107,
"upload_time": "2024-12-15T13:36:39",
"upload_time_iso_8601": "2024-12-15T13:36:39.406774Z",
"url": "https://files.pythonhosted.org/packages/f8/35/0d34382267ba36257f4d918784c8e88308b5f798e4fdf23f7245fd9c9d29/cumm-0.7.11-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af04a183758e7128c8c28f89e2dba278b31d1b2b5826b59f277dd20f04d5cde4",
"md5": "3c921b12c4d42cb273a2045e3b3a927d",
"sha256": "a7ac84aac7fe7b3c327248ee01717362d1afcebba8f378a1af040283d64d8c85"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp39-cp39-macosx_14_0_universal2.whl",
"has_sig": false,
"md5_digest": "3c921b12c4d42cb273a2045e3b3a927d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1382817,
"upload_time": "2024-12-15T13:34:55",
"upload_time_iso_8601": "2024-12-15T13:34:55.625984Z",
"url": "https://files.pythonhosted.org/packages/af/04/a183758e7128c8c28f89e2dba278b31d1b2b5826b59f277dd20f04d5cde4/cumm-0.7.11-cp39-cp39-macosx_14_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f5a6c13a09974d92cd300a62dab1115f679659c24b13e1d8a0387a0f0c262a67",
"md5": "6168745dc570d12b497b62d85dc2f55c",
"sha256": "90e38825cf3ce16f4fe958df9d02cac4514e8b17e25b6a0ec335e7d8c00e00b6"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6168745dc570d12b497b62d85dc2f55c",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 2631730,
"upload_time": "2024-12-15T13:57:09",
"upload_time_iso_8601": "2024-12-15T13:57:09.954829Z",
"url": "https://files.pythonhosted.org/packages/f5/a6/c13a09974d92cd300a62dab1115f679659c24b13e1d8a0387a0f0c262a67/cumm-0.7.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b6504c5f93a7d800e4c18414e6f107ecb34f8d4f57b70eb126527d4c3a9e3feb",
"md5": "62804ae60bd3d4d9fa4e973444c98b09",
"sha256": "f516ec217a89ba626a34464f778daf452d23e46a97a32722be84978ba2bcb283"
},
"downloads": -1,
"filename": "cumm-0.7.11-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "62804ae60bd3d4d9fa4e973444c98b09",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 1169664,
"upload_time": "2024-12-15T13:35:21",
"upload_time_iso_8601": "2024-12-15T13:35:21.639142Z",
"url": "https://files.pythonhosted.org/packages/b6/50/4c5f93a7d800e4c18414e6f107ecb34f8d4f57b70eb126527d4c3a9e3feb/cumm-0.7.11-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-15 13:34:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "FindDefinition",
"github_project": "cumm",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cumm"
}