suds-py3 icon indicating copy to clipboard operation
suds-py3 copied to clipboard

Resolve problem with copying suds.client.Client in python3

Open davidgor66 opened this issue 2 years ago • 0 comments

We encountered a problem while copping a suds.client.Client in python 3. You can find a simple reproduction program here: example.zip

We have created a fix. However I am not to familiar with this project so feel free to make changes

Running the example program gives the following exception:

Traceback (most recent call last):
  File "bug.py", line 6, in <module>
    x.clone()
  File "/home/david/.local/lib/python3.8/site-packages/suds/client.py", line 181, in clone
    cp.update(deepcopy(mp))
  File "/usr/lib/python3.8/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/lib/python3.8/copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 205, in _deepcopy_list
    append(deepcopy(a, memo))
  File "/usr/lib/python3.8/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/lib/python3.8/copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib/python3.8/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/lib/python3.8/copy.py", line 270, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 230, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/lib/python3.8/copy.py", line 146, in deepcopy
    y = copier(x, memo)
  File "/usr/lib/python3.8/copy.py", line 210, in _deepcopy_tuple
    y = [deepcopy(a, memo) for a in x]
  File "/usr/lib/python3.8/copy.py", line 210, in <listcomp>
    y = [deepcopy(a, memo) for a in x]
  File "/usr/lib/python3.8/copy.py", line 172, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/lib/python3.8/copy.py", line 271, in _reconstruct
    if hasattr(y, '__setstate__'):
  File "/home/david/.local/lib/python3.8/site-packages/suds/properties.py", line 131, in __getattr__
    return getattr(self.target, name)
  File "/home/david/.local/lib/python3.8/site-packages/suds/properties.py", line 131, in __getattr__
    return getattr(self.target, name)
  File "/home/david/.local/lib/python3.8/site-packages/suds/properties.py", line 131, in __getattr__
    return getattr(self.target, name)
  [Previous line repeated 975 more times]
RecursionError: maximum recursion depth exceeded

davidgor66 avatar May 10 '22 08:05 davidgor66