Skip to main content

CanonMap - A Python library for data mapping and canonicalization

Project description

CanonMap

A Python library for data mapping and canonicalization.

Installation

pip install canonmap

Quick Start

from canonmap import CanonMap

# Initialize the library
canon = CanonMap()

# Generate artifacts from a CSV file
artifacts = canon.generate_artifacts(
    csv_path="path/to/your/data.csv",
    entity_fields=["name", "email"],
    use_other_fields_as_metadata=True
)

# Save artifacts to files
zip_path = canon.save_artifacts(
    artifacts=artifacts,
    output_path="output",
    name="my_data"
)

print(f"Artifacts saved to: {zip_path}")

Detailed Example

Here's a complete example showing how to use the library in a real-world scenario:

from canonmap import CanonMap
import pandas as pd
from pathlib import Path

def process_customer_data(input_csv: str, output_dir: str):
    # Initialize CanonMap
    canon = CanonMap()
    
    # Define the entity fields we want to extract
    entity_fields = [
        "customer_name",
        "email",
        "phone_number",
        "company"
    ]
    
    # Generate artifacts from the CSV
    artifacts = canon.generate_artifacts(
        csv_path=input_csv,
        entity_fields=entity_fields,
        use_other_fields_as_metadata=True,  # Include other columns as metadata
        num_rows=None  # Process all rows
    )
    
    # Create output directory if it doesn't exist
    output_path = Path(output_dir)
    output_path.mkdir(parents=True, exist_ok=True)
    
    # Save the artifacts
    zip_path = canon.save_artifacts(
        artifacts=artifacts,
        output_path=str(output_path),
        name="customer_data",
        save_metadata=True,
        save_schema=True
    )
    
    # You can also work with the artifacts directly
    metadata = artifacts["metadata"]
    schema = artifacts["schema"]
    
    # Example: Print some statistics
    print(f"Processed {metadata.get('row_count', 0)} rows")
    print(f"Found {len(schema.get('entities', []))} entities")
    
    return zip_path

# Usage
if __name__ == "__main__":
    zip_file = process_customer_data(
        input_csv="customers.csv",
        output_dir="processed_data"
    )
    print(f"Processing complete. Results saved to: {zip_file}")

Features

  • Process CSV files and generate metadata and schema
  • Extract and canonicalize entity fields
  • Map data to standardized formats
  • Save artifacts as JSON files or ZIP archives
  • Configurable processing options

Requirements

  • Python 3.8+
  • See setup.py for full list of dependencies

License

MIT License

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

canonmap-0.1.2.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

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

canonmap-0.1.2-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: canonmap-0.1.2.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for canonmap-0.1.2.tar.gz
Algorithm Hash digest
SHA256 515654985354f57ee1e8293f50219f0aff50837344ed68b2227bbca6a40c6723
MD5 9dce1f851059e0a3cc6d7fb87bde3a6d
BLAKE2b-256 9f3e6cae97f351c3769735f696b41f75d3f4ac032e565c4676a48122c8174d00

See more details on using hashes here.

File details

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

File metadata

  • Download URL: canonmap-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for canonmap-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7dd3c972c77d81391e177c051d27657093cdd762124befb0c8e3bf41a1ddc1e1
MD5 8579b22ffaf059889204c8bace1cfdc5
BLAKE2b-256 1c0413b7b3ac411c8b681ae806641d3a6c64a67aa8c3bc971f7520adf7a3319c

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