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 values.iteritems():
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
47
48 d = dict()
49 for key, value in self.__dict__.iteritems():
50 if isinstance(value, Domain):
51 d[key] = value.to_dict()
52 else:
53 d[key] = value
54 return d
55
56 - def class_name(self):
57 return self.__class__.__name__.lower()
58
60 return json.dumps(self.to_dict(), sort_keys = True, indent = 2, cls = PaymentObjectEncoder)
61
64 if isinstance(obj, Domain):
65 return obj.to_dict()
66 else:
67 return json.JSONEncoder.default(self, obj)
68
74
75 -class DomainFactory(object):
76
77 cache = {}
78
79 @classmethod
80 - def factory(cls, module_name, values = None, fail_on_error = False):
81
82 class_name = module_name[0].upper() + module_name[1:]
83 try:
84 if class_name in cls.cache:
85 class_ = cls.cache[class_name]
86 else:
87 module_ = __import__('simplify')
88 class_ = getattr(module_, class_name)
89 cls.cache[class_name] = class_
90 if isinstance(values, dict):
91 return class_(values)
92 else:
93 return class_()
94 except AttributeError as e:
95 if fail_on_error:
96 raise e
97 else:
98 return DomainFactory.factory("domain", values, True)
99