python-zeep icon indicating copy to clipboard operation
python-zeep copied to clipboard

OperationProxy return types

Open atatarn opened this issue 6 months ago • 1 comments

It seems like the OperationProxy might return zeep.xsd.valueobjects.CompoundValue or lxml.etree.Element.

This is an excerpt from WSDL file, this Response is returned as CompundValue:

      <s:element name="LogonResponse">
        <s:complexType>
          <s:sequence>
            <s:element maxOccurs="1" minOccurs="1" name="pstrSessionToken" type="s:string" />
            <s:element maxOccurs="1" minOccurs="1" name="pSessionInfo" type="tns:Element" />
            <s:element maxOccurs="1" minOccurs="1" name="pstrSecurityToken" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>

But in this case an Element is returned:

<s:element name="ExecuteQueryResponse">
    <s:complexType>
        <s:sequence>
            <s:element maxOccurs="1" minOccurs="1" name="pdomOutput" type="tns:Element" />
        </s:sequence>
    </s:complexType>
</s:element>

This leads to confusions as to how to treat the returned values and triggers mypy alerts. Is it possible to somehow instrument the OperationProxy to always return e.g. CompundValue that could be unpacked manually later on if needed?

atatarn avatar Aug 07 '24 10:08 atatarn