{ "info": { "author": "SPCL @ ETH Zurich", "author_email": "talbn@inf.ethz.ch", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "[![General Tests](https://github.com/spcl/dace/actions/workflows/general-ci.yml/badge.svg)](https://github.com/spcl/dace/actions/workflows/general-ci.yml)\n[![GPU Tests](https://github.com/spcl/dace/actions/workflows/gpu-ci.yml/badge.svg)](https://github.com/spcl/dace/actions/workflows/gpu-ci.yml)\n[![FPGA Tests](https://github.com/spcl/dace/actions/workflows/fpga-ci.yml/badge.svg)](https://github.com/spcl/dace/actions/workflows/fpga-ci.yml)\n[![Documentation Status](https://readthedocs.org/projects/spcldace/badge/?version=latest)](https://spcldace.readthedocs.io/en/latest/?badge=latest)\n[![PyPI version](https://badge.fury.io/py/dace.svg)](https://badge.fury.io/py/dace)\n[![codecov](https://codecov.io/gh/spcl/dace/branch/master/graph/badge.svg)](https://codecov.io/gh/spcl/dace)\n\n\n![D](dace.svg)aCe - Data-Centric Parallel Programming\n=====================================================\n\n_Decoupling domain science from performance optimization._\n\nDaCe is a parallel programming framework that takes code in Python/NumPy and \nother programming languages, and maps it to high-performance **CPU, GPU, and FPGA** \nprograms, which can be optimized to achieve state-of-the-art. Internally, DaCe \nuses the Stateful DataFlow multiGraph (SDFG) *data-centric intermediate \nrepresentation*: A transformable, interactive representation of code based on \ndata movement.\nSince the input code and the SDFG are separate, it is posible to optimize a \nprogram without changing its source, so that it stays readable. On the other \nhand, transformations are customizable and user-extensible, so they can be written \nonce and reused in many applications.\nWith data-centric parallel programming, we enable **direct knowledge transfer** \nof performance optimization, regardless of the application or the target processor.\n\nDaCe generates high-performance programs for:\n * Multi-core CPUs (tested on Intel, IBM POWER9, and ARM with SVE)\n * NVIDIA GPUs and AMD GPUs (with HIP)\n * Xilinx and Intel FPGAs\n\nDaCe can be written inline in Python and transformed in the command-line/Jupyter \nNotebooks, or SDFGs can be interactively modified using the Data-centric \nInteractive Optimization Development Environment [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=phschaad.sdfv).\n\nFor more information, see our [paper](http://www.arxiv.org/abs/1902.10345).\n\nSee an example SDFG [in the standalone viewer (SDFV)](https://spcl.github.io/dace/sdfv.html?url=https://spcl.github.io/dace/examples/gemm.sdfg).\n\nQuick Start\n-----------\n\nInstall DaCe with pip: `pip install dace`\n\nHaving issues? See [Troubleshooting](#Troubleshooting)\n\nUsing DaCe in Python is as simple as adding a `@dace` decorator:\n```python\nimport dace\nimport numpy as np\n\n@dace\ndef myprogram(a):\n for i in range(a.shape[0]):\n a[i] += i\n return np.sum(a)\n```\n\nCalling `myprogram` with any NumPy array or \n`__{cuda_}array_interface__`-supporting tensor (e.g., PyTorch, Numba) will \ngenerate data-centric code, compile, and run it. From here on out, you can \n_optimize_ (interactively or automatically), _instrument_, and _distribute_ \nyour code. The code creates a shared library (DLL/SO file) that can readily \nbe used in any C ABI compatible language (C/C++, FORTRAN, etc.).\n\nFor more information on how to use DaCe, see the [samples](samples) or tutorials below:\n\n* [Getting Started](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/getting_started.ipynb)\n* [Benchmarks, Instrumentation, and Performance Comparison with Other Python Compilers](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/benchmarking.ipynb)\n* [Explicit Dataflow in Python](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/explicit.ipynb)\n* [NumPy API Reference](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/numpy_frontend.ipynb)\n* [SDFG API](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/sdfg_api.ipynb)\n* [Using and Creating Transformations](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/transformations.ipynb)\n* [Extending the Code Generator](https://nbviewer.jupyter.org/github/spcl/dace/blob/master/tutorials/codegen.ipynb)\n\nDependencies\n------------\n\nRuntime dependencies:\n * A C++14-capable compiler (e.g., gcc 5.3+)\n * Python 3.7 or newer (Python 3.6 is supported but not actively tested)\n * CMake 3.15 or newer\n\nRunning\n-------\n\n**Python scripts:** Run DaCe programs (in implicit or explicit syntax) using Python directly.\n\n**[SDFV (standalone SDFG viewer)](https://spcl.github.io/dace/sdfv.html):** To view SDFGs separately, run the `sdfv` installed script with the `.sdfg` file as an argument. Alternatively, you can use the link or open `dace/viewer/webclient/sdfv.html` directly and choose a file in the browser.\n\n**Visual Studio Code extension**: Install from the [VSCode marketplace](https://marketplace.visualstudio.com/items?itemName=phschaad.sdfv) or open an `.sdfg` file for interactive SDFG viewing and transformation.\n\n**The sdfgcc tool:** Compile `.sdfg` files with `sdfgcc program.sdfg`. Interactive command-line optimization is possible with the `--optimize` flag.\n\n**Jupyter Notebooks:** DaCe is Jupyter-compatible. If a result is an SDFG or a state, it will show up directly in the notebook. See the [tutorials](tutorials) for examples.\n\n**Octave scripts (experimental):** `.m` files can be run using the installed script `dacelab`, which will create the appropriate SDFG file.\n\n**Note for Windows/Visual C++ users:** If compilation fails in the linkage phase, try setting the following environment variable to force Visual C++ to use Multi-Threaded linkage:\n```\nX:\\path\\to\\dace> set _CL_=/MT\n```\n\n\nPublication\n-----------\n\nIf you use DaCe, cite us:\n```bibtex\n@inproceedings{dace,\n author = {Ben-Nun, Tal and de~Fine~Licht, Johannes and Ziogas, Alexandros Nikolaos and Schneider, Timo and Hoefler, Torsten},\n title = {Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures},\n year = {2019},\n booktitle = {Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},\n series = {SC '19}\n}\n```\n\nTroubleshooting\n---------------\n\n* If you are using DaCe from the git repository and getting missing dependencies or missing include files, make sure you cloned the repository recursively (with `git clone --recursive`) and that the submodules are up to date.\n* If you are running on Mac OS and getting compilation errors when calling DaCe programs, make sure you have OpenMP installed and configured with Apple Clang. Otherwise, you can use GCC to compile the code by following these steps:\n * Run `brew install gcc`\n\t* Set your `~/.dace.conf` compiler configuration to use the installed GCC. For example, if you installed version 9 (`brew install gcc@9`), run `which g++-9` and set the config entry called `compiler.cpu.executable` (empty string by default) to the resulting path\n\t* Remove any `.dacecache` folders to clear the cache\n\nOther issues? Look for similar issues or start a discussion on our [GitHub Discussions](https://github.com/spcl/dace/discussions)!\n\n\nConfiguration\n-------------\n\nDaCe creates a file called `.dace.conf` in the user's home directory. It provides useful settings that can be modified either directly in the file (YAML), or overriden on a case-by-case basis using environment variables that begin with `DACE_` and specify the setting (where categories are separated by underscores). The full configuration schema is located [here](dace/config_schema.yml).\n\nThe priority order for configuration files is as follows:\n 1. If a `DACE_*` environment variable is found, its value will always be used\n 2. If `with dace.config.set_temporary(...)` is used ([see example here](samples/simple/laplace.py#L43))\n 3. A `.dace.conf` located in the current working directory\n 4. The `.dace.conf` located in the user's home directory or the path pointed to by the `DACE_CONFIG` environment variable\n\nUseful environment variable configurations include:\n\n * `DACE_CONFIG` (default: `~/.dace.conf`): Override DaCe configuration file choice.\n\nGeneral configuration:\n * `DACE_debugprint` (default: False): Print debugging information.\n * `DACE_compiler_use_cache` (default: False): Uses DaCe program cache instead of re-optimizing and compiling programs.\n * `DACE_compiler_default_data_types` (default: `Python`): Chooses default types for integer and floating-point values. If `Python` is chosen, `int` and `float` are both 64-bit wide. If `C` is chosen, `int` and `float` are 32-bit wide.\n \nProfiling:\n * `DACE_profiling` (default: False): Enables profiling measurement of the DaCe program runtime in milliseconds. Produces a log file and prints out median runtime.\n * `DACE_treps` (default: 100): Number of repetitions to run a DaCe program when profiling is enabled.\n \nGPU programming and debugging:\n * `DACE_compiler_cuda_backend` (default: `cuda`): Chooses the GPU backend to use (can be `cuda` for NVIDIA GPUs or `hip` for AMD GPUs).\n * `DACE_compiler_cuda_syncdebug` (default: False): If True, calls device-synchronization after every GPU kernel and checks for errors. Good for checking crashes or invalid memory accesses.\n \nFPGA programming:\n * `DACE_compiler_fpga_vendor`: (default: `xilinx`): Can be `xilinx` for Xilinx FPGAs, or `intel_fpga` for Intel FPGAs.\n \nSDFG interactive transformation:\n * `DACE_optimizer_transform_on_call` (default: False): Uses the transformation command line interface every time a `@dace` function is called.\n * `DACE_optimizer_interface` (default: `dace.transformation.optimizer.SDFGOptimizer`): Controls the SDFG optimization process if `transform_on_call` is enabled. By default, uses the transformation command line interface.\n * `DACE_optimizer_automatic_simplification` (default: True): If False, skips automatic simplification in the Python frontend (see transformations tutorial for more information).\n \n\nContributing\n------------\nDaCe is an open-source project. We are happy to accept Pull Requests with your contributions! Please follow the [contribution guidelines](CONTRIBUTING.md) before submitting a pull request.\n\nLicense\n-------\nDaCe is published under the New BSD license, see [LICENSE](LICENSE).\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/spcl/dace", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "dace", "package_url": "https://pypi.org/project/dace/", "platform": null, "project_url": "https://pypi.org/project/dace/", "project_urls": { "Homepage": "https://github.com/spcl/dace" }, "release_url": "https://pypi.org/project/dace/0.13.1/", "requires_dist": null, "requires_python": ">=3.6, <3.11", "summary": "Data-Centric Parallel Programming Framework", "version": "0.13.1", "yanked": false, "yanked_reason": null }, "last_serial": 13632072, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "341136ab7a8cf34c0946e75f184ed93f", "sha256": "431326de52c88c0fdff82fdcf4bcad44bdfe8784f5f70a9e47a03afc0f3ecbb5" }, "downloads": -1, "filename": "dace-0.10.0-py3-none-any.whl", "has_sig": false, "md5_digest": "341136ab7a8cf34c0946e75f184ed93f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3385364, "upload_time": "2020-10-04T15:52:40", "upload_time_iso_8601": "2020-10-04T15:52:40.380495Z", "url": "https://files.pythonhosted.org/packages/dc/ad/61f839a7890b601766fbd9b569a3fed3776d3a091521cc33a624f16bbdf8/dace-0.10.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7a63f58d6540370203dc6bb92c8deaa6", "sha256": "5c099ee753051f6ee019315507a2c7304205dd4e8b7e92979a097e87e4e5832a" }, "downloads": -1, "filename": "dace-0.10.0.tar.gz", "has_sig": false, "md5_digest": "7a63f58d6540370203dc6bb92c8deaa6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 472051, "upload_time": "2020-10-04T15:52:42", "upload_time_iso_8601": "2020-10-04T15:52:42.198777Z", "url": "https://files.pythonhosted.org/packages/e4/e1/c75cad8f99a7747266601311c70b85b0a933c167951ceb202ddc2ff6bbc5/dace-0.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.10.8": [ { "comment_text": "", "digests": { "md5": "db10df807a2217be928ed4ff89819eeb", "sha256": "006d94119e30ad3695b75e7258222bf2248bbb00e3c2a3f241ff7d57729f65f3" }, "downloads": -1, "filename": "dace-0.10.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db10df807a2217be928ed4ff89819eeb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6, <3.9", "size": 3593563, "upload_time": "2021-04-14T22:45:34", "upload_time_iso_8601": "2021-04-14T22:45:34.530781Z", "url": "https://files.pythonhosted.org/packages/fa/5b/cbaae10303ea9300985b1b9bf0fc7a4ace9c2c36b7ecc3a8b3a500b46325/dace-0.10.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f86afb31013ae9f17c8fe5e20f24fa0a", "sha256": "a1a8d0ff03322dc1ecc7a4ba2c0729a15764d4a56d30794ce9d356fdbb0de8cc" }, "downloads": -1, "filename": "dace-0.10.8-py3-none-any.whl", "has_sig": false, "md5_digest": "f86afb31013ae9f17c8fe5e20f24fa0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6, <3.9", "size": 3593562, "upload_time": "2021-04-14T22:45:46", "upload_time_iso_8601": "2021-04-14T22:45:46.825312Z", "url": "https://files.pythonhosted.org/packages/80/43/1bf7c10ddaa0f07851acbfbc34b8ddd092520cc4187833ad850cec08f304/dace-0.10.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "579bb948d4054614839b4171d1165a58", "sha256": "ee10e4e7d2a9e187e56915c3d9dc9b1d13cc7b2a0972274da703de2975ad9e3a" }, "downloads": -1, "filename": "dace-0.10.8.tar.gz", "has_sig": false, "md5_digest": "579bb948d4054614839b4171d1165a58", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.9", "size": 636038, "upload_time": "2021-04-14T22:45:50", "upload_time_iso_8601": "2021-04-14T22:45:50.398786Z", "url": "https://files.pythonhosted.org/packages/dc/da/47c113f13fc722ebd2765539e99ef3579dd85e3e551179575a527a285d0d/dace-0.10.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "30799becd63755f27c70e4f02a6f8e83", "sha256": "4b50908a46b993aca3371d3e1b69c4e62ea92b25a66bdb1da7c3011e519718c6" }, "downloads": -1, "filename": "dace-0.11.0.tar.gz", "has_sig": false, "md5_digest": "30799becd63755f27c70e4f02a6f8e83", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.10", "size": 775198, "upload_time": "2021-10-15T07:22:04", "upload_time_iso_8601": "2021-10-15T07:22:04.971200Z", "url": "https://files.pythonhosted.org/packages/4e/bf/216c2df61f98f8b6e6a4a848a345f19bdfd607f7a85eb11d1b04796980f3/dace-0.11.0.tar.gz", "yanked": true, "yanked_reason": "Missing files in distribution" } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "a3528043ec7a6a15c06a4c24b45b55a9", "sha256": "7f4263b0ef38f8ca71318e983f44aec226dca216e6f91dded77843d7c45fb7ba" }, "downloads": -1, "filename": "dace-0.11.1.tar.gz", "has_sig": false, "md5_digest": "a3528043ec7a6a15c06a4c24b45b55a9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.10", "size": 3409905, "upload_time": "2021-10-18T21:23:07", "upload_time_iso_8601": "2021-10-18T21:23:07.016290Z", "url": "https://files.pythonhosted.org/packages/06/29/e1c81a32712c800089c0f04a69b7cb44bd0911293febc8538cfa155ef235/dace-0.11.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.2": [ { "comment_text": "", "digests": { "md5": "0b168fb62ce55ba6591079f8f0d4e9d1", "sha256": "9bea5a7f5342857ce7f01bda4704332e31ddab9122e9c2158c24030b9e6e3426" }, "downloads": -1, "filename": "dace-0.11.2.tar.gz", "has_sig": false, "md5_digest": "0b168fb62ce55ba6591079f8f0d4e9d1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.10", "size": 3432877, "upload_time": "2021-11-12T17:24:34", "upload_time_iso_8601": "2021-11-12T17:24:34.038716Z", "url": "https://files.pythonhosted.org/packages/3a/2b/d9a914ad6abc373f76de66b850d1a5f45e528d43bf7d9e09d279acbb1d5e/dace-0.11.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.3": [ { "comment_text": "", "digests": { "md5": "14adb7b490197e0e9f4443212b62e904", "sha256": "9f1f9bfc4630703f22d37a308fef07e2a8a168850ef3b2a6591567f1226c483b" }, "downloads": -1, "filename": "dace-0.11.3.tar.gz", "has_sig": false, "md5_digest": "14adb7b490197e0e9f4443212b62e904", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.10", "size": 3412386, "upload_time": "2021-11-23T23:51:41", "upload_time_iso_8601": "2021-11-23T23:51:41.665837Z", "url": "https://files.pythonhosted.org/packages/88/7d/3b309d9d906ae820de9d5ef279c97e5b6a566e0bfdf7a06e1750c8885978/dace-0.11.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.4": [ { "comment_text": "", "digests": { "md5": "9c5ab9caad250cd3d576d7421a376cc2", "sha256": "0a67717bfdfe245384a92a8ad86096ce0c8e58c90541db392eaaa836bcffc8a3" }, "downloads": -1, "filename": "dace-0.11.4.tar.gz", "has_sig": false, "md5_digest": "9c5ab9caad250cd3d576d7421a376cc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.11", "size": 3441363, "upload_time": "2021-12-17T23:38:18", "upload_time_iso_8601": "2021-12-17T23:38:18.931638Z", "url": "https://files.pythonhosted.org/packages/69/ba/855a7f64cf803deb945f936810868600f1b34a0032562dbe8fad4974197f/dace-0.11.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.12": [ { "comment_text": "", "digests": { "md5": "a7d1005d9f46731fc3ef9e4ed5138768", "sha256": "fe38569f2e2cb0fd31219beeb0da0e8249a4556319250cd50ee7bd6477cafab7" }, "downloads": -1, "filename": "dace-0.12.tar.gz", "has_sig": false, "md5_digest": "a7d1005d9f46731fc3ef9e4ed5138768", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.11", "size": 3447013, "upload_time": "2022-01-22T14:48:37", "upload_time_iso_8601": "2022-01-22T14:48:37.633574Z", "url": "https://files.pythonhosted.org/packages/30/2f/dbb130050455c309c026190fedfb973c33d3fabaf6e984a950b0eb71ac8d/dace-0.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.13": [ { "comment_text": "", "digests": { "md5": "e00668481466d3322c7b6e8c466d0f37", "sha256": "292bba0419a9896a8005c691a9fd69d83be2237c30787a4c9e29f46322279214" }, "downloads": -1, "filename": "dace-0.13.tar.gz", "has_sig": false, "md5_digest": "e00668481466d3322c7b6e8c466d0f37", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.11", "size": 2617744, "upload_time": "2022-02-28T12:07:03", "upload_time_iso_8601": "2022-02-28T12:07:03.494793Z", "url": "https://files.pythonhosted.org/packages/05/3e/49231141521a34c72709f88b377c3c1cc840af2022a4701337e6adeb2558/dace-0.13.tar.gz", "yanked": false, "yanked_reason": null } ], "0.13.1": [ { "comment_text": "", "digests": { "md5": "1ba0ddfbc6a6d3ec6b4d443c6a0bf0a4", "sha256": "457d116727b1c49944c9122b25ab8bb36f21c750d8317d76c73a6996dbb039b2" }, "downloads": -1, "filename": "dace-0.13.1.tar.gz", "has_sig": false, "md5_digest": "1ba0ddfbc6a6d3ec6b4d443c6a0bf0a4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.11", "size": 2655507, "upload_time": "2022-04-26T21:23:31", "upload_time_iso_8601": "2022-04-26T21:23:31.455344Z", "url": "https://files.pythonhosted.org/packages/3d/0a/60d94c3faf158fb842fe7a7c629d4314512f4bdbbeb17964047d08006038/dace-0.13.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "18880afcdb373cd7bfd7706f4c2b223a", "sha256": "3181363a2bec1cd4524d8b6ecc2f039bc1775991669dbc10f01f40c8755334c4" }, "downloads": -1, "filename": "dace-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "18880afcdb373cd7bfd7706f4c2b223a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1149470, "upload_time": "2019-03-15T23:38:34", "upload_time_iso_8601": "2019-03-15T23:38:34.448242Z", "url": "https://files.pythonhosted.org/packages/4a/0d/c8aacdc9d59458ef62063588122ba60af392a8e683c30b2978e176684c6c/dace-0.8.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a81006b4c1481c9ed96edbd90bbb980d", "sha256": "1127119579c0a5701fb14675fd7a798e3962c4ec9cd20e68a8ea589fdc432924" }, "downloads": -1, "filename": "dace-0.8.0.tar.gz", "has_sig": false, "md5_digest": "a81006b4c1481c9ed96edbd90bbb980d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 353939, "upload_time": "2019-03-15T23:38:37", "upload_time_iso_8601": "2019-03-15T23:38:37.882598Z", "url": "https://files.pythonhosted.org/packages/55/38/11aab88c778c09a922f6679db179bc2780678ffa00192cfb146191411587/dace-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "87997d9ce93c976c1ed91503962182a1", "sha256": "687fbad9b7834f0e695467c169717cbeba5cab411c2ec736a8daa4ce664bc126" }, "downloads": -1, "filename": "dace-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "87997d9ce93c976c1ed91503962182a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1153625, "upload_time": "2019-03-16T19:47:26", "upload_time_iso_8601": "2019-03-16T19:47:26.749153Z", "url": "https://files.pythonhosted.org/packages/55/2e/3d9a93db50b4a2a44adf2aecd443764d2259fe4f3ffa5f299738e5cc5e87/dace-0.8.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a2fed873fc3bf24cb3820fffeb7dd812", "sha256": "b7da9b41d19dac74b3f4793699771df973c0b1ca320d8f38da6458a1e97ec633" }, "downloads": -1, "filename": "dace-0.8.1.tar.gz", "has_sig": false, "md5_digest": "a2fed873fc3bf24cb3820fffeb7dd812", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 354336, "upload_time": "2019-03-16T19:47:30", "upload_time_iso_8601": "2019-03-16T19:47:30.723787Z", "url": "https://files.pythonhosted.org/packages/aa/41/b4deeb3ca7a09d30fb93cf4202c896256556e66cab184ba61bebef30c6b1/dace-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "d23cb36eaae4e4aca43448be681b2f9a", "sha256": "18eaeb079daf724e5e9d3b213398e598e06ea79a07c7b23fefed78bc6a136a76" }, "downloads": -1, "filename": "dace-0.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d23cb36eaae4e4aca43448be681b2f9a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2416024, "upload_time": "2019-10-22T23:07:30", "upload_time_iso_8601": "2019-10-22T23:07:30.845150Z", "url": "https://files.pythonhosted.org/packages/fa/33/9bbf922e770bdbcda65c90b39e20aa6ec2478eb8b4d43ea6af145d7ecfdd/dace-0.9.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1c990cb1651a096c3213bed83820bb51", "sha256": "8da06fac51fa12b33d7d3c1867ac15eb54e094063913cab0af52f4b4054d197d" }, "downloads": -1, "filename": "dace-0.9.0.tar.gz", "has_sig": false, "md5_digest": "1c990cb1651a096c3213bed83820bb51", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 453123, "upload_time": "2019-10-22T23:07:33", "upload_time_iso_8601": "2019-10-22T23:07:33.027604Z", "url": "https://files.pythonhosted.org/packages/50/46/884b9a6363f5cfd33d3e9a0f91efc1277d651dea26e1169ffdfa5c7be7b0/dace-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "4b3bced61f71cb031343b969d4190f9b", "sha256": "aa325bfd236ded8a35e928bd3c0d7d4b5bde7e5f22dfc776241171091a3b5525" }, "downloads": -1, "filename": "dace-0.9.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4b3bced61f71cb031343b969d4190f9b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2405192, "upload_time": "2020-01-06T18:54:10", "upload_time_iso_8601": "2020-01-06T18:54:10.200495Z", "url": "https://files.pythonhosted.org/packages/93/7c/1635787ea52751eee62d7b8d421145241a45fe702d4eb4dfbaa353f08ecc/dace-0.9.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2045588f2742107dc27f894feb401ff6", "sha256": "38ae784cab7a4ca7170d590fd33548d07958380a5492ab7082272840641f51ac" }, "downloads": -1, "filename": "dace-0.9.5.tar.gz", "has_sig": false, "md5_digest": "2045588f2742107dc27f894feb401ff6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 429818, "upload_time": "2020-01-06T18:54:12", "upload_time_iso_8601": "2020-01-06T18:54:12.518783Z", "url": "https://files.pythonhosted.org/packages/bc/58/b9bb15e0dc9530b066b3f555d8815f789ff0d6e1bbeb425f0b5fbb002b7e/dace-0.9.5.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1ba0ddfbc6a6d3ec6b4d443c6a0bf0a4", "sha256": "457d116727b1c49944c9122b25ab8bb36f21c750d8317d76c73a6996dbb039b2" }, "downloads": -1, "filename": "dace-0.13.1.tar.gz", "has_sig": false, "md5_digest": "1ba0ddfbc6a6d3ec6b4d443c6a0bf0a4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6, <3.11", "size": 2655507, "upload_time": "2022-04-26T21:23:31", "upload_time_iso_8601": "2022-04-26T21:23:31.455344Z", "url": "https://files.pythonhosted.org/packages/3d/0a/60d94c3faf158fb842fe7a7c629d4314512f4bdbbeb17964047d08006038/dace-0.13.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }