A command-line utility to streamline the setup of new Python projects.
Project description
| Latest Version | Downloads | Tests |
|---|---|---|
ppieces
What?
Python Project Creator Script -> PPCS -> PythonPieCeS -> ppieces
ppieces is a command-line utility designed to streamline the setup of new Python projects.
It automates various tasks such as creating project directories, initializing git repositories, setting up virtual environments, handling requirements (with or without pip-tools) and installing pre-commit hooks.
Why?
I tend to always have a python project or two on the go, usually for my own benefit, little scripts to make my day to day easier/faster/automated or just learning new things or experimenting with ideas.
Because of that I found myself repeating the same steps over and over again when setting up new Python projects. Same song & dance.
I wanted a way to automate the setup for new projects, so I created ppieces.
Installation
Plug & Play:
# Install via pipx, recommended since you will most likely want to use this tool globally.
pipx install ppieces
# Install via pip, if you prefer to use a virtual environment.
pip install ppieces
Install for development:
Clone the repository:
git clone https://github.com/patillacode/ppieces.git
cd ppieces
Install the dependencies and the package:
make install
# or manually:
python -m venv venv
source venv/bin/activate
pip install -e .
System Requirements
Before using ppieces, ensure you have the following installed:
- Python >=
3.10
Optional:
pre-commit(can be installed viapipxorHomebrew- see here for more details)autoenv(optional for auto-activation of virtual environments - see here for more details)
Usage
ppieces can be used in an interactive mode (by default) or with command-line options for scripting:
Interactive mode will ask you a series of questions to configure your new project.
$ ppieces
https://github.com/patillacode/ppieces/assets/10074977/0a4b4dda-4809-4248-8215-7d4fb0765546
For scripting, use the following options:
$ ppieces --help
Usage: ppieces [OPTIONS]
Options:
-ni, --non-interactive Run the script in non-interactive mode.
-f, --project-folder PATH The path to your projects folder.
-n, --project-name TEXT The name of the new project.
-v, --virtual-env Create a virtual environment.
-g, --git Initialize a git repository (with .gitignore and README files)
-c, --pre-commit Add pre-commit configuration.
-r, --ruff Add a ruff configuration file.
-a, --autoenv Set up autoenv.
-m, --makefile Add a default Makefile.
-p, --pip-tools Add a default pip-tools setups.
-u, --username TEXT GitHub username to use in README (default: $USER)
--version Show the version of ppieces.
--help Show this message and exit.
Example usage:
ppieces -ni -p /home/user/projects -n my_new_project -u my_github_username -mcragvp
Features
- Project Directory Creation: Automatically creates a new directory for your project.
- Git Repository Initialization: Initializes a new git repository in the project directory.
- Virtual Environment: Sets up a Python virtual environment within the project.
- autoenv Setup: Configures autoenv to automatically activate the virtual environment when entering the project directory.
- ruff Configuration: Adds a default
.ruff.tomlconfiguration file for the Ruff static analysis tool. - Makefile: Adds a default
Makefilefor common tasks like installing or running the project. - pip-Tools: Adds a default
requirementsfolder with all the.indefault requirements files and generatesrequirements.txtfile for managing project dependencies with pip-tools. - pre-commit Hooks: Installs pre-commit hooks to ensure code quality and standards are maintained.
- Template Files: Provides template files like
.gitignore,requirements.txt, and.pre-commit-config.yamlto get started quickly.
Acknowledgments
This project makes use of several open-source packages including, but not limited to:
A big thank you to the maintainers of all these projects and the python and open-source communities in general.
Contributing
Contributions are welcome!
If you have a feature request, bug report, or a pull request, please open an issue or submit a PR.
License
ppieces is released under the MIT License. See the LICENSE file for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ppieces-0.5.2.tar.gz.
File metadata
- Download URL: ppieces-0.5.2.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7df9d4997dd147a7952443589c77cb70d54dea1195a2c76dd346f61448b2b81
|
|
| MD5 |
89391830cd04c01005d2231cc7e90f35
|
|
| BLAKE2b-256 |
a8d17bc7fa47ea3cc1e68d9f03d7b53e9f42368dec3226f437cfed6bc7659d48
|
File details
Details for the file ppieces-0.5.2-py3-none-any.whl.
File metadata
- Download URL: ppieces-0.5.2-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.25.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86001623d2ad036805c02e10fe9b221362069c51e12d5e374f46c768ff737f44
|
|
| MD5 |
603546a38605369d7a14660bda57e7af
|
|
| BLAKE2b-256 |
9803a978a09bc6373830648afbba311bd1581be93dd0e906da077fe476bb04ff
|