Each example contains three parts:
AXON;pprint'ing of the loaded objects;AXON of the objects.First import module axon.
In [2]:
import axon
from pprint import pprint
This example of lists of atomic values.
In [4]:
text = """
[1 3.14 1000D "abc абв" 2015-12-01 12:00-03:00 2015-12-01T12:00+03:00 ? ∞]
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
In [5]:
text = """
{name:"Alex" age:32}
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
In [6]:
text = """
[name:"Alex" age:32]
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
In [7]:
text = """
(1 2005-06-15 11:00 4500d 0.75)
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
In [8]:
text = """
person {name:"Alex" age:34}
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
In [9]:
class Person:
__slots__ = ('name', 'age')
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return "Person(name=%r, age=%r)" % (self.name, self.age)
@axon.factory("person")
def person_factory(attrs, vals):
return Person(**attrs)
@axon.reduce(Person)
def person_reduce(p):
return axon.node("person", axon.odict([("name", p.name), ("age", p.age)]))
text = """
person {name:"Alex" age:34}
"""
vals = axon.loads(text, mode="strict")
pprint(vals)
axon.display_html(vals)
In [10]:
text = """
tree {
node {
id: 1
leaf {
id: 2
val: "abc"
}
leaf {
id: 3
val: "def"
}
}
leaf {
id: 4
val: "ghi"
}
}
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
Graph with list of attributed nodes and list of attributed edges.
In [11]:
text = """
graph {
nodes: [
&n1 node {id:1 val:4}
&n2 node {id:2 val:7}
&n3 node {id:3 val:2}
&n4 node {id:4 val:5}
]
edges: [
edge {val:12 *n1 *n2}
edge {val:8 *n1 *n4}
edge {val:-2 *n2 *n3}
edge {val:5 *n3 *n4}
]
}
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
In [12]:
text = """
[1 2015-12-01 12:00]
(1 2005-06-15 11:00 4500d 0.75)
{name:"Alex" age:32}
[name:"Alex" age:32]
person {name:"Alex" age:34}
"""
vals = axon.loads(text)
pprint(vals)
axon.display_html(vals)
In [5]:
text = """
list: [1 2015-12-01 12:00]
dict: (1 2005-06-15 11:00 4500d 0.75)
tuple: {name:"Alex" age:32}
odict: [name:"Alex" age:32]
node: person {name:"Alex" age:34}
"""
vals = axon.loads(text)
for key, val in vals.items():
print(key, ':', val)
#axon.display_html(vals)
In [ ]: