pysdmx 1.8.0__tar.gz → 1.8.1__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 (166) hide show
  1. {pysdmx-1.8.0 → pysdmx-1.8.1}/PKG-INFO +1 -1
  2. {pysdmx-1.8.0 → pysdmx-1.8.1}/pyproject.toml +2 -2
  3. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/__init__.py +1 -1
  4. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/msd.py +1 -1
  5. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/msd.py +5 -1
  6. {pysdmx-1.8.0 → pysdmx-1.8.1}/LICENSE +0 -0
  7. {pysdmx-1.8.0 → pysdmx-1.8.1}/README.rst +0 -0
  8. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/__extras_check.py +0 -0
  9. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/__init__.py +0 -0
  10. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/__init__.py +0 -0
  11. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/_api.py +0 -0
  12. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/query/__init__.py +0 -0
  13. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/query/_model.py +0 -0
  14. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/query/_parsing_model.py +0 -0
  15. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/query/_parsing_util.py +0 -0
  16. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/query/_py_parser.py +0 -0
  17. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/query/_sql_parser.py +0 -0
  18. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/dc/query/util.py +0 -0
  19. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/fmr/__init__.py +0 -0
  20. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/fmr/maintenance.py +0 -0
  21. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/gds/__init__.py +0 -0
  22. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/__init__.py +0 -0
  23. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/availability.py +0 -0
  24. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/data.py +0 -0
  25. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/gds.py +0 -0
  26. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/refmeta.py +0 -0
  27. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/registration.py +0 -0
  28. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/schema.py +0 -0
  29. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/service.py +0 -0
  30. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/structure.py +0 -0
  31. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/api/qb/util.py +0 -0
  32. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/errors.py +0 -0
  33. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/__init__.py +0 -0
  34. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/__csv_aux_reader.py +0 -0
  35. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/__csv_aux_writer.py +0 -0
  36. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/__init__.py +0 -0
  37. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx10/__init__.py +0 -0
  38. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx10/reader/__init__.py +0 -0
  39. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx10/writer/__init__.py +0 -0
  40. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx20/__init__.py +0 -0
  41. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx20/reader/__init__.py +0 -0
  42. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx20/writer/__init__.py +0 -0
  43. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx21/__init__.py +0 -0
  44. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx21/reader/__init__.py +0 -0
  45. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/csv/sdmx21/writer/__init__.py +0 -0
  46. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/format.py +0 -0
  47. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/input_processor.py +0 -0
  48. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/__init__.py +0 -0
  49. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/category.py +0 -0
  50. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/code.py +0 -0
  51. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/concept.py +0 -0
  52. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/constraint.py +0 -0
  53. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/core.py +0 -0
  54. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/dataflow.py +0 -0
  55. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/dsd.py +0 -0
  56. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/map.py +0 -0
  57. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/metadataflow.py +0 -0
  58. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/mpa.py +0 -0
  59. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/org.py +0 -0
  60. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/pa.py +0 -0
  61. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/report.py +0 -0
  62. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/schema.py +0 -0
  63. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/messages/vtl.py +0 -0
  64. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/fusion/reader/__init__.py +0 -0
  65. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/gds/messages/__init__.py +0 -0
  66. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/gds/messages/agencies.py +0 -0
  67. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/gds/messages/catalog.py +0 -0
  68. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/gds/messages/sdmx_api.py +0 -0
  69. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/gds/messages/services.py +0 -0
  70. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/gds/messages/urn_resolver.py +0 -0
  71. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/gds/reader/__init__.py +0 -0
  72. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/__init__.py +0 -0
  73. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/agency.py +0 -0
  74. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/category.py +0 -0
  75. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/code.py +0 -0
  76. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/concept.py +0 -0
  77. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/constraint.py +0 -0
  78. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/core.py +0 -0
  79. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/dataflow.py +0 -0
  80. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/dsd.py +0 -0
  81. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/map.py +0 -0
  82. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/metadataflow.py +0 -0
  83. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/mpa.py +0 -0
  84. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/pa.py +0 -0
  85. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/provider.py +0 -0
  86. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/report.py +0 -0
  87. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/schema.py +0 -0
  88. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/structure.py +0 -0
  89. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/messages/vtl.py +0 -0
  90. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/reader/__init__.py +0 -0
  91. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/reader/metadata.py +0 -0
  92. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/reader/structure.py +0 -0
  93. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/writer/__init__.py +0 -0
  94. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/writer/metadata.py +0 -0
  95. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/json/sdmxjson2/writer/structure.py +0 -0
  96. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/pd.py +0 -0
  97. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/reader.py +0 -0
  98. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/serde.py +0 -0
  99. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/writer.py +0 -0
  100. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__allowed_lxml_errors.py +0 -0
  101. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__data_aux.py +0 -0
  102. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__init__.py +0 -0
  103. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__parse_xml.py +0 -0
  104. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__ss_aux_reader.py +0 -0
  105. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__structure_aux_reader.py +0 -0
  106. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__structure_aux_writer.py +0 -0
  107. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__tokens.py +0 -0
  108. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__write_aux.py +0 -0
  109. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__write_data_aux.py +0 -0
  110. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/__write_structure_specific_aux.py +0 -0
  111. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/config.py +0 -0
  112. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/doc_validation.py +0 -0
  113. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/header.py +0 -0
  114. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/__init__.py +0 -0
  115. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/reader/__init__.py +0 -0
  116. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/reader/error.py +0 -0
  117. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/reader/generic.py +0 -0
  118. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/reader/structure.py +0 -0
  119. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/reader/structure_specific.py +0 -0
  120. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/reader/submission.py +0 -0
  121. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/writer/__init__.py +0 -0
  122. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/writer/error.py +0 -0
  123. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/writer/generic.py +0 -0
  124. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/writer/structure.py +0 -0
  125. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx21/writer/structure_specific.py +0 -0
  126. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx30/__init__.py +0 -0
  127. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx30/reader/__init__.py +0 -0
  128. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx30/reader/structure.py +0 -0
  129. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx30/reader/structure_specific.py +0 -0
  130. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx30/writer/__init__.py +0 -0
  131. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx30/writer/structure.py +0 -0
  132. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx30/writer/structure_specific.py +0 -0
  133. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx31/__init__.py +0 -0
  134. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx31/reader/__init__.py +0 -0
  135. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx31/reader/structure.py +0 -0
  136. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx31/reader/structure_specific.py +0 -0
  137. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx31/writer/__init__.py +0 -0
  138. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx31/writer/structure.py +0 -0
  139. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/sdmx31/writer/structure_specific.py +0 -0
  140. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/io/xml/utils.py +0 -0
  141. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/__base.py +0 -0
  142. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/__init__.py +0 -0
  143. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/category.py +0 -0
  144. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/code.py +0 -0
  145. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/concept.py +0 -0
  146. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/dataflow.py +0 -0
  147. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/dataset.py +0 -0
  148. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/gds.py +0 -0
  149. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/map.py +0 -0
  150. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/message.py +0 -0
  151. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/metadata.py +0 -0
  152. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/organisation.py +0 -0
  153. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/submission.py +0 -0
  154. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/model/vtl.py +0 -0
  155. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/py.typed +0 -0
  156. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/toolkit/__init__.py +0 -0
  157. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/toolkit/pd/__init__.py +0 -0
  158. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/toolkit/pd/_data_utils.py +0 -0
  159. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/toolkit/vtl/__init__.py +0 -0
  160. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/toolkit/vtl/_validations.py +0 -0
  161. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/toolkit/vtl/script_generation.py +0 -0
  162. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/toolkit/vtl/validation.py +0 -0
  163. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/util/__init__.py +0 -0
  164. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/util/_date_pattern_map.py +0 -0
  165. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/util/_model_utils.py +0 -0
  166. {pysdmx-1.8.0 → pysdmx-1.8.1}/src/pysdmx/util/_net_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysdmx
3
- Version: 1.8.0
3
+ Version: 1.8.1
4
4
  Summary: Your opinionated Python SDMX library
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pysdmx"
3
- version = "1.8.0"
3
+ version = "1.8.1"
4
4
  description = "Your opinionated Python SDMX library"
5
5
  license = { text = "Apache-2.0" }
6
6
  readme = "README.rst"
@@ -93,7 +93,7 @@ lint.mccabe.max-complexity = 10
93
93
  lint.pydocstyle.convention = "google"
94
94
 
95
95
  [tool.ruff.lint.per-file-ignores]
96
- "tests/*" = ["DTZ", "D100", "D103", "D104", "PERF", "S101", "S311"]
96
+ "tests/*" = ["C901", "DTZ", "D100", "D103", "D104", "PERF", "S101", "S311"]
97
97
 
98
98
  [tool.mypy]
99
99
  files = "src"
@@ -1,3 +1,3 @@
1
1
  """Your opinionated Python SDMX library."""
2
2
 
3
- __version__ = "1.8.0"
3
+ __version__ = "1.8.1"
@@ -29,7 +29,7 @@ class FusionMetadataAttribute(Struct, frozen=True):
29
29
  id: str
30
30
  concept: str
31
31
  minOccurs: int
32
- maxOccurs: Union[int, Literal["unbounded"]]
32
+ maxOccurs: Union[int, Literal["unbounded"]] = "unbounded"
33
33
  presentational: Optional[bool] = False
34
34
  representation: Optional[FusionRepresentation] = None
35
35
  metadataAttributes: Sequence["FusionMetadataAttribute"] = ()
@@ -37,6 +37,7 @@ class JsonMetadataAttribute(Struct, frozen=True, omit_defaults=True):
37
37
  maxOccurs: Union[int, Literal["unbounded"]]
38
38
  isPresentational: bool
39
39
  localRepresentation: Optional[JsonRepresentation] = None
40
+ metadataAttributes: Sequence["JsonMetadataAttribute"] = ()
40
41
 
41
42
  def to_model(
42
43
  self, cs: Sequence[JsonConceptScheme], cls: Sequence[Codelist]
@@ -72,7 +73,7 @@ class JsonMetadataAttribute(Struct, frozen=True, omit_defaults=True):
72
73
  local_codes=codes,
73
74
  array_def=ab,
74
75
  local_enum_ref=local_enum_ref,
75
- components=(),
76
+ components=[a.to_model(cs, cls) for a in self.metadataAttributes],
76
77
  )
77
78
 
78
79
  @classmethod
@@ -94,6 +95,9 @@ class JsonMetadataAttribute(Struct, frozen=True, omit_defaults=True):
94
95
  minOccurs=min_occurs,
95
96
  maxOccurs=max_occurs,
96
97
  isPresentational=cmp.is_presentational,
98
+ metadataAttributes=[
99
+ JsonMetadataAttribute.from_model(c) for c in cmp.components
100
+ ],
97
101
  )
98
102
 
99
103
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes