Skip to content
/ ciri Public

Python Object Serialization

License

Notifications You must be signed in to change notification settings

ericb/ciri

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ciri

Ciri helps you build schema definitions for your application; giving you a foundation to perform validation, serialization and encoding.

Features

  • Python 3/2 support
  • Serialize data to basic Python types
  • Deserialize data back to schema objects
  • Schema encoding
  • Polymorphic schemas
  • Composable Fields
  • Controllable error handling
  • Pre/post processors available on fields
  • Simple API

Install

$ pip install ciri

Documentation

Documentation can be found at http://ciri.hellouser.net/ .

Example

import datetime

from ciri import fields, Schema, ValidationError


class Actor(Schema):

    first_name = fields.String()
    last_name = fields.String()


class Movie(Schema):

    title = fields.String()
    released = fields.Date()
    cast = fields.List(Actor())


movie = Movie()
output = movie.serialize({'title': 'Good Will Hunting',
                           'released': datetime.date(1998, 1, 9),
                           'cast': [
                               {'first_name': 'Matt', 'last_name': 'Damon'},
                               {'first_name': 'Ben', 'last_name': 'Affleck'},
                               {'first_name': 'Robin', 'last_name': 'Williams'}
                           ]})

# output:
# {'cast': [{'last_name': 'Damon', 'first_name': 'Matt'},
#           {'last_name': 'Affleck', 'first_name': 'Ben'},
#           {'last_name': 'Williams', 'first_name': 'Robin'}],
#  'released': '1998-01-09',
#  'title': 'Good Will Hunting'}

About

Python Object Serialization

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages