pyxsdata 26.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. pyxsdata-26.3.0/CHANGES.md +1011 -0
  2. pyxsdata-26.3.0/LICENSE +21 -0
  3. pyxsdata-26.3.0/MANIFEST.in +11 -0
  4. pyxsdata-26.3.0/PKG-INFO +151 -0
  5. pyxsdata-26.3.0/README.md +95 -0
  6. pyxsdata-26.3.0/docs/__init__.py +0 -0
  7. pyxsdata-26.3.0/docs/api/.gitkeep +0 -0
  8. pyxsdata-26.3.0/docs/changelog.md +1 -0
  9. pyxsdata-26.3.0/docs/codegen/architecture.md +150 -0
  10. pyxsdata-26.3.0/docs/codegen/config.md +347 -0
  11. pyxsdata-26.3.0/docs/codegen/docstrings.md +35 -0
  12. pyxsdata-26.3.0/docs/codegen/download_schemas.md +28 -0
  13. pyxsdata-26.3.0/docs/codegen/dtd_modeling.md +31 -0
  14. pyxsdata-26.3.0/docs/codegen/intro.md +39 -0
  15. pyxsdata-26.3.0/docs/codegen/samples_modeling.md +60 -0
  16. pyxsdata-26.3.0/docs/codegen/wsdl_modeling.md +126 -0
  17. pyxsdata-26.3.0/docs/conftest.py +4 -0
  18. pyxsdata-26.3.0/docs/data_binding/basics.md +298 -0
  19. pyxsdata-26.3.0/docs/data_binding/dict_decoding.md +65 -0
  20. pyxsdata-26.3.0/docs/data_binding/dict_encoding.md +78 -0
  21. pyxsdata-26.3.0/docs/data_binding/json_parsing.md +156 -0
  22. pyxsdata-26.3.0/docs/data_binding/json_serializing.md +154 -0
  23. pyxsdata-26.3.0/docs/data_binding/pycode_serializing.md +39 -0
  24. pyxsdata-26.3.0/docs/data_binding/tree_serializing.md +42 -0
  25. pyxsdata-26.3.0/docs/data_binding/xml_parsing.md +185 -0
  26. pyxsdata-26.3.0/docs/data_binding/xml_serializing.md +301 -0
  27. pyxsdata-26.3.0/docs/faq.md +15 -0
  28. pyxsdata-26.3.0/docs/favicon.png +0 -0
  29. pyxsdata-26.3.0/docs/hooks.py +9 -0
  30. pyxsdata-26.3.0/docs/index.md +11 -0
  31. pyxsdata-26.3.0/docs/installation.md +40 -0
  32. pyxsdata-26.3.0/docs/logo-small.svg +1 -0
  33. pyxsdata-26.3.0/docs/logo.svg +1 -0
  34. pyxsdata-26.3.0/docs/models/classes.md +157 -0
  35. pyxsdata-26.3.0/docs/models/fields.md +421 -0
  36. pyxsdata-26.3.0/docs/models/types.md +329 -0
  37. pyxsdata-26.3.0/docs/overrides/main.html +5 -0
  38. pyxsdata-26.3.0/docs/plugins/how_to.md +50 -0
  39. pyxsdata-26.3.0/docs/plugins/list.md +9 -0
  40. pyxsdata-26.3.0/docs/pydantic/index.md +84 -0
  41. pyxsdata-26.3.0/docs/robots.txt +3 -0
  42. pyxsdata-26.3.0/docs/samples.md +22 -0
  43. pyxsdata-26.3.0/docs/scripts/__init__.py +0 -0
  44. pyxsdata-26.3.0/docs/scripts/generate_api.py +30 -0
  45. pyxsdata-26.3.0/pyproject.toml +165 -0
  46. pyxsdata-26.3.0/pyxsdata/__init__.py +1 -0
  47. pyxsdata-26.3.0/pyxsdata/__main__.py +16 -0
  48. pyxsdata-26.3.0/pyxsdata/cli.py +169 -0
  49. pyxsdata-26.3.0/pyxsdata/codegen/__init__.py +6 -0
  50. pyxsdata-26.3.0/pyxsdata/codegen/container.py +291 -0
  51. pyxsdata-26.3.0/pyxsdata/codegen/exceptions.py +23 -0
  52. pyxsdata-26.3.0/pyxsdata/codegen/handlers/__init__.py +53 -0
  53. pyxsdata-26.3.0/pyxsdata/codegen/handlers/add_attribute_substitutions.py +122 -0
  54. pyxsdata-26.3.0/pyxsdata/codegen/handlers/calculate_attribute_paths.py +87 -0
  55. pyxsdata-26.3.0/pyxsdata/codegen/handlers/create_compound_fields.py +258 -0
  56. pyxsdata-26.3.0/pyxsdata/codegen/handlers/create_wrapper_fields.py +140 -0
  57. pyxsdata-26.3.0/pyxsdata/codegen/handlers/designate_class_packages.py +233 -0
  58. pyxsdata-26.3.0/pyxsdata/codegen/handlers/detect_circular_references.py +93 -0
  59. pyxsdata-26.3.0/pyxsdata/codegen/handlers/disambiguate_choices.py +293 -0
  60. pyxsdata-26.3.0/pyxsdata/codegen/handlers/filter_classes.py +41 -0
  61. pyxsdata-26.3.0/pyxsdata/codegen/handlers/flatten_attribute_groups.py +55 -0
  62. pyxsdata-26.3.0/pyxsdata/codegen/handlers/flatten_class_extensions.py +387 -0
  63. pyxsdata-26.3.0/pyxsdata/codegen/handlers/merge_attributes.py +93 -0
  64. pyxsdata-26.3.0/pyxsdata/codegen/handlers/merge_duplicate_classes.py +73 -0
  65. pyxsdata-26.3.0/pyxsdata/codegen/handlers/process_attributes_types.py +339 -0
  66. pyxsdata-26.3.0/pyxsdata/codegen/handlers/process_mixed_content_class.py +47 -0
  67. pyxsdata-26.3.0/pyxsdata/codegen/handlers/rename_duplicate_attributes.py +17 -0
  68. pyxsdata-26.3.0/pyxsdata/codegen/handlers/rename_duplicate_classes.py +161 -0
  69. pyxsdata-26.3.0/pyxsdata/codegen/handlers/reset_attribute_sequence_numbers.py +51 -0
  70. pyxsdata-26.3.0/pyxsdata/codegen/handlers/reset_attribute_sequences.py +54 -0
  71. pyxsdata-26.3.0/pyxsdata/codegen/handlers/sanitize_attributes_default_value.py +284 -0
  72. pyxsdata-26.3.0/pyxsdata/codegen/handlers/sanitize_enumeration_class.py +63 -0
  73. pyxsdata-26.3.0/pyxsdata/codegen/handlers/unnest_inner_classes.py +104 -0
  74. pyxsdata-26.3.0/pyxsdata/codegen/handlers/update_attributes_effective_choice.py +169 -0
  75. pyxsdata-26.3.0/pyxsdata/codegen/handlers/vacuum_inner_classes.py +97 -0
  76. pyxsdata-26.3.0/pyxsdata/codegen/handlers/validate_attributes_overrides.py +202 -0
  77. pyxsdata-26.3.0/pyxsdata/codegen/handlers/validate_references.py +108 -0
  78. pyxsdata-26.3.0/pyxsdata/codegen/mappers/__init__.py +13 -0
  79. pyxsdata-26.3.0/pyxsdata/codegen/mappers/definitions.py +576 -0
  80. pyxsdata-26.3.0/pyxsdata/codegen/mappers/dict.py +75 -0
  81. pyxsdata-26.3.0/pyxsdata/codegen/mappers/dtd.py +332 -0
  82. pyxsdata-26.3.0/pyxsdata/codegen/mappers/element.py +172 -0
  83. pyxsdata-26.3.0/pyxsdata/codegen/mappers/mixins.py +128 -0
  84. pyxsdata-26.3.0/pyxsdata/codegen/mappers/schema.py +399 -0
  85. pyxsdata-26.3.0/pyxsdata/codegen/mixins.py +193 -0
  86. pyxsdata-26.3.0/pyxsdata/codegen/models.py +762 -0
  87. pyxsdata-26.3.0/pyxsdata/codegen/parsers/__init__.py +9 -0
  88. pyxsdata-26.3.0/pyxsdata/codegen/parsers/definitions.py +53 -0
  89. pyxsdata-26.3.0/pyxsdata/codegen/parsers/dtd.py +134 -0
  90. pyxsdata-26.3.0/pyxsdata/codegen/parsers/schema.py +412 -0
  91. pyxsdata-26.3.0/pyxsdata/codegen/resolver.py +170 -0
  92. pyxsdata-26.3.0/pyxsdata/codegen/stopwatch.py +16 -0
  93. pyxsdata-26.3.0/pyxsdata/codegen/transformer.py +449 -0
  94. pyxsdata-26.3.0/pyxsdata/codegen/utils.py +524 -0
  95. pyxsdata-26.3.0/pyxsdata/codegen/validator.py +201 -0
  96. pyxsdata-26.3.0/pyxsdata/codegen/writer.py +96 -0
  97. pyxsdata-26.3.0/pyxsdata/exceptions.py +30 -0
  98. pyxsdata-26.3.0/pyxsdata/formats/__init__.py +0 -0
  99. pyxsdata-26.3.0/pyxsdata/formats/converter.py +871 -0
  100. pyxsdata-26.3.0/pyxsdata/formats/dataclass/__init__.py +0 -0
  101. pyxsdata-26.3.0/pyxsdata/formats/dataclass/client.py +198 -0
  102. pyxsdata-26.3.0/pyxsdata/formats/dataclass/compat.py +212 -0
  103. pyxsdata-26.3.0/pyxsdata/formats/dataclass/context.py +317 -0
  104. pyxsdata-26.3.0/pyxsdata/formats/dataclass/filters.py +987 -0
  105. pyxsdata-26.3.0/pyxsdata/formats/dataclass/generator.py +273 -0
  106. pyxsdata-26.3.0/pyxsdata/formats/dataclass/models/__init__.py +0 -0
  107. pyxsdata-26.3.0/pyxsdata/formats/dataclass/models/builders.py +598 -0
  108. pyxsdata-26.3.0/pyxsdata/formats/dataclass/models/elements.py +588 -0
  109. pyxsdata-26.3.0/pyxsdata/formats/dataclass/models/generics.py +46 -0
  110. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/__init__.py +12 -0
  111. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/bases.py +256 -0
  112. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/config.py +48 -0
  113. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/dict.py +423 -0
  114. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/handlers/__init__.py +22 -0
  115. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/handlers/lxml.py +83 -0
  116. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/handlers/native.py +171 -0
  117. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/json.py +98 -0
  118. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/mixins.py +291 -0
  119. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/__init__.py +17 -0
  120. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/element.py +682 -0
  121. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/primitive.py +71 -0
  122. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/skip.py +21 -0
  123. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/standard.py +97 -0
  124. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/union.py +190 -0
  125. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/wildcard.py +117 -0
  126. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/nodes/wrapper.py +57 -0
  127. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/tree.py +73 -0
  128. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/utils.py +258 -0
  129. pyxsdata-26.3.0/pyxsdata/formats/dataclass/parsers/xml.py +123 -0
  130. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/__init__.py +19 -0
  131. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/code.py +199 -0
  132. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/config.py +60 -0
  133. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/dict.py +109 -0
  134. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/json.py +43 -0
  135. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/mixins.py +1049 -0
  136. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/tree.py +34 -0
  137. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/writers/__init__.py +18 -0
  138. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/writers/lxml.py +100 -0
  139. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/writers/native.py +100 -0
  140. pyxsdata-26.3.0/pyxsdata/formats/dataclass/serializers/xml.py +53 -0
  141. pyxsdata-26.3.0/pyxsdata/formats/dataclass/transports.py +92 -0
  142. pyxsdata-26.3.0/pyxsdata/formats/dataclass/typing.py +280 -0
  143. pyxsdata-26.3.0/pyxsdata/formats/mixins.py +102 -0
  144. pyxsdata-26.3.0/pyxsdata/formats/types.py +3 -0
  145. pyxsdata-26.3.0/pyxsdata/logger.py +3 -0
  146. pyxsdata-26.3.0/pyxsdata/models/__init__.py +0 -0
  147. pyxsdata-26.3.0/pyxsdata/models/config.py +590 -0
  148. pyxsdata-26.3.0/pyxsdata/models/datatype.py +712 -0
  149. pyxsdata-26.3.0/pyxsdata/models/dtd.py +143 -0
  150. pyxsdata-26.3.0/pyxsdata/models/enums.py +344 -0
  151. pyxsdata-26.3.0/pyxsdata/models/mixins.py +225 -0
  152. pyxsdata-26.3.0/pyxsdata/models/wsdl.py +314 -0
  153. pyxsdata-26.3.0/pyxsdata/models/xsd.py +1050 -0
  154. pyxsdata-26.3.0/pyxsdata/py.typed +0 -0
  155. pyxsdata-26.3.0/pyxsdata/pydantic/__init__.py +27 -0
  156. pyxsdata-26.3.0/pyxsdata/pydantic/bindings.py +156 -0
  157. pyxsdata-26.3.0/pyxsdata/pydantic/compat.py +143 -0
  158. pyxsdata-26.3.0/pyxsdata/pydantic/fields.py +28 -0
  159. pyxsdata-26.3.0/pyxsdata/pydantic/generator.py +71 -0
  160. pyxsdata-26.3.0/pyxsdata/pydantic/hooks/__init__.py +0 -0
  161. pyxsdata-26.3.0/pyxsdata/pydantic/hooks/class_type.py +4 -0
  162. pyxsdata-26.3.0/pyxsdata/pydantic/hooks/cli.py +4 -0
  163. pyxsdata-26.3.0/pyxsdata/pydantic/py.typed +0 -0
  164. pyxsdata-26.3.0/pyxsdata/utils/__init__.py +0 -0
  165. pyxsdata-26.3.0/pyxsdata/utils/click.py +202 -0
  166. pyxsdata-26.3.0/pyxsdata/utils/collections.py +116 -0
  167. pyxsdata-26.3.0/pyxsdata/utils/constants.py +21 -0
  168. pyxsdata-26.3.0/pyxsdata/utils/dates.py +280 -0
  169. pyxsdata-26.3.0/pyxsdata/utils/debug.py +35 -0
  170. pyxsdata-26.3.0/pyxsdata/utils/downloader.py +113 -0
  171. pyxsdata-26.3.0/pyxsdata/utils/graphs.py +42 -0
  172. pyxsdata-26.3.0/pyxsdata/utils/hooks.py +14 -0
  173. pyxsdata-26.3.0/pyxsdata/utils/namespaces.py +188 -0
  174. pyxsdata-26.3.0/pyxsdata/utils/objects.py +29 -0
  175. pyxsdata-26.3.0/pyxsdata/utils/package.py +30 -0
  176. pyxsdata-26.3.0/pyxsdata/utils/testing.py +628 -0
  177. pyxsdata-26.3.0/pyxsdata/utils/text.py +217 -0
  178. pyxsdata-26.3.0/pyxsdata.egg-info/PKG-INFO +151 -0
  179. pyxsdata-26.3.0/pyxsdata.egg-info/SOURCES.txt +443 -0
  180. pyxsdata-26.3.0/pyxsdata.egg-info/dependency_links.txt +1 -0
  181. pyxsdata-26.3.0/pyxsdata.egg-info/entry_points.txt +2 -0
  182. pyxsdata-26.3.0/pyxsdata.egg-info/requires.txt +34 -0
  183. pyxsdata-26.3.0/pyxsdata.egg-info/top_level.txt +1 -0
  184. pyxsdata-26.3.0/setup.cfg +4 -0
  185. pyxsdata-26.3.0/tests/__init__.py +6 -0
  186. pyxsdata-26.3.0/tests/codegen/__init__.py +0 -0
  187. pyxsdata-26.3.0/tests/codegen/handlers/__init__.py +0 -0
  188. pyxsdata-26.3.0/tests/codegen/handlers/test_add_attribute_substitutions.py +146 -0
  189. pyxsdata-26.3.0/tests/codegen/handlers/test_calculate_attribute_paths.py +109 -0
  190. pyxsdata-26.3.0/tests/codegen/handlers/test_create_compound_fields.py +294 -0
  191. pyxsdata-26.3.0/tests/codegen/handlers/test_create_wrapper_fields.py +123 -0
  192. pyxsdata-26.3.0/tests/codegen/handlers/test_designate_class_packages.py +198 -0
  193. pyxsdata-26.3.0/tests/codegen/handlers/test_detect_circular_references.py +77 -0
  194. pyxsdata-26.3.0/tests/codegen/handlers/test_disambiguate_choices.py +251 -0
  195. pyxsdata-26.3.0/tests/codegen/handlers/test_filter_classes.py +44 -0
  196. pyxsdata-26.3.0/tests/codegen/handlers/test_flatten_attribute_groups.py +65 -0
  197. pyxsdata-26.3.0/tests/codegen/handlers/test_flatten_class_extensions.py +490 -0
  198. pyxsdata-26.3.0/tests/codegen/handlers/test_merge_attributes.py +141 -0
  199. pyxsdata-26.3.0/tests/codegen/handlers/test_merge_duplicate_classes.py +46 -0
  200. pyxsdata-26.3.0/tests/codegen/handlers/test_process_attributes_types.py +415 -0
  201. pyxsdata-26.3.0/tests/codegen/handlers/test_process_mixed_content_class.py +48 -0
  202. pyxsdata-26.3.0/tests/codegen/handlers/test_rename_duplicate_attributes.py +19 -0
  203. pyxsdata-26.3.0/tests/codegen/handlers/test_rename_duplicate_classes.py +150 -0
  204. pyxsdata-26.3.0/tests/codegen/handlers/test_reset_attribute_sequence_numbers.py +81 -0
  205. pyxsdata-26.3.0/tests/codegen/handlers/test_reset_attribute_sequences.py +64 -0
  206. pyxsdata-26.3.0/tests/codegen/handlers/test_sanitize_attributes_default_value.py +324 -0
  207. pyxsdata-26.3.0/tests/codegen/handlers/test_sanitize_enumeration_class.py +73 -0
  208. pyxsdata-26.3.0/tests/codegen/handlers/test_unnest_inner_classes.py +108 -0
  209. pyxsdata-26.3.0/tests/codegen/handlers/test_update_attributes_effective_choice.py +320 -0
  210. pyxsdata-26.3.0/tests/codegen/handlers/test_vacuum_inner_classes.py +132 -0
  211. pyxsdata-26.3.0/tests/codegen/handlers/test_validate_attributes_overrides.py +208 -0
  212. pyxsdata-26.3.0/tests/codegen/handlers/test_validate_references.py +96 -0
  213. pyxsdata-26.3.0/tests/codegen/mappers/__init__.py +0 -0
  214. pyxsdata-26.3.0/tests/codegen/mappers/test_definitions.py +802 -0
  215. pyxsdata-26.3.0/tests/codegen/mappers/test_dict.py +126 -0
  216. pyxsdata-26.3.0/tests/codegen/mappers/test_dtd.py +390 -0
  217. pyxsdata-26.3.0/tests/codegen/mappers/test_element.py +343 -0
  218. pyxsdata-26.3.0/tests/codegen/mappers/test_schema.py +425 -0
  219. pyxsdata-26.3.0/tests/codegen/models/__init__.py +0 -0
  220. pyxsdata-26.3.0/tests/codegen/models/test_attr.py +199 -0
  221. pyxsdata-26.3.0/tests/codegen/models/test_attr_type.py +19 -0
  222. pyxsdata-26.3.0/tests/codegen/models/test_class.py +200 -0
  223. pyxsdata-26.3.0/tests/codegen/models/test_codegen.py +34 -0
  224. pyxsdata-26.3.0/tests/codegen/models/test_restrictions.py +139 -0
  225. pyxsdata-26.3.0/tests/codegen/parsers/__init__.py +0 -0
  226. pyxsdata-26.3.0/tests/codegen/parsers/test_definitions.py +35 -0
  227. pyxsdata-26.3.0/tests/codegen/parsers/test_dtd.py +189 -0
  228. pyxsdata-26.3.0/tests/codegen/parsers/test_schema.py +444 -0
  229. pyxsdata-26.3.0/tests/codegen/test_container.py +169 -0
  230. pyxsdata-26.3.0/tests/codegen/test_resolver.py +234 -0
  231. pyxsdata-26.3.0/tests/codegen/test_transformer.py +478 -0
  232. pyxsdata-26.3.0/tests/codegen/test_utils.py +419 -0
  233. pyxsdata-26.3.0/tests/codegen/test_validator.py +183 -0
  234. pyxsdata-26.3.0/tests/codegen/test_writer.py +56 -0
  235. pyxsdata-26.3.0/tests/conftest.py +46 -0
  236. pyxsdata-26.3.0/tests/fixtures/__init__.py +0 -0
  237. pyxsdata-26.3.0/tests/fixtures/annotations/__init__.py +11 -0
  238. pyxsdata-26.3.0/tests/fixtures/annotations/model.py +24 -0
  239. pyxsdata-26.3.0/tests/fixtures/annotations/model.xsd +18 -0
  240. pyxsdata-26.3.0/tests/fixtures/annotations/pyxsdata.xml +20 -0
  241. pyxsdata-26.3.0/tests/fixtures/annotations/sample.xml +2 -0
  242. pyxsdata-26.3.0/tests/fixtures/annotations/units.py +12 -0
  243. pyxsdata-26.3.0/tests/fixtures/annotations/units.xsd +23 -0
  244. pyxsdata-26.3.0/tests/fixtures/artists/__init__.py +31 -0
  245. pyxsdata-26.3.0/tests/fixtures/artists/art001.xml +72 -0
  246. pyxsdata-26.3.0/tests/fixtures/artists/art002.xml +34 -0
  247. pyxsdata-26.3.0/tests/fixtures/artists/art003.xml +46 -0
  248. pyxsdata-26.3.0/tests/fixtures/artists/metadata.py +364 -0
  249. pyxsdata-26.3.0/tests/fixtures/books/__init__.py +11 -0
  250. pyxsdata-26.3.0/tests/fixtures/books/bk001.xml +9 -0
  251. pyxsdata-26.3.0/tests/fixtures/books/bk002.xml +9 -0
  252. pyxsdata-26.3.0/tests/fixtures/books/books-xinclude.xml +5 -0
  253. pyxsdata-26.3.0/tests/fixtures/books/books.json +22 -0
  254. pyxsdata-26.3.0/tests/fixtures/books/books.py +96 -0
  255. pyxsdata-26.3.0/tests/fixtures/books/books.xml +19 -0
  256. pyxsdata-26.3.0/tests/fixtures/books/books_auto_ns.xml +19 -0
  257. pyxsdata-26.3.0/tests/fixtures/books/books_default_ns.xml +19 -0
  258. pyxsdata-26.3.0/tests/fixtures/books/fixtures.py +94 -0
  259. pyxsdata-26.3.0/tests/fixtures/books/schema.xsd +79 -0
  260. pyxsdata-26.3.0/tests/fixtures/calculator/AddRQ.xml +9 -0
  261. pyxsdata-26.3.0/tests/fixtures/calculator/AddRS.xml +10 -0
  262. pyxsdata-26.3.0/tests/fixtures/calculator/__init__.py +45 -0
  263. pyxsdata-26.3.0/tests/fixtures/calculator/services.py +509 -0
  264. pyxsdata-26.3.0/tests/fixtures/calculator/services.wsdl +196 -0
  265. pyxsdata-26.3.0/tests/fixtures/compound/__init__.py +11 -0
  266. pyxsdata-26.3.0/tests/fixtures/compound/models.py +61 -0
  267. pyxsdata-26.3.0/tests/fixtures/compound/sample.json +38 -0
  268. pyxsdata-26.3.0/tests/fixtures/compound/sample.py +43 -0
  269. pyxsdata-26.3.0/tests/fixtures/compound/sample.pyxsdata.xml +13 -0
  270. pyxsdata-26.3.0/tests/fixtures/compound/sample.xml +12 -0
  271. pyxsdata-26.3.0/tests/fixtures/compound/schema.xsd +24 -0
  272. pyxsdata-26.3.0/tests/fixtures/datatypes.py +22 -0
  273. pyxsdata-26.3.0/tests/fixtures/docstrings/__init__.py +0 -0
  274. pyxsdata-26.3.0/tests/fixtures/docstrings/accessible/__init__.py +17 -0
  275. pyxsdata-26.3.0/tests/fixtures/docstrings/accessible/schema.py +121 -0
  276. pyxsdata-26.3.0/tests/fixtures/docstrings/blank/__init__.py +17 -0
  277. pyxsdata-26.3.0/tests/fixtures/docstrings/blank/schema.py +73 -0
  278. pyxsdata-26.3.0/tests/fixtures/docstrings/google/__init__.py +17 -0
  279. pyxsdata-26.3.0/tests/fixtures/docstrings/google/schema.py +123 -0
  280. pyxsdata-26.3.0/tests/fixtures/docstrings/numpy/__init__.py +17 -0
  281. pyxsdata-26.3.0/tests/fixtures/docstrings/numpy/schema.py +133 -0
  282. pyxsdata-26.3.0/tests/fixtures/docstrings/rst/__init__.py +17 -0
  283. pyxsdata-26.3.0/tests/fixtures/docstrings/rst/schema.py +119 -0
  284. pyxsdata-26.3.0/tests/fixtures/docstrings/schema.xsd +111 -0
  285. pyxsdata-26.3.0/tests/fixtures/dtd/__init__.py +1 -0
  286. pyxsdata-26.3.0/tests/fixtures/dtd/complete_example.dtd +12 -0
  287. pyxsdata-26.3.0/tests/fixtures/dtd/default_namespace.dtd +3 -0
  288. pyxsdata-26.3.0/tests/fixtures/dtd/models/__init__.py +23 -0
  289. pyxsdata-26.3.0/tests/fixtures/dtd/models/complete_example.py +118 -0
  290. pyxsdata-26.3.0/tests/fixtures/dtd/prefix_namespace.dtd +3 -0
  291. pyxsdata-26.3.0/tests/fixtures/hello/HelloRQ.xml +8 -0
  292. pyxsdata-26.3.0/tests/fixtures/hello/HelloRS.xml +8 -0
  293. pyxsdata-26.3.0/tests/fixtures/hello/HelloRS_SoapFault.xml +14 -0
  294. pyxsdata-26.3.0/tests/fixtures/hello/__init__.py +19 -0
  295. pyxsdata-26.3.0/tests/fixtures/hello/hello.py +176 -0
  296. pyxsdata-26.3.0/tests/fixtures/hello/hello.wsdl +64 -0
  297. pyxsdata-26.3.0/tests/fixtures/hello/hello.xsd +15 -0
  298. pyxsdata-26.3.0/tests/fixtures/models.py +222 -0
  299. pyxsdata-26.3.0/tests/fixtures/primer/__init__.py +15 -0
  300. pyxsdata-26.3.0/tests/fixtures/primer/order.py +186 -0
  301. pyxsdata-26.3.0/tests/fixtures/primer/order.xsd +81 -0
  302. pyxsdata-26.3.0/tests/fixtures/primer/sample.json +44 -0
  303. pyxsdata-26.3.0/tests/fixtures/primer/sample.py +48 -0
  304. pyxsdata-26.3.0/tests/fixtures/primer/sample.pyxsdata.xml +32 -0
  305. pyxsdata-26.3.0/tests/fixtures/primer/sample.xml +32 -0
  306. pyxsdata-26.3.0/tests/fixtures/series/__init__.py +25 -0
  307. pyxsdata-26.3.0/tests/fixtures/series/samples/show1.json +40 -0
  308. pyxsdata-26.3.0/tests/fixtures/series/samples/show2.json +52 -0
  309. pyxsdata-26.3.0/tests/fixtures/series/series.py +282 -0
  310. pyxsdata-26.3.0/tests/fixtures/stripe/.pyxsdata.xml +21 -0
  311. pyxsdata-26.3.0/tests/fixtures/stripe/__init__.py +0 -0
  312. pyxsdata-26.3.0/tests/fixtures/stripe/models/__init__.py +15 -0
  313. pyxsdata-26.3.0/tests/fixtures/stripe/models/balance.py +120 -0
  314. pyxsdata-26.3.0/tests/fixtures/stripe/samples/balance.json +158 -0
  315. pyxsdata-26.3.0/tests/fixtures/submodels.py +8 -0
  316. pyxsdata-26.3.0/tests/fixtures/typemapping/__init__.py +0 -0
  317. pyxsdata-26.3.0/tests/fixtures/typemapping/city.py +14 -0
  318. pyxsdata-26.3.0/tests/fixtures/typemapping/house.py +14 -0
  319. pyxsdata-26.3.0/tests/fixtures/typemapping/street.py +16 -0
  320. pyxsdata-26.3.0/tests/fixtures/wrapper/__init__.py +15 -0
  321. pyxsdata-26.3.0/tests/fixtures/wrapper/models.py +93 -0
  322. pyxsdata-26.3.0/tests/fixtures/wrapper/sample.json +23 -0
  323. pyxsdata-26.3.0/tests/fixtures/wrapper/sample.py +21 -0
  324. pyxsdata-26.3.0/tests/fixtures/wrapper/sample.pyxsdata.xml +14 -0
  325. pyxsdata-26.3.0/tests/fixtures/wrapper/sample.xml +14 -0
  326. pyxsdata-26.3.0/tests/fixtures/wrapper/schema.xsd +41 -0
  327. pyxsdata-26.3.0/tests/formats/__init__.py +0 -0
  328. pyxsdata-26.3.0/tests/formats/dataclass/__init__.py +0 -0
  329. pyxsdata-26.3.0/tests/formats/dataclass/cases/__init__.py +0 -0
  330. pyxsdata-26.3.0/tests/formats/dataclass/cases/attribute.py +37 -0
  331. pyxsdata-26.3.0/tests/formats/dataclass/cases/attributes.py +14 -0
  332. pyxsdata-26.3.0/tests/formats/dataclass/cases/element.py +39 -0
  333. pyxsdata-26.3.0/tests/formats/dataclass/cases/elements.py +16 -0
  334. pyxsdata-26.3.0/tests/formats/dataclass/cases/wildcard.py +19 -0
  335. pyxsdata-26.3.0/tests/formats/dataclass/models/__init__.py +0 -0
  336. pyxsdata-26.3.0/tests/formats/dataclass/models/test_builders.py +449 -0
  337. pyxsdata-26.3.0/tests/formats/dataclass/parsers/__init__.py +0 -0
  338. pyxsdata-26.3.0/tests/formats/dataclass/parsers/handlers/__init__.py +0 -0
  339. pyxsdata-26.3.0/tests/formats/dataclass/parsers/handlers/test_lxml.py +67 -0
  340. pyxsdata-26.3.0/tests/formats/dataclass/parsers/handlers/test_native.py +78 -0
  341. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/__init__.py +0 -0
  342. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/test_element.py +617 -0
  343. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/test_primitive.py +92 -0
  344. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/test_skip.py +15 -0
  345. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/test_standard.py +68 -0
  346. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/test_union.py +164 -0
  347. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/test_wildcard.py +66 -0
  348. pyxsdata-26.3.0/tests/formats/dataclass/parsers/nodes/test_wrapper.py +103 -0
  349. pyxsdata-26.3.0/tests/formats/dataclass/parsers/test_dict.py +446 -0
  350. pyxsdata-26.3.0/tests/formats/dataclass/parsers/test_json.py +26 -0
  351. pyxsdata-26.3.0/tests/formats/dataclass/parsers/test_mixins.py +34 -0
  352. pyxsdata-26.3.0/tests/formats/dataclass/parsers/test_node.py +211 -0
  353. pyxsdata-26.3.0/tests/formats/dataclass/parsers/test_tree.py +28 -0
  354. pyxsdata-26.3.0/tests/formats/dataclass/parsers/test_utils.py +142 -0
  355. pyxsdata-26.3.0/tests/formats/dataclass/parsers/test_xml.py +62 -0
  356. pyxsdata-26.3.0/tests/formats/dataclass/serializers/__init__.py +0 -0
  357. pyxsdata-26.3.0/tests/formats/dataclass/serializers/test_code.py +144 -0
  358. pyxsdata-26.3.0/tests/formats/dataclass/serializers/test_config.py +34 -0
  359. pyxsdata-26.3.0/tests/formats/dataclass/serializers/test_dict.py +134 -0
  360. pyxsdata-26.3.0/tests/formats/dataclass/serializers/test_json.py +98 -0
  361. pyxsdata-26.3.0/tests/formats/dataclass/serializers/test_mixins.py +1121 -0
  362. pyxsdata-26.3.0/tests/formats/dataclass/serializers/test_xml.py +38 -0
  363. pyxsdata-26.3.0/tests/formats/dataclass/serializers/writers/__init__.py +0 -0
  364. pyxsdata-26.3.0/tests/formats/dataclass/serializers/writers/test_lxml.py +91 -0
  365. pyxsdata-26.3.0/tests/formats/dataclass/serializers/writers/test_native.py +54 -0
  366. pyxsdata-26.3.0/tests/formats/dataclass/test_client.py +162 -0
  367. pyxsdata-26.3.0/tests/formats/dataclass/test_compat.py +35 -0
  368. pyxsdata-26.3.0/tests/formats/dataclass/test_context.py +135 -0
  369. pyxsdata-26.3.0/tests/formats/dataclass/test_elements.py +243 -0
  370. pyxsdata-26.3.0/tests/formats/dataclass/test_filters.py +1140 -0
  371. pyxsdata-26.3.0/tests/formats/dataclass/test_generator.py +226 -0
  372. pyxsdata-26.3.0/tests/formats/dataclass/test_transport.py +70 -0
  373. pyxsdata-26.3.0/tests/formats/dataclass/test_typing.py +88 -0
  374. pyxsdata-26.3.0/tests/formats/test_converter.py +445 -0
  375. pyxsdata-26.3.0/tests/formats/test_mixins.py +70 -0
  376. pyxsdata-26.3.0/tests/integration/__init__.py +0 -0
  377. pyxsdata-26.3.0/tests/integration/benchmarks/__init__.py +0 -0
  378. pyxsdata-26.3.0/tests/integration/benchmarks/conftest.py +12 -0
  379. pyxsdata-26.3.0/tests/integration/benchmarks/test_converters.py +23 -0
  380. pyxsdata-26.3.0/tests/integration/benchmarks/test_handlers.py +47 -0
  381. pyxsdata-26.3.0/tests/integration/benchmarks/utils.py +51 -0
  382. pyxsdata-26.3.0/tests/integration/test_annotations.py +37 -0
  383. pyxsdata-26.3.0/tests/integration/test_artists.py +37 -0
  384. pyxsdata-26.3.0/tests/integration/test_books.py +34 -0
  385. pyxsdata-26.3.0/tests/integration/test_calculator.py +46 -0
  386. pyxsdata-26.3.0/tests/integration/test_compound.py +34 -0
  387. pyxsdata-26.3.0/tests/integration/test_docstrings.py +94 -0
  388. pyxsdata-26.3.0/tests/integration/test_dtd.py +29 -0
  389. pyxsdata-26.3.0/tests/integration/test_hello_rpc.py +93 -0
  390. pyxsdata-26.3.0/tests/integration/test_primer.py +28 -0
  391. pyxsdata-26.3.0/tests/integration/test_series.py +38 -0
  392. pyxsdata-26.3.0/tests/integration/test_stripe.py +42 -0
  393. pyxsdata-26.3.0/tests/integration/test_type_mapping.py +32 -0
  394. pyxsdata-26.3.0/tests/integration/test_wrapper.py +35 -0
  395. pyxsdata-26.3.0/tests/models/__init__.py +0 -0
  396. pyxsdata-26.3.0/tests/models/enums/__init__.py +0 -0
  397. pyxsdata-26.3.0/tests/models/enums/test_datatype.py +60 -0
  398. pyxsdata-26.3.0/tests/models/test_config.py +178 -0
  399. pyxsdata-26.3.0/tests/models/test_datatype.py +572 -0
  400. pyxsdata-26.3.0/tests/models/test_mixins.py +198 -0
  401. pyxsdata-26.3.0/tests/models/wsdl/__init__.py +0 -0
  402. pyxsdata-26.3.0/tests/models/wsdl/test_binding.py +21 -0
  403. pyxsdata-26.3.0/tests/models/wsdl/test_definitions.py +82 -0
  404. pyxsdata-26.3.0/tests/models/wsdl/test_port_type.py +15 -0
  405. pyxsdata-26.3.0/tests/models/xsd/__init__.py +0 -0
  406. pyxsdata-26.3.0/tests/models/xsd/test_all.py +19 -0
  407. pyxsdata-26.3.0/tests/models/xsd/test_alternative.py +26 -0
  408. pyxsdata-26.3.0/tests/models/xsd/test_annotation_base.py +37 -0
  409. pyxsdata-26.3.0/tests/models/xsd/test_any.py +52 -0
  410. pyxsdata-26.3.0/tests/models/xsd/test_any_attribute.py +42 -0
  411. pyxsdata-26.3.0/tests/models/xsd/test_attribute.py +76 -0
  412. pyxsdata-26.3.0/tests/models/xsd/test_attribute_group.py +16 -0
  413. pyxsdata-26.3.0/tests/models/xsd/test_choice.py +19 -0
  414. pyxsdata-26.3.0/tests/models/xsd/test_complex_content.py +11 -0
  415. pyxsdata-26.3.0/tests/models/xsd/test_complex_type.py +20 -0
  416. pyxsdata-26.3.0/tests/models/xsd/test_element.py +118 -0
  417. pyxsdata-26.3.0/tests/models/xsd/test_enumeration.py +25 -0
  418. pyxsdata-26.3.0/tests/models/xsd/test_extension.py +11 -0
  419. pyxsdata-26.3.0/tests/models/xsd/test_group.py +30 -0
  420. pyxsdata-26.3.0/tests/models/xsd/test_list.py +24 -0
  421. pyxsdata-26.3.0/tests/models/xsd/test_restriction.py +93 -0
  422. pyxsdata-26.3.0/tests/models/xsd/test_schema.py +41 -0
  423. pyxsdata-26.3.0/tests/models/xsd/test_sequence.py +19 -0
  424. pyxsdata-26.3.0/tests/models/xsd/test_simple_type.py +61 -0
  425. pyxsdata-26.3.0/tests/models/xsd/test_union.py +66 -0
  426. pyxsdata-26.3.0/tests/pydantic/__init__.py +0 -0
  427. pyxsdata-26.3.0/tests/pydantic/fixtures/__init__.py +0 -0
  428. pyxsdata-26.3.0/tests/pydantic/fixtures/common.py +22 -0
  429. pyxsdata-26.3.0/tests/pydantic/fixtures/po/__init__.py +15 -0
  430. pyxsdata-26.3.0/tests/pydantic/fixtures/po/models.py +166 -0
  431. pyxsdata-26.3.0/tests/pydantic/fixtures/pydantic.conf.xml +27 -0
  432. pyxsdata-26.3.0/tests/pydantic/fixtures/schemas/po.xsd +71 -0
  433. pyxsdata-26.3.0/tests/pydantic/test_bindings.py +51 -0
  434. pyxsdata-26.3.0/tests/pydantic/test_compat.py +19 -0
  435. pyxsdata-26.3.0/tests/pydantic/test_generator.py +39 -0
  436. pyxsdata-26.3.0/tests/test_cli.py +204 -0
  437. pyxsdata-26.3.0/tests/utils/__init__.py +0 -0
  438. pyxsdata-26.3.0/tests/utils/test_collections.py +60 -0
  439. pyxsdata-26.3.0/tests/utils/test_dates.py +133 -0
  440. pyxsdata-26.3.0/tests/utils/test_downloader.py +139 -0
  441. pyxsdata-26.3.0/tests/utils/test_hooks.py +35 -0
  442. pyxsdata-26.3.0/tests/utils/test_namespaces.py +138 -0
  443. pyxsdata-26.3.0/tests/utils/test_objects.py +17 -0
  444. pyxsdata-26.3.0/tests/utils/test_testing.py +16 -0
  445. pyxsdata-26.3.0/tests/utils/test_text.py +161 -0
@@ -0,0 +1,1011 @@
1
+ ## 26.2 (2026-02-15)
2
+
3
+ **Fixes**
4
+
5
+ - Fix elements in same choice different branches incorrectly merged as list
6
+ ([#1206](https://github.com/tefra/xsdata/pull/1206))
7
+
8
+ **Features**
9
+
10
+ - Infer XML required property from typing annotations
11
+ ([#1208](https://github.com/tefra/xsdata/pull/1208))
12
+ - Generate required metadata only for attributes without default values
13
+ ([#1208](https://github.com/tefra/xsdata/pull/1208))
14
+
15
+ ## 26.1 (2026-01-20)
16
+
17
+ **Fixes**
18
+
19
+ - Fixed missing imports on inheriting multiple mixins for the same class
20
+ ([#1156](https://github.com/tefra/xsdata/pull/1156))
21
+ - Fixed choice elements with minOccurs <= 1 not marked as optional
22
+ - Fixed incorrect max_occurs for elements in different choice blocks
23
+ ([#1179](https://github.com/tefra/xsdata/pull/1179))
24
+ - Fixed AttributeError when retrieving subclasses from cython packages
25
+ ([#1200](https://github.com/tefra/xsdata/pull/1200))
26
+
27
+ **Features**
28
+
29
+ - Added flag for specifying extensions
30
+ ([#1168](https://github.com/tefra/xsdata/pull/1168))
31
+ - Added support for python 3.14 ([#1173](https://github.com/tefra/xsdata/pull/1173))
32
+ - Switched to Sequence when using generic containers
33
+ ([#1201](https://github.com/tefra/xsdata/pull/1201))
34
+
35
+ **Deprecations**
36
+
37
+ - Removed Python 3.9 support ([#1189](https://github.com/tefra/xsdata/pull/1189))
38
+ ([#1191](https://github.com/tefra/xsdata/pull/1191))
39
+ - Removed cli options union-type, kw-only, postponed-annotations are now always enabled
40
+ - Removed xsdata <SOURCE> shorthand ([#1128](https://github.com/tefra/xsdata/pull/1128))
41
+
42
+ ## 25.7 (2025-07-06)
43
+
44
+ **Fixes**
45
+
46
+ - Ignore dynamic classes in auto-discovery mode.
47
+ ([#1144](https://github.com/tefra/xsdata/pull/1144))
48
+ - Parsing tail content with nested mixed classes
49
+ ([#1151](https://github.com/tefra/xsdata/pull/1151))
50
+
51
+ ## 25.4 (2025-04-13)
52
+
53
+ **Features**
54
+
55
+ - Allow extensions to match module paths
56
+ ([#1132](https://github.com/tefra/xsdata/pull/1132))
57
+
58
+ - Improve duplicate class names detection and resolution
59
+ ([#1127](https://github.com/tefra/xsdata/pull/1127))
60
+
61
+ **Fixes**
62
+
63
+ - Resolve Code Quality Issue
64
+
65
+ ## 24.12 (2024-12-22)
66
+
67
+ **Fixes**
68
+
69
+ - Set the default value of prohibited fields to None
70
+ ([#1098](https://github.com/tefra/xsdata/pull/1098))
71
+
72
+ - Set body and fault as optional in output soap classes
73
+ ([#1099](https://github.com/tefra/xsdata/pull/1099))
74
+
75
+ - Resolve a conflict with type location when an element and a complex type have the same
76
+ name ([#1107](https://github.com/tefra/xsdata/pull/1107))
77
+
78
+ **Features**
79
+
80
+ - Allow Xml Parser subclasses to override how the root class is located
81
+ ([#1090](https://github.com/tefra/xsdata/pull/1090))
82
+
83
+ - Include common soap encoding schema
84
+ ([#1100](https://github.com/tefra/xsdata/pull/1100))
85
+
86
+ **Deprecations**
87
+
88
+ - Remove subscritable types config option
89
+ - Remove Type,Tuple,List,Dict from stop words
90
+ - Deprecate xsdata <SOURCE> shorthand, use xsdata generate <SOURCE> instead
91
+
92
+ ## 24.11 (2024-11-03)
93
+
94
+ **Fixes**
95
+
96
+ - Avoid conflict with attributes named value when flattening extensions
97
+ ([#1085](https://github.com/tefra/xsdata/pull/1085))
98
+
99
+ **Features**
100
+
101
+ - Add cli config to use generic collections
102
+ ([#1082](https://github.com/tefra/xsdata/pull/1082))
103
+
104
+ **Deprecations**
105
+
106
+ - Drop support for python 3.8
107
+
108
+ ## 24.9 (2024-09-21)
109
+
110
+ **Fixes**
111
+
112
+ - Fix typing annotations deprecation warning in Python 3.13
113
+ ([#1077](https://github.com/tefra/xsdata/pull/1077))
114
+
115
+ **Features**
116
+
117
+ - Allow generators as array elements
118
+ ([#1074](https://github.com/tefra/xsdata/pull/1074))
119
+
120
+ ## 24.7 (2024-07-28)
121
+
122
+ **Features**
123
+
124
+ - Improve XML parsing performance on union elements with fixed attributes
125
+ ([#1066](https://github.com/tefra/xsdata/pull/1066))
126
+ - Skip optional and nillable elements on XML Serializer
127
+ ([#1066](https://github.com/tefra/xsdata/pull/1066))
128
+
129
+ **Fixes**
130
+
131
+ - Reset attr types derived from missing simple types
132
+ ([#1062](https://github.com/tefra/xsdata/pull/1062))
133
+
134
+ ## 24.6.1 (2024-06-28)
135
+
136
+ **Fixes**
137
+
138
+ - Ruff check command typo breaks generator with v0.5.0
139
+ ([#1061](https://github.com/tefra/xsdata/pull/1061))
140
+
141
+ ## 24.6 (2024-06-24)
142
+
143
+ **Features**
144
+
145
+ - Add class and field info in parsing warnings
146
+ ([#1036](https://github.com/tefra/xsdata/pull/1036))
147
+ - Remove whitespace from bytes encoded xml strings
148
+ ([#1037](https://github.com/tefra/xsdata/pull/1037))
149
+ - Improve codegen performance ([#1043](https://github.com/tefra/xsdata/pull/1043))
150
+
151
+ **Fixes**
152
+
153
+ - JSON serializer fails on derived elements
154
+ ([#1053](https://github.com/tefra/xsdata/pull/1053))
155
+ - Update typing-extensions minimum version
156
+ ([#1039](https://github.com/tefra/xsdata/pull/1039))
157
+ - Avoid using not-threadsafe warnings.catch_warning
158
+ ([#1042](https://github.com/tefra/xsdata/pull/1042))
159
+ - Unnest classes doesn't update inner classes recursively
160
+ ([#1047](https://github.com/tefra/xsdata/pull/1047))
161
+ - Restore support for optional lists
162
+ ([#1053](https://github.com/tefra/xsdata/pull/1053))
163
+
164
+ ## 24.5 (2024-05-07)
165
+
166
+ **Features**
167
+
168
+ - Rewrite TreeSerializer, drop support for native python ElementTree
169
+ ([#1032](https://github.com/tefra/xsdata/pull/1032))
170
+ - Validate fields fixed values ([#1013](https://github.com/tefra/xsdata/pull/1013))
171
+ - Detect optional fields in dict mapper
172
+ - Refactor typing annotations analyze process
173
+ - Generate ForwardRef() instead of Type[]
174
+
175
+ **Fixes**
176
+
177
+ - Allow soap client config subclassing
178
+ ([#1010](https://github.com/tefra/xsdata/pull/1010))
179
+ - Avoid recursive error on nested group references
180
+ ([#1016](https://github.com/tefra/xsdata/pull/1016))
181
+ - Add warning for same module designation
182
+ ([#1018](https://github.com/tefra/xsdata/pull/1018))
183
+
184
+ ## 24.4 (2024-04-01)
185
+
186
+ **Features**
187
+
188
+ - Add xml and lxml tree serializers ([#975](https://github.com/tefra/xsdata/pull/975))
189
+ - Capture namespace prefixes in user dicts
190
+ ([#978](https://github.com/tefra/xsdata/pull/978))
191
+ - Add cli option to generate wrapper fields
192
+ ([#982](https://github.com/tefra/xsdata/pull/982))
193
+ - Support wrapper fields in JSON data bindings
194
+ ([#982](https://github.com/tefra/xsdata/pull/982))
195
+ - Use abstract suffixes to resolve class name conflicts
196
+ ([#985](https://github.com/tefra/xsdata/pull/985))
197
+ - Add the version number in the cli cache key
198
+ ([#990](https://github.com/tefra/xsdata/pull/990))
199
+ - Use unicodedata.name for attrs with only special characters
200
+ ([#993](https://github.com/tefra/xsdata/pull/993))
201
+ - Add src code excerpts on ruff errors
202
+ ([#996](https://github.com/tefra/xsdata/pull/996))
203
+ - Detect circular imports and raise appropriate error
204
+ ([#999](https://github.com/tefra/xsdata/pull/999))
205
+ - Add support for Python 3.13 ([#1001](https://github.com/tefra/xsdata/pull/1001))
206
+ - Add cli debug messages with performance stats
207
+
208
+ **Fixes**
209
+
210
+ - Use deepcopy to clone codegen models
211
+ ([#980](https://github.com/tefra/xsdata/pull/980))
212
+ - Generate type hints for compound fields with token elements
213
+ ([#997](https://github.com/tefra/xsdata/pull/997))
214
+ - Protect prohibited attrs from turning into lists
215
+ ([#998](https://github.com/tefra/xsdata/pull/998))
216
+ - Convert child attr to list when parent is list
217
+ ([#998](https://github.com/tefra/xsdata/pull/998))
218
+
219
+ ## 24.3.1 (2024-03-10)
220
+
221
+ **Fixes**
222
+
223
+ - Unnest class with circular reference
224
+ ([#974](https://github.com/tefra/xsdata/pull/974))
225
+
226
+ ## 24.3 (2024-03-10)
227
+
228
+ **Features**
229
+
230
+ - Avoid flattening root elements ([#945](https://github.com/tefra/xsdata/pull/945))
231
+ - Avoid generating ambiguous choices ([#946](https://github.com/tefra/xsdata/pull/946))
232
+ - Added various type reference validations
233
+ ([#966](https://github.com/tefra/xsdata/pull/966),
234
+ [#967](https://github.com/tefra/xsdata/pull/967),
235
+ [#968](https://github.com/tefra/xsdata/pull/968))
236
+ - Calculate circular references more accurately
237
+ ([#969](https://github.com/tefra/xsdata/pull/969))
238
+ - Prettify codegen errors ([#970](https://github.com/tefra/xsdata/pull/970))
239
+ - Use Ruff to sort imports ([#972](https://github.com/tefra/xsdata/pull/972))
240
+
241
+ **Fixes**
242
+
243
+ - Move ruff format in the code generator
244
+ ([#964](https://github.com/tefra/xsdata/pull/964))
245
+
246
+ ## 24.2.1 (2024-02-19)
247
+
248
+ - Fixed FieldInfo type errors ([#949](https://github.com/tefra/xsdata/pull/949))
249
+ - Fixed private package names ([#950](https://github.com/tefra/xsdata/pull/950))
250
+
251
+ ## 24.2 (2024-02-17)
252
+
253
+ - Added Dict encoder/decoder ([#921](https://github.com/tefra/xsdata/pull/921))
254
+ - Deprecated Serializer config pretty_print/pretty_print_indentation
255
+ ([#942](https://github.com/tefra/xsdata/pull/942))
256
+ - Fixed lxml event writer to respect the encoding configuration
257
+ ([#940](https://github.com/tefra/xsdata/pull/940))
258
+ - Migrated documentation to mkdocs with markdown
259
+ - Refactored project docstrings
260
+
261
+ ## 24.1 (2024-01-04)
262
+
263
+ - Fixed XmlParser to ignore xsi attrs when fail on unknown attributes is enabled
264
+ ([#846](https://github.com/tefra/xsdata/pull/846))
265
+ - Fixed parsing mandatory byte elements with no value
266
+ ([#873](https://github.com/tefra/xsdata/pull/873))
267
+ - Fixed issue in json binding with union fields
268
+ ([#864](https://github.com/tefra/xsdata/pull/864))
269
+ - Fixed PycodeSerializer to escape unicode characters in string values
270
+ ([#877](https://github.com/tefra/xsdata/pull/877))
271
+ - Fixed compound field choices with forward references
272
+ ([#886](https://github.com/tefra/xsdata/pull/886))
273
+ - Fixed google style docstrings to add missing colon
274
+ ([#884](https://github.com/tefra/xsdata/pull/884))
275
+ - Fixed deprecation warnings for datetime.datetime.utcnow()
276
+ - Fixed XmlSerializer to ignore empty non-nillable/required tokens
277
+ ([#902](https://github.com/tefra/xsdata/pull/902))
278
+ - Fixed issue with invalid variable names when using originalCase naming convention
279
+ ([#881](https://github.com/tefra/xsdata/pull/881))
280
+ - Added type hints for compound fields
281
+ ([#858](https://github.com/tefra/xsdata/pull/858),
282
+ [#885](https://github.com/tefra/xsdata/pull/885))
283
+ - Added http header when loading remote resources
284
+ ([#867](https://github.com/tefra/xsdata/pull/867))
285
+ - Added warning when converting parent field to a list
286
+ ([#871](https://github.com/tefra/xsdata/pull/871))
287
+ - Added ruff to format generated code ([#892](https://github.com/tefra/xsdata/pull/892))
288
+ - Added option to use substitution group names for compound field name
289
+ ([#905](https://github.com/tefra/xsdata/pull/905))
290
+ - Updated base64 decoding to enable validation
291
+ ([#875](https://github.com/tefra/xsdata/pull/875))
292
+ - Updated generator to render prohibited parent fields with restriction extensions
293
+ ([#908](https://github.com/tefra/xsdata/pull/908))
294
+ - Updated generator so plugins can easily override templates
295
+
296
+ ## 23.8 (2023-08-12)
297
+
298
+ - Removed Python 3.7 support
299
+ - Fixed PycodeSerializer not adding imports for nested classes
300
+ - Fixed imports ordering
301
+ - Added support for strict content wildcard processing
302
+ ([#803](https://github.com/tefra/xsdata/pull/803))
303
+
304
+ ## 23.7 (2023-07-23)
305
+
306
+ - Fixed decimal converter to avoid scientific notations
307
+ ([#826](https://github.com/tefra/xsdata/pull/826))
308
+ - Fixed nympy parameter docstring format
309
+ ([#827](https://github.com/tefra/xsdata/pull/827))
310
+ - Fixed optional/required override validation
311
+ ([#820](https://github.com/tefra/xsdata/pull/820))
312
+ - Fixed WSDL mapper to respect the elements original location
313
+ ([#832](https://github.com/tefra/xsdata/pull/832))
314
+ - Added Python 3.12 support
315
+
316
+ ## 23.6 (2023-06-24)
317
+
318
+ - Fixed conflicting enum values leading to wrong default values
319
+ ([#806](https://github.com/tefra/xsdata/pull/806))
320
+ - Added support for custom decorators and base classes
321
+ ([#793](https://github.com/tefra/xsdata/pull/793))
322
+ - Added parser config to load external dtd to resolve entities
323
+ ([#797](https://github.com/tefra/xsdata/pull/797))
324
+ - Added requests sessions on the wsdl client transport
325
+ ([#798](https://github.com/tefra/xsdata/pull/798))
326
+ - Added support subscriptable types and UnionType
327
+ ([#801](https://github.com/tefra/xsdata/pull/801))
328
+ - Added option to restrict models package for auto-locator
329
+ ([#809](https://github.com/tefra/xsdata/pull/809))
330
+ - Updated context to only cache supported classes
331
+ ([#796](https://github.com/tefra/xsdata/pull/796))
332
+ - Removed tox requirement ([#800](https://github.com/tefra/xsdata/pull/800))
333
+ - Converted to pyproject.toml ([#802](https://github.com/tefra/xsdata/pull/802))
334
+
335
+ ## 23.5 (2023-05-21)
336
+
337
+ - Fixed XML meta var index conflicts.
338
+ - Fixed mixed content handling for DTD elements.
339
+ ([#749](https://github.com/tefra/xsdata/pull/749),
340
+ [#762](https://github.com/tefra/xsdata/pull/762))
341
+ - Fixed an issue with required attributes turning into optional ones.
342
+ - Fixed calculation of min/max occurs when parsing XML/JSON documents.
343
+ ([#756](https://github.com/tefra/xsdata/pull/756))
344
+ - Fixed calculation of min/max occurs when parsing DTD choice content types.
345
+ ([#760](https://github.com/tefra/xsdata/pull/760))
346
+ - Fixed an issue when parsing tail content for compound wildcard elements.
347
+ - Fixed an issue with the code analyzer not fully processing some classes.
348
+ - Fixed an issue with the code analyzer taking forever to process very large
349
+ enumerations. ([#776](https://github.com/tefra/xsdata/issue/776))
350
+ - Fixed an issue in the JSON parser with optional choice elements.
351
+ - Updated the transformer to silently ignore malformed JSON files.
352
+ ([#750](https://github.com/tefra/xsdata/pull/750))
353
+ - Updated the override attribute handler to fix naming conflicts.
354
+ - Updated the override attribute handler to allow wildcard overrides.
355
+ - Updated conditions on extensions flattening (over-flattening).
356
+ ([#754](https://github.com/tefra/xsdata/pull/754))
357
+ - Updated Group, AttributeGroup handling, skipping a few cases.
358
+ - Updated how min/max occurs are calculated with nested containers.
359
+ - Updated handling of element substitutions to treat them as choices.
360
+ ([#786](https://github.com/tefra/xsdata/pull/786))
361
+ - Updated Pycodeserializer to skip default field values.
362
+ - Updated flattening restriction base classes when sequence elements are out of order.
363
+ - Updated docformatter to v1.6.5.
364
+ - Added support to override compound fields.
365
+ - Added support for multiple sequential groups in a class.
366
+ - Added support for non-list compound fields.
367
+ - Added support to mix list and non-list fields with sequence groups.
368
+ - Added an option to include headers in generated files.
369
+ ([#746](https://github.com/tefra/xsdata/pull/746))
370
+ - Added an option to cache the initial load and mapping of resources.
371
+ - Added support for regular expressions in config substitutions.
372
+ ([#755](https://github.com/tefra/xsdata/pull/755))
373
+ - Added a pretty print indentation option in the serializer config.
374
+ ([#780](https://github.com/tefra/xsdata/pull/780))
375
+ - Added an option to set the encoding in the SOAP Client.
376
+ ([#773](https://github.com/tefra/xsdata/pull/773))
377
+ - Added a CLI flag to show debug messages.
378
+ - Added a debug message for possible circular references during code generation.
379
+ - Added support to generate prohibited fields when they restrict parent fields.
380
+ ([#781](https://github.com/tefra/xsdata/pull/781))
381
+
382
+ This release is bigger than intended and includes many major changes, that's why it took
383
+ so long.
384
+
385
+ ## 22.12 (2022-12-17)
386
+
387
+ - Added option to ignore xml pattern restrictions
388
+ [#727](https://github.com/tefra/xsdata/pull/727)
389
+ - Added globalns support via SerializerConfig
390
+ [#724](https://github.com/tefra/xsdata/pull/724)
391
+ - Pinned docformatter version to v1.5.0 [#729](https://github.com/tefra/xsdata/pull/729)
392
+
393
+ ## 22.11 (2022-11-06)
394
+
395
+ - Added list wrapper for elements and primitive nodes
396
+ [#710](https://github.com/tefra/xsdata/pull/710)
397
+
398
+ ## 22.9 (2022-09-24)
399
+
400
+ - Fixed code generation inconsistencies in different operating systems.
401
+ - Fixed circular imports error [#706](https://github.com/tefra/xsdata/pull/706)
402
+ - Fixed naming conflicts in imports [#706](https://github.com/tefra/xsdata/pull/706)
403
+ - Fixed issue with wrong occurrences in DTD code generation
404
+ [#705](https://github.com/tefra/xsdata/pull/705)
405
+ - Fixed xs:group and xs:attrGroup name conflicts
406
+ [#702](https://github.com/tefra/xsdata/pull/702)
407
+ - Added mathml3 in standard schemas
408
+
409
+ ## 22.8 (2022-08-21)
410
+
411
+ - Added pycode serializer [#626](https://github.com/tefra/xsdata/issues/626)
412
+ - Added option to filter out unused global types
413
+ [#691](https://github.com/tefra/xsdata/issues/691)
414
+ - Avoid using generics for mixed content when possible
415
+ [#696](https://github.com/tefra/xsdata/pull/696)
416
+ - Removed support for python 3.6 [#671](https://github.com/tefra/xsdata/pull/671)
417
+
418
+ ## 22.7 (2022-07-22)
419
+
420
+ - Fix empty lists do not get serialized
421
+ [#686](https://github.com/tefra/xsdata/issues/686)
422
+ - Added external DTD code generator [#688](https://github.com/tefra/xsdata/pull/688)
423
+ - Added support for python 3.11
424
+
425
+ In the next release we will drop python 3.6 support!!!
426
+
427
+ ## 22.5 (2022-05-08)
428
+
429
+ - Added support for xml date/time nanoseconds
430
+ [#679](https://github.com/tefra/xsdata/pull/679)
431
+
432
+ ## 22.4 (2022-04-10)
433
+
434
+ - Added config option to unnest classes
435
+ - Added new class meta option global_type, to hide classes from discovery
436
+ - Removed min/max length restrictions for enum type fields
437
+ - Allow builtin xml types to be fully extended
438
+ [#672](https://github.com/tefra/xsdata/pull/672)
439
+
440
+ ## 22.3 (2022-03-20)
441
+
442
+ - Added official support for python 3.11
443
+ - Fixed enumerations restricting complex types
444
+ [#659](https://github.com/tefra/xsdata/issues/659)
445
+ - Fixed attribute name duplicate check to avoid invalid slugs
446
+
447
+ ## 22.2 (2022-02-06)
448
+
449
+ - Fixed substitution groups on duplicate global types
450
+ [#648](https://github.com/tefra/xsdata/issues/648)
451
+ - Added Postponed Annotations config option
452
+ [#646](https://github.com/tefra/xsdata/issues/646)
453
+ - Added support for subclasses with different namespaces
454
+ [#654](https://github.com/tefra/xsdata/issues/654)
455
+
456
+ ## 22.1 (2022-01-23)
457
+
458
+ - Added recursive glob for cli dir source
459
+ [#643](https://github.com/tefra/xsdata/issues/643)
460
+ - Added cfg options to change/force compound field names
461
+ [#639](https://github.com/tefra/xsdata/issues/639)
462
+
463
+ ## 21.12 (2021-12-05)
464
+
465
+ - Fixed wsdl generator to use operation name for rpc input messages
466
+ [#609](https://github.com/tefra/xsdata/issues/609)
467
+ - Fixed wsdl generator to check for qualified elements for message part types
468
+ [#612](https://github.com/tefra/xsdata/issues/612)
469
+ - Fixed compound field matcher to prefer exact types over derived
470
+ [#617](https://github.com/tefra/xsdata/issues/617)
471
+ - Added async to the reserved keywords
472
+ [#600](https://github.com/tefra/xsdata/issues/600)
473
+ - Added generator config for search & replace substitutions
474
+ [#624](https://github.com/tefra/xsdata/issues/624)
475
+ - Updated code generator to remove abstract elements from class attrs
476
+ [#627](https://github.com/tefra/xsdata/issues/627)
477
+ - Updated code generator to filter out all unused types
478
+ [#629](https://github.com/tefra/xsdata/issues/629)
479
+
480
+ ## 21.11 (2021-11-02)
481
+
482
+ - Fixed unescaped quotes in regex pattern
483
+ [#592](https://github.com/tefra/xsdata/issues/592)
484
+ - Added config option fail_on_unknown_attributes
485
+ [#597](https://github.com/tefra/xsdata/issues/597)
486
+ - Fixed build for python 3.10
487
+
488
+ ## 21.9 (2021-09-04)
489
+
490
+ - Automate cli generate options [#578](https://github.com/tefra/xsdata/pull/578)
491
+ - Generate cli options by the config model
492
+ - Allow to enable/disable any flag
493
+ - Allow to bypass any value from the config
494
+ - Removed -cf/-ri as we can't have switches with short names
495
+
496
+ - Fixed generator not cascading default values to inner classes
497
+ [#579](https://github.com/tefra/xsdata/issues/579)
498
+ - Re-raise xml syntax errors as xsdata.exceptions.ParserError
499
+ [#571](https://github.com/tefra/xsdata/issues/571)
500
+ - Added cli summary with recovered warnings and issues
501
+ [#583](https://github.com/tefra/xsdata/pull/583)
502
+ - Removed the native and lxml SAX handlers
503
+ [#582](https://github.com/tefra/xsdata/issues/582)
504
+
505
+ ## 21.8 (2021-08-03)
506
+
507
+ - Deprecated JsonSerializer indent property, use SerializerConfig instead
508
+ - Fixed SchemaMapper assigning wrong namespace for imported unqualified elements
509
+ - Fixed AttributeTypeHandler to maintain occurs between any flattening
510
+ - Fixed missing required field metadata property
511
+ - Fixed nillable fields not being marked as optional
512
+ - Fixed fields ordering during class reduce process (Codegen from xml/json)
513
+ - Added support for xs:defaultOpenContent:appliesToEmpty attribute
514
+ - Added ParserConfig class factory option
515
+ [#549](https://github.com/tefra/xsdata/pull/549)
516
+ - Added SerializerConfig option to ignore optional default attributes
517
+ [#555](https://github.com/tefra/xsdata/pull/555)
518
+ - Added warning on unexpected duplicate types
519
+ [#564](https://github.com/tefra/xsdata/pull/564)
520
+ - Added GeneratorConfig support for kw_only and slots for python >= 3.10
521
+ - Added structure style namespace-clusters
522
+ [#573](https://github.com/tefra/xsdata/pull/573)
523
+ - Updated text fields default value to empty string and marked as required
524
+ [#570](https://github.com/tefra/xsdata/pull/570)
525
+ - Updated fields derived from xs:substitutionGroups to optional
526
+ - Updated fields derived from xs:any to optional
527
+ - Updated AttributeDefaultValueHandler to preserve acceptable default values
528
+ - Updated AttributeDefaultValueHandler to mark as optional any xsi:type attribute
529
+ - Updated xs:alternative handling to resemble xs:choice
530
+ - Updated mixed content handler to group all elements under wildcard
531
+ - Updated ElementMapper to detect nillable types
532
+ - Updated DictMapper to generate list of xs:anySimpleType for empty list nodes
533
+ - Updated the compatibility layer for dataclass style plugins
534
+ - Updated namespaces structure style to convert namespaces similar to jaxb
535
+ - `http://www.w3.org/XML/1998/namespace` to `org.w3.XML.1998.namespace`
536
+
537
+ - Update binding process for nillable types and fields
538
+ - nillable types can be initialized
539
+ - nillable fields are initialized with None values
540
+
541
+ ## 21.7 (2021-07-01)
542
+
543
+ - Fixed docstrings backslash escaping [#518](https://github.com/tefra/xsdata/pull/518)
544
+ - Fixed analyzer flattening bare types [#541](https://github.com/tefra/xsdata/pull/541)
545
+ - Fixed multiple issues with compound fields and override fields
546
+ [#533](https://github.com/tefra/xsdata/pull/533)
547
+ - Fixed missing derived elements types during xml parsing
548
+ [#541](https://github.com/tefra/xsdata/pull/541)
549
+ - Added structure style: clusters for smaller packages
550
+ [#509](https://github.com/tefra/xsdata/pull/509)
551
+ - Added configuration to generate relative imports
552
+ [#519](https://github.com/tefra/xsdata/pull/519)
553
+ - Added configuration to toggle all dataclasses features
554
+ [#529](https://github.com/tefra/xsdata/pull/529)
555
+ - Added binding support for tuple typing annotations (frozen dataclasses)
556
+ [#529](https://github.com/tefra/xsdata/pull/529)
557
+ - Added support to bind data directly from xml/lxml Element and ElementTree
558
+ [#531](https://github.com/tefra/xsdata/pull/531)
559
+ [#546](https://github.com/tefra/xsdata/pull/546)
560
+ - Updated analyzer to avoid same name for outer-inner classes
561
+ [#511](https://github.com/tefra/xsdata/pull/511)
562
+ - Updated cli to fail early if config file is invalid
563
+ [#514](https://github.com/tefra/xsdata/pull/514)
564
+ - Updated cli to remove setuptools from runtime dependencies
565
+ [#515](https://github.com/tefra/xsdata/pull/515)
566
+ - Updated analyzer to relax override field validations completely
567
+ [#516](https://github.com/tefra/xsdata/pull/516)
568
+ - Updated analyzer to sort classes before class name conflict resolution
569
+ [#517](https://github.com/tefra/xsdata/pull/517)
570
+ - Updated JSON parser to attempt binding against subclasses
571
+ [#527](https://github.com/tefra/xsdata/pull/527)
572
+ - Updated analyzer to guard against multiple substitution group runs
573
+ [#538](https://github.com/tefra/xsdata/pull/538)
574
+ - Updated code generation to use case-sensitive reserved words
575
+ [#545](https://github.com/tefra/xsdata/pull/545)
576
+
577
+ ## 21.6 (2021-06-01)
578
+
579
+ - Fixed no args Dict annotation, raising an exception
580
+ [#494](https://github.com/tefra/xsdata/issues/494)
581
+ - Fixed original name case not working for field names
582
+ [#498](https://github.com/tefra/xsdata/issues/498)
583
+ - Fixed element type resolution with duplicate name conflicts
584
+ [#503](https://github.com/tefra/xsdata/issues/503)
585
+ - Added handler to flatten bare inner classes
586
+ - Added the ability for custom types to subclass named tuples
587
+ - Added keyword meta in the reserved words
588
+ [#491](https://github.com/tefra/xsdata/issues/491)
589
+ - Added new xml type `Ignore` to skip fields during binding
590
+ [#504](https://github.com/tefra/xsdata/issues/504)
591
+ - Updated generic model DerivedElement.substituted flag with xsi:type
592
+ - Updated core components to improve binding performance
593
+ - Converted almost all internal dataclasses to simple objects with **slots**
594
+ - Converted the internal xml date/time types to named tuples
595
+ - Reduced models metadata lookup times and memory footprint
596
+
597
+ - Updated JSON parser [#495](https://github.com/tefra/xsdata/issues/495)
598
+ - Support failing on unknown properties
599
+ - Support required properties
600
+ - Support parser config
601
+ - Stricter binding process
602
+ - Enhance DerivedElement support
603
+
604
+ - Moved Definitive XML Schema tests to the samples repository
605
+
606
+ ## 21.5 (2021-05-07)
607
+
608
+ - Added output structure style single-package
609
+ [#469](https://github.com/tefra/xsdata/issues/469)
610
+ - Added support for marshalling array of objects for json
611
+ [#448](https://github.com/tefra/xsdata/issues/448)
612
+ - Added support to generate code from raw json documents
613
+ [#445](https://github.com/tefra/xsdata/issues/445)
614
+ - Added docstring style Blank to avoid generating them
615
+ [#460](https://github.com/tefra/xsdata/issues/460)
616
+ - Added validations for non-supported type hints
617
+ - Added support for python 3.10
618
+ - Generate package **all** lists [#459](https://github.com/tefra/xsdata/issues/459)
619
+ - Generate factory for xs:list enumeration default values
620
+ [#471](https://github.com/tefra/xsdata/issues/471)
621
+ - Avoid generating prohibited elements with maxOccurs==0
622
+ [#478](https://github.com/tefra/xsdata/issues/478)
623
+ - Avoid generating identical overriding fields
624
+ [#466](https://github.com/tefra/xsdata/issues/466)
625
+ - Fixed flattening base classes if they are also subclasses
626
+ [#473](https://github.com/tefra/xsdata/issues/473)
627
+ - Fixed unchecked class name conflict resolution
628
+ [#457](https://github.com/tefra/xsdata/issues/457)
629
+ - Refactored context components to improve binding performance
630
+ [#476](https://github.com/tefra/xsdata/issues/476)
631
+
632
+ ## 21.4 (2021-04-02)
633
+
634
+ - Split requirements to extras cli, soap and lxml
635
+ [#419](https://github.com/tefra/xsdata/issues/419)
636
+ - Fixed parser conflict when an attribute and element field have the same qualified name
637
+ - Added cli auto-detection for source types, removed cli flag `--wsdl`
638
+ - Added cli support to generate code from raw xml documents
639
+ - Added cli entry point to allow pluggable output formats
640
+ [#429](https://github.com/tefra/xsdata/issues/429)
641
+ - Added cli short flags for all options and flags
642
+ - Added handler to set effective choice groups
643
+ [#433](https://github.com/tefra/xsdata/issues/433)
644
+ - Moved plantUML output format to a standalone
645
+ [plugin](https://github.com/tefra/xsdata-plantuml)
646
+ - Updated xml parser to allow unions of primitive and class types
647
+ - Updated XmlDateTime parser to catch invalid cases with extra leading zeros
648
+ - Updated QName converter to validate uri/ncname when parsing string representations
649
+ - Updated JsonParser to allow parsing from filename string
650
+ - Updated cli option `--compound-fields` to a boolean flag
651
+
652
+ ## 21.3 (2021-03-04)
653
+
654
+ - Added constant name convention config
655
+ [#407](https://github.com/tefra/xsdata/issues/407)
656
+ - Added naming schemes screaming snake case and original case
657
+ - Updated xsi:lookup on xs:any derived elements
658
+ [#315](https://github.com/tefra/xsdata/issues/315)
659
+ - Updated fields restriction inheritance
660
+ [#417](https://github.com/tefra/xsdata/issues/417)
661
+ - Updated cli to allow package override from arguments
662
+ [#416](https://github.com/tefra/xsdata/issues/416)
663
+ - Updated code generation to merge duplicate global types earlier
664
+ [#406](https://github.com/tefra/xsdata/issues/406)
665
+ - Fixed docstrings issue breaking python syntax
666
+ [#403](https://github.com/tefra/xsdata/issues/403)
667
+ - Fixed bindings for nillable content without workarounds
668
+ [#408](https://github.com/tefra/xsdata/issues/408)
669
+ - Fixed resolver to apply aliases on extensions and choice fields
670
+ [#414](https://github.com/tefra/xsdata/issues/414)
671
+ - Fixed schema models limiting xs:appinfo occurrences
672
+ [#420](https://github.com/tefra/xsdata/issues/420)
673
+ - Decoupled core systems from click and lxml
674
+
675
+ **Notice**: In the next release installation profiles will be introduced that will turn
676
+ the cli, lxml and soap features **optional**.
677
+
678
+ ## 21.2 (2021-02-02)
679
+
680
+ - Added class name context for user naming schemes
681
+ [#348](https://github.com/tefra/xsdata/issues/348)
682
+ - Added mixed pascal naming scheme [#348](https://github.com/tefra/xsdata/issues/348)
683
+ - Added access to element/attribute name generators
684
+ [#381](https://github.com/tefra/xsdata/issues/381)
685
+ - Added XmlHexBinary/XmlBase64Binary builtin data types
686
+ [#387](https://github.com/tefra/xsdata/issues/387)
687
+ - Added support for xs:anyType root elements
688
+ [#399](https://github.com/tefra/xsdata/issues/399)
689
+ - Updated JSON binding modules to use the fields local name
690
+ [#389](https://github.com/tefra/xsdata/issues/389)
691
+ - Updated enum classes generation
692
+ - Promote all inner enums to root [#383](https://github.com/tefra/xsdata/issues/383)
693
+ - Fixed issues with producing invalid members
694
+ [#385](https://github.com/tefra/xsdata/issues/385)
695
+ - Added support for list/tuple member values
696
+ - Updated parsers accuracy for Union types
697
+ - Updated dependency resolution accuracy
698
+ - Update base classes generation strategies
699
+ - Updated builtin data types with helper constructors/methods
700
+ - Fixed inner class names conflicts [#375](https://github.com/tefra/xsdata/issues/375)
701
+ - Fixed issue not generating fields derived from xs:alternative elements
702
+ [#393](https://github.com/tefra/xsdata/issues/393)
703
+ - Fixed duplicate root class name regression from v20.12
704
+ - Fixed issue adding unused lib imports
705
+ - Fixed issue adding unused name properties to choice elements
706
+
707
+ This is a sleeper release ✨✨✨ so many code generation improvements and finally the
708
+ JSON binding is aligned with XML.
709
+
710
+ ## 21.1 (2021-01-08)
711
+
712
+ - Fixed XmlWriter converting attribute keys to QName.
713
+ [#346](https://github.com/tefra/xsdata/issues/346)
714
+ - Set empty complexType base to anySimpleType
715
+ [#349](https://github.com/tefra/xsdata/issues/349)
716
+ - Improve duplicate attr names detection
717
+ [#351](https://github.com/tefra/xsdata/issues/351)
718
+ - Add SerializerConfig::xml_declaration option
719
+ [#357](https://github.com/tefra/xsdata/issues/357)
720
+ - Generate default value/factory for compound fields
721
+ [#359](https://github.com/tefra/xsdata/issues/359)
722
+ - Fixed default value for token fields
723
+ [#360](https://github.com/tefra/xsdata/issues/360)
724
+ - Add doc metadata for compound fields
725
+ [#362](https://github.com/tefra/xsdata/issues/362)
726
+ - JsonParser: handle class and primitive unions
727
+ [#369](https://github.com/tefra/xsdata/issues/369)
728
+ - Update python mappings [#366](https://github.com/tefra/xsdata/issues/366)
729
+ - Map xs:hexBinary and xs:base64Binary to bytes
730
+ - Map xs:date/time types to builtin types XmlDate/Time
731
+ - Map xs:duration to builtin type XmlDuration
732
+ - Map xs:g[Year[Month[Day]]] to builtin type XmlPeriod
733
+ - Map xs:Notation to QName
734
+ - Add converter adapters for datetime.date/time
735
+ - Add fields metadata key 'format' for time/date/binary types
736
+ - Fixed issues with default literal values
737
+ - Fixed issue with random field types order
738
+
739
+ ## 20.12 (2020-12-10)
740
+
741
+ - Added SerializerConfig with new options.
742
+ [#268](https://github.com/tefra/xsdata/issues/268),
743
+ [#320](https://github.com/tefra/xsdata/issues/320)
744
+ - Added docstring styles: rst, google, numpy, accessible.
745
+ [#318](https://github.com/tefra/xsdata/issues/318),
746
+ [#340](https://github.com/tefra/xsdata/issues/340)
747
+ - Added `max line length` generator configuration.
748
+ [#342](https://github.com/tefra/xsdata/issues/342)
749
+ - Added dynamic type locator for parsers.
750
+ [#332](https://github.com/tefra/xsdata/issues/332)
751
+ - Fixed multiple issues with json binding.
752
+ `98[7%](https://github.com/tefra/xsdata-w3c-tests/actions) successful roundtrips
753
+
754
+ ## 20.11.1 (2020-11-13)
755
+
756
+ - Catch all type errors on xsi cache build
757
+ [#316](https://github.com/tefra/xsdata/issues/316)
758
+
759
+ ## 20.11 (2020-11-10)
760
+
761
+ - Added sub command to download remote schemas and definitions.
762
+ [#279](https://github.com/tefra/xsdata/issues/279)
763
+ - Added new optional xml type `Elements` to maintain ordering for repeatable choices.
764
+ [#296](https://github.com/tefra/xsdata/issues/296)
765
+ - Added xsi:type lookup procedure for xs:anyType derived elements.
766
+ [#306](https://github.com/tefra/xsdata/issues/306)
767
+ - Updated simple type flattening detection.
768
+ [#286](https://github.com/tefra/xsdata/issues/286)
769
+ - Updated generator to allow namespace structure on schemas without target namespace.
770
+ - Updated generator to avoid writing min/max occurs metadata for implied values.
771
+ [#297](https://github.com/tefra/xsdata/issues/297)
772
+ - Update generator to use literal dictionary initialization.
773
+ - Updated parser security, disable lxml network and entities resolve.
774
+ - Fixed field types detection for elements with xs:alternative children.
775
+ [#284](https://github.com/tefra/xsdata/issues/284)
776
+ - Fixed file generation to enforce default charset UTF-8.
777
+ [#302](https://github.com/tefra/xsdata/issues/302)
778
+ - Fixed jinja2 undefined namespace var collision.
779
+ [#298](https://github.com/tefra/xsdata/issues/298)
780
+ - Fixed import class name collision. [#300](https://github.com/tefra/xsdata/issues/300)
781
+ - Fixed restriction inheritance on xs:group elements.
782
+ [#301](https://github.com/tefra/xsdata/issues/301)
783
+
784
+ ## 20.10 (2020-10-02)
785
+
786
+ - Fixed generator adding multiple default value fields.
787
+ [#249](https://github.com/tefra/xsdata/issues/249)
788
+ - Fixed generator not applying nested container restrictions.
789
+ [#263](https://github.com/tefra/xsdata/issues/253)
790
+ - Fixed generator to avoid case insensitive class name conflicts.
791
+ [#269](https://github.com/tefra/xsdata/issues/269)
792
+ - Fixed generator rendering unused simple types.
793
+ - Fixed generator unsorted libraries imports.
794
+ - Fixed JsonParser trying to parse init=False fields.
795
+ [#253](https://github.com/tefra/xsdata/issues/253)
796
+ - Fixed NodeParser binding tail content more than once with mixed vars.
797
+ [#256](https://github.com/tefra/xsdata/issues/256)
798
+ - Added XmlWriter interface to decouple serialize from lxml.
799
+ [#247](https://github.com/tefra/xsdata/issues/247)
800
+ - Added native python xml content writer XmlEventWriter. ✨✨✨
801
+ - Added lxml based content writer LxmlEventWriter.
802
+ - Added generator config with options to control naming cases and aliases.
803
+ [#265](https://github.com/tefra/xsdata/issues/265)
804
+ - Updated field xml type auto-detection to be more flexible.
805
+ [#246](https://github.com/tefra/xsdata/issues/246)
806
+ - Updated EnumConverter to resort to canonical form matching as last resort.
807
+ [#273](https://github.com/tefra/xsdata/issues/273)
808
+ - Updated support for derived elements.
809
+ [#267](https://github.com/tefra/xsdata/issues/267)
810
+
811
+ This is my favorite release so far, maybe because xsdata reached one year of development
812
+ ✨✨✨ or maybe because some of the last original components finally got the rewrite
813
+ they deserved.
814
+
815
+ ## 20.9 (2020-09-03)
816
+
817
+ - Added field metadata key `tokens` for xs:list or xs:NMTOKENS derived elements.
818
+ - Added datatype factory to register custom converters.
819
+ - Added XmlHandler interface to decouple parsing from lxml.
820
+ - Added lxml based content handlers: LxmlEventHandler, LxmlSaxHandler
821
+ - Added native python xml content handlers: XmlEventHandler, XmlSaxHandler
822
+ - Added support for python >= 3.6 [#241](https://github.com/tefra/xsdata/issues/241)
823
+ - Added codegen for soap 1.1 fault messages.
824
+ - Fixed converting to enum members derived from xs:NMTOKENS.
825
+ - Fixed package level import naming conflicts.
826
+ [#228](https://github.com/tefra/xsdata/issues/206)
827
+ - Fixed xml serializing to allow empty strings in attribute values.
828
+ [#230](https://github.com/tefra/xsdata/issues/230)
829
+ - Fixed xml serializing for mixed content with non generics.
830
+ [#238](https://github.com/tefra/xsdata/issues/238)
831
+
832
+ ## 20.8 (2020-08-01)
833
+
834
+ - Added codegen support for **WSDL 1.1 and SOAP 1.1** bindings.
835
+ - Added experimental web services client.
836
+ - Added cli flag `--ns-struct` to group classes by target namespaces.
837
+ [#206](https://github.com/tefra/xsdata/issues/206)
838
+ - Added parser config to support xinclude statements.
839
+ [#207](https://github.com/tefra/xsdata/issues/207)
840
+ - Added new xml union node to improve bindings for fields with union type.
841
+ [#207](https://github.com/tefra/xsdata/issues/207)
842
+ - Fixed class resolve issue with mixed namespaces.
843
+ [#204](https://github.com/tefra/xsdata/issues/204)
844
+ - Fixed attribute comparison issue. [#209](https://github.com/tefra/xsdata/issues/209)
845
+ - Fixed data type mapping for various schema elements.
846
+ [#221](https://github.com/tefra/xsdata/issues/221)
847
+ - Fixed mixed content handling. [#213](https://github.com/tefra/xsdata/issues/213)
848
+ - Code cleanup & 100% coverage.
849
+
850
+ ## 20.7 (2020-07-04)
851
+
852
+ - Updated analyzer to allow abstract types to be generated.
853
+ [#199](https://github.com/tefra/xsdata/issues/199)
854
+ - Removed support to generate code from multiple sources.
855
+ [#172](https://github.com/tefra/xsdata/issues/172)
856
+ - Fixed naming conflict with AttributeGroup analyzer handler.
857
+ [#194](https://github.com/tefra/xsdata/issues/194)
858
+ - Fixed analyzer to merge redefined attribute groups.
859
+ [#196](https://github.com/tefra/xsdata/issues/196)
860
+ - Fixed analyzer to block inheritance on xs:override derived types.
861
+ [#198](https://github.com/tefra/xsdata/issues/198)
862
+ - Refactored code to prepare for wsdl support.
863
+
864
+ ## 20.6 (2020-06-01)
865
+
866
+ - Updated XmlSerializer to render default namespace whenever possible.
867
+ - Fixed issue generating modules outside the target package.
868
+ - Fixed issue not creating nested package **init** files.
869
+ - Code cleanup & docstrings
870
+
871
+ ## 20.5.5 (2020-05-23)
872
+
873
+ - Added version option in the xsdata cli.
874
+ - Added generation of missing python **init** files.
875
+ - Added support for default values to inner enum classes.
876
+ - Fixed multiple issues with abstract classes and attributes/extension flattening.
877
+ - Fixed instance cross references causing codegen unpredictable results.
878
+ - Fixed xml serialization of wildcard attributes with user defined model values.
879
+ - Fixed issue with redefined/override elements with annotations.
880
+ - Fixed expand attribute groups recursively.
881
+ - Fixed false positive circular references.
882
+ - Fixed enumeration unions detection.
883
+ - Refactored ClassAnalyzer to smaller components.
884
+
885
+ ## 20.5.4 (2020-05-15)
886
+
887
+ - Fix flattening enumeration unions.
888
+ - Fix generation for enum fields with default/fixed value.
889
+ - Fix duplicate attribute names handler to be case-insensitive.
890
+
891
+ ## 20.5.1 (2020-05-14)
892
+
893
+ - Added support to fetch remote schemas.
894
+ - Updated duplicate attribute names handling.
895
+ - Updated code generation for enum type fields and default values.
896
+ - Fixed issue not generating classes derived from simple types.
897
+ - Fixed analyzer reaching the maximum recursion depth.
898
+ - Fixed analyzer to flatten properly inner self referencing classes.
899
+ - Moved dataclasses python conventions to jinja filters.
900
+
901
+ ## 20.5 (2020-05-02)
902
+
903
+ - Updated codegen cli to accept multiple definitions or directories as argument.
904
+ - Update ClassBuilder to recursively search for anonymous types.
905
+ - Updated XmlParser to be thread-safe.
906
+ - Added performance tweaks on XmlParser.
907
+ - Added parser config to fail or not on unknown properties.
908
+ - Fixed primitive types being marked as forward references.
909
+ - Fixed nested restrictions on xs:simpleType.
910
+ - Fixed ClassAnalyzer to recover/ignore missing types.
911
+
912
+ ## 20.4.2 (2020-04-21)
913
+
914
+ - Added support for abstract xsi:types in XmlParser.
915
+ - Added cache for event names in XmlParser.
916
+ - Added sanitization for generated module names.
917
+ - Fixed not flattening abstract extension.
918
+ - Fixed extension name conflicts between simple and complex types.
919
+ - Fixed possible memory leak in CodeWriter.
920
+ - Fixed looping variables twice to find next node in XmlParser.
921
+ - Fixed CodeWriter adding unnecessary new lines.
922
+
923
+ ## 20.4.1 (2020-04-13)
924
+
925
+ - Fixed open content attribute with mode suffix to be generated last.
926
+ - Fixed issues with wildcard and mixed content parsing.
927
+ - Updated xs:qname mapping to lxml.QName
928
+ - Updated support for xs:list.
929
+ - Updated parser to ignore xsi:type attributes default/fixed values.
930
+ - Refactored code components.
931
+ - Pass more than 99% of the `W3C XML Schema 1.1 test cases
932
+ https://travis-ci.org/tefra/xsdata-w3c-tests
933
+
934
+ ## 20.4 (2020-04-01)
935
+
936
+ - Added support for sequential fields.
937
+ - Added support for open content.
938
+ - Added support multiple redefined elements.
939
+ - Updated support for wildcards to be aware of generic namespaces.
940
+ - Updated support for wildcards to be aware of non-generic objects.
941
+ - Updated codegen to run after fully parsing all the definitions.
942
+ - Updated codegen to skip unresolved schema locations.
943
+ - Updated xml parser to ignore comments.
944
+ - Updated xml parser to retain a copy of the input namespaces.
945
+ - Fixed issues with nillable fields being ignored.
946
+ - Fixed multiple issues with wrong restrictions being applied.
947
+ - Fixed binding issues when there are naming conflicts.
948
+ - Fixed serialization for inf/nan/exponential float and decimal values.
949
+ - Fixed naming conflicts with class/package names.
950
+ - Fixed multiple circular import issues during parsing and code generation.
951
+ - Pass more than 98% of the `W3C XML Schema 1.1 test cases
952
+ https://travis-ci.org/tefra/xsdata-w3c-tests
953
+
954
+ ## 20.3 (2020-03-01)
955
+
956
+ - Added copies of common schemas xlink, xsi, xml.
957
+ - Added XML Schema 1.1 models and properties.
958
+ - Added support for redefines, overrides, alternatives and default attributes.
959
+ - Added missing xsd data types: dateTimestamp, anyType, anyAtomicType.
960
+ - Added protection against duplicate class fields enumerations.
961
+ - Added python common types to the stop word list.
962
+ - Updated wildcards parsing to avoid duplicate elements.
963
+ - Updated native datatype detection made stricter.
964
+ - Updated enumerations generation to sort and filter values.
965
+ - Updated mapping xs:decimal to python Decimal
966
+ - Fixed elements/attribute not inheriting namespaces from references.
967
+ - Fixed module names collisions.
968
+ - Fixed self referencing classes.
969
+ - Fixed class name collisions complexTypes vs elements.
970
+ - Fixed parsers not respecting default values.
971
+ - Fixed AbstractXmlParser to handle leafless root nodes.
972
+ - Pass more than 90% of the `W3C XML Schema 1.1 test cases
973
+ https://travis-ci.org/tefra/xsdata-w3c-tests.
974
+
975
+ ## 20.2 (2020-02-09)
976
+
977
+ - Added support xs:any and xs:anyAttribute elements.
978
+ - Added support for auto-detecting XML Schema namespace prefix.
979
+ - Added support for xml datatypes lang and base.
980
+ - Refactored SchemaParser to use the XmlParser.
981
+ - Updated XmlParser to bind after elements are fully parsed.
982
+
983
+ ## 20.1.3 (2020-01-26)
984
+
985
+ - Fixed elements min|man occurs inheritance from their container.
986
+ - Fixed global elements and attributes are now always qualified.
987
+ - Fixed including no namespace schemas.
988
+ - Fixed list elements attribute handling.
989
+ - Added support for unqualified elements.
990
+ - Added support for qualified attributes.
991
+ - Added support for nillable elements.
992
+ - Added support for unions of member and simple types.
993
+ - Added binding test suite
994
+
995
+ ## 20.1.2 (2020-01-13)
996
+
997
+ - Generate anonymous Enumerations
998
+ - Generate attributes from List and Union elements
999
+ - Fix restriction inheritance
1000
+ - Officially support python 3.8
1001
+ - Completely migrate to setup.cfg
1002
+ - Introduce integration test suite
1003
+
1004
+ ## 20.1.1 (2020-01-09)
1005
+
1006
+ - Change print mode to print rendered output
1007
+ - Added new format PlantUML class diagram to replace the old print/debug mode
1008
+
1009
+ ## 20.1 (2020-01-07)
1010
+
1011
+ - Initial release