Skip to main content

Tool that helps in the creation of python projects.

Project description

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

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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

PythonProjectBootstrapper-0.3.13-py3-none-any.whl (53.8 kB view details)

Uploaded Python 3

File details

Details for the file PythonProjectBootstrapper-0.3.13-py3-none-any.whl.

File metadata

File hashes

Hashes for PythonProjectBootstrapper-0.3.13-py3-none-any.whl
Algorithm Hash digest
SHA256 ad48b0578a8b6082435ff9e049c91d8d72f7fb6b03177dfbfa5ef4d000404b39
MD5 fdc5b27fe513b88000e56de783e6744e
BLAKE2b-256 9c5b5cd1d7575b1741c732b796fd1ff3d6e72ac8ff51a703937ab3f8cb7a86ef

See more details on using hashes here.

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