diff options
author | jortel <devnull@localhost> | 2009-12-22 21:40:41 +0000 |
---|---|---|
committer | jortel <devnull@localhost> | 2009-12-22 21:40:41 +0000 |
commit | 2fc3d60c9fd0aac7d4552bd685a4642afa1c07d5 (patch) | |
tree | ee04b5075cd160bf8125aadecc619d9c49bb9cb6 | |
parent | cbcf8acf40cceff51166d0b241edc441be1fc4e1 (diff) | |
download | suds-2fc3d60c9fd0aac7d4552bd685a4642afa1c07d5.tar.gz |
Set /real/ type as Object metadata type in typed unmarshaller. Cast Objects in encoded marshaller when casting array content.
-rw-r--r-- | suds/__init__.py | 2 | ||||
-rw-r--r-- | suds/mx/encoded.py | 7 | ||||
-rw-r--r-- | suds/umx/typed.py | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/suds/__init__.py b/suds/__init__.py index 9fdf3a4..7e4c77e 100644 --- a/suds/__init__.py +++ b/suds/__init__.py @@ -29,7 +29,7 @@ import sys # __version__ = '0.3.9' -__build__="(beta) R630-20091221" +__build__="(beta) R632-20091221" # # Exceptions diff --git a/suds/mx/encoded.py b/suds/mx/encoded.py index 18cdec1..93fe444 100644 --- a/suds/mx/encoded.py +++ b/suds/mx/encoded.py @@ -111,9 +111,14 @@ class Encoded(Literal): if ref is None: raise TypeNotFound(qref) for x in content.value: - if isinstance(x, (list, tuple, Object)): + if isinstance(x, (list, tuple)): array.item.append(x) continue + if isinstance(x, Object): + md = x.__metadata__ + md.sxtype = ref + array.item.append(x) + continue if isinstance(x, dict): x = Factory.object(ref.name, x) md = x.__metadata__ diff --git a/suds/umx/typed.py b/suds/umx/typed.py index 0db22d7..f272a25 100644 --- a/suds/umx/typed.py +++ b/suds/umx/typed.py @@ -90,7 +90,7 @@ class Typed(Core): cls_name = content.node.name content.data = Factory.object(cls_name) md = content.data.__metadata__ - md.sxtype = content.type + md.sxtype = real def end(self, content): self.resolver.pop() |