Closed andrewshadura closed 1 year ago
I’m trying to nest a bunch of elements next to each other, but wrapped() keeps creating root elements for each of them.
wrapped()
class Transaction(BaseXmlModel, tag='Ntry'): ref: str = element(tag='NtryRef') amount: Decimal = element(tag='Amt') currency: str = wrapped( 'Amt', attr(name = 'Ccy') ) val_date: datetime.date = wrapped( 'ValDt/Dt', ) remote_info: str | None = wrapped( 'NtryDtls/TxDtls/RmtInfUstrd', ) additional_transaction_info: str | None = wrapped( 'NtryDtls/TxDtls/AddtlTxInf', ) related_account: str | None = wrapped( 'NtryDtls/TxDtls/RltdPties/DbtrAcct/Id/Othr/Id', ) related_account_bank: str | None = wrapped( 'NtryDtls/TxDtls/RltdAgts/DbtrAgt/FinInstnId/Othr/Id', )
I need this output:
<NtryDtls> <TxDtls> <RmtInfUstrd>Foo</RmtInfUstrd> <AddtlTxInf>Bar</AddtlTxInf> <RltdPties> <DbtrAcct> <Id> <Othr> <Id>SK1234</Id> </Othr> </Id> </DbtrAcct> </RltdPties> <RltdAgts> <DbtrAgt> <FinInstnId> <Othr> <Id>SKBX</Id> </Othr> </FinInstnId> </DbtrAgt> </RltdAgts> </TxDtls> </NtryDtls>
Instead, this is created:
<NtryDtls> <TxDtls> <RmtInfUstrd>Foo</RmtInfUstrd> </TxDtls> </NtryDtls> <NtryDtls> <TxDtls> <AddtlTxInf>Bar</AddtlTxInf> </TxDtls> </NtryDtls> <NtryDtls> <TxDtls> <RltdPties> <DbtrAcct> <Id> <Othr> <Id>SK1234</Id> </Othr> </Id> </DbtrAcct> </RltdPties> </TxDtls> </NtryDtls> <NtryDtls> <TxDtls> <RltdAgts> <DbtrAgt> <FinInstnId> <Othr> <Id>SKBX</Id> </Othr> </FinInstnId> </DbtrAgt> </RltdAgts> </TxDtls> </NtryDtls>
I’m using this test call:
t = Transaction( ref='12345', amount='123.45', currency='EUR', val_date='2023-04-05', remote_info='Foo', additional_transaction_info='Bar', related_account='SK1234', related_account_bank='SKBX', )
I tried wrapping elements in various different ways, and nothing helped.
Thanks in advance!
@andrewshadura Hi. That is a bug. Fixed it in version 0.7.0.
I’m trying to nest a bunch of elements next to each other, but
wrapped()
keeps creating root elements for each of them.I need this output:
Instead, this is created:
I’m using this test call:
I tried wrapping elements in various different ways, and nothing helped.
Thanks in advance!