Skip to main content

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


Download files

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

Source Distribution

arjunjain_autoprep-0.1.1.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arjunjain_autoprep-0.1.1-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

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

Hashes for arjunjain_autoprep-0.1.1.tar.gz
Algorithm Hash digest
SHA256 df5d6fa192d4480384284934e5320d1bb03ae7e566e1041ceb04c5037ea8e619
MD5 ef791550be16470e4d626289e1116c1a
BLAKE2b-256 81e6f00af0454b9847ed1c61cfd2ffebc0a23a03d701a44ac081675fa1bdb23b

See more details on using hashes here.

File details

Details for the file arjunjain_autoprep-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for arjunjain_autoprep-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7aa07f5517cfb6f90262ef127c67e9a36a067d106f2dbcd796f44dc76b84970f
MD5 8a6450d4bf16d9f01987c7d420de8b90
BLAKE2b-256 96d7f10c97867d1460f96ad30d4d064d8eccd5737003e6c0474b9966789aa637

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page