{"id":13501709,"url":"https://github.com/regebro/pyroma","last_synced_at":"2025-05-15T00:09:13.875Z","repository":{"id":38689190,"uuid":"88358456","full_name":"regebro/pyroma","owner":"regebro","description":"Rate your Python packages package friendliness","archived":false,"fork":false,"pushed_at":"2024-12-27T20:04:18.000Z","size":764,"stargazers_count":217,"open_issues_count":8,"forks_count":21,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-15T00:44:50.206Z","etag":null,"topics":["packaging","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/regebro.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-15T16:10:36.000Z","updated_at":"2025-03-18T09:37:25.000Z","dependencies_parsed_at":"2025-01-13T00:01:57.785Z","dependency_job_id":"250baa1a-1998-4483-bda4-ddb597f1c2ef","html_url":"https://github.com/regebro/pyroma","commit_stats":{"total_commits":343,"total_committers":22,"mean_commits":"15.590909090909092","dds":"0.49271137026239065","last_synced_commit":"ecfac7e6696821681806d0ffdb7b0d11db262e6b"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regebro%2Fpyroma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regebro%2Fpyroma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regebro%2Fpyroma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/regebro%2Fpyroma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/regebro","download_url":"https://codeload.github.com/regebro/pyroma/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254249206,"owners_count":22039029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["packaging","python"],"created_at":"2024-07-31T22:01:47.060Z","updated_at":"2025-05-15T00:09:08.866Z","avatar_url":"https://github.com/regebro.png","language":"Python","readme":"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 \u003chttps://pre-commit.com\u003e`_, 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é Beraud\n  * Érico 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","funding_links":[],"categories":["Python","HTML","Programming Languages"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregebro%2Fpyroma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fregebro%2Fpyroma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fregebro%2Fpyroma/lists"}