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.4.tar.gz (53.4 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.4-py3-none-any.whl (41.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for zeolite-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ed71a633949eac7a847815ec756c1e577187018bba546cab4ef4e63fc0ae0b20
MD5 3ca8e26d4d73962e27e7170887dd7b1c
BLAKE2b-256 4dc5aeb94fd60034e28d0a9b5495af48ba0ea78b941b969181a5c8b48f633d02

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zeolite-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 9d1c41e8eee337be431dbce2b53438a753ce216f811f8dd3a68f9f31615db049
MD5 f875d638e7523d484c4f10f6462ffbe4
BLAKE2b-256 bb35dfea746340b483948f948ae6e8c2a92e1672d3eea113c89991502cbf321f

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