pyroma
======
Pyroma rhymes with aroma, and is a product aimed at giving a rating of how well
a Python project complies with the best practices of the Python packaging
ecosystem, primarily PyPI, pip, Distribute etc, as well as a list of issues that
could be improved.
The aim of this is both to help people make a project that is nice and usable,
but also to improve the quality of Python third-party software, making it easier
and more enjoyable to use the vast array of available modules for Python.
It's written so that there are a library with methods to call from Python, as
well as a script, also called pyroma.
It can be run on a project directory before making a release:
$ pyroma .
On a distribution before uploading it to the CheeseShop:
$ pyroma pyroma-1.0.tar.gz
Or you can give it a package name on CheeseShop:
$ pyroma pyroma
Giving it a name on CheeseShop is the most extensive test, as it will
test for several things isn't otherwise tested.
In all cases the output is similar::
------------------------------
Checking .
Found pyroma
------------------------------
The packages long_description is quite short.
------------------------------
Final rating: 9/10
Cottage Cheese
------------------------------
Tests
-----
This is the list of checks that are currently performed:
* The package should have a name, a version and a Description.
If it does not, it will receive a rating of 0.
* The version number should be a string. A floating point number will
work with distutils, but most other tools will fail.
* The version number should comply to PEP386.
* The description should be over 10 characters, and the long_description
should be over a 100 characters.
* Pyroma will convert your long_description to HTML using Docutils, to
verify that it is possible. This guarantees pretty formatting of your
description on PyPI. As long as Docutils can convert it, this passes,
even if there are warnings or error in the conversion. These warnings
and errors are printed to stdout so you will see them.
NB! Currently this doesn't change the rating, this is because Docutils
no longer raises an error during this process, so I have to rewrite the
test. Once it's reinstated, incorrect syntax will be fatal.
* You should have the following meta data fields filled in:
classifiers, keywords, author, author_email, url and license.
* You should have classifiers specifying the supported Python versions.
* You should have ``requires-python``/``python_requires``
specifying the Python versions you support.
* You should have a classifier specifying the project license.
* If you are checking on a PyPI package, and not a local directory or
local package, pyroma will check the number of owners the package has
on PyPI. It should be three or more, to minimize the "Bus factor",
the risk of the index owners suddenly going off-line for whatever reason.
* If you are checking on a PyPI package, and not a local directory or
local package, pyroma will check that you have uploaded a source
distribution, and not just binary distributions.
Version control integration
---------------------------
With `pre-commit <https://pre-commit.com>`_, pyroma can be run whenever you
commit your work by adding the following to your ``.pre-commit-config.yaml``:
.. code-block:: yaml
repos:
- repo: https://github.com/regebro/pyroma
rev: "3.2"
hooks:
- id: pyroma
Credits
-------
The project was created by Lennart Regebro, regebro@gmail.com
The name "Pyroma" was coined by Wichert Akkerman, wichert@wiggy.net
Contributors:
* David Andreoletti
* Godefroid Chapelle
* Dmitry Vakhrushev
* Hugo van Kemenade
* Jeff Quast
* Maurits van Rees
* Hervé Beraud
* Érico Andrei
* Jakub Wilk
* Andreas Lutro
* Scott Colby
* Andrew Murray
* Nikita Sobolev
* Charles Tapley Hoyt
* Max Tyulin
* Michael Howitz
* Florian Bruhin
* Christopher A.M. Gerlach
* RuRo
* Wesley Barroso Lopes
* Alexander Bessman
Changelog
=========
4.1 (2022-11-24)
----------------
- Moved from a custom trove classifiers list to using the trove-classifiers
package [hugovk]
- Support checking the Requires-Python metadata [davidandreoletti]
- Silence noisy build backend output when building metadata
[CAM-Gerlach, wesleybl]
- Official support for Python 3.11 [hugovk, radarhere]
- Some string formatting bugs [hugovk, CAM-Gerlach]
- Now follows black and flake8 rules
- Check if author_email field contains author name [bessman]
4.0 (2022-04-14)
----------------
- No changes from 4.0b2.
4.0b2 (2022-03-29)
------------------
- The deprecation test for test_suite is no longer needed, as the patched
setuptools method of gathering metadata as a whole is deprecated.
- `description_content_type` also needs a mapping in the metadata map.
4.0b1 (2022-03-28)
------------------
- Added support for PEP517 by using `build` to build the metadata as a
preferred build method over the old patched setuptools method.
The old way is depracated and will be removed in 5.0, which also is
planned to support PEP621.
Thanks to Christopher A.M. Gerlach for valuable insight into the
modern packaging systems.
3.3 (2022-03-28)
----------------
- Add a deprecation for `test_suite`
3.2.1 (2022-03-27)
------------------
- Fixed __getattr__-related crash in tests with python3.7 [Robert T. McGibbon]
3.2 (2021-06-22)
----------------
- Added support for pre-commit [CAM Gerlach]
- Rewrote parts of the PyPI support, to avoid using the xmlrpc API,
since it's being heavily rate-limited at the moment. Only one call
is using it now, which seems to work fine.
- Backwards incompatible change: As a result of the above change, when
looking for packages on PyPI, the package name must now be spelled
exactly correct, including capitalization.
- Some more code cleanup/modernization [CAM Gerlach]
- Added --quiet option to output only the rating [Hugo van Kemenade]
- Pyroma is now an executable module, and can be called with `python -m pyroma` [RuRo]
3.1 (2021-03-06)
----------------
- Added correct detection of setup.py encoding
- Code cleanup [CAM Gerlach]
3.0.1 (2021-03-02)
------------------
- Drop support for Python 2 [Florian Bruhin]
- Add back official support for Python 3.6, I didn't realize it was still officially supported
2.6.1 (2021-02-16)
------------------
- Update to the current list of Trove classifiers.
- Officially support Python 3.8 and 3.9
- Drop official support for Python 3.5 and 3.6 (still works though).
2.6 (2019-11-02)
----------------
- Ran flake8 and black on the code, better formatting for
classifiers.py generation.
- Support for PEP 517, setup.cfg-only packages. [Max Tyulin]
- Adds support for Markdown long_descriptions, if you set
long_description_content_type to 'text/markdown'
- Installs Pygments to avoid an error message of you have
syntax highlighted code in the long_description.
2.5 (2019-06-01)
----------------
- Fixed #35: Correctly restore ``sys.argv``. [maurits]
- Added back the BusFactor test, the XMLRPC API supports it.
- #26: Adding a test to check for a development status classifier.
- #21: Accept the new project_urls distribution data.
- Now verifies that classifiers are valid, and that the license field
and license classifiers match.
- The rating now again reflects if the long_description isn't valid ReST.
- #38: Recommendations for the License field has changed.
2.4 (2018-08-15)
----------------
- Get rid of the tests that rely on HTML scraping, it's too brittle.
- Update to use pypi.org instead of pypi.python.org
[Andreas Lutro, Lennart Regebro]
- Added -n command line option to set the minimum rating needed for pyroma
to return success, useful in scripts.
[Scott Colby]
2.3.1 (2018-05-28)
------------------
- Fixed #12: Installation fails with a non-UTF8 locale under Python 3.
[ericof, 4383, regebro]
2.3 (2017-11-28)
----------------
- Check that a classifier specifies the project license. [4383]
- Dropped support for Python 2.6, 3.3 and 3.4.
- Fixed a unicode issue [gotcha]
- Stopped recommending places to keep documentation.
2.2 (2016-10-26)
----------------
- Removed the TestSuite rating. I decided it was too close to looking at
code quality. Pyroma no longer cares if you have tests or not.
- Fixed #36: PyPI now requires https.
2.1 (2016-10-18)
----------------
- #35: Support for PEP-440.
2.0.2 (2016-03-06)
------------------
- Faked the __name__ variable to allow you to have a "if __name__" construct
in the setup.py.
2.0.1 (2016-03-06)
------------------
- Fixed a bug under Python 3 with certain imports.
2.0.0 (2016-02-28)
------------------
- Stable release.
2.0.0b2 (2015-11-09)
--------------------
- Made it run under Python 3 again.
- PEP8
2.0.0b1 (2015-11-08)
--------------------
- Big rewrite of how data is extracted from Distutils/Setuptools.
1.8.3 (2015-11-08)
------------------
- Issue #26: Checking a PyPI package could fail under Python 3.
1.8.2 (2015-06-14)
------------------
- Do not complain that the version number should be a string, when it
is a basestring.
[maurits]
1.8.1 (2015-04-27)
------------------
- This is what happens when you don't run the tests after merging.
1.8 (2015-04-27)
----------------
- More robust rating. [Jeff Quast]
- Closed #24.
1.7 (2014-10-19)
----------------
- Package name lookup is now case insensitive. [Dmitry Vakhrushev]
- Fixed yet another error in return value. [Dmitry Vakhrushev]
1.6 (2014-04-17)
----------------
- Fixed issue #17: Integration with zest.releaser stopped working.
- Fixed issue #18: Pyroma returns the rating as an exit code, this was a
mistake. It now returns 0 on success, 1 on incorrect options and 2 if
the rating is below 8.
- Fixed issue #19: Implementing a custom test class counts as having tests.
- 8: Philadelphia is now considered a "success" based on practical experience.
1.5 (2013-10-18)
----------------
- Fixed issue #13: Pyroma would fail if there was no description.
- Dropping support for Python 3.1. It still works, but it is unsupported.
- Added support for command line options, implementing #14 and #15.
1.4 (2013-05-29)
----------------
- Issue #13: Pyroma would fail when checking a package name if no source
distribution could be found.
- Added a check that the package has a source distribution on PyPI.
1.3.1 (2013-05-29)
------------------
- Issue #11: pyroma would fail if long_description was a non-string.
- zest.releaser now only runs Pyroma on Python packages.
- Because packages that use external test-runners can not get more
that 9/10, this value is now also seen as acceptable when running
Pyroma through zest.releaser.
1.3 (2013-03-15)
----------------
- Added a test to make sure the version number is a string.
- Made sure errors were printed also when a fatal error was encountered.
- Better log messages.
- The zest.releaser hook is now done before tagging, as it's more useful there.
Especially in conjunction with check-manifest.
- Having no long_description no longer causes pyroma to fail.
1.2 (2013-03-06)
----------------
- Removed the running of tests. I always found it a bit iffy, and getting
rid of it solved a lot of issues. Pyroma is now focused solely on
packaging quality.
- A package on PyPI with several versions will no longer return an error.
- Now looks for documentation on pythonhosted.org or readthedocs.org.
- Adds a hook for zest.releaser, so it can be run after doing the checkout,
before uploading to PyPI.
1.1 (2013-03-05)
----------------
- Better handling if there is no package data, for example if setup.py doesn't
call setup() unless you run it as the "__main__" script.
- If setup.py doesn't call setup() look for a main() script and try to run it.
1.0 (2013-03-05)
----------------
- Support for Python 3.3
- Added test for PEP 386 compliance.
0.9.3 (2011-03-17)
------------------
- It's now using a ProxyStub for the PyPI xmlrpclib during tests.
- Removed the Dependency rating.
- Added a rating that runs tests, to see if they run. This will also take
care of checking for dependencies.
0.9.2 (2011-03-13)
------------------
- Commented out the dependency test, it was too unreliable.
- Fixed the ReST.
- Python 3 support.
0.9.1 (2011-03-08)
------------------
- Initial release
Raw data
{
"_id": null,
"home_page": "https://github.com/regebro/pyroma",
"name": "pyroma",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "pypi,quality,testing",
"author": "Lennart Regebro",
"author_email": "regebro@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/6d/03/ec5c0630476fefd9ea76fa71ab9d780133e918c983d22513c3603bd7c93d/pyroma-4.1.tar.gz",
"platform": null,
"description": "pyroma\n======\n\nPyroma rhymes with aroma, and is a product aimed at giving a rating of how well\na Python project complies with the best practices of the Python packaging\necosystem, primarily PyPI, pip, Distribute etc, as well as a list of issues that\ncould be improved.\n\nThe aim of this is both to help people make a project that is nice and usable,\nbut also to improve the quality of Python third-party software, making it easier\nand more enjoyable to use the vast array of available modules for Python.\n\nIt's written so that there are a library with methods to call from Python, as\nwell as a script, also called pyroma.\n\nIt can be run on a project directory before making a release:\n\n $ pyroma .\n\nOn a distribution before uploading it to the CheeseShop:\n\n $ pyroma pyroma-1.0.tar.gz\n\nOr you can give it a package name on CheeseShop:\n\n $ pyroma pyroma\n\nGiving it a name on CheeseShop is the most extensive test, as it will\ntest for several things isn't otherwise tested.\n\nIn all cases the output is similar::\n\n ------------------------------\n Checking .\n Found pyroma\n ------------------------------\n The packages long_description is quite short.\n ------------------------------\n Final rating: 9/10\n Cottage Cheese\n ------------------------------\n\n\nTests\n-----\n\nThis is the list of checks that are currently performed:\n\n* The package should have a name, a version and a Description.\n If it does not, it will receive a rating of 0.\n\n* The version number should be a string. A floating point number will\n work with distutils, but most other tools will fail.\n\n* The version number should comply to PEP386.\n\n* The description should be over 10 characters, and the long_description\n should be over a 100 characters.\n\n* Pyroma will convert your long_description to HTML using Docutils, to\n verify that it is possible. This guarantees pretty formatting of your\n description on PyPI. As long as Docutils can convert it, this passes,\n even if there are warnings or error in the conversion. These warnings\n and errors are printed to stdout so you will see them.\n\n NB! Currently this doesn't change the rating, this is because Docutils\n no longer raises an error during this process, so I have to rewrite the\n test. Once it's reinstated, incorrect syntax will be fatal.\n\n* You should have the following meta data fields filled in:\n classifiers, keywords, author, author_email, url and license.\n\n* You should have classifiers specifying the supported Python versions.\n\n* You should have ``requires-python``/``python_requires``\n specifying the Python versions you support.\n\n* You should have a classifier specifying the project license.\n\n* If you are checking on a PyPI package, and not a local directory or\n local package, pyroma will check the number of owners the package has\n on PyPI. It should be three or more, to minimize the \"Bus factor\",\n the risk of the index owners suddenly going off-line for whatever reason.\n\n* If you are checking on a PyPI package, and not a local directory or\n local package, pyroma will check that you have uploaded a source\n distribution, and not just binary distributions.\n\n\nVersion control integration\n---------------------------\n\nWith `pre-commit <https://pre-commit.com>`_, pyroma can be run whenever you\ncommit your work by adding the following to your ``.pre-commit-config.yaml``:\n\n.. code-block:: yaml\n\n repos:\n - repo: https://github.com/regebro/pyroma\n rev: \"3.2\"\n hooks:\n - id: pyroma\n\n\nCredits\n-------\n\nThe project was created by Lennart Regebro, regebro@gmail.com\n\nThe name \"Pyroma\" was coined by Wichert Akkerman, wichert@wiggy.net\n\nContributors:\n\n * David Andreoletti\n * Godefroid Chapelle\n * Dmitry Vakhrushev\n * Hugo van Kemenade\n * Jeff Quast\n * Maurits van Rees\n * Herv\u00e9 Beraud\n * \u00c9rico Andrei\n * Jakub Wilk\n * Andreas Lutro\n * Scott Colby\n * Andrew Murray\n * Nikita Sobolev\n * Charles Tapley Hoyt\n * Max Tyulin\n * Michael Howitz\n * Florian Bruhin\n * Christopher A.M. Gerlach\n * RuRo\n * Wesley Barroso Lopes\n * Alexander Bessman\n\nChangelog\n=========\n\n4.1 (2022-11-24)\n----------------\n\n- Moved from a custom trove classifiers list to using the trove-classifiers\n package [hugovk]\n\n- Support checking the Requires-Python metadata [davidandreoletti]\n\n- Silence noisy build backend output when building metadata\n [CAM-Gerlach, wesleybl]\n\n- Official support for Python 3.11 [hugovk, radarhere]\n\n- Some string formatting bugs [hugovk, CAM-Gerlach]\n\n- Now follows black and flake8 rules\n\n- Check if author_email field contains author name [bessman]\n\n\n\n4.0 (2022-04-14)\n----------------\n\n- No changes from 4.0b2.\n\n\n4.0b2 (2022-03-29)\n------------------\n\n- The deprecation test for test_suite is no longer needed, as the patched\n setuptools method of gathering metadata as a whole is deprecated.\n\n- `description_content_type` also needs a mapping in the metadata map.\n\n\n4.0b1 (2022-03-28)\n------------------\n\n- Added support for PEP517 by using `build` to build the metadata as a\n preferred build method over the old patched setuptools method.\n The old way is depracated and will be removed in 5.0, which also is\n planned to support PEP621.\n Thanks to Christopher A.M. Gerlach for valuable insight into the\n modern packaging systems.\n\n\n3.3 (2022-03-28)\n----------------\n\n- Add a deprecation for `test_suite`\n\n\n3.2.1 (2022-03-27)\n------------------\n\n- Fixed __getattr__-related crash in tests with python3.7 [Robert T. McGibbon]\n\n\n3.2 (2021-06-22)\n----------------\n\n- Added support for pre-commit [CAM Gerlach]\n\n- Rewrote parts of the PyPI support, to avoid using the xmlrpc API,\n since it's being heavily rate-limited at the moment. Only one call\n is using it now, which seems to work fine.\n\n- Backwards incompatible change: As a result of the above change, when\n looking for packages on PyPI, the package name must now be spelled\n exactly correct, including capitalization.\n\n- Some more code cleanup/modernization [CAM Gerlach]\n\n- Added --quiet option to output only the rating [Hugo van Kemenade]\n\n- Pyroma is now an executable module, and can be called with `python -m pyroma` [RuRo]\n\n\n3.1 (2021-03-06)\n----------------\n\n- Added correct detection of setup.py encoding\n\n- Code cleanup [CAM Gerlach]\n\n\n3.0.1 (2021-03-02)\n------------------\n\n- Drop support for Python 2 [Florian Bruhin]\n\n- Add back official support for Python 3.6, I didn't realize it was still officially supported\n\n\n2.6.1 (2021-02-16)\n------------------\n\n- Update to the current list of Trove classifiers.\n\n- Officially support Python 3.8 and 3.9\n\n- Drop official support for Python 3.5 and 3.6 (still works though).\n\n\n2.6 (2019-11-02)\n----------------\n\n- Ran flake8 and black on the code, better formatting for\n classifiers.py generation.\n\n- Support for PEP 517, setup.cfg-only packages. [Max Tyulin]\n\n- Adds support for Markdown long_descriptions, if you set\n long_description_content_type to 'text/markdown'\n\n- Installs Pygments to avoid an error message of you have\n syntax highlighted code in the long_description.\n\n\n2.5 (2019-06-01)\n----------------\n\n- Fixed #35: Correctly restore ``sys.argv``. [maurits]\n\n- Added back the BusFactor test, the XMLRPC API supports it.\n\n- #26: Adding a test to check for a development status classifier.\n\n- #21: Accept the new project_urls distribution data.\n\n- Now verifies that classifiers are valid, and that the license field\n and license classifiers match.\n\n- The rating now again reflects if the long_description isn't valid ReST.\n\n- #38: Recommendations for the License field has changed.\n\n\n2.4 (2018-08-15)\n----------------\n\n- Get rid of the tests that rely on HTML scraping, it's too brittle.\n\n- Update to use pypi.org instead of pypi.python.org\n [Andreas Lutro, Lennart Regebro]\n\n- Added -n command line option to set the minimum rating needed for pyroma\n to return success, useful in scripts.\n [Scott Colby]\n\n\n2.3.1 (2018-05-28)\n------------------\n\n- Fixed #12: Installation fails with a non-UTF8 locale under Python 3.\n [ericof, 4383, regebro]\n\n\n2.3 (2017-11-28)\n----------------\n\n- Check that a classifier specifies the project license. [4383]\n\n- Dropped support for Python 2.6, 3.3 and 3.4.\n\n- Fixed a unicode issue [gotcha]\n\n- Stopped recommending places to keep documentation.\n\n\n2.2 (2016-10-26)\n----------------\n\n- Removed the TestSuite rating. I decided it was too close to looking at\n code quality. Pyroma no longer cares if you have tests or not.\n\n- Fixed #36: PyPI now requires https.\n\n\n2.1 (2016-10-18)\n----------------\n\n- #35: Support for PEP-440.\n\n\n2.0.2 (2016-03-06)\n------------------\n\n- Faked the __name__ variable to allow you to have a \"if __name__\" construct\n in the setup.py.\n\n\n2.0.1 (2016-03-06)\n------------------\n\n- Fixed a bug under Python 3 with certain imports.\n\n\n2.0.0 (2016-02-28)\n------------------\n\n- Stable release.\n\n\n2.0.0b2 (2015-11-09)\n--------------------\n\n- Made it run under Python 3 again.\n\n- PEP8\n\n\n2.0.0b1 (2015-11-08)\n--------------------\n\n- Big rewrite of how data is extracted from Distutils/Setuptools.\n\n\n1.8.3 (2015-11-08)\n------------------\n\n- Issue #26: Checking a PyPI package could fail under Python 3.\n\n1.8.2 (2015-06-14)\n------------------\n\n- Do not complain that the version number should be a string, when it\n is a basestring.\n [maurits]\n\n\n1.8.1 (2015-04-27)\n------------------\n\n- This is what happens when you don't run the tests after merging.\n\n\n1.8 (2015-04-27)\n----------------\n\n- More robust rating. [Jeff Quast]\n\n- Closed #24.\n\n\n1.7 (2014-10-19)\n----------------\n\n- Package name lookup is now case insensitive. [Dmitry Vakhrushev]\n\n- Fixed yet another error in return value. [Dmitry Vakhrushev]\n\n\n1.6 (2014-04-17)\n----------------\n\n- Fixed issue #17: Integration with zest.releaser stopped working.\n\n- Fixed issue #18: Pyroma returns the rating as an exit code, this was a\n mistake. It now returns 0 on success, 1 on incorrect options and 2 if\n the rating is below 8.\n\n- Fixed issue #19: Implementing a custom test class counts as having tests.\n\n- 8: Philadelphia is now considered a \"success\" based on practical experience.\n\n\n1.5 (2013-10-18)\n----------------\n\n- Fixed issue #13: Pyroma would fail if there was no description.\n\n- Dropping support for Python 3.1. It still works, but it is unsupported.\n\n- Added support for command line options, implementing #14 and #15.\n\n\n1.4 (2013-05-29)\n----------------\n\n- Issue #13: Pyroma would fail when checking a package name if no source\n distribution could be found.\n\n- Added a check that the package has a source distribution on PyPI.\n\n\n1.3.1 (2013-05-29)\n------------------\n\n- Issue #11: pyroma would fail if long_description was a non-string.\n\n- zest.releaser now only runs Pyroma on Python packages.\n\n- Because packages that use external test-runners can not get more\n that 9/10, this value is now also seen as acceptable when running\n Pyroma through zest.releaser.\n\n\n1.3 (2013-03-15)\n----------------\n\n- Added a test to make sure the version number is a string.\n\n- Made sure errors were printed also when a fatal error was encountered.\n\n- Better log messages.\n\n- The zest.releaser hook is now done before tagging, as it's more useful there.\n Especially in conjunction with check-manifest.\n\n- Having no long_description no longer causes pyroma to fail.\n\n\n1.2 (2013-03-06)\n----------------\n\n- Removed the running of tests. I always found it a bit iffy, and getting\n rid of it solved a lot of issues. Pyroma is now focused solely on\n packaging quality.\n\n- A package on PyPI with several versions will no longer return an error.\n\n- Now looks for documentation on pythonhosted.org or readthedocs.org.\n\n- Adds a hook for zest.releaser, so it can be run after doing the checkout,\n before uploading to PyPI.\n\n\n1.1 (2013-03-05)\n----------------\n\n- Better handling if there is no package data, for example if setup.py doesn't\n call setup() unless you run it as the \"__main__\" script.\n\n- If setup.py doesn't call setup() look for a main() script and try to run it.\n\n\n1.0 (2013-03-05)\n----------------\n\n- Support for Python 3.3\n\n- Added test for PEP 386 compliance.\n\n\n0.9.3 (2011-03-17)\n------------------\n\n- It's now using a ProxyStub for the PyPI xmlrpclib during tests.\n\n- Removed the Dependency rating.\n\n- Added a rating that runs tests, to see if they run. This will also take\n care of checking for dependencies.\n\n\n0.9.2 (2011-03-13)\n------------------\n\n- Commented out the dependency test, it was too unreliable.\n\n- Fixed the ReST.\n\n- Python 3 support.\n\n\n0.9.1 (2011-03-08)\n------------------\n\n- Initial release\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Test your project's packaging friendliness",
"version": "4.1",
"split_keywords": [
"pypi",
"quality",
"testing"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "c55f2b0a8ea26e6da68a4b9c2fe7c21c",
"sha256": "a7f87ee185c8cf262bd04ba4a28b2f1f503335a2698bbf9700a230e4fe339f9d"
},
"downloads": -1,
"filename": "pyroma-4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c55f2b0a8ea26e6da68a4b9c2fe7c21c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 22154,
"upload_time": "2022-11-25T05:59:34",
"upload_time_iso_8601": "2022-11-25T05:59:34.845961Z",
"url": "https://files.pythonhosted.org/packages/e3/8d/592d46e576fff1dd104a995e17c45aae7bf6844344ee34e2a133b3893ac1/pyroma-4.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "19d581f908bade4f1473a922f33932fd",
"sha256": "ff87335abce04efef0749ee63f2a4dbb9a3fa5a1eee285beaaaed65059dca89a"
},
"downloads": -1,
"filename": "pyroma-4.1.tar.gz",
"has_sig": false,
"md5_digest": "19d581f908bade4f1473a922f33932fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 96931,
"upload_time": "2022-11-24T10:01:11",
"upload_time_iso_8601": "2022-11-24T10:01:11.560625Z",
"url": "https://files.pythonhosted.org/packages/6d/03/ec5c0630476fefd9ea76fa71ab9d780133e918c983d22513c3603bd7c93d/pyroma-4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-11-24 10:01:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "regebro",
"github_project": "pyroma",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyroma"
}