In [1]:
import axon

In [2]:
from decimal import Decimal
from datetime import datetime, time, date
text = axon.dumps([['abc абв', 1, 3.14, True], [datetime.now(), Decimal('3.14')]])
print(text)


["abc абв" 1 3.14 true]
[^2016-06-26T17:01:41.827944 3.14D]

In [3]:
vals = [
    {'id':1, 'nickname':'nick', 'time':time(12, 31, 34), 'text':'hello!'},
    {'id':2, 'nickname':'mark', 'time':time(12, 32, 3), 'text':'hi!'}
]

In [4]:
text = axon.dumps(vals)
print(text)


{id:1 nickname:"nick" text:"hello!" time:^12:31:34}
{id:2 nickname:"mark" text:"hi!" time:^12:32:03}

In [5]:
text = axon.dumps(vals, pretty=1)
print(text)


{ id: 1
  nickname: "nick"
  text: "hello!"
  time: ^12:31:34}
{ id: 2
  nickname: "mark"
  text: "hi!"
  time: ^12:32:03}

In [6]:
vals == axon.loads(text)


Out[6]:
True

In [7]:
vals = [[{'a':1, 'b':2, 'c':3}, {'a':[1,2,3], 'b':(1,2,3), 'c':{1,2,3}}]]
text = axon.dumps(vals)
print(text)


[{a:1 b:2 c:3} {a:[1 2 3] b:(1 2 3) c:{1 2 3}}]

In [8]:
text = axon.dumps(vals, pretty=1)
print(text)


[ { a: 1
    b: 2
    c: 3}
  { a: [1 2 3]
    b: (1 2 3)
    c: {1 2 3}}]

In [9]:
vals == axon.loads(text)


Out[9]:
True

In [10]:
vals = axon.loads('person{name:"nick" age:32 email:"nail@example.com"}')
print(type(vals[0]))
print(vals[0])


<class 'axon._objects.Node'>
person OrderedDict([('name', 'nick'), ('age', 32), ('email', 'nail@example.com')]) None
person{name: 'nick', age: 32, email: 'nail@example.com'}

In [11]:
text = axon.dumps(vals)
print(text)


person{name:"nick" age:32 email:"nail@example.com"}

In [12]:
text = axon.dumps(vals, pretty=1)
print(text)


person
  name: "nick"
  age: 32
  email: "nail@example.com"

In [13]:
text = axon.dumps(vals, pretty=1, braces=1)
print(text)


person {
  name: "nick"
  age: 32
  email: "nail@example.com"}

In [14]:
class Person:
    def __init__(self, name, age, email):
        self.name = name
        self.age = age
        self.email = email
        
    def __str__(self):
        return "Person(name=%r, age=%r, email=%r)" % (self.name, self.age, self.email)

@axon.reduce(Person)
def reduce_Person(p):
    return axon.node('person', {'name':p.name, 'age':p.age, 'email':p.email})

@axon.factory('person')
def factory_Person(attrs, vals):
    return Person(name=attrs['name'], age=attrs['age'], email=attrs['email'])

In [15]:
p = Person('nick', 32, 'mail@example.com')
text = axon.dumps([p])
print(text)


person{age:32 email:"mail@example.com" name:"nick"}

In [16]:
val = axon.loads(text, mode='strict')[0]
print(val)


Person(name='nick', age=32, email='mail@example.com')

In [17]:
print(val.name==p.name, val.age==p.age, val.email==p.email)


True True True

In [ ]:


In [ ]: