# CyRK
<div style="text-align: center;">
<a href="https://doi.org/10.5281/zenodo.7093266"><img src="https://zenodo.org/badge/DOI/10.5281/zenodo.7093266.svg" alt="DOI"></a>
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/Python-3.9|3.10|3.11|3.12|3.13-blue" alt="Python Version 3.9-3.13" /></a>
<!-- <a href="https://codecov.io/gh/jrenaud90/CyRK" ><img src="https://codecov.io/gh/jrenaud90/CyRK/branch/main/graph/badge.svg?token=MK2PqcNGET" alt="Code Coverage"/></a> -->
<br />
<a href="https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_win.yml"><img src="https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_win.yml/badge.svg?branch=main" alt="Windows Tests" /></a>
<a href="https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_mac.yml"><img src="https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_mac.yml/badge.svg?branch=main" alt="MacOS Tests" /></a>
<a href="https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_ubun.yml"><img src="https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_ubun.yml/badge.svg?branch=main" alt="Ubuntu Tests" /></a>
<a href="https://app.readthedocs.org/projects/cyrk/builds/?version__slug=latest"><img src="https://app.readthedocs.org/projects/cyrk/badge/?version=latest&style=flat" alt="Ubuntu Tests" /></a>
<br />
<a href="https://pypi.org/project/CyRK/"><img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/CyRK?label=PyPI%20Downloads" /></a>
<a href="https://anaconda.org/conda-forge/cyrk"> <img alt="Conda Downloads" src="https://img.shields.io/conda/d/conda-forge/cyrk" /> </a>
</div>
---
[Documentation](https://cyrk.readthedocs.io/en/latest/) | [GitHub](https://github.com/jrenaud90/cyrk)
<a href="https://github.com/jrenaud90/CyRK/releases"><img src="https://img.shields.io/badge/CyRK-0.15.0 Alpha-orange" alt="CyRK Version 0.15.0 Alpha" /></a>
**Runge-Kutta ODE Integrator Implemented in Cython and Numba**
CyRK provides fast integration tools to solve systems of ODEs using an adaptive time stepping scheme. CyRK can accept differential equations that are written in pure Python, njited numba, or cython-based cdef functions. These kinds of functions are generally easier to implement than pure c functions and can be used in existing Python software. Using CyRK can speed up development time while avoiding the slow performance that comes with using pure Python-based solvers like SciPy's `solve_ivp`.
The purpose of this package is to provide some
functionality of [scipy's solve_ivp](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) with greatly improved performance.
Currently, CyRK's [numba-based](https://numba.discourse.group/) (njit-safe) implementation is **8--60x faster** than scipy's solve_ivp function.
The [cython-based](https://cython.org/) `pysolve_ivp` function that works with python (or njit'd) functions is **10-40x faster** than scipy.
The [cython-based](https://cython.org/) `cysolver_ivp` function that works with cython-based cdef functions is **40-300+x faster** than scipy.
An additional benefit of the two cython implementations is that they are pre-compiled. This avoids most of the start-up performance hit experienced by just-in-time compilers like numba.
<img style="text-align: center" src="https://github.com/jrenaud90/CyRK/blob/main/Benchmarks/CyRK_SciPy_Compare_predprey_v0-15-0.png" alt="CyRK Performance Graphic" />
## Installation
*CyRK has been tested on Python 3.9--3.13; Windows, Ubuntu, and MacOS.*
Install via pip:
`pip install CyRK`
conda:
`conda install -c conda-forge CyRK`
mamba:
`mamba install cyrk`
If not installing from a wheel, CyRK will attempt to install `Cython` and `Numpy` in order to compile the source code. A "C++ 20" compatible compiler is required.
Compiling CyRK has been tested on the latest versions of Windows, Ubuntu, and MacOS. Your milage may vary if you are using a older or different operating system.
If on MacOS you will likely need a non-default compiler in order to compile the required openMP package. See the "Installation Troubleshooting" below.
After everything has been compiled, cython will be uninstalled and CyRK's runtime dependencies (see the pyproject.toml file for the latest list) will be installed instead.
A new installation of CyRK can be tested quickly by running the following from a python console.
```python
from CyRK import test_pysolver, test_cysolver, test_nbrk
test_pysolver()
# Should see "CyRK's PySolver was tested successfully."
test_cysolver()
# Should see "CyRK's CySolver was tested successfully."
test_nbrk()
# Should see "CyRK's nbrk_ode was tested successfully."
```
### Installation Troubleshooting
*Please [report](https://github.com/jrenaud90/CyRK/issues) installation issues. We will work on a fix and/or add workaround information here.*
- If you see a "Can not load module: CyRK.cy" or similar error then the cython extensions likely did not compile during installation. Try running `pip install CyRK --no-binary="CyRK"`
to force python to recompile the cython extensions locally (rather than via a prebuilt wheel).
- On MacOS: If you run into problems installing CyRK then reinstall using the verbose flag (`pip install -v .`) to look at the installation log. If you see an error that looks like "clang: error: unsupported option '-fopenmp'" then you are likely using the default compiler or other compiler that does not support OpenMP. Read more about this issue [here](https://github.com/facebookresearch/xformers/issues/157) and the steps taken [here](https://github.com/jrenaud90/CyRK/blob/main/.github/workflows/push_tests_mac.yml). A fix for this issue is to use `llvm`'s clang compiler. This can be done by doing the following in your terminal before installing CyRK.
```
brew install llvm
brew install libomp
# If on ARM64 (Apple Silicon) then do:
export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
export LDFLAGS="-L/opt/homebrew/opt/libomp/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libomp/include"
export CC=/opt/homebrew/opt/llvm/bin/clang
export CXX=/opt/homebrew/opt/llvm/bin/clang++
# Otherwise change these directories to:
export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"
export LDFLAGS="-L/usr/local/opt/libomp/lib"
export CPPFLAGS="-I/usr/local/opt/libomp/include"
export CC=/usr/local/opt/llvm/bin/clang
export CXX=/usr/local/opt/llvm/bin/clang++
pip install CyRK --no-binary="CyRK"
```
- CyRK has a number of runtime status codes which can be used to help determine what failed during integration. Learn more about these codes [https://github.com/jrenaud90/CyRK/blob/main/docs/Status%20and%20Error%20Codes.md](here).
### Development and Testing Dependencies
If you intend to work on CyRK's code base you will want to install the following dependencies in order to run CyRK's test suite and experimental notebooks.
`conda install pytest scipy matplotlib jupyter`
`conda install` can be replaced with `pip install` if you prefer.
## Using CyRK
To learn how to use CyRK, please reference our detailed documentation on Read the Docs!
[Read the Docs: CyRK Documentation](https://cyrk.readthedocs.io/en/latest/)
## Limitations and Known Issues
- [Issue 30](https://github.com/jrenaud90/CyRK/issues/30): CyRK's cysolve_ivp and pysolve_ivp does not allow for complex-valued dependent variables.
## Citing CyRK
It is great to see CyRK used in other software or in scientific studies. We ask that you cite back to CyRK's [GitHub](https://github.com/jrenaud90/CyRK) website so interested parties can learn about this package.
It would also be great to hear about the work being done with CyRK and add your project to the list below, so get in touch!
Renaud, Joe P. (2022). CyRK - ODE Integrator Implemented in Cython and Numba. Zenodo. https://doi.org/10.5281/zenodo.7093266
In addition to citing CyRK, please consider citing SciPy and its references for the specific Runge-Kutta model that was used in your work. CyRK is largely an adaptation of SciPy's functionality. Find more details [here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html).
Pauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, Pearu Peterson, Warren Weckesser, Jonathan Bright, Stéfan J. van der Walt, Matthew Brett, Joshua Wilson, K. Jarrod Millman, Nikolay Mayorov, Andrew R. J. Nelson, Eric Jones, Robert Kern, Eric Larson, CJ Carey, İlhan Polat, Yu Feng, Eric W. Moore, Jake VanderPlas, Denis Laxalde, Josef Perktold, Robert Cimrman, Ian Henriksen, E.A. Quintero, Charles R Harris, Anne M. Archibald, Antônio H. Ribeiro, Fabian Pedregosa, Paul van Mulbregt, and SciPy 1.0 Contributors. (2020) SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17(3), 261-272.
## Projects using CyRK
_Don't see your project here? Create a GitHub issue or otherwise get in touch!_
- [TidalPy](https://github.com/jrenaud90/TidalPy)
- [Rydiqule](https://github.com/QTC-UMD/rydiqule)
- [KG-simulation](https://github.com/w-smialek/KG-simulation)
- [twpaSolver](https://github.com/twpalab/twpasolver)
- [NOrbit](https://github.com/curritod/norbit)
- [APPS-ODE](https://github.com/jiangnanhugo/APPS-ODE)
## Contribute to CyRK
_Please look [here](https://github.com/jrenaud90/CyRK/graphs/contributors) for an up-to-date list of contributors to the CyRK package._
CyRK is open-source and is distributed under the Creative Commons Attribution-ShareAlike 4.0 International license. You are welcome to fork this repository and make any edits with attribution back to this project (please see the `Citing CyRK` section).
- We encourage users to report bugs or feature requests using [GitHub Issues](https://github.com/jrenaud90/CyRK/issues).
- If you would like to contribute but don't know where to start, check out the [good first issue](https://github.com/jrenaud90/CyRK/labels/good%20first%20issue) tag on GitHub.
- Users are welcome to submit pull requests and should feel free to create them before the final code is completed so that feedback and suggestions can be given early on.
Raw data
{
"_id": null,
"home_page": null,
"name": "CyRK",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.9",
"maintainer_email": null,
"keywords": "Scientific Computing, Runge-Kutta, Numerical Integration, ODEs, Ordinary Differential Equations, cython, numba, Integration",
"author": null,
"author_email": "\"Joe P. Renaud\" <joe.p.renaud@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f5/1e/7b4476b9f19464280ddf59e0cb38b7dd29544f022c7cae53b8bf15742f32/cyrk-0.15.0.tar.gz",
"platform": null,
"description": "# CyRK\n<div style=\"text-align: center;\">\n<a href=\"https://doi.org/10.5281/zenodo.7093266\"><img src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.7093266.svg\" alt=\"DOI\"></a>\n<a href=\"https://www.python.org/downloads/\"><img src=\"https://img.shields.io/badge/Python-3.9|3.10|3.11|3.12|3.13-blue\" alt=\"Python Version 3.9-3.13\" /></a>\n<!-- <a href=\"https://codecov.io/gh/jrenaud90/CyRK\" ><img src=\"https://codecov.io/gh/jrenaud90/CyRK/branch/main/graph/badge.svg?token=MK2PqcNGET\" alt=\"Code Coverage\"/></a> -->\n<br />\n<a href=\"https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_win.yml\"><img src=\"https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_win.yml/badge.svg?branch=main\" alt=\"Windows Tests\" /></a>\n<a href=\"https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_mac.yml\"><img src=\"https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_mac.yml/badge.svg?branch=main\" alt=\"MacOS Tests\" /></a>\n<a href=\"https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_ubun.yml\"><img src=\"https://github.com/jrenaud90/CyRK/actions/workflows/push_tests_ubun.yml/badge.svg?branch=main\" alt=\"Ubuntu Tests\" /></a>\n<a href=\"https://app.readthedocs.org/projects/cyrk/builds/?version__slug=latest\"><img src=\"https://app.readthedocs.org/projects/cyrk/badge/?version=latest&style=flat\" alt=\"Ubuntu Tests\" /></a>\n\n\n<br />\n<a href=\"https://pypi.org/project/CyRK/\"><img alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/CyRK?label=PyPI%20Downloads\" /></a>\n<a href=\"https://anaconda.org/conda-forge/cyrk\"> <img alt=\"Conda Downloads\" src=\"https://img.shields.io/conda/d/conda-forge/cyrk\" /> </a>\n</div>\n\n---\n[Documentation](https://cyrk.readthedocs.io/en/latest/) | [GitHub](https://github.com/jrenaud90/cyrk)\n\n<a href=\"https://github.com/jrenaud90/CyRK/releases\"><img src=\"https://img.shields.io/badge/CyRK-0.15.0 Alpha-orange\" alt=\"CyRK Version 0.15.0 Alpha\" /></a>\n\n**Runge-Kutta ODE Integrator Implemented in Cython and Numba**\n\nCyRK provides fast integration tools to solve systems of ODEs using an adaptive time stepping scheme. CyRK can accept differential equations that are written in pure Python, njited numba, or cython-based cdef functions. These kinds of functions are generally easier to implement than pure c functions and can be used in existing Python software. Using CyRK can speed up development time while avoiding the slow performance that comes with using pure Python-based solvers like SciPy's `solve_ivp`.\n\nThe purpose of this package is to provide some \nfunctionality of [scipy's solve_ivp](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) with greatly improved performance.\n\nCurrently, CyRK's [numba-based](https://numba.discourse.group/) (njit-safe) implementation is **8--60x faster** than scipy's solve_ivp function.\nThe [cython-based](https://cython.org/) `pysolve_ivp` function that works with python (or njit'd) functions is **10-40x faster** than scipy.\nThe [cython-based](https://cython.org/) `cysolver_ivp` function that works with cython-based cdef functions is **40-300+x faster** than scipy.\n\nAn additional benefit of the two cython implementations is that they are pre-compiled. This avoids most of the start-up performance hit experienced by just-in-time compilers like numba.\n\n\n<img style=\"text-align: center\" src=\"https://github.com/jrenaud90/CyRK/blob/main/Benchmarks/CyRK_SciPy_Compare_predprey_v0-15-0.png\" alt=\"CyRK Performance Graphic\" />\n\n## Installation\n\n*CyRK has been tested on Python 3.9--3.13; Windows, Ubuntu, and MacOS.*\n\nInstall via pip:\n\n`pip install CyRK`\n\nconda:\n\n`conda install -c conda-forge CyRK`\n\nmamba:\n\n`mamba install cyrk`\n\nIf not installing from a wheel, CyRK will attempt to install `Cython` and `Numpy` in order to compile the source code. A \"C++ 20\" compatible compiler is required.\nCompiling CyRK has been tested on the latest versions of Windows, Ubuntu, and MacOS. Your milage may vary if you are using a older or different operating system.\nIf on MacOS you will likely need a non-default compiler in order to compile the required openMP package. See the \"Installation Troubleshooting\" below. \nAfter everything has been compiled, cython will be uninstalled and CyRK's runtime dependencies (see the pyproject.toml file for the latest list) will be installed instead.\n\nA new installation of CyRK can be tested quickly by running the following from a python console.\n```python\nfrom CyRK import test_pysolver, test_cysolver, test_nbrk\ntest_pysolver()\n# Should see \"CyRK's PySolver was tested successfully.\"\ntest_cysolver()\n# Should see \"CyRK's CySolver was tested successfully.\"\ntest_nbrk()\n# Should see \"CyRK's nbrk_ode was tested successfully.\"\n```\n\n### Installation Troubleshooting\n\n*Please [report](https://github.com/jrenaud90/CyRK/issues) installation issues. We will work on a fix and/or add workaround information here.*\n\n- If you see a \"Can not load module: CyRK.cy\" or similar error then the cython extensions likely did not compile during installation. Try running `pip install CyRK --no-binary=\"CyRK\"` \nto force python to recompile the cython extensions locally (rather than via a prebuilt wheel).\n\n- On MacOS: If you run into problems installing CyRK then reinstall using the verbose flag (`pip install -v .`) to look at the installation log. If you see an error that looks like \"clang: error: unsupported option '-fopenmp'\" then you are likely using the default compiler or other compiler that does not support OpenMP. Read more about this issue [here](https://github.com/facebookresearch/xformers/issues/157) and the steps taken [here](https://github.com/jrenaud90/CyRK/blob/main/.github/workflows/push_tests_mac.yml). A fix for this issue is to use `llvm`'s clang compiler. This can be done by doing the following in your terminal before installing CyRK.\n```\nbrew install llvm\nbrew install libomp\n\n# If on ARM64 (Apple Silicon) then do:\nexport LDFLAGS=\"-L/opt/homebrew/opt/llvm/lib\"\nexport CPPFLAGS=\"-I/opt/homebrew/opt/llvm/include\"\nexport LDFLAGS=\"-L/opt/homebrew/opt/libomp/lib\"\nexport CPPFLAGS=\"-I/opt/homebrew/opt/libomp/include\"\nexport CC=/opt/homebrew/opt/llvm/bin/clang\nexport CXX=/opt/homebrew/opt/llvm/bin/clang++\n# Otherwise change these directories to:\nexport LDFLAGS=\"-L/usr/local/opt/llvm/lib\"\nexport CPPFLAGS=\"-I/usr/local/opt/llvm/include\"\nexport LDFLAGS=\"-L/usr/local/opt/libomp/lib\"\nexport CPPFLAGS=\"-I/usr/local/opt/libomp/include\"\nexport CC=/usr/local/opt/llvm/bin/clang\nexport CXX=/usr/local/opt/llvm/bin/clang++\n\npip install CyRK --no-binary=\"CyRK\"\n```\n\n- CyRK has a number of runtime status codes which can be used to help determine what failed during integration. Learn more about these codes [https://github.com/jrenaud90/CyRK/blob/main/docs/Status%20and%20Error%20Codes.md](here).\n\n### Development and Testing Dependencies\n\nIf you intend to work on CyRK's code base you will want to install the following dependencies in order to run CyRK's test suite and experimental notebooks.\n\n`conda install pytest scipy matplotlib jupyter`\n\n`conda install` can be replaced with `pip install` if you prefer.\n\n## Using CyRK\nTo learn how to use CyRK, please reference our detailed documentation on Read the Docs!\n\n[Read the Docs: CyRK Documentation](https://cyrk.readthedocs.io/en/latest/)\n\n## Limitations and Known Issues\n\n- [Issue 30](https://github.com/jrenaud90/CyRK/issues/30): CyRK's cysolve_ivp and pysolve_ivp does not allow for complex-valued dependent variables. \n\n## Citing CyRK\n\nIt is great to see CyRK used in other software or in scientific studies. We ask that you cite back to CyRK's [GitHub](https://github.com/jrenaud90/CyRK) website so interested parties can learn about this package.\n\nIt would also be great to hear about the work being done with CyRK and add your project to the list below, so get in touch!\n\nRenaud, Joe P. (2022). CyRK - ODE Integrator Implemented in Cython and Numba. Zenodo. https://doi.org/10.5281/zenodo.7093266\n\nIn addition to citing CyRK, please consider citing SciPy and its references for the specific Runge-Kutta model that was used in your work. CyRK is largely an adaptation of SciPy's functionality. Find more details [here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html).\n\nPauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, Pearu Peterson, Warren Weckesser, Jonathan Bright, St\u00e9fan J. van der Walt, Matthew Brett, Joshua Wilson, K. Jarrod Millman, Nikolay Mayorov, Andrew R. J. Nelson, Eric Jones, Robert Kern, Eric Larson, CJ Carey, \u0130lhan Polat, Yu Feng, Eric W. Moore, Jake VanderPlas, Denis Laxalde, Josef Perktold, Robert Cimrman, Ian Henriksen, E.A. Quintero, Charles R Harris, Anne M. Archibald, Ant\u00f4nio H. Ribeiro, Fabian Pedregosa, Paul van Mulbregt, and SciPy 1.0 Contributors. (2020) SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17(3), 261-272.\n\n## Projects using CyRK\n_Don't see your project here? Create a GitHub issue or otherwise get in touch!_\n- [TidalPy](https://github.com/jrenaud90/TidalPy)\n- [Rydiqule](https://github.com/QTC-UMD/rydiqule)\n- [KG-simulation](https://github.com/w-smialek/KG-simulation)\n- [twpaSolver](https://github.com/twpalab/twpasolver)\n- [NOrbit](https://github.com/curritod/norbit)\n- [APPS-ODE](https://github.com/jiangnanhugo/APPS-ODE)\n\n## Contribute to CyRK\n_Please look [here](https://github.com/jrenaud90/CyRK/graphs/contributors) for an up-to-date list of contributors to the CyRK package._\n\nCyRK is open-source and is distributed under the Creative Commons Attribution-ShareAlike 4.0 International license. You are welcome to fork this repository and make any edits with attribution back to this project (please see the `Citing CyRK` section).\n- We encourage users to report bugs or feature requests using [GitHub Issues](https://github.com/jrenaud90/CyRK/issues).\n- If you would like to contribute but don't know where to start, check out the [good first issue](https://github.com/jrenaud90/CyRK/labels/good%20first%20issue) tag on GitHub.\n- Users are welcome to submit pull requests and should feel free to create them before the final code is completed so that feedback and suggestions can be given early on.\n",
"bugtrack_url": null,
"license": null,
"summary": "Runge-Kutta ODE Integrator Implemented in Cython and Numba.",
"version": "0.15.0",
"project_urls": {
"Bug Tracker": "https://github.com/jrenaud90/CyRK/issues",
"Documentation": "https://cyrk.readthedocs.io/en/latest/",
"Homepage": "https://github.com/jrenaud90/CyRK"
},
"split_keywords": [
"scientific computing",
" runge-kutta",
" numerical integration",
" odes",
" ordinary differential equations",
" cython",
" numba",
" integration"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4b73ef783132fdb3bf11bd806825e9b45c74ce3c18d7a157af3c785ffeb203d6",
"md5": "502cfa6baa53516a706d99bd2979efec",
"sha256": "675639f920c5c0bd9b1fc6b4a443addb5fee6a706c545b40af61a748c0a67f0f"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp310-cp310-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "502cfa6baa53516a706d99bd2979efec",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.9",
"size": 686355,
"upload_time": "2025-08-14T02:14:53",
"upload_time_iso_8601": "2025-08-14T02:14:53.464128Z",
"url": "https://files.pythonhosted.org/packages/4b/73/ef783132fdb3bf11bd806825e9b45c74ce3c18d7a157af3c785ffeb203d6/cyrk-0.15.0-cp310-cp310-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e08e4a2b8f1417232be48aa654ab80a1fe240d87fb52d66a866a9b71d61fd6de",
"md5": "a175f06c9c87069055340772e19d7d47",
"sha256": "d9b0373b561581be4ebe5a80624683b5a3afa953bb65cae23971bef98f5aa6ec"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a175f06c9c87069055340772e19d7d47",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.9",
"size": 664028,
"upload_time": "2025-08-14T02:14:55",
"upload_time_iso_8601": "2025-08-14T02:14:55.367429Z",
"url": "https://files.pythonhosted.org/packages/e0/8e/4a2b8f1417232be48aa654ab80a1fe240d87fb52d66a866a9b71d61fd6de/cyrk-0.15.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8a7bf17475c1eb24abad5e2e27f0c9bc1ca066043514c587b261dbedac006574",
"md5": "a7c9b50601efc505cb29672454bd3e67",
"sha256": "19898fd1b4d534cf3b38400fe69baf56626b91cce33a9ac17ad6222f8c703f9b"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "a7c9b50601efc505cb29672454bd3e67",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.9",
"size": 4690538,
"upload_time": "2025-08-14T02:14:57",
"upload_time_iso_8601": "2025-08-14T02:14:57.162548Z",
"url": "https://files.pythonhosted.org/packages/8a/7b/f17475c1eb24abad5e2e27f0c9bc1ca066043514c587b261dbedac006574/cyrk-0.15.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "80ff79726dc251b0ee47faf1f5e7d9a0e10655f92838e613b72e196a2eba6151",
"md5": "9d57c3df7dae59960d7bdcce46b2d4cd",
"sha256": "3e13fe177214813fc36da5e2f2f47f6be981df0360dd17f34720d1cabeae8986"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "9d57c3df7dae59960d7bdcce46b2d4cd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<3.14,>=3.9",
"size": 587438,
"upload_time": "2025-08-14T02:14:58",
"upload_time_iso_8601": "2025-08-14T02:14:58.718530Z",
"url": "https://files.pythonhosted.org/packages/80/ff/79726dc251b0ee47faf1f5e7d9a0e10655f92838e613b72e196a2eba6151/cyrk-0.15.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "043ff617fe80f2019cd1090c870efab3ce24d5f77abb076b6633fb7e801993e3",
"md5": "1edca0a6382eb737dd64b0c97a09ae38",
"sha256": "c9847a7e8c5874022121af3b8ff19b9dcb02215d1883f1b14ddd254326034583"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp311-cp311-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "1edca0a6382eb737dd64b0c97a09ae38",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.9",
"size": 685684,
"upload_time": "2025-08-14T02:15:00",
"upload_time_iso_8601": "2025-08-14T02:15:00.251576Z",
"url": "https://files.pythonhosted.org/packages/04/3f/f617fe80f2019cd1090c870efab3ce24d5f77abb076b6633fb7e801993e3/cyrk-0.15.0-cp311-cp311-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "24659629168b8fe5c073fa350d82a4e7d610790c0d55b7d2f3d58a4f8eec1fa5",
"md5": "3dc0b8b90a7f33b12be98371a2e51d9f",
"sha256": "c7553855d9cdd56aa1d982bf7c970accadf432997813d62819c547207eadd8de"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "3dc0b8b90a7f33b12be98371a2e51d9f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.9",
"size": 664044,
"upload_time": "2025-08-14T02:15:01",
"upload_time_iso_8601": "2025-08-14T02:15:01.622706Z",
"url": "https://files.pythonhosted.org/packages/24/65/9629168b8fe5c073fa350d82a4e7d610790c0d55b7d2f3d58a4f8eec1fa5/cyrk-0.15.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b2e158b1674553aa7f071ec853d02ca292c13ce5ec48f19ae2c042271be0bcc2",
"md5": "55986c135dbbeae444a9151af0fa2fd9",
"sha256": "007b820e27f2ba236fc040368ea25eea83031fa56aa61a17a42ddd7787e89202"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "55986c135dbbeae444a9151af0fa2fd9",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.9",
"size": 4818267,
"upload_time": "2025-08-14T02:15:03",
"upload_time_iso_8601": "2025-08-14T02:15:03.055133Z",
"url": "https://files.pythonhosted.org/packages/b2/e1/58b1674553aa7f071ec853d02ca292c13ce5ec48f19ae2c042271be0bcc2/cyrk-0.15.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b9784459cd56abff2927c705303f9fb85597b30e89c56c92823be69de39b761e",
"md5": "caf8c022b15a5b40f35732b142e756c8",
"sha256": "1b4ba8e167f75c4eb3b729c0efcb1762f697e5a5ba1dc2526ba2719b925259de"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "caf8c022b15a5b40f35732b142e756c8",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<3.14,>=3.9",
"size": 586094,
"upload_time": "2025-08-14T02:15:04",
"upload_time_iso_8601": "2025-08-14T02:15:04.199879Z",
"url": "https://files.pythonhosted.org/packages/b9/78/4459cd56abff2927c705303f9fb85597b30e89c56c92823be69de39b761e/cyrk-0.15.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fe06d511a4b07a7015402ea706bf23a26646c5e9f13172095e2ef3186ecc1d58",
"md5": "8929fb2c691145293804cae7281dc114",
"sha256": "a990d489647070e56afbe77765e24c9acfb8745240bf82c7dadd8ff2c7652a78"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp312-cp312-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "8929fb2c691145293804cae7281dc114",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.9",
"size": 688817,
"upload_time": "2025-08-14T02:15:05",
"upload_time_iso_8601": "2025-08-14T02:15:05.285712Z",
"url": "https://files.pythonhosted.org/packages/fe/06/d511a4b07a7015402ea706bf23a26646c5e9f13172095e2ef3186ecc1d58/cyrk-0.15.0-cp312-cp312-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3453c9ef0b0e6a0d003c92bb46027ea7b236f739d20602cbe80971119929717b",
"md5": "da63158b0bea518ec5233ff4cd176746",
"sha256": "4275dcef2d7f48bc3043d00ffa28f7aa52e30f5ebbe24f3e66f7d3a141232702"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "da63158b0bea518ec5233ff4cd176746",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.9",
"size": 667010,
"upload_time": "2025-08-14T02:15:06",
"upload_time_iso_8601": "2025-08-14T02:15:06.639550Z",
"url": "https://files.pythonhosted.org/packages/34/53/c9ef0b0e6a0d003c92bb46027ea7b236f739d20602cbe80971119929717b/cyrk-0.15.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9ae7d481b5703d156bc1340e89535b460380ea68afa174f909f56ce9b95a12df",
"md5": "54cc2609ad80a99c6e96b6af53a04111",
"sha256": "1d65bbc5f5fcf01054f95a799f39ff3f8acbaf19ec55ee2eedc3166834ddfd55"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "54cc2609ad80a99c6e96b6af53a04111",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.9",
"size": 4837786,
"upload_time": "2025-08-14T02:15:07",
"upload_time_iso_8601": "2025-08-14T02:15:07.874666Z",
"url": "https://files.pythonhosted.org/packages/9a/e7/d481b5703d156bc1340e89535b460380ea68afa174f909f56ce9b95a12df/cyrk-0.15.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7a5b21ffbed0d1dda7a61e76cc05e274789d7763b096f4bcbc6b451c0e7133de",
"md5": "b00ceee9b2ba772f3e8c9008699c256f",
"sha256": "e3808f716a508b944f8a3bb646bf3e510e47514f91bfd2a7eac1eda7f9974008"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "b00ceee9b2ba772f3e8c9008699c256f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<3.14,>=3.9",
"size": 593062,
"upload_time": "2025-08-14T02:15:09",
"upload_time_iso_8601": "2025-08-14T02:15:09.559363Z",
"url": "https://files.pythonhosted.org/packages/7a/5b/21ffbed0d1dda7a61e76cc05e274789d7763b096f4bcbc6b451c0e7133de/cyrk-0.15.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f5ed2ae9e56cd6287c4441bfc39a8e440ce34e7b2389d04d3f6490230c462ce2",
"md5": "24c5e911acdca8ce31659c2423edfe9a",
"sha256": "663f155bd3bcfd5f50f511be9ea6cb3d39f16fc52793d3814e37a13b0de746bd"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp313-cp313-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "24c5e911acdca8ce31659c2423edfe9a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.9",
"size": 684155,
"upload_time": "2025-08-14T02:15:10",
"upload_time_iso_8601": "2025-08-14T02:15:10.540078Z",
"url": "https://files.pythonhosted.org/packages/f5/ed/2ae9e56cd6287c4441bfc39a8e440ce34e7b2389d04d3f6490230c462ce2/cyrk-0.15.0-cp313-cp313-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "38213ecad964ec496f64012ede62eb6bc2c0161256efa474686ba606769f726a",
"md5": "5b9f6bb6e93f24d8d8dd05a24fc2e34f",
"sha256": "b98cb39bc4a014eb9c6edf80b69fb1ad79b5b35904bcdcf9cdd3fd016bf2dd1a"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5b9f6bb6e93f24d8d8dd05a24fc2e34f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.9",
"size": 662916,
"upload_time": "2025-08-14T02:15:12",
"upload_time_iso_8601": "2025-08-14T02:15:12.081332Z",
"url": "https://files.pythonhosted.org/packages/38/21/3ecad964ec496f64012ede62eb6bc2c0161256efa474686ba606769f726a/cyrk-0.15.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2850b533465703f734cf6c5d0b402502eca0e4c1b52772272c965241ddbb5e7f",
"md5": "bb44e48eb466e93eec1cc1cad0405b2a",
"sha256": "945b5b7b38142c88d420df45e8a9a0ac069711eab8a76e8f69a19fe86cc868d5"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "bb44e48eb466e93eec1cc1cad0405b2a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.9",
"size": 4813619,
"upload_time": "2025-08-14T02:15:13",
"upload_time_iso_8601": "2025-08-14T02:15:13.092863Z",
"url": "https://files.pythonhosted.org/packages/28/50/b533465703f734cf6c5d0b402502eca0e4c1b52772272c965241ddbb5e7f/cyrk-0.15.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "73222a74a275fe299c3009288c5cf644135986cbd2235c1bb01756861a57823e",
"md5": "6df6faf41f1b01854cc3ed28133bf826",
"sha256": "da2a3084028a03a1a61c5cc4cccea5aa8340447059dab0d334aae66da9a1dae5"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "6df6faf41f1b01854cc3ed28133bf826",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<3.14,>=3.9",
"size": 591794,
"upload_time": "2025-08-14T02:15:14",
"upload_time_iso_8601": "2025-08-14T02:15:14.151120Z",
"url": "https://files.pythonhosted.org/packages/73/22/2a74a275fe299c3009288c5cf644135986cbd2235c1bb01756861a57823e/cyrk-0.15.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "07b3a51b050fc235e0b76a76d885775ee4cfa9db614fb79abce2adcedc4b5632",
"md5": "1e03ca21238f544dc818aea0d675832a",
"sha256": "85d0d71658870939c82df06bf3a9130ef04211f61bd2a529054f4146f7f39f62"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp39-cp39-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "1e03ca21238f544dc818aea0d675832a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<3.14,>=3.9",
"size": 687533,
"upload_time": "2025-08-14T02:15:15",
"upload_time_iso_8601": "2025-08-14T02:15:15.550548Z",
"url": "https://files.pythonhosted.org/packages/07/b3/a51b050fc235e0b76a76d885775ee4cfa9db614fb79abce2adcedc4b5632/cyrk-0.15.0-cp39-cp39-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ebd7d013314780f58b516684108e9d205b1b35b1df8b95a1247d51dc915b43d3",
"md5": "d7c66b692253e53dc538a21df3f71220",
"sha256": "4313f28a8cbc5473c32398ba6135862fede19fea8a0dac140f6fbaa6f9d7dc2b"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "d7c66b692253e53dc538a21df3f71220",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<3.14,>=3.9",
"size": 665228,
"upload_time": "2025-08-14T02:15:16",
"upload_time_iso_8601": "2025-08-14T02:15:16.913716Z",
"url": "https://files.pythonhosted.org/packages/eb/d7/d013314780f58b516684108e9d205b1b35b1df8b95a1247d51dc915b43d3/cyrk-0.15.0-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "493d86799e27f15d8eccfaa745fc54b7e0f254bc0841869a82bc6aae03994dd3",
"md5": "e11966888e490d85f7ec99e7fb3cbc43",
"sha256": "2e20f65b8e9d51a481780ab18ec1fb7b75eaa0d17c39189ac451e3791ec36f26"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "e11966888e490d85f7ec99e7fb3cbc43",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<3.14,>=3.9",
"size": 4681945,
"upload_time": "2025-08-14T02:15:18",
"upload_time_iso_8601": "2025-08-14T02:15:18.032646Z",
"url": "https://files.pythonhosted.org/packages/49/3d/86799e27f15d8eccfaa745fc54b7e0f254bc0841869a82bc6aae03994dd3/cyrk-0.15.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0565bf452bdf006740a956d7157439ffe2daf733b0a0f36a683e6785e3103de9",
"md5": "a398faf23171cda18edbfcc895facef8",
"sha256": "19fda5f5208275e77a8fd27ed3c74ce0b4a83926b92c5f8c769978fd85b0e06d"
},
"downloads": -1,
"filename": "cyrk-0.15.0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "a398faf23171cda18edbfcc895facef8",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<3.14,>=3.9",
"size": 588486,
"upload_time": "2025-08-14T02:15:19",
"upload_time_iso_8601": "2025-08-14T02:15:19.513145Z",
"url": "https://files.pythonhosted.org/packages/05/65/bf452bdf006740a956d7157439ffe2daf733b0a0f36a683e6785e3103de9/cyrk-0.15.0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f51e7b4476b9f19464280ddf59e0cb38b7dd29544f022c7cae53b8bf15742f32",
"md5": "95845a17c8482d10e7dc6724372ce640",
"sha256": "22543a90a35e492f74043e8ff301b36344207714b7512c48e57c18bd49bf2931"
},
"downloads": -1,
"filename": "cyrk-0.15.0.tar.gz",
"has_sig": false,
"md5_digest": "95845a17c8482d10e7dc6724372ce640",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.9",
"size": 87959,
"upload_time": "2025-08-14T02:15:21",
"upload_time_iso_8601": "2025-08-14T02:15:21.489018Z",
"url": "https://files.pythonhosted.org/packages/f5/1e/7b4476b9f19464280ddf59e0cb38b7dd29544f022c7cae53b8bf15742f32/cyrk-0.15.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-14 02:15:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jrenaud90",
"github_project": "CyRK",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "cyrk"
}