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_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.0.tar.gz (67.3 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.0-py3-none-any.whl (59.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dataform_checklist-1.2.0.tar.gz
  • Upload date:
  • Size: 67.3 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.0.tar.gz
Algorithm Hash digest
SHA256 1a418cd9ff8a05a52d0dc55dc98ea0d73a04b225ead47c04110b0567636e7600
MD5 560bb5a588256314c0aa6b60b88c0642
BLAKE2b-256 57ab6db38c49b652d6308b1afbdb84585c4deb7fa38e8ae88b60755af49ce582

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dataform_checklist-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7971f5d2424eeeab12a0e549afdf8f687d96f872dd24b52428090d381900bf1e
MD5 8a6509878880e941bb6989511b7caaa6
BLAKE2b-256 6409e4cc392dc1ca037f8ee393d369915beca29355654a9b12e990048364e918

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