{ "info": { "author": "John Doe", "author_email": "john@doe.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Mathematics" ], "description": "# pyfoobar\n\n[![CircleCI](https://img.shields.io/circleci/project/github/nschloe/pyfoobar/master.svg?style=flat-square)](https://circleci.com/gh/nschloe/pyfoobar/tree/master)\n[![travis](https://img.shields.io/travis/nschloe/pyfoobar.svg?style=flat-square)](https://travis-ci.org/nschloe/pyfoobar)\n[![codecov](https://img.shields.io/codecov/c/github/nschloe/pyfoobar.svg?style=flat-square)](https://codecov.io/gh/nschloe/pyfoobar)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/ambv/black)\n[![awesome](https://img.shields.io/badge/awesome-yes-8209ba.svg?style=flat-square)](https://github.com/nschloe/pyfoobar)\n[![PyPi Version](https://img.shields.io/pypi/v/pyfoobar.svg?style=flat-square)](https://pypi.org/project/pyfoobar)\n[![GitHub stars](https://img.shields.io/github/stars/nschloe/pyfoobar.svg?logo=github&label=Stars&logoColor=white&style=flat-square)](https://github.com/nschloe/pyfoobar)\n[![PyPi downloads](https://img.shields.io/pypi/dd/pyfoobar.svg?style=flat-square)](https://pypistats.org/packages/pyfoobar)\n\nA Python project template that highlights some best practices in Python packaging. Can\nbe used as a [GitHub\ntemplate](https://github.blog/2019-06-06-generate-new-repositories-with-repository-templates/)\nfor your new Python project.\n\n### Best practices\n\n* The **name** of the git repo should be the PyPi name of the package should be what you\n you type as `import mypackagename`. That means no hyphens in package names!\n\n* Your package should be a **one-trick pony**. Nobody wants to install a huge toolbox if\n all they need is the image converter in it.\n\n* After `import yourpackagename`, people should be able to call\n `yourpackagename.__version__` plus some other meta data. This helps with debugging.\n\n* Use **linting and formatting**, include those in your integration tests.\n [black](https://github.com/python/black) is a formatter that I like because you cannot\n configure it -- black is black. Good linters are\n [flake8](http://flake8.pycqa.org/en/latest/) or [pylint](https://www.pylint.org/).\n\n* Once you have tests in order, make sure they are executed with every git push. Two\n popular **CI services** that run your tests are [travis](https://travis-ci.org/) and\n [circleci](https://circleci.com/). This repository contains the config files for each\n of the two.\n\n* Make sure that **nobody can push to master**. On GitHub, go to Settings -> Branches ->\n Add rule and select _Require status checks to pass before merging_ and _Include\n administrators_. Development happens in pull requests, this makes sure that nobody --\n including yourself -- ever accidentally pushes something broken to master.\n\n* Use a tool for measuring **test coverage**. [codecov](https://codecov.io/) is one, and\n the circleci config submits the data to it.\n\n* Bitches love **badges**. If you have CI set up, want to show test coverage, or advertise\n the availability on PyPi, do so using a badge at the top of your README. Check out\n [shields.io](https://shields.io/) for what's available.\n\n\n### What you can do with this template\n\nFirst run\n```\nfind . -type f -name \"*.py\" -o -name Makefile -o -name \"*.yml\" -print0 | xargs -0 sed -i 's/pyfoobar/your-project-name/g'\n```\nand rename the folder `pyfoobar` to customize the name.\n\nThere is a simple `Makefile` that can help you with certain tasks:\n * Run `make black` to apply [black](https://github.com/python/black) formatting.\n * Run `make lint` to run [flake8 linting](http://flake8.pycqa.org/en/latest/)\n * Run `make publish` to\n - tag your project on git (`make tag`)\n - upload your package to PyPi (`make upload`)\n\n After publishing, people can install your package with\n ```\n pip3 install --user pyfoobar\n ```\n\n### Testing\n\nTo run the pyfoobar unit tests, check out this repository and type\n```\npytest\n```\n\n### License\n\npyfoobar is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License).\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/nschloe/pyfoobar", "keywords": "", "license": "License :: OSI Approved :: MIT License", "maintainer": "", "maintainer_email": "", "name": "pyfoobar", "package_url": "https://pypi.org/project/pyfoobar/", "platform": "", "project_url": "https://pypi.org/project/pyfoobar/", "project_urls": { "Homepage": "https://github.com/nschloe/pyfoobar" }, "release_url": "https://pypi.org/project/pyfoobar/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "A little bit of foobar in your life", "version": "0.0.1" }, "last_serial": 5375580, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5a7141255b558451a1941aa3b71cb6a5", "sha256": "2dd3c81c5ba44f9b963281b17ae179e34ca29ffc5eae8ef44cc3f82334140ee4" }, "downloads": -1, "filename": "pyfoobar-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a7141255b558451a1941aa3b71cb6a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4563, "upload_time": "2019-06-08T15:03:45", "url": "https://files.pythonhosted.org/packages/16/0a/62b65684dcadfef37c4ee8526fdbea20757d0e169a2b1dbb8f043f2c347a/pyfoobar-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97acb6867d97ebe40e73fc51367c3993", "sha256": "7fb5f3654598a3f44209fec3b1f14d06eb57385586a8e3b3fdc7e331b46e4675" }, "downloads": -1, "filename": "pyfoobar-0.0.1.tar.gz", "has_sig": false, "md5_digest": "97acb6867d97ebe40e73fc51367c3993", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4061, "upload_time": "2019-06-08T15:03:47", "url": "https://files.pythonhosted.org/packages/f5/57/2d36bf9f5a46f31aad64eb5f65670b11454224be12a69754770eb48b02ee/pyfoobar-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5a7141255b558451a1941aa3b71cb6a5", "sha256": "2dd3c81c5ba44f9b963281b17ae179e34ca29ffc5eae8ef44cc3f82334140ee4" }, "downloads": -1, "filename": "pyfoobar-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5a7141255b558451a1941aa3b71cb6a5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4563, "upload_time": "2019-06-08T15:03:45", "url": "https://files.pythonhosted.org/packages/16/0a/62b65684dcadfef37c4ee8526fdbea20757d0e169a2b1dbb8f043f2c347a/pyfoobar-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97acb6867d97ebe40e73fc51367c3993", "sha256": "7fb5f3654598a3f44209fec3b1f14d06eb57385586a8e3b3fdc7e331b46e4675" }, "downloads": -1, "filename": "pyfoobar-0.0.1.tar.gz", "has_sig": false, "md5_digest": "97acb6867d97ebe40e73fc51367c3993", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4061, "upload_time": "2019-06-08T15:03:47", "url": "https://files.pythonhosted.org/packages/f5/57/2d36bf9f5a46f31aad64eb5f65670b11454224be12a69754770eb48b02ee/pyfoobar-0.0.1.tar.gz" } ] }