A one-command project setup utility for bootstrapping new projects quickly.
Project description
autoprep
A one-command project setup utility for bootstrapping new projects quickly.
Features
- One-Command Setup: Initialize new projects with a single command.
- Extensible Pipeline: Customize the setup process with a step-based pipeline.
- Templating: Use Jinja2 templates to generate boilerplate code.
- Configuration: Override default settings with global and project-specific config files.
- Optional Integrations: Add Docker, linting, and more with simple flags.
Installation
pip install -e .
Usage
autoprep can be run from any directory. It is recommended to run it from the folder where you want your new project to be created.
Interactive Mode
For the best experience, run the new command without any options to launch the interactive setup wizard:
python -m autoprep new
The CLI will guide you, asking for the project name, template, and other options.
Non-Interactive Mode
You can also provide all the options as command-line arguments:
python -m autoprep new --name myapp --template webapi --deps "flask,pytest" --docker
Available Commands
autoprep new: Initialize a new project.autoprep list-templates: See a detailed list of all available project templates.
Available Templates
| Template Name | Description |
|---|---|
python-base |
A minimal boilerplate for any new Python project. |
python-webapi |
A FastAPI-based project for web backends or microservices. |
python-cli |
A preconfigured CLI application using Typer. |
python-library |
A reusable Python library with a proper packaging setup. |
nodejs-express |
A NodeJS backend project using Express. |
react-vite |
A React frontend application using Vite. |
rust-cli |
A command-line application using Rust and Cargo. |
go-webapi |
A lightweight backend service using Go's standard library. |
python-ml |
A standard structure for data science and ML projects. |
dockerized-microservice |
A language-agnostic scaffold for a containerized service. |
autoprep list-profiles: View your custom-defined project profiles.autoprep version: Show the version of autoprep.
Troubleshooting
If you encounter an error like autoprep: command not found after installation, please refer to the Troubleshooting Guide for a step-by-step solution.
Profiles
For even faster setup, you can define profiles in a ~/.autoprep/profiles.yml file. A profile is a pre-defined combination of a template and options.
Example profiles.yml
profiles:
webapi:
template: python-webapi
options:
docker: true
lint: true
cli_tool:
template: python-cli
options:
lint: true
Now, you can bootstrap a complete web API project with a single command:
autoprep new --profile webapi
Configuration
For more advanced customization, autoprep can be configured through a global ~/.autoprep/config.yml file and a project-specific .autoprep.yml file. Command-line options will always override settings from the configuration files.
Example config.yml
user:
name: Your Name
email: your.email@example.com
project:
lang: python
author: Your Name
email: your.email@example.com
profiles:
my-profile:
template: webapi
deps:
- flask
- pytest
- black
steps:
- create_structure
- init_git
- create_venv
- install_deps
- generate_files
- add_docker
- add_linting
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 arjunjain_autoprep-0.1.1.tar.gz.
File metadata
- Download URL: arjunjain_autoprep-0.1.1.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df5d6fa192d4480384284934e5320d1bb03ae7e566e1041ceb04c5037ea8e619
|
|
| MD5 |
ef791550be16470e4d626289e1116c1a
|
|
| BLAKE2b-256 |
81e6f00af0454b9847ed1c61cfd2ffebc0a23a03d701a44ac081675fa1bdb23b
|
File details
Details for the file arjunjain_autoprep-0.1.1-py3-none-any.whl.
File metadata
- Download URL: arjunjain_autoprep-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7aa07f5517cfb6f90262ef127c67e9a36a067d106f2dbcd796f44dc76b84970f
|
|
| MD5 |
8a6450d4bf16d9f01987c7d420de8b90
|
|
| BLAKE2b-256 |
96d7f10c97867d1460f96ad30d4d064d8eccd5737003e6c0474b9966789aa637
|