Skip to main content

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

Project description

Serious Scaffold Python

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

CI Status codecov Documentation Status GitHub PyPI - Python Version PyPI

Code style: black Imports: isort Checked with mypy Ruff Pydantic v2 Serious Scaffold Python

Serious Scaffold Python

Project setup often involves more than just creating a basic project structure. It includes tasks like setting up GitHub Actions or GitLab CI/CD, configuring linters, tests and documentation, and implementing settings and logging modules. If you are tired of this repetitive process, Serious Scaffold Python is here to help. Utilizing the power of copier, you can generate a new Python project with just one command. Simply answer a few questions, and your project will be fully set up. Additionally, your project can be updated alongside the advancement of the template.

If you find this helpful, please consider sponsorship.

🛠 Features

  • Template Rendering
    • Harness copier to initiate projects and enable template updates.
  • Environment Management
    • Utilize pipenv for virtual environment management.
    • Use containers and system-level pip for CI/CD.
  • Dependency Management
    • Manage dependencies categorically with constraints for different environments.
  • Code Quality Checks
  • Tests
    • Execute tests with pytest, supplemented by coverage reports and thresholds.
  • Documentation
  • Continuous Integration
  • Common Modules
    • Use typer for CLI tasks, including tests, documentation, and configuration.
    • Adopt setuptools-scm for versioning via git metadata.
    • Implement pydantic-settings for robust settings management.
  • Miscellaneous

🔧 Prerequisites

Certain system-level Python applications are needed and it is recommended to use pipx to install and run them in isolated environments. Refer to pipx's installation instructions here. Once pipx is set up, install the necessary tools using the following commands.

# Copier: Template rendering for projects.
pipx install copier

# Pipenv: Virtual environment and package manager for Python.
pipx install pipenv

# Pre-commit: Automates Git hooks for code quality checks.
pipx install pre-commit

🚀 Quickstart

  1. Generate the project by answering several questions.

    copier copy gh:serious-scaffold/serious-scaffold-python /path/to/project
    
  2. Initialize an empty git repository.

    cd /path/to/project
    git init
    
  3. Prepare development environment.

    make dev
    
  4. Commit the initialized project.

    git add .
    git commit -m "Init from serious-scaffold-python."
    
  5. Initialization Done! Focus on the logical code within src folder now.

📜 License

MIT, for more details, see the LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

serious-scaffold-0.0.19.tar.gz (25.6 kB view hashes)

Uploaded Source

Built Distribution

serious_scaffold-0.0.19-py3-none-any.whl (8.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page