Skip to main content

pyplate PyPi

Overview

A boilerplate for Python 3 projects

  • Styles code with black
  • Lints code with flake8
  • Sorts imports with isort
  • Validates git commits (and/or formats changes) with pre-commit
  • Configures VSCode to use black, flake8, isort, etc. You'll want to install the recommended VSCode extensions, when prompted, as defined in .vscode/extensions.json

Dev Prerequisites

  • python 3.12
  • pipx, an optional tool for prerequisite installs
  • poetry (install globally with pipx install poetry)
  • flake8 (install globally with pipx install flake8)
    • flake8-bugbear extension (install with pipx inject flake8 flake8-bugbear)
    • flake8-naming extension (install with pipx inject flake8 pep8-naming)
  • black (install globally with pipx install black)
  • pre-commit (install globally with pipx install pre-commit)
  • just, a Justfile command runner

Windows

Justfile support for Windows requires cygwin. Once installed your PATH will need to be updated to resolve cygpath.exe (probably C:\cygwin64\bin). Justfile will forward any targets with shebangs starting with / to cygwin for execution.

Consider using a bash terminal through WSL instead.

Updating python version:

  • Update python version in Dev Prerequisites above
  • Update [tool.poetry.dependencies] section of pyproject.toml
  • Update pyupgrade hook in .pre-commit-config.yaml
  • Update python version in .gitlab-ci.yml

Justfile Targets

  • install: installs poetry dependencies and pre-commit git hooks
  • update_boilerplate: fetches and applies updates from the boilerplate remote
  • test: runs pytest with test coverage report

Usage

To start a new project, clone this repository, then rename the origin remote to boilerplate

git remote rename origin boilerplate

Then add your new remote origin

git remote add origin <remote repository>

Remove and replace (or rename) the pysrc/pyplate module to start your new project. Be sure to also replace pyplate references in pyproject.toml with your new module / project name.

Be sure to update .gitlab-ci.yml as needed. The PACKAGE_NAME variable should match the pyproject.toml tool.poetry.name field, otherwise the CI may publish incorrectly.

For the gitlab CI to publish you need to add two environment variables to your gitlab repository:

You can also add this repository to an existing project as the boilerplate remote:

git remote add boilerplate git@gitlab.com:tysonholub/pyplate.git

The following should help apply the boilerplate history into an existing project. Depending on your existing project structure, you may want to move everything into a backup/ folder first, then refactor accordingly after merging the boilerplate remote.

git merge boilerplate/main --no-ff --allow-unrelated-histories

Then moving forward, run just update_boilerplate to pull latest changes from the boilerplate remote. NOTE: you must keep the boilerplate remote history intact to successfully merge updates from the boilerplate remote.

Metadata

Release files for pyplate-boilerplate 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyplate-boilerplate 1.0.2
File Size Uploaded
pyplate_boilerplate-1.0.2.tar.gz 4.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyplate-boilerplate 1.0.2
File Interpreter ABI Platform
pyplate_boilerplate-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 7.8 kB

Release files / pyplate_boilerplate-1.0.2.tar.gz

Download URL pyplate_boilerplate-1.0.2.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9bc154e63dd5d4cf2c04a56856d866beffe855151311236b3d0b4277ddb31040
BLAKE2b-256 checksum
How to use checksums
cc72c9f25650b3b169bc7e17e64f6fab3e7d72d8073727e6702b0df3751ad461
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.0 CPython/3.13.2 Linux/5.15.154+

Release files / pyplate_boilerplate-1.0.2-py3-none-any.whl

Download URL pyplate_boilerplate-1.0.2-py3-none-any.whl
Size 3.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a096af8ba396a43f1c65944138231cbdcbb9a655fd5675ffbd7d38c6e7d36824
BLAKE2b-256 checksum
How to use checksums
31aa059050c1561ab60c61f6953089c911cccc29268ab3f66d9cf8ba69845b99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.0 CPython/3.13.2 Linux/5.15.154+

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page