Skip to main content

Generate Excel deployment checklists from Dataform repositories

Project description

Dataform Deployment Checklist Exporter

A Python package for generating Excel deployment checklists from Dataform repositories with automatic status tracking.

Features

  • 🔍 Automatically scans all .sqlx files in Dataform repositories
  • 📊 Exports to formatted Excel with color-coded status
  • 🔄 Tracks changes: New, Existed, Deleted files
  • 🎨 Professional Excel formatting with conditional colors
  • 📦 Easy installation and distribution
  • 🚀 Command-line interface

Installation

From Source

cd scripts
pip install -e .

For Distribution (Create wheel)

cd scripts
python setup.py sdist bdist_wheel
pip install dist/dataform-checklist-1.0.0-py3-none-any.whl

Install on Another Machine

# Copy the wheel file to target machine, then:
pip install dataform-checklist-1.0.0-py3-none-any.whl

Usage

Command Line

After installation, use the dataform-checklist command:

# Basic usage
dataform-checklist /path/to/dataform/repo

# With version
dataform-checklist /path/to/dataform/repo -v v1.01.00

# With custom output path
dataform-checklist /path/to/dataform/repo -o /output/path -v v1.02.00

# With custom repository name
dataform-checklist /path/to/dataform/repo -n MyRepo -v v2.00.00

# Full options
dataform-checklist /path/to/repo -o /output -n WWIM -v v1.00.00

As Python Library

from dataform_checklist import DataformInventoryExporter

# Create exporter
exporter = DataformInventoryExporter(
    repository_path="/path/to/dataform/repo",
    output_path="/output/path",
    repository_name="WWIM",
    version="v1.00.00"
)

# Run export
exporter.run()

# Or use individual methods
files = exporter.scan_sqlx_files()
inventory = exporter.create_new_inventory(files)
exporter.export_to_excel(inventory)

Output

Filename Format

PTTEP_Dataform_Deployment_Checklist_{repository_name}_{version}.xlsx

Excel Structure

Index Path/Folder/Directory file_name status
1 dashboard_wwim ins_pbi_well_info.sqlx New
2 datamart_wwim ins_well_allocation.sqlx Existed
3 refined_wwim p2_refined_a_ann_barrier.sqlx Deleted

Status Colors

  • New 🟢 - LightGreen (#90EE90)
  • Existed 🔵 - LightBlue (#ADD8E6)
  • Deleted 🔴 - LightCoral (#F08080)

Distribution

Build Distributable Package

cd scripts
python setup.py sdist bdist_wheel

This creates:

  • dist/dataform-checklist-1.0.0.tar.gz (source)
  • dist/dataform-checklist-1.0.0-py3-none-any.whl (wheel)

Share with Team

  1. Copy wheel file to shared location or network drive
  2. Team members install with:
    pip install dataform-checklist-1.0.0-py3-none-any.whl
    
  3. Run from anywhere:
    dataform-checklist /path/to/repo
    

Upload to Internal PyPI (Optional)

If you have an internal PyPI server:

twine upload --repository internal dist/*

Then team members can install with:

pip install dataform-checklist --index-url http://your-pypi-server

Requirements

  • Python 3.7+
  • pandas >= 2.0.0
  • openpyxl >= 3.1.0

Examples

Local Development

# Install in editable mode for development
pip install -e .

# Run from anywhere
dataform-checklist ~/projects/dataform-repo

Production Use

# Install from wheel
pip install dataform-checklist-1.0.0-py3-none-any.whl

# Schedule daily exports
dataform-checklist /prod/dataform/repo -v "v1.$(date +%Y%m%d).0"

CI/CD Integration

# .github/workflows/checklist.yml
- name: Generate Deployment Checklist
  run: |
    pip install dataform-checklist-1.0.0-py3-none-any.whl
    dataform-checklist . -v "v${{ github.run_number }}.0.0"
    
- name: Upload Checklist
  uses: actions/upload-artifact@v3
  with:
    name: deployment-checklist
    path: PTTEP_Deployment_Checklist_*.xlsx

Uninstallation

pip uninstall dataform-checklist

License

Internal use only - PTTEP Data Engineering Team

Support

For issues or questions, contact the data engineering team.

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

dataform_checklist-1.2.1.tar.gz (86.2 kB view details)

Uploaded Source

Built Distribution

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

dataform_checklist-1.2.1-py3-none-any.whl (57.9 kB view details)

Uploaded Python 3

File details

Details for the file dataform_checklist-1.2.1.tar.gz.

File metadata

  • Download URL: dataform_checklist-1.2.1.tar.gz
  • Upload date:
  • Size: 86.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for dataform_checklist-1.2.1.tar.gz
Algorithm Hash digest
SHA256 b670f8466ad6569be54adec18610b61e15de5c4cbf9a13277d1561d40292c71f
MD5 0789d33d34931a7ac1a201d8ab59015e
BLAKE2b-256 4b2d4dcbe4399cbced194daa8c0836937cd8e061862c306b4b9ebd2d05847d1c

See more details on using hashes here.

File details

Details for the file dataform_checklist-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for dataform_checklist-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 da010808dd29c1536daf1b011d1e3bce8f994a248df74c8c49bb15e3aef69c6e
MD5 5bf7b7940e89ba8503bd6576577a1050
BLAKE2b-256 26f1d0eb15c7b4227b5aee2a77143462a97857ed159ba8e4be6073128f0d34c9

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