summaryrefslogtreecommitdiff
path: root/example_loader_instance.py
diff options
context:
space:
mode:
Diffstat (limited to 'example_loader_instance.py')
-rwxr-xr-xexample_loader_instance.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/example_loader_instance.py b/example_loader_instance.py
new file mode 100755
index 0000000..b7107cb
--- /dev/null
+++ b/example_loader_instance.py
@@ -0,0 +1,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)