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 arjunjain-autoprep

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.2.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.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file arjunjain_autoprep-0.1.2.tar.gz.

File metadata

  • Download URL: arjunjain_autoprep-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 74277d647b16dfaec85ac937db514d51e6e224a7932a1ae756c132b46dc9bdfb
MD5 688859c1af1e5ae0fb4f7b9dce2f2a73
BLAKE2b-256 56d19dd1dd57e7df9bf7e338aafa871fa265b2a22c9c824173b9dd504b865edd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arjunjain_autoprep-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fd6df4f672af51860b44ff53b159597abcebcc1875bbedab9a8060b76f7621ee
MD5 2e5bc557ed4a30ed543aea1c2df54aab
BLAKE2b-256 32d510b572086faa1732f8446eb7b6e93147d1e97b28baa53f8f2954ddaa21d8

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