Skip to main content

A library to process raw data into a structured format

Project description

⚗️ Zeolite


Zeolite is a Python library that uses a simple configuration approach to define a table/schema structure. Raw data can normalised, cleaned, and validated against the schema in a performant and standardised way.

The final datasets are guaranteed to be in the correct format and can be easily exported to a variety of formats. In addition, Zeolite captures errors and warnings during the processing of the data, which can be used to improve the quality of the data.

Example

import zeolite as z

individual_schema = z.schema("individual").columns(
    z.str_col("id")
    .clean(to="id", prefix="ORG_X::")
    .validations(
        z.check_is_value_empty(warning="any", error=0.1, reject=0.01, treat_empty_strings_as_null=True),
        z.check_is_value_duplicated(check_on_cleaned=True, reject="any"),
    ),
    
    z.str_col("birthdate")
    .clean(to="date")
    .validations(z.check_is_value_invalid_date(reject="all")),
    
    z.str_col("gender").clean(
        to="enum",
        sanitize="lowercase",
        enum_map={
            "m": "Male", "male": "Male",
            "f": "Female", "female": "Female",  
            "d":"Gender Diverse", "diverse": "Gender Diverse"
        },
    ),
    
    z.str_col("is_active").clean(
        to="boolean", 
        true_values={"yes", "active"}, false_values={"no", "inactive"}
    ),
    
    z.str_col("ethnicity").clean(to="sanitised_string"),
    z.str_col("ethnicity_2").clean(to="sanitised_string"),
    z.derived_col(
        "is_maori",
        function=(
            z.ref("ethnicity").clean().col.eq("maori")
            | z.ref("ethnicity_2").clean().col.eq("maori")
        ),
        data_type="boolean",
    ),
)

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

zeolite-0.1.1.tar.gz (47.9 kB view details)

Uploaded Source

Built Distribution

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

zeolite-0.1.1-py3-none-any.whl (37.3 kB view details)

Uploaded Python 3

File details

Details for the file zeolite-0.1.1.tar.gz.

File metadata

  • Download URL: zeolite-0.1.1.tar.gz
  • Upload date:
  • Size: 47.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.2

File hashes

Hashes for zeolite-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4897344229eca3d5697501b36c2cb9307ef417d5e3cdaa6c23481093921ee4db
MD5 a47fc9c579e219d7ad56edaee5ee40d2
BLAKE2b-256 98738a1079fbeec929342fe5198fc2d6b8a3d2f3e989803f7cedb8e8db4265f3

See more details on using hashes here.

File details

Details for the file zeolite-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: zeolite-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 37.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.2

File hashes

Hashes for zeolite-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a73559c58c1cc7fb511aea5bc816b1452610606ee5eab6fde82b15aeacb0737
MD5 8d2a2ee4384bb79b35d637cbe9c2fce8
BLAKE2b-256 beaa06369c9213ff8b913a371bd9846400c186c09f4b08e1390dcf2204e57549

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