Python suds „RuntimeError: przekroczono maksymalną głębokość rekurencji podczas wywoływania obiektu Pythona”

Usiłuję użyć usługi sieciowej SOAP przy użyciu suds Pythona, ale otrzymuję błąd „RuntimeError: przekroczono maksymalną głębokość rekursji podczas wywoływania obiektu Pythona”.

Zgodnie ze śladem istnieje nieskończona rekurencja w „suds / binding / multiref.py”, wiersz 69.

Dostępna jest usługa internetowa, do której próbuję uzyskać dostęphttp://www.reactome.org:8080/caBIOWebApp/services/caBIOService?wsdl.

Metoda, do której próbuję uzyskać dostęp, to loadPathwayForId.

Oto część mojego kodu, która zużywa usługę internetową:

from suds.client import Client
client = Client('http://www.reactome.org:8080/caBIOWebApp/services/caBIOService?wsdl')
pathway = client.service.loadPathwayForId(2470946)

Nie jestem pewien, co jest odpowiedzialne za nieskończoną rekursję. Próbowałem znaleźć ten problem i pojawiły się doniesienia o problemach z mydlinami i nieskończoną rekurencją, ale ślady są inne niż moje (kod rekurencyjny jest inny), więc podejrzewam, że mój problem ma inne źródła.

Pełny ślad:

  File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
      self.update(c)
  File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
      self.update(c)
  ...
  File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
      self.update(c)
  File "C:\Python27\lib\suds\bindings\multiref.py", line 69, in update
      self.update(c)
  File "C:\Python27\lib\suds\bindings\multiref.py", line 67, in update 
      self.replace_references(node)
  File "C:\Python27\lib\suds\bindings\multiref.py", line 80, in replace_references
      href = node.getAttribute('href')
  File "C:\Python27\lib\suds\sax\element.py", line 404, in getAttribute
      prefix, name = splitPrefix(name)
  File "C:\Python27\lib\suds\sax\__init__.py", line 49, in splitPrefix
    if isinstance(name, basestring) \
RuntimeError: maximum recursion depth exceeded while calling a Python object

Z góry dziękuję za pomoc!

questionAnswers(2)

yourAnswerToTheQuestion