Skip to main content

Databind is a library inspired by Jackson-databind to describe and bind data models for object-oriented programming.

Project description

databind.core

Databind is a library inspired by Jackson-databind to describe and bind data models for object-oriented programming. The databind.core package provides the abstractions to generalize the (de-) serialization process such that it can be implemented for arbitrary data formats.

Databind requires Python 3.6+ because of it's dependency on class-member type hints and the dataclasses module (for which there exists a backport from Python 3.7 to 3.6 on PyPI).

Quickstart

from databind.core import datamodel, field
from typing import Optional

@datamodel
class Person:
  """ Class that represents a person's details. """
  name: str
  age: Optional[int] = field(default=None)
  address: Optional[str] = field(default=None)

Then you'll need to pick a serialization library. Below is an example for databind.json:

from databind import json

person = json.from_str(Person, '{"name": "John Wick", "age": 55}')

assert isinstance(person, Person)
assert person.name == 'John Wick'

print(json.to_str(person))

Copyright © 2020 – Niklas Rosenstein

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

databind.core-0.2.0.tar.gz (11.2 kB view hashes)

Uploaded Source

Built Distribution

databind.core-0.2.0-py3-none-any.whl (12.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page