home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / ZSI / __init__.pyo (.txt) next >
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  15.7 KB  |  273 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. _copyright = 'ZSI:  Zolera Soap Infrastructure.\n\nCopyright 2001, Zolera Systems, Inc.  All Rights Reserved.\nCopyright 2002-2003, Rich Salz. All Rights Reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the "Software"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, and/or\nsell copies of the Software, and to permit persons to whom the Software\nis furnished to do so, provided that the above copyright notice(s) and\nthis permission notice appear in all copies of the Software and that\nboth the above copyright notice(s) and this permission notice appear in\nsupporting documentation.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\nOF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS\nINCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT\nOR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\nOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE\nOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE\nOR PERFORMANCE OF THIS SOFTWARE.\n\nExcept as contained in this notice, the name of a copyright holder\nshall not be used in advertising or otherwise to promote the sale, use\nor other dealings in this Software without prior written authorization\nof the copyright holder.\n\n\nPortions are also:\n\nCopyright (c) 2003, The Regents of the University of California,\nthrough Lawrence Berkeley National Laboratory (subject to receipt of\nany required approvals from the U.S. Dept. of Energy). All rights\nreserved. Redistribution and use in source and binary forms, with or\nwithout modification, are permitted provided that the following\nconditions are met:\n\n(1) Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n(2) Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n(3) Neither the name of the University of California, Lawrence Berkeley\nNational Laboratory, U.S. Dept. of Energy nor the names of its contributors\nmay be used to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS\nBE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\nCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\nGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\nLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\nOUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGE.\n\nYou are under no obligation whatsoever to provide any bug fixes,\npatches, or upgrades to the features, functionality or performance of\nthe source code ("Enhancements") to anyone; however, if you choose to\nmake your Enhancements available either publicly, or directly to\nLawrence Berkeley National Laboratory, without imposing a separate\nwritten license agreement for such Enhancements, then you hereby grant\nthe following license: a non-exclusive, royalty-free perpetual license\nto install, use, modify, prepare derivative works, incorporate into\nother computer software, distribute, and sublicense such Enhancements\nor derivative works thereof, in binary and source code form.\n\n\nFor wstools also:\n\nZope Public License (ZPL) Version 2.0\n-----------------------------------------------\n\nThis software is Copyright (c) Zope Corporation (tm) and\nContributors. All rights reserved.\n\nThis license has been certified as open source. It has also\nbeen designated as GPL compatible by the Free Software\nFoundation (FSF).\n\nRedistribution and use in source and binary forms, with or\nwithout modification, are permitted provided that the\nfollowing conditions are met:\n\n1. Redistributions in source code must retain the above\n   copyright notice, this list of conditions, and the following\n   disclaimer.\n\n2. Redistributions in binary form must reproduce the above\n   copyright notice, this list of conditions, and the following\n   disclaimer in the documentation and/or other materials\n   provided with the distribution.\n\n3. The name Zope Corporation (tm) must not be used to\n   endorse or promote products derived from this software\n   without prior written permission from Zope Corporation.\n\n4. The right to distribute this software or to use it for\n   any purpose does not give you the right to use Servicemarks\n   (sm) or Trademarks (tm) of Zope Corporation. Use of them is\n   covered in a separate agreement (see\n   http://www.zope.com/Marks).\n\n5. If any files are modified, you must cause the modified\n   files to carry prominent notices stating that you changed\n   the files and the date of any change.\n\nDisclaimer\n\n  THIS SOFTWARE IS PROVIDED BY ZOPE CORPORATION ``AS IS\'\'\n  AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT\n  NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n  AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN\n  NO EVENT SHALL ZOPE CORPORATION OR ITS CONTRIBUTORS BE\n  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n  DAMAGE.\n\n\nThis software consists of contributions made by Zope\nCorporation and many individuals on behalf of Zope\nCorporation.  Specific attributions are listed in the\naccompanying credits file.\n'
  5. from xml.dom import Node as _Node
  6. import types as _types
  7. from ZSI.wstools.Namespaces import ZSI_SCHEMA_URI
  8. UNICODE_ENCODING = 'utf-8'
  9. _inttypes = [
  10.     _types.IntType,
  11.     _types.LongType]
  12. _floattypes = [
  13.     _types.FloatType]
  14. _seqtypes = [
  15.     _types.TupleType,
  16.     _types.ListType]
  17. _stringtypes = [
  18.     _types.StringType,
  19.     _types.UnicodeType]
  20.  
  21. _attrs = lambda E: if not E.attributes or E.attributes.values():
  22. pass[]
  23.  
  24. _children = lambda E: if not E.childNodes:
  25. pass[]
  26.  
  27. _child_elements = lambda E: if not E.childNodes:
  28. pass_[1]
  29. from ZSI.wstools.Namespaces import SOAP as _SOAP, SCHEMA as _SCHEMA, XMLNS as _XMLNS
  30.  
  31. _find_arraytype = lambda E: E.getAttributeNS(_SOAP.ENC, 'arrayType')
  32.  
  33. _find_encstyle = lambda E: E.getAttributeNS(_SOAP.ENV, 'encodingStyle')
  34.  
  35. try:
  36.     from xml.dom import EMPTY_NAMESPACE
  37.     _empty_nsuri_list = [
  38.         EMPTY_NAMESPACE]
  39. except:
  40.     _empty_nsuri_list = [
  41.         None,
  42.         '']
  43.  
  44.  
  45. def _find_attr(E, attr):
  46.     for nsuri in _empty_nsuri_list:
  47.         
  48.         try:
  49.             v = E.getAttributeNS(nsuri, attr)
  50.             if v:
  51.                 return v
  52.         continue
  53.         continue
  54.  
  55.     
  56.  
  57.  
  58. def _find_attrNS(E, namespaceURI, localName):
  59.     
  60.     try:
  61.         v = E.getAttributeNS(namespaceURI, localName)
  62.         if v:
  63.             return v
  64.     except:
  65.         pass
  66.  
  67.  
  68.  
  69. def _find_attrNodeNS(E, namespaceURI, localName):
  70.     attr = E.getAttributeNodeNS(namespaceURI, localName)
  71.     if attr is None:
  72.         return None
  73.     
  74.     
  75.     try:
  76.         return attr.value
  77.     except:
  78.         pass
  79.  
  80.     return E.getAttributeNS(namespaceURI, localName)
  81.  
  82.  
  83. _find_href = lambda E: _find_attr(E, 'href')
  84.  
  85. _find_xsi_attr = lambda E, attr: if not E.getAttributeNS(_SCHEMA.XSI3, attr) and E.getAttributeNS(_SCHEMA.XSI1, attr):
  86. passE.getAttributeNS(_SCHEMA.XSI2, attr)
  87.  
  88. _find_type = lambda E: _find_xsi_attr(E, 'type')
  89.  
  90. _find_xmlns_prefix = lambda E, attr: E.getAttributeNS(_XMLNS.BASE, attr)
  91.  
  92. _find_default_namespace = lambda E: E.getAttributeNS(_XMLNS.BASE, None)
  93.  
  94. _get_element_nsuri_name = lambda E: (E.namespaceURI, E.localName)
  95.  
  96. _is_element = lambda E: E.nodeType == _Node.ELEMENT_NODE
  97.  
  98. def _resolve_prefix(celt, prefix):
  99.     namespace = None
  100.     while _is_element(celt):
  101.         if prefix:
  102.             namespaceURI = _find_xmlns_prefix(celt, prefix)
  103.         else:
  104.             namespaceURI = _find_default_namespace(celt)
  105.         if namespaceURI:
  106.             break
  107.         
  108.         celt = celt.parentNode
  109.     if prefix:
  110.         raise EvaluateException, 'cant resolve xmlns:%s' % prefix
  111.     
  112.     return namespaceURI
  113.  
  114.  
  115. def _valid_encoding(elt):
  116.     enc = _find_encstyle(elt)
  117.     if not enc or enc == _SOAP.ENC:
  118.         return 1
  119.     
  120.     for e in enc.split():
  121.         if e.startswith(_SOAP.ENC):
  122.             return 1
  123.             continue
  124.     
  125.     return 0
  126.  
  127.  
  128. def _backtrace(elt, dom):
  129.     s = ''
  130.     for c in _child_elements(parent):
  131.         if c.nodeName == name:
  132.             continue
  133.         _[1][c]
  134.         matches = _[1]
  135.         elt = parent
  136.         None if len(matches) == 1 else []
  137.     return s
  138.  
  139.  
  140. def _get_idstr(pyobj):
  141.     x = id(pyobj)
  142.     if x < 0:
  143.         return 'x%x' % abs(x)
  144.     
  145.     return 'o%x' % x
  146.  
  147.  
  148. def _get_postvalue_from_absoluteURI(url):
  149.     cache = _get_postvalue_from_absoluteURI.cache
  150.     path = cache.get(url, '')
  151.     if not path:
  152.         (scheme, authpath) = url.split('://')
  153.         s = authpath.split('/', 1)
  154.         if len(s) == 2:
  155.             path = '/%s' % s[1]
  156.         
  157.         if len(cache) > _get_postvalue_from_absoluteURI.MAXLEN:
  158.             cache.clear()
  159.         
  160.         cache[url] = path
  161.     
  162.     return path
  163.  
  164. _get_postvalue_from_absoluteURI.cache = { }
  165. _get_postvalue_from_absoluteURI.MAXLEN = 20
  166.  
  167. class ZSIException(Exception):
  168.     pass
  169.  
  170.  
  171. class ParseException(ZSIException):
  172.     
  173.     def __init__(self, str, inheader, elt = None, dom = None):
  174.         Exception.__init__(self)
  175.         self.str = str
  176.         self.inheader = inheader
  177.         self.trace = None
  178.         if elt and dom:
  179.             self.trace = _backtrace(elt, dom)
  180.         
  181.  
  182.     
  183.     def __str__(self):
  184.         if self.trace:
  185.             return self.str + '\n[Element trace: ' + self.trace + ']'
  186.         
  187.         return self.str
  188.  
  189.     
  190.     def __repr__(self):
  191.         return '<%s.ParseException %s>' % (__name__, _get_idstr(self))
  192.  
  193.  
  194.  
  195. class EvaluateException(ZSIException):
  196.     
  197.     def __init__(self, str, trace = None):
  198.         Exception.__init__(self)
  199.         self.str = str
  200.         self.trace = trace
  201.  
  202.     
  203.     def __str__(self):
  204.         if self.trace:
  205.             return self.str + '\n[Element trace: ' + self.trace + ']'
  206.         
  207.         return self.str
  208.  
  209.     
  210.     def __repr__(self):
  211.         return '<%s.EvaluateException %s>' % (__name__, _get_idstr(self))
  212.  
  213.  
  214.  
  215. class FaultException(ZSIException):
  216.     
  217.     def __init__(self, fault):
  218.         self.fault = fault
  219.  
  220.     
  221.     def __str__(self):
  222.         return str(self.fault)
  223.  
  224.     
  225.     def __repr__(self):
  226.         return '<%s.FaultException %s>' % (__name__, _get_idstr(self))
  227.  
  228.  
  229.  
  230. class WSActionException(ZSIException):
  231.     pass
  232.  
  233. import version
  234.  
  235. def Version():
  236.     return version.Version
  237.  
  238. from writer import SoapWriter
  239. from parse import ParsedSoap
  240. from fault import Fault, FaultFromActor, FaultFromException, FaultFromFaultMessage, FaultFromNotUnderstood, FaultFromZSIException
  241. import TC
  242. TC.RegisterType(TC.String, minOccurs = 0, nillable = False)
  243. TC.RegisterType(TC.URI, minOccurs = 0, nillable = False)
  244. TC.RegisterType(TC.Base64String, minOccurs = 0, nillable = False)
  245. TC.RegisterType(TC.HexBinaryString, minOccurs = 0, nillable = False)
  246. for pyclass in (TC.IunsignedByte, TC.IunsignedShort, TC.IunsignedInt, TC.IunsignedLong, TC.Ibyte, TC.Ishort, TC.Iint, TC.Ilong, TC.InegativeInteger, TC.InonPositiveInteger, TC.InonNegativeInteger, TC.IpositiveInteger, TC.Iinteger, TC.FPfloat, TC.FPdouble):
  247.     TC.RegisterType(pyclass, minOccurs = 0, nillable = False)
  248.  
  249. TC.RegisterType(TC.Boolean, minOccurs = 0, nillable = False)
  250. TC.RegisterType(TC.Duration, minOccurs = 0, nillable = False)
  251. TC.RegisterType(TC.gDateTime, minOccurs = 0, nillable = False)
  252. TC.RegisterType(TC.gDate, minOccurs = 0, nillable = False)
  253. TC.RegisterType(TC.gYearMonth, minOccurs = 0, nillable = False)
  254. TC.RegisterType(TC.gYear, minOccurs = 0, nillable = False)
  255. TC.RegisterType(TC.gMonthDay, minOccurs = 0, nillable = False)
  256. TC.RegisterType(TC.gDay, minOccurs = 0, nillable = False)
  257. TC.RegisterType(TC.gTime, minOccurs = 0, nillable = False)
  258. TC.RegisterType(TC.Apache.Map, minOccurs = 0, nillable = False)
  259. import schema
  260. for i in [
  261.     int,
  262.     float,
  263.     str,
  264.     tuple,
  265.     list,
  266.     unicode]:
  267.     schema._GetPyobjWrapper.RegisterBuiltin(i)
  268.  
  269. schema.RegisterAnyElement()
  270. if __name__ == '__main__':
  271.     print _copyright
  272.  
  273.