Trafaret

2.1.1 · active · verified Sun Apr 12

Trafaret is a rigid and powerful Python library for validation and parsing data structures. It provides a simple yet expressive way to define data schemas, perform checks, and convert data according to defined rules, offering clear error reporting. It's currently at version 2.1.1 and is actively maintained.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to define a Trafaret for a dictionary representing a date, including integer range validation for month and day. It also shows how to chain a converter function using the `&` operator to transform the validated dictionary into a `datetime.datetime` object. Error handling with `t.DataError` and `as_dict()` is also illustrated.

import datetime
import trafaret as t

# Define a trafaret for a date dictionary
date_validator = t.Dict(
    year=t.Int,
    month=t.Int(gte=1, lte=12),
    day=t.Int(gte=1, lte=31)
) & (lambda d: datetime.datetime(**d))

# Valid data
valid_data = {'year': 2024, 'month': 4, 'day': 12}
try:
    checked_date = date_validator.check(valid_data)
    print(f"Valid date: {checked_date}")
except t.DataError as e:
    print(f"Validation failed for valid data: {e.as_dict()}")

# Invalid data (missing day)
invalid_data = {'year': 2024, 'month': 4}
try:
    date_validator.check(invalid_data)
except t.DataError as e:
    print(f"Validation failed for invalid data: {e.as_dict()}")

# Invalid data (incorrect month)
invalid_month_data = {'year': 2024, 'month': 13, 'day': 1}
try:
    date_validator.check(invalid_month_data)
except t.DataError as e:
    print(f"Validation failed for incorrect month: {e.as_dict()}")

view raw JSON →