Skip to main content

Data migration validation, reporting, and preflight toolkit.

Project description

migration-tools

A Python toolkit for data migration validation, preflight checks, and reporting.

Install

pip install migration-tools

Quick start

from migration_tools import (
    setup_logger,
    load_dataset,
    load_mapper,
    init_outputs,
    run_preflight_checks,
    check_output_date_formats,
    run_date_correlation_check,
    write_outputs,
    print_summary,
    generate_html_report,
)

logger = setup_logger(log_dir="logs")

data      = load_dataset("dataset1.xlsx", logger=logger)
migration = load_mapper("mapper.xlsx", logger=logger)
output_success, output_failed = init_outputs(migration)

# Pre-flight: column presence, mapping coverage, date format
run_preflight_checks(
    data,
    migration,
    date_columns=["Datevalue", "Datevalue"],
    date_format="%d.%m.%Y",
    logger=logger,
)

# ... your conversion loop ...

# Post-conversion checks
check_output_date_formats(output_success, date_format="%d.%m.%Y", logger=logger)
run_date_correlation_check(output_success, logger=logger)

# Write outputs and summary
output_zucc, output_fail = write_outputs(output_success, output_failed, "dataset1", logger)
print_summary(len(data), len(output_success), len(output_failed), output_zucc, output_fail, 12.4, logger)

# Generate HTML report
generate_html_report(
    dataset_name="dataset1",
    total_rows=len(data),
    success_count=len(output_success),
    failed_count=len(output_failed),
    execution_time=12.4,
    output_success=output_success,
    output_failed=output_failed,
    logger=logger,
)

CLI

# Run preflight checks only
migration-tools validate --dataset dataset1.xlsx --mapper mapper.xlsx

# Validate and generate an HTML report
migration-tools report --dataset dataset1.xlsx --mapper mapper.xlsx --format html

# Validate and generate an Excel report
migration-tools report --dataset dataset1.xlsx --mapper mapper.xlsx --format excel

# Both formats at once
migration-tools report --dataset dataset1.xlsx --mapper mapper.xlsx --format both

# Custom date columns and format
migration-tools validate \
    --dataset dataset1.xlsx \
    --mapper mapper.xlsx \
    --date-cols PaatosPaiva VoimassaolonAlkamisPaiva \
    --date-format "%d.%m.%Y"

Supported file formats

File Formats supported
Dataset .xlsx, .csv, .json
Mapper .xlsx, .json

What gets validated

Check When
Required columns present in dataset Pre-flight
Mapping coverage (all value combos have a mapper row) Pre-flight
Source date format Pre-flight
Near-duplicate / whitespace column names Pre-flight
Output date format after transformation Post-conversion
Decision_FromDateDecision_ToDate Post-conversion
Actualization_Date matches Decision_FromDate Post-conversion

Publishing a new version

  1. Bump version in pyproject.toml and __init__.py
  2. Commit and push to main
  3. Create a GitHub Release — CI will build and publish to PyPI automatically

Development

git clone https://github.com/yourname/migration-tools
cd migration-tools
pip install -e ".[dev]"
pytest tests/ -v --cov=migration_tools

License

MIT

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

autom8s-0.1.2.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

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

autom8s-0.1.2-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: autom8s-0.1.2.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for autom8s-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2fd733b5d3f2865f89ca83feb61d185a87ad9f3a240cfc59e29b408a27d244fe
MD5 6fa48d5ec928c6687e86bc84d63edaf4
BLAKE2b-256 74e21ca2eb1f581d4f1c3a09a6db8d6140f30fb50edd05a767312f25164f2105

See more details on using hashes here.

Provenance

The following attestation bundles were made for autom8s-0.1.2.tar.gz:

Publisher: ci.yml on DrinasKastrati/Autom8s

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: autom8s-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for autom8s-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 090d6b9f88b91ad3c993e563f22de62ad351bcc64629699680cf831a2e2dbe4a
MD5 976f41e41c1fb9416cc73252055f2537
BLAKE2b-256 86d3304c8e4cb0d454c48cf6d1bbd08d26e9c25eb406acf848ba07a333b689d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for autom8s-0.1.2-py3-none-any.whl:

Publisher: ci.yml on DrinasKastrati/Autom8s

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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