Skip to content

A serious Python project template for out-of-box and production usage.

License

Notifications You must be signed in to change notification settings

you-n-g/serious-scaffold-python

 
 

Repository files navigation

Serious Scaffold Python

A serious Python project template for out-of-box and production usage.

GitHub CI Status codecov Documentation Status Code style: black Imports: isort Checked with mypy Serious Scaffold Python PyPI PyPI - Python Version

Many efforts have been made to ease the project setup, but most of them are only language-specified basic components. In practice, we have to deal with much more details, especially for team projects. Many commonly used tools and configurations need to be handled properly. Moreover, different people tend to have different favors in various aspects. If you are tired of the inefficient setup process and endless discussion, Serious Scaffold Python is here to terminate those for Python Projects.

If you find this helpful, please consider sponsorship.

Features

  • Basic Python project structure as a package with tests and documentation.
  • Categorized requirements management with constraints for different environments.
  • typer for CLI with tests and automatic documentation generation.
  • pydantic for settings with tests and documentation as module samples.
  • setuptools-scm to extract the version for the package.
  • black, isort, mypy, ruff and toml-sort as linters.
  • pre-commit with general hooks and local linters.
  • Makefile as the entry point for common actions.
  • VSCode settings with recommended extensions.
  • GitHub workflows for lint, tests, package and documentation preview.

Quickstart

  1. Install Copier.

  2. Install the necessary tools for development: pipenv and pre-commit.

  3. Generate the project with the copier command.

    copier gh:huxuan/serious-scaffold-python /path/to/project
    
  4. Initialize the project with the git and make commands.

    cd /path/to/project
    git init
    git add .
    make dev
    make pre-commit
    git commit -a -m "Init from serious-scaffold-python."
    
  5. Happy hacking.

Roadmap

License

MIT

Contributing

Any suggestions, discussions and bug fixing are all welcome.

About

A serious Python project template for out-of-box and production usage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jinja 67.0%
  • Makefile 17.2%
  • Python 15.8%