Package simplify ::
Module domain
|
|
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 import json
32
33 - def __init__(self, values = None):
34 if values is None:
35 values = {}
36 for key, value in list(values.items()):
37 self.__dict__[key] = build_payment_object(key, value)
38
39 if "id" in self.__dict__:
40 self.object_id = self.__dict__["id"]
41
42 - def __getitem__(self, key):
43 if key in self.__dict__:
44 return self.__dict__[key]
45
46 - def __setitem__(self, key, value):
47 self.__dict__[key] = value
48
50
51 d = dict()
52 for key, value in list(self.__dict__.items()):
53 if isinstance(value, Domain):
54 d[key] = value.to_dict()
55 else:
56 d[key] = value
57 return d
58
59 - def class_name(self):
60 return self.__class__.__name__.lower()
61
63 return json.dumps(self.to_dict(), sort_keys = True, indent = 2, cls = PaymentObjectEncoder)
64
67 if isinstance(obj, Domain):
68 return obj.to_dict()
69 else:
70 return json.JSONEncoder.default(self, obj)
71
77
78 -class DomainFactory(object):
79
80 cache = {}
81
82 @classmethod
83 - def factory(cls, module_name, values = None, fail_on_error = False):
84
85 class_name = module_name[0].upper() + module_name[1:]
86 try:
87 if class_name in cls.cache:
88 class_ = cls.cache[class_name]
89 else:
90 module_ = __import__('simplify')
91 class_ = getattr(module_, class_name)
92 cls.cache[class_name] = class_
93 if isinstance(values, dict):
94 return class_(values)
95 else:
96 return class_()
97 except AttributeError as e:
98 if fail_on_error:
99 raise e
100 else:
101 return DomainFactory.factory("domain", values, True)
102