# A project template for Python
<a href="https://github.com/azataiot/python-project-template/generate"><img src="https://img.shields.io/badge/use%20this-template-blue?logo=github" alt="use-this-repo-badge"></a>
[![Code Quality](https://github.com/azataiot/python-project-template/actions/workflows/code-quality.yml/badge.svg)](https://github.com/azataiot/python-project-template/actions/workflows/code-quality.yml)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
[![latest release](https://img.shields.io/github/v/release/azataiot/python-project-template)](https://github.com/azataiot/python-project-template/releases)
**Introduction**: This repository provides a comprehensive project template for GitHub repositories. It's designed to
streamline the setup process, ensuring best practices and essential components are included. By using this template, you
can ensure a consistent and professional structure for your projects, making them more accessible and maintainable.
## Usage
### Create a new repository from this template
1. [Click here](https://github.com/azataiot/project-template/generated) to create a new repository with this template.
2. Select and Add a license.
### Initialize and install `pre-commit` hooks
1. Install [pre-commit](https://pre-commit.com/#install). (skip this step if you already have pre-commit installed)
2. Run `pre-commit install` to install the pre-commit hooks.
3. Run `make pre-commit` to run the pre-commit hooks on all files.
### Setup GitHub Branch Protection
1. Go to `Settings` > `Branches` > `Branch protection rules` > `Add rule`
2. Add the following rules:
- `main`
- Require a pull request before merging
- Require status checks to pass before merging
- Require branches to be up-to-date before merging
- Add `linting` status checks ( and others if you created them )
- Do not allow bypassing the above settings
- `dev`
- Require a pull request before merging
- Require status checks to pass before merging
- Add `linting` status checks ( and others if you created them )
**Why Branch Protection?**: Branch protection ensures that changes to important branches undergo a review process. This
maintains code quality and prevents potential issues from being merged.
## Branching Strategy
- `main`: The main branch. This branch is protected and cannot be pushed directly. (PRs must be made to `dev` instead
of `main`)
- `dev`: The development branch. This branch is protected and cannot be pushed directly. (PRs must be made to this
branch)
- `feature/*`: The 'feature/*' branches are used to develop new features for the upcoming or a distant future release.
These branches are branched off from 'dev' and must merge back into `dev`.
- `release/*`: The 'release/*' branches are used to prepare the next release. They allow for last-minute changes and
minor bug fixes. These branches are branched off from 'dev' and must merge back into `main` and `dev`.
- `hotfix/*`: The 'hotfix/*' branches are used to develop fixes for the current release. These branches are branched off
from `main` and must merge back into `main`.
## How to create a python package with this template? (WIP)
1. Create a new repository from this template. (
see [Create a new repository from this template](#create-a-new-repository-from-this-template))
2. Place your package code in the `src` directory.
3. Update the `pyproject.toml` file with your package details.
4. Set up your PyPI account and create a new API token. (see [PyPI Help #api-token](https://pypi.org/help/#apitoken))
1. Go to [PyPI](https://pypi.org/) and create an account, if you don't have one already.
2. Generate a PyPI API token. (see [PyPI Help #api-token](https://pypi.org/help/#apitoken)), this gives you something similar to this:
![](https://raw.githubusercontent.com/azataiot/images/master/2023/09/upgit_20230910_1694355387.png)
3. run `poetry config pypi-token.pypi <your-api-token>` to set the API token.
5. run `poetry build` to build the package.
6. run `poetry publish` to publish the package to PyPI.
## Contributing
Contributions are always welcome! Whether it's bug reports, feature requests, or pull requests, all contributions are
appreciated. For more details, see [CONTRIBUTING.md](CONTRIBUTING.md).
## License
This project is licensed under some License. For more details, see [LICENSE](LICENSE.md).
## Code of Conduct
We believe in fostering an inclusive and respectful community. For guidelines and reporting information,
see [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
## Security
Your security is paramount. If you discover any security-related issues, please follow the guidelines
in [SECURITY.md](SECURITY.md).
## Founding
For information about the project's founding and backers, see [FOUNDING](https://github.com/sponsors/azataiot).
Raw data
{
"_id": null,
"home_page": "https://github.com/azataiot/python-project-template",
"name": "python-project-template-poetry",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Azat",
"author_email": "8280770+azataiot@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/db/62/2f946fae66261e42a44f62e0df33e95769830602e3b5adba6cd4ac568a6e/python_project_template_poetry-0.1.0.dev8.tar.gz",
"platform": null,
"description": "# A project template for Python\n\n<a href=\"https://github.com/azataiot/python-project-template/generate\"><img src=\"https://img.shields.io/badge/use%20this-template-blue?logo=github\" alt=\"use-this-repo-badge\"></a>\n[![Code Quality](https://github.com/azataiot/python-project-template/actions/workflows/code-quality.yml/badge.svg)](https://github.com/azataiot/python-project-template/actions/workflows/code-quality.yml)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)\n[![latest release](https://img.shields.io/github/v/release/azataiot/python-project-template)](https://github.com/azataiot/python-project-template/releases)\n\n**Introduction**: This repository provides a comprehensive project template for GitHub repositories. It's designed to\nstreamline the setup process, ensuring best practices and essential components are included. By using this template, you\ncan ensure a consistent and professional structure for your projects, making them more accessible and maintainable.\n\n## Usage\n\n### Create a new repository from this template\n\n1. [Click here](https://github.com/azataiot/project-template/generated) to create a new repository with this template.\n2. Select and Add a license.\n\n### Initialize and install `pre-commit` hooks\n\n1. Install [pre-commit](https://pre-commit.com/#install). (skip this step if you already have pre-commit installed)\n2. Run `pre-commit install` to install the pre-commit hooks.\n3. Run `make pre-commit` to run the pre-commit hooks on all files.\n\n### Setup GitHub Branch Protection\n\n1. Go to `Settings` > `Branches` > `Branch protection rules` > `Add rule`\n2. Add the following rules:\n - `main`\n - Require a pull request before merging\n - Require status checks to pass before merging\n - Require branches to be up-to-date before merging\n - Add `linting` status checks ( and others if you created them )\n - Do not allow bypassing the above settings\n - `dev`\n - Require a pull request before merging\n - Require status checks to pass before merging\n - Add `linting` status checks ( and others if you created them )\n\n**Why Branch Protection?**: Branch protection ensures that changes to important branches undergo a review process. This\nmaintains code quality and prevents potential issues from being merged.\n\n## Branching Strategy\n\n- `main`: The main branch. This branch is protected and cannot be pushed directly. (PRs must be made to `dev` instead\n of `main`)\n- `dev`: The development branch. This branch is protected and cannot be pushed directly. (PRs must be made to this\n branch)\n- `feature/*`: The 'feature/*' branches are used to develop new features for the upcoming or a distant future release.\n These branches are branched off from 'dev' and must merge back into `dev`.\n- `release/*`: The 'release/*' branches are used to prepare the next release. They allow for last-minute changes and\n minor bug fixes. These branches are branched off from 'dev' and must merge back into `main` and `dev`.\n- `hotfix/*`: The 'hotfix/*' branches are used to develop fixes for the current release. These branches are branched off\n from `main` and must merge back into `main`.\n\n## How to create a python package with this template? (WIP)\n\n1. Create a new repository from this template. (\n see [Create a new repository from this template](#create-a-new-repository-from-this-template))\n2. Place your package code in the `src` directory.\n3. Update the `pyproject.toml` file with your package details.\n4. Set up your PyPI account and create a new API token. (see [PyPI Help #api-token](https://pypi.org/help/#apitoken))\n 1. Go to [PyPI](https://pypi.org/) and create an account, if you don't have one already.\n 2. Generate a PyPI API token. (see [PyPI Help #api-token](https://pypi.org/help/#apitoken)), this gives you something similar to this:\n ![](https://raw.githubusercontent.com/azataiot/images/master/2023/09/upgit_20230910_1694355387.png)\n 3. run `poetry config pypi-token.pypi <your-api-token>` to set the API token.\n5. run `poetry build` to build the package.\n6. run `poetry publish` to publish the package to PyPI.\n\n## Contributing\n\nContributions are always welcome! Whether it's bug reports, feature requests, or pull requests, all contributions are\nappreciated. For more details, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nThis project is licensed under some License. For more details, see [LICENSE](LICENSE.md).\n\n## Code of Conduct\n\nWe believe in fostering an inclusive and respectful community. For guidelines and reporting information,\nsee [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).\n\n## Security\n\nYour security is paramount. If you discover any security-related issues, please follow the guidelines\nin [SECURITY.md](SECURITY.md).\n\n## Founding\n\nFor information about the project's founding and backers, see [FOUNDING](https://github.com/sponsors/azataiot).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A project template to use for new Python Github repositories with best practices.",
"version": "0.1.0.dev8",
"project_urls": {
"Homepage": "https://github.com/azataiot/python-project-template"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e45bb4f23a00f455a9d6600047739d2b8e6777374c5b86da541c6a3be3b171eb",
"md5": "8b52df27d0bb7efba92bf97d07d9fbb9",
"sha256": "96d0bcba8f8a90b0e77a6b31fbd8e4e736083560cc4ded10c6b972a906109509"
},
"downloads": -1,
"filename": "python_project_template_poetry-0.1.0.dev8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8b52df27d0bb7efba92bf97d07d9fbb9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 3862,
"upload_time": "2023-09-11T16:55:42",
"upload_time_iso_8601": "2023-09-11T16:55:42.375623Z",
"url": "https://files.pythonhosted.org/packages/e4/5b/b4f23a00f455a9d6600047739d2b8e6777374c5b86da541c6a3be3b171eb/python_project_template_poetry-0.1.0.dev8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "db622f946fae66261e42a44f62e0df33e95769830602e3b5adba6cd4ac568a6e",
"md5": "f4864c8ac0aa49cc0485b13e10fe1c81",
"sha256": "4119911dd55b3490e88953806f578abbcc51edfa368fcc21bf1aab385a0125c8"
},
"downloads": -1,
"filename": "python_project_template_poetry-0.1.0.dev8.tar.gz",
"has_sig": false,
"md5_digest": "f4864c8ac0aa49cc0485b13e10fe1c81",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 3248,
"upload_time": "2023-09-11T16:55:45",
"upload_time_iso_8601": "2023-09-11T16:55:45.680302Z",
"url": "https://files.pythonhosted.org/packages/db/62/2f946fae66261e42a44f62e0df33e95769830602e3b5adba6cd4ac568a6e/python_project_template_poetry-0.1.0.dev8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-11 16:55:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "azataiot",
"github_project": "python-project-template",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "python-project-template-poetry"
}