get self.caller to work
[plcapi.git] / PLC / Legacy / Types.py
1 # Thierry Parmentelat - INRIA
2 # $Id$
3
4 from PLC.Method import Method
5 import v42legacy
6 import sys
7 current_module=sys.modules[__name__]
8
9 def import_deep(name):
10     mod = __import__(name)
11     components = name.split('.')
12     for comp in components[1:]:
13         mod = getattr(mod, comp)
14     return mod
15
16 v42_to_v43_methodmap = {
17     "AddSliceAttributeType"         : "AddTagType",
18     "DeleteSliceAttributeType"      : "DeleteTagType",
19     "GetSliceAttributeTypes"        : "GetTagTypes",
20     "UpdateSliceAttributeType"      : "UpdateTagType",
21     "AddNodeNetworkSettingType"     : "AddTagType",
22     "DeleteNodeNetworkSettingType"  : "DeleteTagType",
23     "GetNodeNetworkSettingTypes"    : "GetTagTypes",
24     "UpdateNodeNetworkSettingType"  : "UpdateTagType",
25 }    
26
27 methods = v42_to_v43_methodmap.keys()
28
29 v42_to_v43_argmap = { "name":"tagname" }
30 v43_to_v42_argmap = dict([ (v,k) for k,v in v42_to_v43_argmap.iteritems()])
31
32 def v42rename (x): return v42_to_v43_argmap.get(x,x)
33 def v43rename (x): return v43_to_v42_argmap.get(x,x)
34
35 # attach methods here
36 for legacyname in methods:
37     # new method name
38     newname=v42_to_v43_methodmap[legacyname]
39     path = "PLC.Methods."
40     setattr(current_module,legacyname,v42legacy.make_class(legacyname,newname,path,import_deep,v42rename,v43rename))