Python library for data validation
Project description
Oblate — data, made easy
Oblate is a Python library that provides modern and robust interface for data and schema validation.
Focused around simplicity and flexibility, Oblate has the following features:
- Intuitive and modern object oriented interface
- Built in support for commonly used data structures
- Easily extendible and customizable to suit every use case
- Robust with no compromise on performance and speed
- Typed and plays well with static type checking
Documentation • Source Code • Python Package Index
Installation
Oblate is available on PyPi and can be installed using pip.
$ pip install oblate
ℹ️ Didn't work? Try prefixing the above command with
python -m
if you don't havepip
on PATH or the command doesn't work for some reason.
Usage
Oblate is focused around simplicity and ease of usage. Below snippet is an example of how data is handled using Oblate:
from oblate import validate, fields
import oblate
# A schema defines the structure of data
class Author(oblate.Schema):
name = fields.String() # Field must be a string
bio = fields.String(none=True) # Field allows None to be passed
rating = fields.Integer(default=0) # Optional field that defaults to 0
# Apply custom validations to a field
@validate.field(rating)
def validate_rating(self, value, ctx):
assert value >= 0 and value <= 10, 'Rating must be in range 0-10 inclusive'
class Book(oblate.Schema):
title = fields.String()
price = fields.Float()
author = fields.Object(Author)
data = {
'title': 'Art of Data Validation',
'price': 20.30,
'author': {
'name': 'John',
'bio': None,
'rating': 4,
}
}
book = Book(data)
print(f"{book.title} by {book.author.name}")
Check the Quickstart section in documentation for an introduction to the basics of library.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file oblate-1.2.1-py3-none-any.whl
.
File metadata
- Download URL: oblate-1.2.1-py3-none-any.whl
- Upload date:
- Size: 41.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7365e00e2f25e1780802a8bb1683553dae2491534cb21b0eb6846c0fa1db6ed1 |
|
MD5 | 1e6b2643c36aac6c67b9d2b7088eb39b |
|
BLAKE2b-256 | b4561c39fa9c3b3653fc4874cf5a7aec5ff521805bcd275150d517e5ffdd4bca |