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.3.tar.gz (14.3 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.3-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: autom8s-0.1.3.tar.gz
  • Upload date:
  • Size: 14.3 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.3.tar.gz
Algorithm Hash digest
SHA256 6c234e39bcc1d7dc68e7e4c6ca2c20f351bdbc9edd9a24422a27e863092aa3e9
MD5 d5ea1de0822d3d543b2d0a6800bc84dd
BLAKE2b-256 eb704ab26fdb84ba6c6c713fb2115cf853dd7d6a2d10019a5aec3d1a2424a719

See more details on using hashes here.

Provenance

The following attestation bundles were made for autom8s-0.1.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: autom8s-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 15.3 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 61256baba4a9f5ba854466142204f1a2d9656d2e105518cab422317385ec2ad2
MD5 079fdfe35b1d8a0ff98724a8d9304384
BLAKE2b-256 810513fdbf5b5aaafa3d098e6b3417caff1c8def228f2c4e389fdfe76fb2785a

See more details on using hashes here.

Provenance

The following attestation bundles were made for autom8s-0.1.3-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