home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 October / maximum-cd-2011-10.iso / DiscContents / digsby_setup.exe / lib / ZSI / generate / pyclass.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2011-06-22  |  6.3 KB  |  157 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import sys
  5. import warnings
  6. from ZSI import TC
  7.  
  8. def _x():
  9.     pass
  10.  
  11.  
  12. try:
  13.     _x.func_name = '_y'
  14. except:
  15.     raise RuntimeError, 'use python-2.4 or later, cannot set function names in python "%s"' % sys.version
  16.  
  17. del _x
  18.  
  19. class pyclass_type(type):
  20.     
  21.     def __new__(cls, classname, bases, classdict):
  22.         typecode = classdict.get('typecode')
  23.         if len(bases) > 0:
  24.             pass
  25.         elif typecode.mixed:
  26.             (get, set) = cls._pyclass_type__create_text_functions_from_what(typecode)
  27.             if classdict.has_key(get.__name__):
  28.                 raise AttributeError, 'attribute %s previously defined.' % get.__name__
  29.             classdict.has_key(get.__name__)
  30.             if classdict.has_key(set.__name__):
  31.                 raise AttributeError, 'attribute %s previously defined.' % set.__name__
  32.             classdict.has_key(set.__name__)
  33.             classdict[get.__name__] = get
  34.             classdict[set.__name__] = set
  35.         
  36.         for what in typecode.ofwhat:
  37.             (get, set, new_func) = cls._pyclass_type__create_functions_from_what(what)
  38.             if classdict.has_key(get.__name__):
  39.                 raise AttributeError, 'attribute %s previously defined.' % get.__name__
  40.             classdict.has_key(get.__name__)
  41.             classdict[get.__name__] = get
  42.             if classdict.has_key(set.__name__):
  43.                 raise AttributeError, 'attribute %s previously defined.' % set.__name__
  44.             classdict.has_key(set.__name__)
  45.             classdict[set.__name__] = set
  46.             if new_func is not None:
  47.                 if classdict.has_key(new_func.__name__):
  48.                     raise AttributeError, 'attribute %s previously defined.' % new_func.__name__
  49.                 classdict.has_key(new_func.__name__)
  50.                 classdict[new_func.__name__] = new_func
  51.             
  52.             pname = what.pname
  53.             if pname is None and isinstance(what, TC.AnyElement):
  54.                 pname = 'any'
  55.             
  56.             pname = pname[0].upper() + pname[1:]
  57.             classdict[pname] = property(get, set, None, 'property for element (%s,%s), minOccurs="%s" maxOccurs="%s" nillable="%s"' % (what.nspname, what.pname, what.minOccurs, what.maxOccurs, what.nillable))
  58.         
  59.         if hasattr(typecode, 'attribute_typecode_dict'):
  60.             if not typecode.attribute_typecode_dict:
  61.                 pass
  62.             attribute_typecode_dict = { }
  63.             for key, what in attribute_typecode_dict.items():
  64.                 (get, set) = cls._pyclass_type__create_attr_functions_from_what(key, what)
  65.                 if classdict.has_key(get.__name__):
  66.                     raise AttributeError, 'attribute %s previously defined.' % get.__name__
  67.                 classdict.has_key(get.__name__)
  68.                 if classdict.has_key(set.__name__):
  69.                     raise AttributeError, 'attribute %s previously defined.' % set.__name__
  70.                 classdict.has_key(set.__name__)
  71.                 classdict[get.__name__] = get
  72.                 classdict[set.__name__] = set
  73.             
  74.         
  75.         return type.__new__(cls, classname, bases, classdict)
  76.  
  77.     
  78.     def __create_functions_from_what(what):
  79.         if not callable(what) and getattr(what, 'pyclass', None) is None:
  80.             new_func = None
  81.         elif isinstance(what, TC.ComplexType) or isinstance(what, TC.Array):
  82.             
  83.             def new_func(self):
  84.                 return what.pyclass()
  85.  
  86.         elif not callable(what):
  87.             
  88.             def new_func(self, value):
  89.                 return what.pyclass(value)
  90.  
  91.         elif issubclass(what.klass, TC.ComplexType) or issubclass(what.klass, TC.Array):
  92.             
  93.             def new_func(self):
  94.                 p = what().pyclass
  95.                 if p is None:
  96.                     return None
  97.                 return p()
  98.  
  99.         else:
  100.             
  101.             def new_func(self, value = (None,)):
  102.                 p = what().pyclass
  103.                 if p is None:
  104.                     return None
  105.                 if value is None:
  106.                     return p()
  107.                 return p(value)
  108.  
  109.         if new_func is not None:
  110.             new_func.__name__ = 'new_%s' % what.pname
  111.         
  112.         get.func_name = 'get_element_%s' % what.pname
  113.         set.func_name = 'set_element_%s' % what.pname
  114.         return (get, set, new_func)
  115.  
  116.     __create_functions_from_what = staticmethod(__create_functions_from_what)
  117.     
  118.     def __create_attr_functions_from_what(key, what):
  119.         
  120.         def get(self):
  121.             'returns attribute value for attribute %s, else None.\n            ' % str(key)
  122.             return getattr(self, what.attrs_aname, { }).get(key, None)
  123.  
  124.         
  125.         def set(self, value):
  126.             'set value for attribute %s.\n            value -- initialize value, immutable type\n            ' % str(key)
  127.             if not hasattr(self, what.attrs_aname):
  128.                 setattr(self, what.attrs_aname, { })
  129.             
  130.             getattr(self, what.attrs_aname)[key] = value
  131.  
  132.         if type(key) in (tuple, list):
  133.             get.__name__ = 'get_attribute_%s' % key[1]
  134.             set.__name__ = 'set_attribute_%s' % key[1]
  135.         else:
  136.             get.__name__ = 'get_attribute_%s' % key
  137.             set.__name__ = 'set_attribute_%s' % key
  138.         return (get, set)
  139.  
  140.     __create_attr_functions_from_what = staticmethod(__create_attr_functions_from_what)
  141.     
  142.     def __create_text_functions_from_what(what):
  143.         
  144.         def get(self):
  145.             return getattr(self, what.mixed_aname, None)
  146.  
  147.         get.im_func = 'get_text'
  148.         
  149.         def set(self, value):
  150.             setattr(self, what.mixed_aname, value)
  151.  
  152.         get.im_func = 'set_text'
  153.         return (get, set)
  154.  
  155.     __create_text_functions_from_what = staticmethod(__create_text_functions_from_what)
  156.  
  157.