Skip to content

serious-scaffold/ss-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serious Scaffold Python

A development-focused Python project template with various integrations, configurations and modules.

GitHub CI Status codecov Documentation Status Code style: black Imports: isort Checked with mypy Ruff Pydantic v2 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 copy gh:serious-scaffold/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.