{"id":16346646,"url":"https://github.com/zillionare/python-project-wizard","last_synced_at":"2025-04-04T23:10:04.745Z","repository":{"id":43804059,"uuid":"356610906","full_name":"zillionare/python-project-wizard","owner":"zillionare","description":"A tool for creating skeleton python project, built with popular develop tools and conform to best practice.","archived":false,"fork":false,"pushed_at":"2023-09-09T10:29:08.000Z","size":1080,"stargazers_count":130,"open_issues_count":3,"forks_count":113,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T22:12:59.647Z","etag":null,"topics":["boilerplate","boilerplate-template","codecov","cookiecutter","cookiecutter-pypackage","cookiecutter-template","flake8","github-ci","mkdocstrings","poetry","pre-commit-hooks","python","scaffold","starter-kit","startertemplate","template","tox"],"latest_commit_sha":null,"homepage":"https://zillionare.github.io/python-project-wizard/","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/zillionare.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2021-04-10T14:46:32.000Z","updated_at":"2024-11-26T10:51:20.000Z","dependencies_parsed_at":"2024-12-28T11:11:00.094Z","dependency_job_id":"de12eaaf-8ad0-49ed-bfa7-f85a988b9539","html_url":"https://github.com/zillionare/python-project-wizard","commit_stats":{"total_commits":715,"total_committers":94,"mean_commits":"7.6063829787234045","dds":0.8475524475524475,"last_synced_commit":"2d85c2c267f98e68288c3716d4e92c815e4cba33"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillionare%2Fpython-project-wizard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillionare%2Fpython-project-wizard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillionare%2Fpython-project-wizard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zillionare%2Fpython-project-wizard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zillionare","download_url":"https://codeload.github.com/zillionare/python-project-wizard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247261612,"owners_count":20910108,"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":["boilerplate","boilerplate-template","codecov","cookiecutter","cookiecutter-pypackage","cookiecutter-template","flake8","github-ci","mkdocstrings","poetry","pre-commit-hooks","python","scaffold","starter-kit","startertemplate","template","tox"],"created_at":"2024-10-11T00:35:52.613Z","updated_at":"2025-04-04T23:10:04.711Z","avatar_url":"https://github.com/zillionare.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Project Wizard\n\nA tool for creating skeleton python project, built with popular develop tools and\nconform to the best practice.\n\n[![Version](http://img.shields.io/pypi/v/ppw?color=brightgreen)](https://pypi.python.org/pypi/ppw)\n[![CI Status](https://github.com/zillionare/python-project-wizard/actions/workflows/release.yml/badge.svg)](https://github.com/zillionare/python-project-wizard)\n[![Dowloads](https://img.shields.io/pypi/dm/ppw)](https://pypi.org/project/ppw/)\n[![License](https://img.shields.io/pypi/l/ppw)](https://opensource.org/licenses/BSD-2-Clause)\n![Python Versions](https://img.shields.io/pypi/pyversions/ppw)\n[![Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n\n## Features\n\nThis tool will create Python project with the following features:\n\n* [Poetry]: Manage version, dependancy, build and release\n* [Mkdocs]: Writting your docs in markdown style\n* Testing with [Pytest] (unittest is still supported out of the box)\n* Code coverage report and endorsed by [Codecov]\n* [Tox]: Test your code against environment matrix, lint and artifact check.\n* Format with [Black] and [Isort]\n* Lint code with [Flake8] and [Flake8-docstrings]\n* [Pre-commit hooks]: Formatting/linting anytime when commit/run local tox/CI\n* [Mkdocstrings]: Auto API doc generation and docstring template (vscode and its extension [autodocStrings] is required)\n* Command line interface using [Python Fire] (optional)\n* Continuouse Integration/Deployment by [github actions], includes:\n    - publish dev build/official release to TestPyPI/PyPI automatically when CI success\n    - publish documents automatically when CI success\n    - extract change log from github and integrate with release notes automatically\n* Host your documentation from [Git Pages] with zero-config\n* Support multiple versions of documentations (by [mike])\n* Create repo and push initial commits by repo.sh script\n\n## Quickstart\n\nInstall ppw if you haven't install it yet:\n\n```\n  pip install -U ppw\n```\n\nGenerate a Python package project by simple run:\n\n```\n  ppw\n```\n\nThen follow the **[Tutorial]** to finish configurations.\n\n# Credits\n\nThis repo is forked from [audreyr/cookiecutter-pypackage], and borrowed some ideas from [briggySmalls]\n\n\n[poetry]: https://python-poetry.org/\n[mkdocs]: https://www.mkdocs.org\n[pytest]: https://pytest.org\n[codecov]: https://codecov.io\n[tox]: https://tox.readthedocs.io\n[black]: https://github.com/psf/black\n[isort]: https://github.com/PyCQA/isort\n[flake8]: https://flake8.pycqa.org\n[flake8-docstrings]: https://pypi.org/project/flake8-docstrings/\n[mkdocstrings]: https://mkdocstrings.github.io/\n[Python Fire]: https://github.com/google/python-fire\n[github actions]: https://github.com/features/actions\n[Git Pages]: https://pages.github.com\n[Pre-commit hooks]: https://pre-commit.com/\n[mike]: https://github.com/jimporter/mike\n[autoDocStrings]: https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring\n[Tutorial]: https://zillionare.github.io/python-project-wizard/tutorial/\n[audreyr/cookiecutter-pypackage]: https://github.com/audreyr/cookiecutter-pypackage\n[briggySmalls]: https://github.com/briggySmalls/cookiecutter-pypackage\n\n# Links\n## cfg4py\n[cfg4py](https://pypi.org/project/cfg4py/) is a great tool for managing configuration files, supporting configuration for different environments (dev, prodction and test), automatically converting yaml-based configuration to python class, so, you can access configuration items by attribute, thus, enable auto-completion (by IDE). It also supports live-reload, remoting central configuration, config template and more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzillionare%2Fpython-project-wizard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzillionare%2Fpython-project-wizard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzillionare%2Fpython-project-wizard/lists"}