create-python-package

Overview

Initialize a new package using best practices as described by the Python Packaging Authority (PyPA) . Perfect for beginners and experts alike. Stop writing boilerplate and start coding.

Generates a project similar to the Python Packaging Authority’s sample project , but with various parts autogenerated based on your inputs.

Features

  • Creates a battle-tested directory structure with boilterplate for unit tests, license, `setup.py < https://github.com/pypa/sampleproject/blob/master/setup.py >`__ and more

  • Sets you up with popular Python environment managers such as venv and Pipenv

  • Initializes a git repository for you with a .gitignore file

Usage

This package ships with one CLI entrypoint, create-python-package .

To interactively answer questions about your project, such as author, license, etc.

$ create-python-package

You will then be prompted with questions such as

question version (0.0.0.1):
question description ():
question entry point (main.py):
question repository url ():
question author (Your Name):
question email (email@doman.com):
question environment management (venv) (options: venv, pipenv, poetry):
question license (mit) (options: mit, gplv3, apache2, bsd3):

These are used to populate setup.py and other files to give you as painless experience as possible when starting a new project.

To use defaults and skip interactive prompts, use the --yes flag

$ create-python-package --yes

Installation

Python 3.6+ is required

using pip

pip install --user create-python-package

using pipx

`pipx <https://github.com/pipxproject/pipx>`__ allows you to run Python binaries directly, or install packages into isolated virtual environments and add their binaries to your PATH

pipx run create-python-package

or install with

pipx install create-python-package

Generated Directory Structure

>> pipx run create-python-package examplepackage --yes
>> tree -L 2 examplepackage/
examplepackage/
├── examplepackage
│   ├── __init__.py
│   └── main.py
├── LICENSE
├── makefile
├── MANIFEST.in
├── README.md
├── setup.py
├── tests
│   └── test_project.py
└── venv
    ├── bin
    ├── include
    ├── lib
    ├── lib64 -> lib
    ├── pyvenv.cfg
    └── share

Credits

Inspired by create-react-app