Dataclasses FeaturesΒΆ

The code generator uses the default dataclasses options but you can toggle all of them through the cli flags or a generator config

<Config xmlns="http://pypi.org/project/xsdata" version="21.8">
  <Output maxLineLength="79">
    <Package>tests.fixtures.stripe.models.balance</Package>
    <Format repr="true" eq="true" order="true" unsafeHash="false" frozen="true" slots="false" kwOnly="false">dataclasses</Format>
    <Structure>single-package</Structure>

The code generator will use tuples instead of lists as well.

@dataclass(order=True, frozen=True)
class Balance:
    class Meta:
        name = "balance"

    object_value: Optional[str] = field(
        default=None,
        metadata={
            "name": "object",
            "type": "Element",
        }
    )
    available: Tuple[Available, ...] = field(
        default_factory=tuple,
        metadata={
            "type": "Element",
        }
    )
    connect_reserved: Tuple[ConnectReserved, ...] = field(
        default_factory=tuple,
        metadata={
            "type": "Element",
        }
    )
    livemode: Optional[bool] = field(
        default=None,
        metadata={
            "type": "Element",
        }
    )
    pending: Tuple[Pending, ...] = field(
        default_factory=tuple,
        metadata={
            "type": "Element",
        }
import pprint
from tests import fixtures_dir
from tests.fixtures.stripe.models import Balance
from xsdata.formats.dataclass.parsers import JsonParser

xml_path = fixtures_dir.joinpath("stripe/samples/balance.json")
parser = JsonParser()
root = parser.from_path(xml_path, Balance)
pprint.pprint(root.pending)
(Pending(amount=835408472, currency='usd', source_types=SourceTypes(bank_account=0, card=835408472)),
 Pending(amount=-22251, currency='eur', source_types=SourceTypes(bank_account=0, card=-22251)))