Python project template
Go to file Use this template
Simon Diesenreiter 7dcf36df6d
Some checks are pending
CI / tests_mac (macos-latest, 3.9) (push) Blocked by required conditions
CI / tests_win (windows-latest, 3.9) (push) Blocked by required conditions
CI / linter (ubuntu-latest, 3.9) (push) Successful in 15s
Rename the project from template / rename-project (push) Successful in 13s
CI / tests_linux (ubuntu-latest, 3.9) (push) Successful in 14s
some mroe cleanup
2024-11-09 08:22:28 -08:00
.gitea some mroe cleanup 2024-11-09 08:22:28 -08:00
docs initial commit 2024-11-09 08:01:27 -08:00
project_name initial commit 2024-11-09 08:01:27 -08:00
tests initial commit 2024-11-09 08:01:27 -08:00
.gitignore initial commit 2024-11-09 08:01:27 -08:00
ABOUT_THIS_TEMPLATE.md initial commit 2024-11-09 08:01:27 -08:00
Containerfile initial commit 2024-11-09 08:01:27 -08:00
CONTRIBUTING.md initial commit 2024-11-09 08:01:27 -08:00
HISTORY.md initial commit 2024-11-09 08:01:27 -08:00
LICENSE initial commit 2024-11-09 08:01:27 -08:00
Makefile initial commit 2024-11-09 08:01:27 -08:00
MANIFEST.in initial commit 2024-11-09 08:01:27 -08:00
mkdocs.yml initial commit 2024-11-09 08:01:27 -08:00
README.md remove codecov stuff 2024-11-09 08:18:17 -08:00
requirements-test.txt initial commit 2024-11-09 08:01:27 -08:00
requirements.txt initial commit 2024-11-09 08:01:27 -08:00
setup.py initial commit 2024-11-09 08:01:27 -08:00

Python Project Template

A low dependency and really simple to start project template for Python Projects.

See also

  • Flask-Project-Template for a full feature Flask project including database, API, admin interface, etc.
  • FastAPI-Project-Template The base to start an openapi project featuring: SQLModel, Typer, FastAPI, JWT Token Auth, Interactive Shell, Management Commands.

HOW TO USE THIS TEMPLATE

  1. Choose a name for your project
    (e.g. my_awesome_project recommendation is to use all lowercase and underscores separation for repo names.)
  2. Replace all text instances of "project_name" in this repo with your new name
  3. If you want Automatic Release to PyPI
    On the new repository settings->secrets add your PYPI_API_TOKEN (get the tokens on PyPI website)
  4. Read the file CONTRIBUTING.md
  5. Then clone your new project and happy coding!

Note

: WAIT until first CI run on github actions before cloning your new project.

What is included on this template?

  • 🖼️ Templates for starting multiple application types:
    • Basic low dependency Python program (default) use this template
    • Flask with database, admin interface, restapi and authentication use this template. or Run make init after cloning to generate a new project based on a template.
  • 📦 A basic setup.py file to provide installation, packaging and distribution for your project.
    Template uses setuptools because it's the de-facto standard for Python packages, you can run make switch-to-poetry later if you want.
  • 🤖 A Makefile with the most useful commands to install, test, lint, format and release your project.
  • 📃 Documentation structure using mkdocs
  • 💬 Auto generation of change log using gitchangelog to keep a HISTORY.md file automatically based on your commit history on every release.
  • 🐋 A simple Containerfile to build a container image for your project.
    Containerfile is a more open standard for building container images than Dockerfile, you can use buildah or docker with this file.
  • 🧪 Testing structure using pytest
  • Code linting using flake8
  • 🛳️ Automatic release to PyPI using twine and github actions.
  • 🎯 Entry points to execute your program using python -m <project_name> or $ project_name with basic CLI argument parsing.
  • 🔄 Continuous integration using Github Actions with jobs to lint, test and release your project on Linux, Mac and Windows environments.

Curious about architectural decisions on this template? read ABOUT_THIS_TEMPLATE.md
If you want to contribute to this template please open an issue or fork and send a PULL REQUEST.

❤️ Sponsor this project


project_name

project_description

Install it from PyPI

pip install project_name

Usage

from project_name import BaseClass
from project_name import base_function

BaseClass().base_method()
base_function()
$ python -m project_name
#or
$ project_name

Development

Read the CONTRIBUTING.md file.