Skip to main content

Data modeling and validation Python library

Project description

Latest version License Build status

Booby is a standalone data modeling and validation library written in Python. Booby is under active development (visit this blog post for more info and the roadmap) and licensed under the Apache2 license, so feel free to contribute and report errors and suggestions.

This is an active fork.

Usage

See the sample code below to get an idea of the main features.

from booby import Model, fields


class Token(Model):
    key = fields.String()
    secret = fields.String()


class Address(Model):
    line_1 = fields.String()
    line_2 = fields.String()


class User(Model):
    login = fields.String(required=True)
    name = fields.String()
    email = fields.Email()
    token = fields.Embedded(Token, required=True)
    addresses = fields.Collection(Address)

jack = User(
    login='jack',
    name='Jack',
    email='jack@example.com',
    token={
        'key': 'vs7dfxxx',
        'secret': 'ds5ds4xxx'
    },
    addresses=[
        {'line_1': 'Main Street'},
        {'line_1': 'Main St'}
    ]
)

if jack.is_valid:
    print jack.to_json(indent=2)
else:
    print json.dumps(dict(jack.validation_errors))
{
  "email": "jack@example.com",
  "login": "jack",
  "token": {
    "secret": "ds5ds4xxx",
    "key": "vs7dfxxx"
  },
  "name": "Jack",
  "addresses": [
    {
      "line_1": "Main St",
      "line_2": null
    },
    {
      "line_1": "Main Street",
      "line_2": null
    }
  ]
}

Installation

You can install the last stable release of Booby from PyPI using pip or easy_install.

$ pip install booby

Also you can install the latest sources from Github.

$ pip install -e git+git://github.com/jaimegildesagredo/booby.git#egg=booby

Tests

To run the Booby test suite you should install the development requirements and then run nosetests.

$ pip install -r test-requirements.txt
$ nosetests tests/unit
$ nosetests tests/integration

Changes

See Changes.

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

metabooby-0.10.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

metabooby-0.10.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file metabooby-0.10.0.tar.gz.

File metadata

  • Download URL: metabooby-0.10.0.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.10

File hashes

Hashes for metabooby-0.10.0.tar.gz
Algorithm Hash digest
SHA256 e160e8ba6538cabff965115495809e3648a1c3e2b3392a23252284ccb7b0d2f1
MD5 19de2e2a7fccfa91da5a748260dc4a98
BLAKE2b-256 a551329f922fbf0c2a4a2a8cda96920fb647e192f65d3d3d1c303099fd0b05aa

See more details on using hashes here.

File details

Details for the file metabooby-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: metabooby-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/56.0.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.10

File hashes

Hashes for metabooby-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e545da344ac9b744528bc58bd27010ab1b67e791067adfa00b529814470a65cc
MD5 3d0e69e876d39c6a6f9930528a5d07e3
BLAKE2b-256 7a3057eebd39e52964824d244bc4f545018ffa882bc5350af0f8dcb1336a6d99

See more details on using hashes here.

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