A Python Project Template for Long-Term Maintainability.
Project description
Serious Scaffold Python
A Python Project Template for Long-Term Maintainability.
[!WARNING] Serious Scaffold Python is in the Alpha phase. Frequent changes and instability should be anticipated. Any feedback, comments, suggestions and contributions are welcome!
Serious Scaffold Python is crafted for long-term, maintainable Python projects. It includes GitHub Actions and GitLab CI/CD, automated dependency updates via Renovate, and comprehensive linting, testing, and documentation. Key integrations like pdm for environment and dependency management, typer for CLI development, and pydantic for configuration enhance project robustness. With copier’s easy project setup and continuous updating, your project stays aligned with best practices for sustainable development. Pre-configured dev containers and cross-platform CI support ensure maintainability from the start.
If you find this helpful, please consider sponsorship.
🛠️ Features
- Project setup and template update with copier.
- Manage dependencies and virtual environments with pdm.
- Build with setuptools and versioned with setuptools-scm.
- Lint with pre-commit, mypy, ruff, pyproject-fmt and commitlint.
- Test with pytest and coverage for threshold and reports.
- Documentation with sphinx, the furo theme and MyST parser for markdown.
- Develop Command Line Interfaces with typer.
- Manage configurations with pydantic-settings.
- Dev container for development and GitLab CI/CD.
- Automate dependency updates with Renovate.
- Automate version management and release with semantic-release.
- Versioned documentation and pull request previews with Read the Docs.
- Adapted configuration for GitHub, GitLab and self-managed GitLab.
- Continuous Integration for Linux, MacOS and Windows [GitHub Only].
- Continuous Integration for multiple Python versions.
- Release with documentation, package and production container.
- Centralize common actions with a unified Makefile.
- VSCode settings with recommended extensions.
🔧 Prerequisites
pipx is required to manage the standalone tools used across the development lifecycle. Please refer to pipx's installation instructions here. Once pipx is set up, install the copier for project generation using the following command:
pipx install copier==9.4.1
🚀 Quickstart
-
Generate the project.
copier copy gh:serious-scaffold/ss-python /path/to/project
-
Navigate to the project directory and initialize a git repository.
cd /path/to/project git init
-
Install standalone tools.
make prerequisites
-
Set up the development environment.
make dev
-
Commit the initialized project.
git add . git commit -m "Initialize from serious-scaffold."
-
That's it! Feel free to focus on the coding within
src
folder.
📜 License
MIT License, for more details, see the LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ss_python-0.0.56.tar.gz
.
File metadata
- Download URL: ss_python-0.0.56.tar.gz
- Upload date:
- Size: 501.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.20.1 CPython/3.12.3 Linux/6.8.0-1017-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69991a79f7ca35979df02786aa21f0d1c45fd3ad7881cc7a81c5c0a7ef5811d5 |
|
MD5 | 343de2ae50c015fc5c2fed5b803b1ef3 |
|
BLAKE2b-256 | 1407d39906f42099dd31b66a0901526291e7313790a470eb51a7d25630fd26ed |
File details
Details for the file ss_python-0.0.56-py3-none-any.whl
.
File metadata
- Download URL: ss_python-0.0.56-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.20.1 CPython/3.12.3 Linux/6.8.0-1017-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9e7c200a07ef6e809da01afb1341df8ba8d1a8437b89ccc79d748a5a313bd80 |
|
MD5 | 607bab5b367fb381a2f34978525266f5 |
|
BLAKE2b-256 | 72d4e1ca3facf63d513bfe1f1985e5415ce7e45f509ff3cffcca3d522364f38a |