Skip to main content

ACC CLI — Databricks Project Generator

PyPI version Python

A command-line tool to scaffold production-ready Databricks pipeline projects from templates. Built with Typer and Cookiecutter.


Table of Contents


Features

  • 🚀 Scaffold a Databricks ETL pipeline project in seconds
  • 📁 Generates a fully structured Python package with src/ layout
  • ☁️ Supports multiple storage backends: UC, DBFS, S3, ADLS
  • 🔧 Includes Makefile, pyproject.toml, configs, Databricks job JSON, and tests out of the box
  • 📦 Installable via pip — works as a global CLI tool

Project Structure

python-deployment-package/
├── .gitignore
├── README.md
├── pyproject.toml           # Package metadata & entry point
├── requirements.txt         # Runtime dependencies
├── dist/                    # Built distributions (wheel + sdist)
├── docs/
│   ├── cli-spec.md
│   ├── project-structure.md
│   └── tech-decisions.md
├── src/
│   └── acc_cli/             # Main CLI package
│       ├── __init__.py
│       ├── cli.py           # Typer app & entry point
│       ├── config.py        # Templates & storage config
│       ├── commands/
│       │   ├── __init__.py
│       │   └── init.py      # `acc init` command
│       └── templates/
│           └── etl/         # ETL pipeline cookiecutter template
│               ├── cookiecutter.json
│               └── {{cookiecutter.project_slug}}/
│                   ├── Makefile
│                   ├── pyproject.toml
│                   ├── README.md
│                   ├── requirements.txt
│                   ├── requirements-dev.txt
│                   ├── .gitignore
│                   ├── configs/
│                   │   ├── dev.yaml
│                   │   └── prod.yaml
│                   ├── jobs/
│                   │   └── databricks_job.json
│                   ├── src/{{cookiecutter.project_slug}}/
│                   │   ├── main.py
│                   │   ├── pipelines/
│                   │   ├── tasks/
│                   │   └── utils/
│                   └── tests/
└── tests/
    ├── __init__.py
    └── test_cli.py

Installation

pip install acc-cli

Note (macOS): If acc is not found after install, add Python's bin directory to your PATH:

echo 'export PATH="/Library/Frameworks/Python.framework/Versions/3.12/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Usage

Start the scaffolder (default command)

acc

Explicit init subcommand

acc init

Help

acc --help
acc init --help

Interactive prompts

When you run acc init, you will be prompted for:

Prompt Description Default
Project name Name of your new project —
Version Initial version 0.1.0
Author Your name —
Template Project template to use etl
Storage Cloud storage backend uc
Databricks workspace URL Your workspace URL —
Output directory Where to create the project current directory

Example session

ACC Project Scaffolder

Available templates:
  etl        — Extract-Transform-Load pipeline
  ml         — Machine learning pipeline
  utility    — Utility / helper library

Project name: my-sales-pipeline
Version [0.1.0]:
Author: Jane Doe
Template [etl / ml / utility] [etl]:
Storage [uc / dbfs / s3 / adls] [uc]: s3
Databricks workspace URL: https://adb-xxxx.azuredatabricks.net
Output directory [...]: /Users/jane/projects

Project created successfully!

Location:   /Users/jane/projects/my_sales_pipeline
Storage:    s3://bucket/wheels
Wheel path: s3://bucket/wheels/my-sales-pipeline-0.1.0-py3-none-any.whl

Next steps:
  cd /Users/jane/projects/my_sales_pipeline
  make install && make test

Available Templates

Key Description Status
etl Extract-Transform-Load pipeline ✅ Available
ml Machine learning pipeline 🚧 Coming soon
utility Utility / helper library 🚧 Coming soon

Storage Options

Key Resolved path
uc dbfs:/Volumes/catalog/schema/volume
dbfs dbfs:/FileStore/wheels
s3 s3://bucket/wheels
adls abfss://container@storageaccount.dfs.core.windows.net/wheels

Development Setup

1. Clone the repository

git clone https://github.com/your-org/python-deployment-package.git
cd python-deployment-package

2. Create a virtual environment

python3 -m venv .venv
source .venv/bin/activate

3. Install in editable mode

pip install -e .

4. Verify the CLI works

acc --help

5. Run tests

pytest tests/ -v

Publishing a New Version

⚠️ PyPI does not allow re-uploading the same version. Always bump the version before building.

Step 1 — Bump the version in pyproject.toml

[project]
version = "0.1.2"   # ← change this

Step 2 — Clean previous builds

rm -rf dist/ build/ src/acc_cli.egg-info

Step 3 — Build the distribution

python3 -m build

This creates two files inside dist/:

  • acc_cli-<version>-py3-none-any.whl — binary wheel (fast install)
  • acc_cli-<version>.tar.gz — source distribution

Step 4 — Upload to PyPI

python3 -m twine upload dist/*

Twine will use credentials from ~/.pypirc. If that file doesn't exist, it will prompt for your API token.

Setting up ~/.pypirc (one-time)

[distutils]
index-servers = pypi

[pypi]
username = __token__
password = pypi-YOUR_API_TOKEN_HERE

Get your API token at https://pypi.org/manage/account/token/ The username must always be __token__ (literally).

Step 5 — Verify on PyPI

https://pypi.org/project/acc-cli/

Versioning Convention

This project follows Semantic Versioning (MAJOR.MINOR.PATCH):

Change type Example
Bug fix / small restructure 0.1.1 → 0.1.2
New feature / new template 0.1.2 → 0.2.0
Breaking change 0.2.0 → 1.0.0

Dependencies

Package Purpose
typer>=0.12 CLI framework
rich>=13 Terminal formatting
cookiecutter>=2.6 Project scaffolding from templates

License

Proprietary — All rights reserved.

Release files for acc-cli 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acc-cli 0.1.4
File Size Uploaded
acc_cli-0.1.4.tar.gz 32.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for acc-cli 0.1.4
File Interpreter ABI Platform
acc_cli-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 79.0 kB

Release files / acc_cli-0.1.4.tar.gz

Download URL acc_cli-0.1.4.tar.gz
Size 32.8 kB
Tags Source
SHA-256 checksum
How to use checksums
444eae8ad5592f1a1969f5e230f7cdec000d8da443fded309e6cea3b5e55f9fc
BLAKE2b-256 checksum
How to use checksums
dad9dac96da4c0aec833a10b99ef7d1236c1671dc25ad27b6cd05cbcfb164855
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / acc_cli-0.1.4-py3-none-any.whl

Download URL acc_cli-0.1.4-py3-none-any.whl
Size 46.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a005ba15e7399f3685e144cbf8fe539f9f8858e8ea12d4befebfd2c7657e048
BLAKE2b-256 checksum
How to use checksums
38ecedd0cc83e30f600a61f51e45a0a7dce45fb6543c655de53d9754cad198a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page