{"id":18897778,"url":"https://github.com/zurutech/cookiecutter-pypackage","last_synced_at":"2026-03-01T04:30:22.244Z","repository":{"id":38182916,"uuid":"242120767","full_name":"zurutech/cookiecutter-pypackage","owner":"zurutech","description":":cookie: Cookiecutter :cookie: (https://github.com/audreyr/cookiecutter) opinionated template for a Python package compliant with https://github.com/zurutech/styleguide.","archived":false,"fork":false,"pushed_at":"2022-12-08T10:55:25.000Z","size":219,"stargazers_count":2,"open_issues_count":7,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-31T08:32:16.974Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zurutech.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-21T11:11:18.000Z","updated_at":"2022-12-19T21:32:29.000Z","dependencies_parsed_at":"2023-01-25T10:45:38.984Z","dependency_job_id":null,"html_url":"https://github.com/zurutech/cookiecutter-pypackage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zurutech%2Fcookiecutter-pypackage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zurutech%2Fcookiecutter-pypackage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zurutech%2Fcookiecutter-pypackage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zurutech%2Fcookiecutter-pypackage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zurutech","download_url":"https://codeload.github.com/zurutech/cookiecutter-pypackage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239879153,"owners_count":19712174,"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":[],"created_at":"2024-11-08T08:39:31.781Z","updated_at":"2026-03-01T04:30:22.168Z","avatar_url":"https://github.com/zurutech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=======================================\nZuru Tech Cookiecutter PyPackage 🍪 🐍\n=======================================\n\n|development-status| |pyup| |license| |travis|\n\nCookiecutter_ opinionated template for a Python package compliant with `zurutech/styleguide`_.\n\nFeatures\n--------\n\n* Testing setup with pytest_\n* Travis-CI_: Ready for Travis Continuous Integration testing\n* Tox_ automation:\n    * Testing: Setup to easily test for Python 3.6, 3.7, 3.8 with code coverage computation and upload via codecov_\n    * Linting: Setup to automatically lint your codebase with black_, isort_, pylint_, flake8_\n    * Docs: Setup to easily generate docs for local reading\n* Sphinx_ docs: Documentation ready for generation with, for example, ReadTheDocs_\n    * `Read the Docs Sphinx Theme`_\n    * `Google Style Docstrings`_\n    * Type hints for ``autodoc`` via sphinx-autodoc-typehints_\n    * Dependency Graph\n    * Integrate Markdown and RST via m2r_\n    * sphinx-copybutton_\n    * doc8_ and pydocstyle_\n* Opinionated configurations enforcing compliance with `zurutech/styleguide`_ for:\n    * isort_\n    * pylint_\n    * flake8_ extended via flake8-bugbear_\n* Easy refactoring with rope_\n* Modular requirements.in structure to be used with reqompyler_ or pip-tools_\n* Auto-release to PyPI_ when you push a new tag to master (optional)\n* Command line interface using Click_ (optional)\n\nQuickstart\n----------\n\nThis is the flow we reccommend for new projects.\n\nInstall the latest Cookiecutter if you haven't installed it yet (this requires\nCookiecutter 1.4.0 or higher)::\n\n    pip install -U cookiecutter\n\nGenerate a Python package project::\n\n    cookiecutter https://github.com/zurutech/cookiecutter-pypackage.git\n\nThen:\n\n* Create a GitHub repo and put it there.\n* Expand on the copmatible Python versions that your package support by specifying them in\n  in the ``setup.py`` file while also testing for them via Tox_ and Travis-CI_.\n* Add license headers to your project using licenseheaders_.\n* Add the repo to your Travis-CI_ account.\n* Register_ your project with PyPI.\n* Run the Travis CLI command ``travis encrypt --add deploy.password`` to encrypt your PyPI API token in Travis config\n  and activate automated deployment on PyPI when you push a new tag to master branch.\n* Add the repo to your ReadTheDocs_ account + turn on the ReadTheDocs service hook.\n* Release your package by pushing a new tag to master.\n* Activate your project on `pyup.io`_ (`pyup.io`_ is a service that helps in keeping dependencies\n  fresh by automatically generating a PR whenever one of them gets a new release,\n  it's free for public repos).\n\nFor more details, see the `cookiecutter-pypackage tutorial`_.\n\n\nNot Exactly What You Want?\n--------------------------\n\nDon't worry, you have options:\n\nSimilar Cookiecutter Templates\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* `audreyr/cookiecutter-pypackage`_: The One and only. This is the original ``pypackage``\n  Cookiecutter. `zurutech/cookiecutter-pypackage`_ started as an internal fork of this one and became\n  more opinionated over time.\n\n* `ionelmc/cookiecutter-pylibrary`_: Cookiecutter template for a Python python library.\n  Extremely configurable. `zurutech/cookiecutter-pypackage`_ is a cross between this and `audreyr/cookiecutter-pypackage`_\n\n* `Nekroze/cookiecutter-pypackage`_: A fork of this with a PyTest test runner,\n  strict flake8 checking with Travis/Tox, and some docs and `setup.py` differences.\n\n* `tony/cookiecutter-pypackage-pythonic`_: Fork with py2.7+3.3 optimizations.\n  Flask/Werkzeug-style test runner, ``_compat`` module and module/doc conventions.\n  See ``README.rst`` or the `github comparison view`_ for exhaustive list of\n  additions and modifications.\n\n* `ardydedase/cookiecutter-pypackage`_: A fork with separate requirements files rather\n  than a requirements list in the ``setup.py`` file.\n\n* `lgiordani/cookiecutter-pypackage`_: A fork of Cookiecutter that uses Punch_ instead of\n  Bumpversion_ and with separate requirements files.\n\n* Also see the `network`_ and `family tree`_ for this repo. (If you find\n  anything that should be listed here, please add it and send a pull request!)\n\nFork This / Create Your Own\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you have differences in your preferred setup, I encourage you to fork this\nto create your own version. Or create your own; it doesn't strictly have to\nbe a fork.\n\n* Once you have your own version working, add it to the Similar Cookiecutter\n  Templates list above with a brief description.\n\n* It's up to you whether or not to rename your fork/own version. Do whatever\n  you think sounds good.\n\n.. |travis| image:: https://travis-ci.org/zurutech/cookiecutter-pypackage.svg?branch=master\n    :target: https://travis-ci.org/zurutech/cookiecutter-pypackage\n    :alt: Travis CI Build Status\n\n.. |license| image:: https://img.shields.io/github/license/zurutech/cookiecutter-pypackage\n    :target: https://github.com/zurutech/cookiecutter-pypackage/LICENSE\n    :alt: License\n\n.. |development-status| image:: https://img.shields.io/badge/%F0%9F%8F%97%20_development--status-alpha-blue\n    :alt: Development Status: Alpha\n\n.. |pyup| image:: https://pyup.io/repos/github/zurutech/cookiecutter-pypackage/shield.svg\n     :target: https://pyup.io/repos/github/zurutech/cookiecutter-pypackage/\n     :alt: Updates\n\n\n.. _black: https://github.com/psf/black\n.. _Click: https://github.com/pallets/click/\n.. _codecov: https://github.com/codecov/codecov-python\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _doc8: https://github.com/PyCQA/doc8\n.. _flake8-bugbear: https://github.com/PyCQA/flake8-bugbear\n.. _flake8: https://github.com/PyCQA/flake8\n.. _isort: https://github.com/timothycrosley/isort\n.. _licenseheaders: https://github.com/johann-petrak/licenseheaders\n.. _m2r: https://github.com/miyakogi/m2r\n.. _pip-tools: https://github.com/jazzband/pip-tools\n.. _pydocstyle: https://github.com/PyCQA/pydocstyle\n.. _pylint: https://github.com/PyCQA/pylint\n.. _pytest: https://github.com/pytest-dev/pytest\n.. _reqompyler: https://github.com/zurutech/reqompyler\n.. _rope: https://github.com/python-rope/rope\n.. _sphinx-autodoc-typehints: https://github.com/agronholm/sphinx-autodoc-typehints\n.. _sphinx-copybutton: https://github.com/choldgraf/sphinx-copybutton\n.. _`Google Style Docstrings`: https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html\n.. _`Read the Docs Sphinx Theme`: https://sphinx-rtd-theme.readthedocs.io/en/stable/\n\n.. _`pyup.io`: https://pyup.io/\n.. _Bumpversion: https://github.com/peritus/bumpversion\n.. _Punch: https://github.com/lgiordani/punch\n.. _PyPi: https://pypi.python.org/pypi\n.. _ReadTheDocs: https://readthedocs.io/\n.. _Sphinx: http://sphinx-doc.org/\n.. _Tox: http://testrun.org/tox/\n.. _Travis-CI: http://travis-ci.org/\n\n.. _`zurutech/styleguide`: https://github.com/zurutech/styleguide\n\n.. _`cookiecutter-pypackage tutorial`: https://cookiecutter-pypackage.readthedocs.io/en/latest/tutorial.html\n.. _`pip docs for requirements files`: https://pip.pypa.io/en/stable/user_guide/#requirements-files\n.. _Register: https://packaging.python.org/distributing/#register-your-project\n\n.. _`ardydedase/cookiecutter-pypackage`: https://github.com/ardydedase/cookiecutter-pypackage\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n.. _`ionelmc/cookiecutter-pylibrary`: https://github.com/ionelmc/cookiecutter-pylibrary\n.. _`lgiordani/cookiecutter-pypackage`: https://github.com/lgiordani/cookiecutter-pypackage\n.. _`Nekroze/cookiecutter-pypackage`: https://github.com/Nekroze/cookiecutter-pypackage\n.. _`tony/cookiecutter-pypackage-pythonic`: https://github.com/tony/cookiecutter-pypackage-pythonic\n.. _`zurutech/cookiecutter-pypackage`: https://github.com/zurutech/cookiecutter-pypackage\n\n.. _`family tree`: https://github.com/audreyr/cookiecutter-pypackage/network/members\n.. _`network`: https://github.com/audreyr/cookiecutter-pypackage/network\n.. _github comparison view: https://github.com/tony/cookiecutter-pypackage-pythonic/compare/audreyr:master...master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzurutech%2Fcookiecutter-pypackage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzurutech%2Fcookiecutter-pypackage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzurutech%2Fcookiecutter-pypackage/lists"}