<img src="https://raw.githubusercontent.com/PTB-M4D/PyDynamic/main/docs/PyDynamic_logo.svg" alt="the logo of PyDynamic" title="PyDynamic logo">
<p align="center">
<!-- CircleCI Tests -->
<a href="https://circleci.com/gh/PTB-M4D/PyDynamic"><img alt="CircleCI pipeline status badge" src="https://circleci.com/gh/PTB-M4D/PyDynamic.svg?style=shield"></a>
<!-- ReadTheDocs Documentation -->
<a href="https://pydynamic.readthedocs.io/en/latest/index.html">
<img src="https://readthedocs.org/projects/pydynamic/badge/?version=latest" alt="PyDynamic's ReadTheDocs status">
</a>
<!-- CodeCov(erage) -->
<a href="https://codecov.io/gh/PTB-M4D/PyDynamic">
<img src="https://codecov.io/gh/PTB-M4D/PyDynamic/branch/main/graph/badge.svg" alt="PyDynamic's CodeCov badge">
</a>
<!-- Codacy -->
<a href="https://www.codacy.com/gh/PTB-M4D/PyDynamic/dashboard?utm_source=github.com&utm_medium=referral&utm_content=PTB-M4D/PyDynamic&utm_campaign=Badge_Grade">
<img src="https://app.codacy.com/project/badge/Grade/db86b58d6fa5446e8408644c8196f5e2" alt="PyDynamic's Codacy badge">
</a>
<!-- PyPI Version -->
<a href="https://pypi.org/project/pydynamic">
<img src="https://img.shields.io/pypi/v/pydynamic.svg?label=release&color=blue" alt="PyDynamic's PyPI version number">
</a>
<!-- PyPI Python versions -->
<a href="https://pypi.org/project/pydynamic">
<img src="https://img.shields.io/pypi/pyversions/PyDynamic" alt="PyDynamic's compatible Python versions">
</a>
<!-- PyPI License -->
<a href="https://www.gnu.org/licenses/lgpl-3.0.en.html">
<img alt="PyPI - license badge" src="https://img.shields.io/pypi/l/pydynamic?color=bright">
</a>
<!-- Zenodo DOI -->
<a href="https://doi.org/10.5281/zenodo.1489877">
<img src="https://zenodo.org/badge/DOI/10.5281/zenodo.1489877.svg" alt="DOI"></a>
</p>
# Python library for the analysis of dynamic measurements
<p align="justify">
The goal of this library is to provide a starting point for users in metrology and
related areas who deal with time-dependent i.e., <i>dynamic</i>, measurements. The
initial version of this software was developed as part of a joint research project of
the national metrology institutes from Germany and the UK, i.e.
<a href="https://www.ptb.de/cms/en.html">Physikalisch-Technische Bundesanstalt</a>
and the <a href="https://www.npl.co.uk">National Physical Laboratory</a>.
</p>
<p align="justify">
Further development and explicit use of PyDynamic was part of the European research
project <a href="https://www.ptb.de/empir2018/met4fof/home/">EMPIR 17IND12
Met4FoF</a> and the German research project <a href="https://famous-project.
eu">FAMOUS</a>. Since the end of these two projects, development of PyDynamic continues mostly based on feature requests and smaller collaborations.
</p>
## Table of content
- [Quickstart](#quickstart)
- [Features](#features)
- [Module diagram](#module-diagram)
- [Documentation](#documentation)
- [Installation](#installation)
- [Contributing](#contributing)
- [Examples](#examples)
- [Roadmap](#roadmap)
- [Citation](#citation)
- [Acknowledgement](#acknowledgement)
- [Disclaimer](#disclaimer)
- [License](#license)
## Quickstart
To dive right into it, install PyDynamic and execute one of the examples:
```shell
(my_PyDynamice_venv) $ pip install PyDynamic
Collecting PyDynamic
[...]
Successfully installed PyDynamic-[...]
(my_PyDynamice_venv) $ python
Python 3.9.7 (default, Aug 31 2021, 13:28:12)
[GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
```
```python
>>> from PyDynamic.examples.uncertainty_for_dft.deconv_DFT import DftDeconvolutionExample
>>> DftDeconvolutionExample()
Propagating uncertainty associated with measurement through DFT
Propagating uncertainty associated with calibration data to real and imag part
Propagating uncertainty through the inverse system
Propagating uncertainty through the low-pass filter
Propagating uncertainty associated with the estimate back to time domain
```
You will see a couple of plots opening up to observe the results. For
further information just read on and visit our
[tutorial section](#examples).
## Features
PyDynamic offers propagation of *uncertainties* for
- application of the discrete Fourier transform and its inverse
- filtering with an FIR or IIR filter with uncertain coefficients
- design of a FIR filter as the inverse of a frequency response with
uncertain coefficients
- design on an IIR filter as the inverse of a frequency response with
uncertain coefficients
- deconvolution in the frequency domain by division
- multiplication in the frequency domain
- transformation from amplitude and phase to a representation by real and
imaginary parts
- 1-dimensional interpolation
For the validation of the propagation of uncertainties, the Monte-Carlo
method can be applied using a memory-efficient implementation of Monte-Carlo
for digital filtering.
## Module diagram
The fundamental structure of PyDynamic is shown in the following figure.
![PyDynamic module diagram](https://raw.githubusercontent.com/PTB-M4D/PyDynamic/main/docs/PyDynamic_module_diagram.png)
However, imports should generally be possible without explicitly naming all packages
and modules in the path, so that for example the following import statements are all
equivalent.
```python
from PyDynamic.uncertainty.propagate_filter import FIRuncFilter
from PyDynamic.uncertainty import FIRuncFilter
from PyDynamic import FIRuncFilter
```
## Documentation
The documentation for PyDynamic can be found on
[ReadTheDocs](http://pydynamic.readthedocs.io)
## Installation
The installation of PyDynamic is as straightforward as the Python ecosystem suggests.
Detailed instructions on different options to install PyDynamic you can find in the
[installation section of the docs](https://pydynamic.readthedocs.io/en/latest/INSTALL.html).
## Contributing
Whenever you are involved with PyDynamic, please respect our [Code of Conduct
](https://github.com/PTB-M4D/PyDynamic/blob/main/CODE_OF_CONDUCT.md).
If you want to contribute back to the project, after reading our Code of Conduct,
take a look at our open developments in the [project board
](https://github.com/PTB-M4D/PyDynamic/projects/1), [pull requests
](https://github.com/PTB-M4D/PyDynamic/pulls) and search [the issues
](https://github.com/PTB-M4D/PyDynamic/issues). If you find something similar to
your ideas or troubles, let us know by leaving a comment or remark. If you have
something new to tell us, feel free to open a feature request or bug report in the
issues. If you want to contribute code or improve our documentation, please check our
[contribution advices and tips](https://pydynamic.readthedocs.io/en/latest/CONTRIBUTING.html).
If you have downloaded this software, we would be very thankful for letting
us know. You may, for instance, drop an email to one of the [authors
](https://github.com/PTB-M4D/PyDynamic/graphs/contributors) (e.g.
[Sascha Eichstädt](mailto:sascha.eichstaedt@ptb.de), [Björn Ludwig
](mailto:bjoern.ludwig@ptb.de) or [Maximilian Gruber
](mailto:maximilian.gruber@ptb.de))
## Examples
We have collected extended material for an easier introduction to PyDynamic in the
package _examples_. Detailed assistance on getting started you can find in the
corresponding sections of the docs:
* [examples](https://pydynamic.readthedocs.io/en/latest/Examples.html)
* [tutorials](https://pydynamic.readthedocs.io/en/latest/Tutorials.html)
In various Jupyter Notebooks and scripts we demonstrate the use of
the provided methods to aid the first steps in PyDynamic. New features are introduced
with an example from the beginning if feasible. We are currently moving this supporting
collection to an external repository on GitHub. They will be available at
[github.com/PTB-M4D/PyDynamic_tutorials](https://github.com/PTB-M4D/PyDynamic_tutorials)
in the near future.
## Roadmap
1. Implementation of robust measurement (sensor) models
1. Extension to more complex noise and uncertainty models
1. Introducing uncertainty propagation for Kalman filters
For a comprehensive overview of current development activities and upcoming tasks,
take a look at the [project board](https://github.com/PTB-M4D/PyDynamic/projects/1),
[issues](https://github.com/PTB-M4D/PyDynamic/issues) and
[pull requests](https://github.com/PTB-M4D/PyDynamic/pulls).
## Citation
If you publish results obtained with the help of PyDynamic, please use the above linked
[Zenodo DOI](https://doi.org/10.5281/zenodo.1489877) for the code itself or cite
Sascha Eichstädt, Clemens Elster, Ian M. Smith, and Trevor J. Esward
*Evaluation of dynamic measurement uncertainty – an open-source software
package to bridge theory and practice*
**J. Sens. Sens. Syst.**, 6, 97-105, 2017, DOI: [10.5194/jsss-6-97-2017
](https://doi.org/10.5194/jsss-6-97-2017)
## Acknowledgement
Part of this work is developed as part of the Joint Research Project [17IND12 Met4FoF
](http://met4fof.eu) of the European Metrology Programme for Innovation and
Research (EMPIR).
This work was part of the Joint Support for Impact project
[14SIP08](https://www.euramet.org/research-innovation/search-research-projects/details/project/standards-and-software-to-maximise-end-user-uptake-of-nmi-calibrations-of-dynamic-force-torque-and/)
of the European Metrology Programme for Innovation and Research (EMPIR). The
[EMPIR](http://msu.euramet.org) is jointly funded by the EMPIR participating
countries within EURAMET and the European Union.
## Disclaimer
This software is developed at Physikalisch-Technische Bundesanstalt (PTB). The
software is made available "as is" free of cost. PTB assumes no responsibility
whatsoever for its use by other parties, and makes no guarantees, expressed or
implied, about its quality, reliability, safety, suitability or any other
characteristic. In no event will PTB be liable for any direct, indirect or
consequential damage arising in connection with the use of this software.
## License
PyDynamic is distributed under the [LGPLv3 license
](https://github.com/PTB-M4D/PyDynamic/blob/main/licence.txt)
except for the module [`impinvar.py`
](https://github.com/PTB-M4D/PyDynamic/blob/main/src/PyDynamic/misc/impinvar.py)
in the package [`misc`
](https://pydynamic.readthedocs.io/en/main/PyDynamic.misc.html),
which is distributed under the [GPLv3 license
](https://github.com/PTB-M4D/PyDynamic/blob/main/src/PyDynamic/misc/impinvar_license.txt).
Raw data
{
"_id": null,
"home_page": "https://ptb-m4d.github.io/PyDynamic/",
"name": "PyDynamic",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "measurement uncertainty,dynamic measurements,metrology,GUM",
"author": "Sascha Eichst\u00e4dt, Maximilian Gruber, Bj\u00f6rn Ludwig, Thomas Bruns, Martin Weber",
"author_email": "sascha.eichstaedt@ptb.de",
"download_url": "https://files.pythonhosted.org/packages/7d/b3/234a7fbcb3cd2a3ecc2f23cd2f9327b204c710130cc8b8f9b27bc4f49e75/PyDynamic-2.4.2.tar.gz",
"platform": null,
"description": "<img src=\"https://raw.githubusercontent.com/PTB-M4D/PyDynamic/main/docs/PyDynamic_logo.svg\" alt=\"the logo of PyDynamic\" title=\"PyDynamic logo\">\n<p align=\"center\">\n <!-- CircleCI Tests -->\n <a href=\"https://circleci.com/gh/PTB-M4D/PyDynamic\"><img alt=\"CircleCI pipeline status badge\" src=\"https://circleci.com/gh/PTB-M4D/PyDynamic.svg?style=shield\"></a>\n <!-- ReadTheDocs Documentation -->\n <a href=\"https://pydynamic.readthedocs.io/en/latest/index.html\">\n <img src=\"https://readthedocs.org/projects/pydynamic/badge/?version=latest\" alt=\"PyDynamic's ReadTheDocs status\">\n </a>\n <!-- CodeCov(erage) -->\n <a href=\"https://codecov.io/gh/PTB-M4D/PyDynamic\">\n <img src=\"https://codecov.io/gh/PTB-M4D/PyDynamic/branch/main/graph/badge.svg\" alt=\"PyDynamic's CodeCov badge\">\n </a>\n <!-- Codacy -->\n <a href=\"https://www.codacy.com/gh/PTB-M4D/PyDynamic/dashboard?utm_source=github.com&utm_medium=referral&utm_content=PTB-M4D/PyDynamic&utm_campaign=Badge_Grade\">\n <img src=\"https://app.codacy.com/project/badge/Grade/db86b58d6fa5446e8408644c8196f5e2\" alt=\"PyDynamic's Codacy badge\">\n </a>\n <!-- PyPI Version -->\n <a href=\"https://pypi.org/project/pydynamic\">\n <img src=\"https://img.shields.io/pypi/v/pydynamic.svg?label=release&color=blue\" alt=\"PyDynamic's PyPI version number\">\n </a>\n <!-- PyPI Python versions -->\n <a href=\"https://pypi.org/project/pydynamic\">\n <img src=\"https://img.shields.io/pypi/pyversions/PyDynamic\" alt=\"PyDynamic's compatible Python versions\">\n </a>\n <!-- PyPI License -->\n <a href=\"https://www.gnu.org/licenses/lgpl-3.0.en.html\">\n <img alt=\"PyPI - license badge\" src=\"https://img.shields.io/pypi/l/pydynamic?color=bright\">\n </a>\n <!-- Zenodo DOI -->\n <a href=\"https://doi.org/10.5281/zenodo.1489877\">\n <img src=\"https://zenodo.org/badge/DOI/10.5281/zenodo.1489877.svg\" alt=\"DOI\"></a>\n</p>\n\n# Python library for the analysis of dynamic measurements\n\n<p align=\"justify\">\nThe goal of this library is to provide a starting point for users in metrology and\nrelated areas who deal with time-dependent i.e., <i>dynamic</i>, measurements. The\ninitial version of this software was developed as part of a joint research project of\nthe national metrology institutes from Germany and the UK, i.e.\n<a href=\"https://www.ptb.de/cms/en.html\">Physikalisch-Technische Bundesanstalt</a> \nand the <a href=\"https://www.npl.co.uk\">National Physical Laboratory</a>.\n</p>\n\n<p align=\"justify\">\nFurther development and explicit use of PyDynamic was part of the European research\nproject <a href=\"https://www.ptb.de/empir2018/met4fof/home/\">EMPIR 17IND12 \nMet4FoF</a> and the German research project <a href=\"https://famous-project.\neu\">FAMOUS</a>. Since the end of these two projects, development of PyDynamic continues mostly based on feature requests and smaller collaborations.\n</p>\n\n## Table of content\n\n- [Quickstart](#quickstart)\n- [Features](#features)\n- [Module diagram](#module-diagram)\n- [Documentation](#documentation)\n- [Installation](#installation)\n- [Contributing](#contributing)\n- [Examples](#examples)\n- [Roadmap](#roadmap)\n- [Citation](#citation)\n- [Acknowledgement](#acknowledgement)\n- [Disclaimer](#disclaimer)\n- [License](#license)\n\n## Quickstart\n\nTo dive right into it, install PyDynamic and execute one of the examples:\n\n```shell\n(my_PyDynamice_venv) $ pip install PyDynamic\nCollecting PyDynamic\n[...]\nSuccessfully installed PyDynamic-[...]\n(my_PyDynamice_venv) $ python\nPython 3.9.7 (default, Aug 31 2021, 13:28:12) \n[GCC 11.1.0] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n```\n```python\n>>> from PyDynamic.examples.uncertainty_for_dft.deconv_DFT import DftDeconvolutionExample\n>>> DftDeconvolutionExample()\nPropagating uncertainty associated with measurement through DFT\nPropagating uncertainty associated with calibration data to real and imag part\nPropagating uncertainty through the inverse system\nPropagating uncertainty through the low-pass filter\nPropagating uncertainty associated with the estimate back to time domain\n```\n\nYou will see a couple of plots opening up to observe the results. For \nfurther information just read on and visit our \n[tutorial section](#examples). \n\n## Features\n\nPyDynamic offers propagation of *uncertainties* for\n\n- application of the discrete Fourier transform and its inverse\n- filtering with an FIR or IIR filter with uncertain coefficients\n- design of a FIR filter as the inverse of a frequency response with\n uncertain coefficients\n- design on an IIR filter as the inverse of a frequency response with\n uncertain coefficients\n- deconvolution in the frequency domain by division\n- multiplication in the frequency domain\n- transformation from amplitude and phase to a representation by real and\n imaginary parts\n- 1-dimensional interpolation\n\nFor the validation of the propagation of uncertainties, the Monte-Carlo\nmethod can be applied using a memory-efficient implementation of Monte-Carlo\nfor digital filtering.\n\n## Module diagram\n\nThe fundamental structure of PyDynamic is shown in the following figure.\n\n![PyDynamic module diagram](https://raw.githubusercontent.com/PTB-M4D/PyDynamic/main/docs/PyDynamic_module_diagram.png)\n\nHowever, imports should generally be possible without explicitly naming all packages\nand modules in the path, so that for example the following import statements are all\nequivalent.\n\n```python\nfrom PyDynamic.uncertainty.propagate_filter import FIRuncFilter\nfrom PyDynamic.uncertainty import FIRuncFilter\nfrom PyDynamic import FIRuncFilter\n```\n\n## Documentation\n\nThe documentation for PyDynamic can be found on\n[ReadTheDocs](http://pydynamic.readthedocs.io)\n\n## Installation\n\nThe installation of PyDynamic is as straightforward as the Python ecosystem suggests.\nDetailed instructions on different options to install PyDynamic you can find in the \n[installation section of the docs](https://pydynamic.readthedocs.io/en/latest/INSTALL.html).\n\n## Contributing\n\nWhenever you are involved with PyDynamic, please respect our [Code of Conduct\n](https://github.com/PTB-M4D/PyDynamic/blob/main/CODE_OF_CONDUCT.md).\nIf you want to contribute back to the project, after reading our Code of Conduct,\ntake a look at our open developments in the [project board\n](https://github.com/PTB-M4D/PyDynamic/projects/1), [pull requests\n](https://github.com/PTB-M4D/PyDynamic/pulls) and search [the issues\n](https://github.com/PTB-M4D/PyDynamic/issues). If you find something similar to\nyour ideas or troubles, let us know by leaving a comment or remark. If you have\nsomething new to tell us, feel free to open a feature request or bug report in the\nissues. If you want to contribute code or improve our documentation, please check our\n[contribution advices and tips](https://pydynamic.readthedocs.io/en/latest/CONTRIBUTING.html).\n\nIf you have downloaded this software, we would be very thankful for letting\nus know. You may, for instance, drop an email to one of the [authors\n](https://github.com/PTB-M4D/PyDynamic/graphs/contributors) (e.g.\n[Sascha Eichst\u00e4dt](mailto:sascha.eichstaedt@ptb.de), [Bj\u00f6rn Ludwig\n](mailto:bjoern.ludwig@ptb.de) or [Maximilian Gruber\n](mailto:maximilian.gruber@ptb.de))\n\n## Examples\n\nWe have collected extended material for an easier introduction to PyDynamic in the\npackage _examples_. Detailed assistance on getting started you can find in the\ncorresponding sections of the docs:\n\n* [examples](https://pydynamic.readthedocs.io/en/latest/Examples.html)\n* [tutorials](https://pydynamic.readthedocs.io/en/latest/Tutorials.html)\n\nIn various Jupyter Notebooks and scripts we demonstrate the use of\nthe provided methods to aid the first steps in PyDynamic. New features are introduced\nwith an example from the beginning if feasible. We are currently moving this supporting\ncollection to an external repository on GitHub. They will be available at\n[github.com/PTB-M4D/PyDynamic_tutorials](https://github.com/PTB-M4D/PyDynamic_tutorials) \nin the near future.\n\n## Roadmap\n\n1. Implementation of robust measurement (sensor) models\n1. Extension to more complex noise and uncertainty models\n1. Introducing uncertainty propagation for Kalman filters\n\nFor a comprehensive overview of current development activities and upcoming tasks,\ntake a look at the [project board](https://github.com/PTB-M4D/PyDynamic/projects/1),\n[issues](https://github.com/PTB-M4D/PyDynamic/issues) and\n[pull requests](https://github.com/PTB-M4D/PyDynamic/pulls).\n\n## Citation\n\nIf you publish results obtained with the help of PyDynamic, please use the above linked\n[Zenodo DOI](https://doi.org/10.5281/zenodo.1489877) for the code itself or cite\n\nSascha Eichst\u00e4dt, Clemens Elster, Ian M. Smith, and Trevor J. Esward\n*Evaluation of dynamic measurement uncertainty \u2013 an open-source software\npackage to bridge theory and practice*\n**J. Sens. Sens. Syst.**, 6, 97-105, 2017, DOI: [10.5194/jsss-6-97-2017\n](https://doi.org/10.5194/jsss-6-97-2017)\n\n## Acknowledgement\n\nPart of this work is developed as part of the Joint Research Project [17IND12 Met4FoF\n](http://met4fof.eu) of the European Metrology Programme for Innovation and\nResearch (EMPIR).\n\nThis work was part of the Joint Support for Impact project\n[14SIP08](https://www.euramet.org/research-innovation/search-research-projects/details/project/standards-and-software-to-maximise-end-user-uptake-of-nmi-calibrations-of-dynamic-force-torque-and/)\nof the European Metrology Programme for Innovation and Research (EMPIR). The\n[EMPIR](http://msu.euramet.org) is jointly funded by the EMPIR participating \ncountries within EURAMET and the European Union.\n\n## Disclaimer\n\nThis software is developed at Physikalisch-Technische Bundesanstalt (PTB). The\nsoftware is made available \"as is\" free of cost. PTB assumes no responsibility\nwhatsoever for its use by other parties, and makes no guarantees, expressed or\nimplied, about its quality, reliability, safety, suitability or any other\ncharacteristic. In no event will PTB be liable for any direct, indirect or\nconsequential damage arising in connection with the use of this software.\n\n## License\n\nPyDynamic is distributed under the [LGPLv3 license\n](https://github.com/PTB-M4D/PyDynamic/blob/main/licence.txt)\nexcept for the module [`impinvar.py`\n](https://github.com/PTB-M4D/PyDynamic/blob/main/src/PyDynamic/misc/impinvar.py) \nin the package [`misc`\n](https://pydynamic.readthedocs.io/en/main/PyDynamic.misc.html), \nwhich is distributed under the [GPLv3 license\n](https://github.com/PTB-M4D/PyDynamic/blob/main/src/PyDynamic/misc/impinvar_license.txt).\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "A software package for the analysis of dynamic measurements",
"version": "2.4.2",
"project_urls": {
"Documentation": "https://pydynamic.readthedocs.io/en/v2.4.2/",
"Download": "https://github.com/PTB-M4D/PyDynamic/releases/download/v2.4.2/PyDynamic-2.4.2.tar.gz",
"Homepage": "https://ptb-m4d.github.io/PyDynamic/",
"Source": "https://github.com/PTB-M4D/PyDynamic/tree/v2.4.2/",
"Tracker": "https://github.com/PTB-M4D/PyDynamic/issues"
},
"split_keywords": [
"measurement uncertainty",
"dynamic measurements",
"metrology",
"gum"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9a4d8346542143dcd81e75c48c30338d0be94d7b780207f576e1df1db11deaff",
"md5": "d6663c56fa1786383fa809cf9a0328a7",
"sha256": "24f959124dc0a6b64689915dbe780c468275b067f9eb21067bdfcd17d98d9da9"
},
"downloads": -1,
"filename": "PyDynamic-2.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d6663c56fa1786383fa809cf9a0328a7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 159897,
"upload_time": "2023-08-11T07:27:09",
"upload_time_iso_8601": "2023-08-11T07:27:09.674031Z",
"url": "https://files.pythonhosted.org/packages/9a/4d/8346542143dcd81e75c48c30338d0be94d7b780207f576e1df1db11deaff/PyDynamic-2.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7db3234a7fbcb3cd2a3ecc2f23cd2f9327b204c710130cc8b8f9b27bc4f49e75",
"md5": "2818e5696ff518ce4eede6e4c8642890",
"sha256": "8dc7b592722e96639e59a71f56591eb2dd2e7602aa884c99eebac3dffa61d10f"
},
"downloads": -1,
"filename": "PyDynamic-2.4.2.tar.gz",
"has_sig": false,
"md5_digest": "2818e5696ff518ce4eede6e4c8642890",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 162884,
"upload_time": "2023-08-11T07:27:11",
"upload_time_iso_8601": "2023-08-11T07:27:11.702806Z",
"url": "https://files.pythonhosted.org/packages/7d/b3/234a7fbcb3cd2a3ecc2f23cd2f9327b204c710130cc8b8f9b27bc4f49e75/PyDynamic-2.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-11 07:27:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PTB-M4D",
"github_project": "PyDynamic",
"travis_ci": false,
"coveralls": true,
"github_actions": false,
"circle": true,
"tox": true,
"lcname": "pydynamic"
}