Commit Graph

49 Commits

Author SHA1 Message Date
Jurko Gospodnetić 23bc0434a2 add todo comment on cleaning up XSD Schema build step timing 2015-07-01 11:14:52 +02:00
Jurko Gospodnetić 27970c43fc update comment wording (stylistic) 2015-07-01 10:50:21 +02:00
Jurko Gospodnetić a84fe3a57d add missing empty line in function comment (stylistic, PEP-8) 2015-07-01 10:48:29 +02:00
Jurko Gospodnetić 556ee3b67d add implementation & todo comment on how Schema objects get built 2015-07-01 10:43:35 +02:00
Jurko Gospodnetić 085165042d refactor DepList.sort() to a standalone dependency_sort() function
Renamed the suds.xsd.deplist module to suds.xsd.depsort.
Removed the DepList class and replaced its main/only functionality with a single
dependency_sort() function taking a dependency dictionary and returning the same
list that used to be returned by the DepList.sort() method.

The returned list's contents matches the items returned by the dependency
dictionary's items() method, but sorted so that dependencies come first.

Updated project release notes.

Additional included changes:
 * cleaned up the test_dependency_sort.py test module - cleanly separated
   basic tests, test utilities and test utility tests
 * added a test to make sure dependency_sort() does not modify its input data
 * documented that any entries found listed as dependencies, but that do not
   have their own dependencies listed as well, are logged & ignored
2014-06-27 16:17:25 +02:00
Jurko Gospodnetić d17d389477 clean up the suds.xsd.schema module
Reordered module imports alphabetically.
Always passing a tuple as a %-string formatting parameter.
Used double instead of single quotes in string literals.
Docstring & comment cleanup.
2014-02-28 01:51:41 +01:00
Jurko Gospodnetić e5cf6ba74b correct try:/except: blocks eating up internal Python exceptions
All such block replaced with blocks catching Exception subclasses only so they
no longer eat up internal Python exceptions like SystemExit or
KeyboardInterrupt.
2014-02-28 00:51:15 +01:00
Jurko Gospodnetić 73e1c25717 clean up coding style in several suds Python modules
Consistently using double instead of single quotes.
Using consistent empty line spacing between method definitions.
All doctrings PEP8-ified.
Improved several docstrings.
Using 'xsd:' XML namespace alias when referring to the XSD namespace instead of
sometimes using 'xs:' and sometimes 'xsd:'.
Ordered some descriptive tuple and dictionary member definitions alphabetically.
Order imports alphabetically.
Comment line wrapping cleaned up.
Miscellaneous minor stylistic code & comment changes.
2014-01-26 14:49:18 +01:00
Jurko Gospodnetić ee8a547924 remove unnecessary logger objects
Code cleaned up a bit while looking for unused logger objects:
 * Trailing spaces removed.
 * Reordered import directives.
 * Removed some unnecessary import directives.
2013-12-26 03:32:33 +01:00
Jurko Gospodnetić eea88607fb correct comment typos 2013-11-29 15:19:30 +01:00
Jurko Gospodnetić 792a0f4b43 Removed the str_to_utf8_in_py2() Python 2/3 compatibility quick fix.
No longer seems to be needed. Printing out schema & schema objects as strings
now seems to work fine and use their unicode representations. Updated todo list.
2013-03-29 05:31:17 +01:00
Jurko Gospodnetić da3862e6be Typo corrections & other minor stylistic comment changes. Updated todo list. 2011-12-21 19:55:25 +01:00
Jurko Gospodnetić 6c61aefc89 Encoding related changes needed for Python 3 support. 2011-12-20 15:49:35 +01:00
Jurko Gospodnetić 4b63f7c9a7 Replace all __str__ methods by UnicodeMixin class. 2011-12-20 15:49:35 +01:00
Jurko Gospodnetić 7d96121e70 Cleanup - trimmed trailing spaces, removed unnecessary imports, etc.
Trimmed trailing spaces. Removed unnecessary imports. Standardized quote usage
in some modules.
2011-12-20 15:12:32 +01:00
jortel 780f8f85ff Fix duplicate DocumentPlugin.parsed() called when wsdl imports schema. 2010-09-01 17:38:56 +00:00
jortel 9c23c8d766 plugin API - version 2. 2010-08-24 14:42:24 +00:00
jortel 4a6c53fea5 Modified plugin API to: initialized(), loaded(), sending() & received(). 2010-05-13 17:51:00 +00:00
jortel a5fde7a6b0 Add Plugins facility. Supports hooks for onInit(), onLoad(), onSend() onReply() events. 2010-05-11 20:44:48 +00:00
jortel 9053f325c5 Update epydocs suds/xsd/schema.py 2010-05-06 21:53:31 +00:00
jortel 63eb8bb550 Enable WSDL caching as pickled object; refactor caching; remove /options/ attributes on object within (xsd) package and instead - pass to methods as needed (which was only a few); remove /schema/ & /options/ attributes from objects in (binding) package and get from wsdl instead; replace Object subclasses with Facade in wsdl for better pickling - true subclasses have no value here anyway. 2010-01-26 22:19:21 +00:00
jortel 9c80ebd8f9 Remove metric gathering/printing for autoblend(). 2009-12-11 01:04:06 +00:00
jortel e9ca56a54a Add autoblend feature (disabled by default). The feature (option) ensures that all schemas defined in the wsdl import each other. This feature remains experimental because I'm not sure of the side effects. We can enable by default if does not create any problems. 2009-12-11 01:02:02 +00:00
jortel b3baaad313 Centralize the conversion of schema objects attribute values from references (qualified references) qrefs. This provides several benifits: 1) deduplicated code; 2) ns prefix resolution happens before merging so that it happends in proper context. 2009-09-28 20:38:14 +00:00
jortel b1860288d0 Complete the list of XSD builtin (simple) types. Update schema.builtin() to match tag in addition to namespace. 2009-09-01 16:13:34 +00:00
jortel 839eadf022 Add 'xstq' option to control when xsi:type values should be qualified by namespace. Rename 'schemadoctor' option to 'doctor'. 2009-06-15 20:20:00 +00:00
jortel 2e6238c0e4 Add schema doctor 2009-05-13 22:55:15 +00:00
jortel 6f69c6a962 Add ordering to the suds object metadata; Update builder to add ordering information to ensure attribute ordering based on schema and is independent of the order in which the attributes are assigned. Move checks such as optional(), choice() and derived() to resolver, marshaller and other user of the sxobject tree. This is necessary since the schema object tree is built in a way that no longer copies objects when resolving references such as @ref and @base for extension/restriction. Objects are now linked and can/do apprear as children of MULTIPLE objects. So, when resolving whether an element is optional(), the ancestry must be examined. The schema objects attributes(), children(), get_child() and get_attribute() return a tuple of (child, ancestry). The TreeResolver has been retrofitted to use (child, ancestry) information form traversing schema objects; TreeResolver also retrofitted to use a proper Frame on its stack instead of a tuple. This is cleaner/clearer. suds Object not returns a proper iterator for __iter__() that pays attention to the 'ordering' metadata. The __iter__() now iterates items instead of keys 2009-01-24 19:17:13 +00:00
jortel 1f713dbe95 Fix performance problem 2009-01-20 21:11:30 +00:00
jortel 4a322b0c1c update the SchemCollection so that schema(s) found within the wsdl are consolidated *if* then are in the same target namespace 2009-01-16 22:35:35 +00:00
jortel 950d5578e3 Refactored xsd package: The schema object simplified to hold all children in (rawchildren); removed all flattening, since the tree is no longer re-arraned, all node copying has been removed :-). this will greatly improve performance in schemas with lots of references. flattening replaced by on-demaind approach using an iterator to provide a flattened view; redesigned dereferencing of @ref/@base using dependency sorted list. This ensures that all elements in the schema are dereferenced and in the correct order. 2009-01-16 20:23:56 +00:00
jortel 706cd756cb Fix multidocument document/literal to uses element names instead of part names; Fix xs:import with relative url for imports of schema from imported wsdls. 2009-01-13 21:21:27 +00:00
jortel 2e56f6b512 Fix #68, Add ivar 'options' Schema and propagate 'options' to imported Schemas. This means that the 'transport' no longer needs to be passed around. 2009-01-12 20:00:08 +00:00
jortel dd73327021 Draft API-3 as defined @ ( https://fedorahosted.org/suds/wiki/Api3Proposal ), README NEEDS TO BE UPDATED 2008-11-21 19:57:43 +00:00
jortel 8fb9d22539 add support for <xs:include/> add an attribute to imported schema (url=) to note the url from which a schema is imported. 2008-10-30 19:02:49 +00:00
jortel e01d33efb1 Add support for <simpleContent/>, change SchemaObject.dereference() to NOT be recursion; change Schema.dereference() to use SchemaObject.contents() so it's not using recursion to walk a changing tree. Fixes infinite recurstion problem reported by Ticket #46 2008-10-30 16:53:30 +00:00
jortel 5f225a327f Add support for <wsdl:import/> of schema files into the wsdl root <definitions/>. This clearly violates the WSDL 1.1 and 2.0 specifications (including the wsdl schema: http://www.w3.org/2007/06/wsdl/wsdl20.xsd ) but since ( http://www.w3.org/TR/wsdl#_style ) show doing this as an example, then it must be supported. Bump trunk to beta (R358-20081029) 2008-10-29 19:43:50 +00:00
jortel 8c8412c04a Refactor xsd queries and shift query execution away from the schema and to the specialized query. This better enables deep element lookups; Enhance soap header processing in that soap headers are processed using the same approach as method parameters. The type is positionally resolved making it possible to pass simple header types like strings and integers as python types (no longer need to get from factory). 2008-10-17 21:52:52 +00:00
jortel ab957dcdfa Add setlocation() on client; add <group/> and <attributeGroup/> to schema 2008-10-16 20:08:54 +00:00
jortel c94bc33aa3 add proper support for <xs:attribute ref=""/> attribute references. Also, added default xml prefix 'xml' as defined by XML 1.0. Probably need to add support for <xs:union/> and <xs:attributeGroup/> soon. 2008-09-03 14:08:38 +00:00
jortel 736df56759 refactor sax.py into a package, updated all references. Made the XML special character encoded pluggable. Users can re-assign the sax.encoder. Updated epydocs and bumpled version to 0.2.9 on trunk. 2008-08-29 15:53:52 +00:00
jortel 81795a060e Update wsdl to override namespace in operation if specified. Fix schema loading issue - build all schemas before processing imports. Update packaging in preparation of submission to fedor 2008-08-19 16:50:58 +00:00
jortel 46aa77c373 Fix ENUMs broken during xsd package overhaul.
Fix type as defined in ticket #24.
Fix duplicate param names in method signatures as reported in ticket #30.
Suds licensed as LGPL.
Remove logging setup in suds.__init__() as suggested by patch in ticket #31.  Users will
now need to configure the logger.
2008-08-05 14:18:07 +00:00
jortel c963c2d1a0 License as LGPL 2008-08-04 19:23:38 +00:00
jortel abe8b445b2 A complete overhaul of the (xsd) pacakge. Uses merging approach much like the wsdl.py module. This should be a simpler, faster, more effective pattern for managing schema complexities. Also, I exect advances here will address some current issues with regard to inherrated attributes. Last, this approach is easier to test and should provide for faster schema related issue remediation. 2008-07-31 21:59:38 +00:00
jortel 7f4196c6b0 Fix <xs:import schemaLocation=/>; Implement <wsdl:import/> and retrofit the rest of suds that reference the WSDL classes as the entire wsdl.py module was refactored; Remove cProfile imports; Update sudsobject.Printer to prevent circular references caused when object has an attribute that either directly/indirectly references itself (prints as (MyObject)... when detected 2008-07-24 15:09:25 +00:00
jortel 5b629c14dd performance updates: add metrics module and instrument key modules; change logging to be sure that args are not being converted into strings when calling log methods; Repr class added as a wrapper so objects being passed as args that need to be converted to strings using repr() instead of str() can be done; simplified sudsobject.Printer; modified sudsobject.Printer to show simple string values enclosed in quotes instead of (); moved creation of ServiceDefinition from Client.__init__() to service_definition() to be created and cached on-demand; added simple checks to reduce overhead of sax.encode() and sax.decode(); updated SchemaObject derived to derived() and override in Element and Complex - value determined on-demand; added counts to methods and types list printouts in ServiceDefinition; update version to 0.2.3; updated sxbasic.Import to only do a urlopen on <xs:import schemaLocation=''/> and only resolve <xs:import namespace=''/> when @namespace references a schema contained in the wsdl; change schema.schemabyns() to locate() 2008-07-16 21:55:32 +00:00
jortel 3b8a3b57d6 Fix <xs:attribute/> that were broken when switched to Factory for building schema; Also, fix @ref with regard to attrs; and fix Import.find() 2008-07-07 20:44:39 +00:00
jortel 7e9bbf0dd9 Refactored schema into new (xsd) package. Files just getting too big. Added execute() to Query and retrofitted suds to execute() query instead of using Schema.find() directly. Also, move hokey start() methods from schema, as well as, query incrementation. 2008-06-27 01:58:08 +00:00