summaryrefslogtreecommitdiff
path: root/example_loader_instance.py
blob: b7107cb3dbd294254af53069f0db8bc1b0d3a5c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python3

import sys
sys.path.insert(0, 'lib')

from yaml import *

ldr = SafeLoader()

def dice_constructor1(loader, node):
    value = loader.construct_scalar(node)
    a, b = map(int, value.split('d'))
    return [a,b]

def dice_constructor2(loader, node):
    value = loader.construct_scalar(node)
    a, b = map(int, value.split('d'))
    return [b,a]

s = """
- !dice 3d4
"""



add_constructor('!dice', dice_constructor1, SafeLoader)

print()
data = load(s, SafeLoader)
print('1) SafeLoader -> %s' % data)
data = load(s, ldr)
print('1) Instance   -> %s' % data)



ldr.add_constructor('!dice', dice_constructor2)

print()
data = load(s, SafeLoader)
print('2) SafeLoader -> %s' % data)
data = load(s, ldr)
print('2) Instance   -> %s' % data)



ldr.add_constructor('!dice', None)

print()
data = load(s, SafeLoader)
print('3) SafeLoader -> %s' % data)
data = load(s, ldr)
print('3) Instance   -> %s' % data)