Lucas,
If you can identify which import the missing type belongs to, you could try
using the ImportDoctor feature to override the default imports from the
WSDL. There's an example and discussion of using it with a .Net WCF
endpoint here:
- Chris
On Tue, Aug 21, 2012 at 5:22 PM, Lukasz Szybalski <szybalski(a)gmail.com>wrote:
On Tue, Aug 21, 2012 at 11:02 AM, Chris Sears <csears(a)gmail.com> wrote:
> Hi Lucas,
>
> There is an existing ticket on this issue, opened over 3 years ago:
>
https://fedorahosted.org/suds/ticket/239
>
> You might try the patch added by aronb. Others have mentioned it doing
> the trick.
>
Chris,
On Tue, Aug 21, 2012 at 11:02 AM, Chris Sears <csears(a)gmail.com> wrote:
Hi Lucas,
>
> There is an existing ticket on this issue, opened over 3 years ago:
>
https://fedorahosted.org/suds/ticket/239
>
> You might try the patch added by aronb. Others have mentioned it doing
> the trick.
>
The conclusion of the ticket is to apply this patch:
https://fedorahosted.org/suds/attachment/ticket/239/recurselevel-schema.p...
which seems to be fixing the recursion but causes:
>>> from suds.client import Client
>>> c=Client('http:/xxxxx/Service.svc?wsdl')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/lucas/tmp/soap2/suds1/trunk/suds/client.py", line 112, in
__init__
self.wsdl = reader.open(url)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/reader.py", line 152, in
open
d = self.fn(url, self.options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/wsdl.py", line 159, in
__init__
self.build_schema()
File "/home/lucas/tmp/soap2/suds1/trunk/suds/wsdl.py", line 220, in
build_schema
self.schema = container.load(self.options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 96, in
load
child.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 231,
in __init__
self.dereference()
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 326,
in dereference
midx, deps = x.dependencies()
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 469,
in dependencies
raise TypeNotFound(self.ref)
suds.TypeNotFound: Type not found: '(InsObject,
http://www.xxxxxx.com/common/objects/1.0, )'
If I increase the MAX RECURSION from 3 to 800 I'm back to square one with
the:
.....
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542, in
open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 229,
in __init__
self.open_imports(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 308,
in open_imports
imported = imp.open(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 542,
in open
result = self.download(options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 563,
in download
return self.schema.instance(root, url, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 421,
in instance
return Schema(root, baseurl, options)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 228,
in __init__
self.build()
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/schema.py", line 253,
in build
self.children = BasicFactory.build(self.root, self)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 778,
in build
c = cls.build(node, schema, child.childtags())
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 774,
in build
child = cls.create(node, schema)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbasic.py", line 756,
in create
return fn(schema, root)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/xsd/sxbase.py", line 95, in
__init__
self.name = root.get('name')
File "/home/lucas/tmp/soap2/suds1/trunk/suds/sax/element.py", line 235,
in get
attr = self.getAttribute(name, ns)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/sax/element.py", line 405,
in getAttribute
prefix, name = splitPrefix(name)
File "/home/lucas/tmp/soap2/suds1/trunk/suds/sax/__init__.py", line 49,
in splitPrefix
if isinstance(name, basestring) \
RuntimeError: maximum recursion depth exceeded while calling a Python
object
Any other ideas of possible patch ?
Is there a way I can add some line maybe to "schema.py" to see which
resource is being requested over and over again?
Background: I'm connecting to our system written in .net and trying
to authenticate my user by calling one of the functions.)
Thanks
Lucas