Last updated:
0 purchases
PythonProjectBootstrapper 0.3.13
PythonProjectBootstrapper
Tool that helps in the creation of python projects.
Overview
PythonProjectBootstrapper creates a python project that adheres to modern best practices for python package development. It also generates Continuous Integration / Delivery / Deployment workflows that maximize the free functionality offered by GitHub for open-source solutions.
Functionality Provided in Generated Projects
Simple local development through Build.py (see DEVELOPMENT.md for more information)
Python bootstrapping via PythonBootstrapper
Source code formatting via black
Static source analysis via pylint
Test execution via pytest
Code coverage extraction via coverage
Semantic version generation via AutoGitSemVer
Python wheel creation
Wheel deployment to PyPi
Executable generation via cx_Freeze
Full Continuous Integration, Continuous Delivery, and Continuous Deployment (via GitHub Actions) for everything listed above
GitHub Recommended Community Standards documentation
GitHub pull request template
GitHub issue templates
[Optional] Build artifact signing via Minisign
[Optional] Participation in the Open Source Security Foundation (OpenSSF) Best Practices Badge Program
[Optional] Generation of development environment docker images in support of FAIR principles
Project Content Customization
Please see DEVELOPMENT.md for information on the generated content and how to make common modifications to that content.
How to use PythonProjectBootstrapper
Running the Executable
From a terminal window, run one of the commands below. You will be asked a series of questions when generating a python project, then guided through configuration activities to ensure that the project is ready for use.
Scenario
Command Line
Output
Create a project for a python package
PythonProjectBootstrapper package <output_dir>
┌──────────────────────────────────────────────────────────────────────────────── Python Package ─────────────────────────────────────────────────────────────────────────────────┐
│ │
│ This project creates a Python package hosted on GitHub that uploads a Python wheel to PyPi. It also includes opt-in functionality to create docker images that ensure the exact │
│ reproducibility of all commits (which is especially useful for scientific software). │
│ │
│ If you continue, you will be asked a series of questions about your project and given step-by-step instructions on how to set up your project so that it works with 3rd party │
│ solutions (GitHub, PyPi, etc.). │
│ │
│ The entire process should take about 20 minutes to complete. │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Enter 'yes' to continue or 'no' to exit:
Display Help
PythonProjectBootstrapper --help
Usage: PythonProjectBootstrapper [OPTIONS] PROJECT:{package} OUTPUT_DIR
┌─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ * project PROJECT:{package} Project to build. [default: None] [required] │
│ * output_dir DIRECTORY Directory to populate. [default: None] [required] │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ --configuration FILE Filename that contains template configuration values; see https://cookiecutter.readthedocs.io/en/stable/advanced/user_config.html for more │
│ info. │
│ [default: None] │
│ --replay Do not prompt for input, instead read from saved json. │
│ --yes Answer yes to all prompts. │
│ --skip-prompts Do not display prompts after generating content. │
│ --version Display the current version and exit. │
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it or customize the installation. │
│ --help Show this message and exit. │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Version
PythonProjectBootstrapper --version
PythonProjectBootstrapper v0.2.0
Similar Tools
There are other tools available that offer similar functionality, each emphasizing different domains, conventions, or workflows. They are listed here in the event that one of them is a better fit for the specifics of your scenario.
Tool
Description
Scientific Python: guide, cookie, & sp-repo-review
A copier/cookiecutter template for new Python projects based on the Scientific Python Developer Guide.
cookiecutter-cms
A cookiecutter template for those interested in developing computational molecular packages in Python.
LINCC Frameworks Python Project Template
This project template codifies LINCC-Framework's best practices for python code organization, testing, documentation, and automation.
Cookiecutter Django
Cookiecutter Django is a framework for jumpstarting production-ready Django projects quickly.
cookiecutter-pylibrary
Enhanced cookiecutter template for Python libraries.
repo-scaffolder
Templates and commandline tools for creating repositories for US Federal open source projects
Templating Systems
PythonProjectBootstrapper uses cookiecutter as its underlying templating engine, but others are available within python. Some are listed here if you want to use them directly.
Tool
Description
cookiecutter
A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.
copier
A library and CLI app for rendering project templates.
Additional Information
Additional information can be found at these locations.
Title
Document
Description
Code of Conduct
CODE_OF_CONDUCT.md
Information about the the norms, rules, and responsibilities we adhere to when participating in this open source community.
Contributing
CONTRIBUTING.md
Information about contributing code changes to this project.
Development
DEVELOPMENT.md
Information about development activities involved in making changes to this project.
Governance
GOVERNANCE.md
Information about how this project is governed.
Maintainers
MAINTAINERS.md
Information about individuals who maintain this project.
Security
SECURITY.md
Information about how to privately report security issues associated with this project.
License
PythonProjectBootstrapper is licensed under the MIT license.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.