pysdmx 1.10.0rc1__py3-none-any.whl → 1.10.0rc2__py3-none-any.whl

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 (33) hide show
  1. pysdmx/__init__.py +1 -1
  2. pysdmx/api/fmr/__init__.py +3 -2
  3. pysdmx/io/_pd_utils.py +83 -0
  4. pysdmx/io/csv/__csv_aux_writer.py +23 -0
  5. pysdmx/io/csv/sdmx10/reader/__init__.py +1 -1
  6. pysdmx/io/csv/sdmx10/writer/__init__.py +15 -9
  7. pysdmx/io/csv/sdmx20/reader/__init__.py +1 -1
  8. pysdmx/io/csv/sdmx20/writer/__init__.py +1 -1
  9. pysdmx/io/csv/sdmx21/reader/__init__.py +1 -1
  10. pysdmx/io/csv/sdmx21/writer/__init__.py +1 -1
  11. pysdmx/io/json/sdmxjson2/messages/__init__.py +4 -0
  12. pysdmx/io/json/sdmxjson2/messages/code.py +16 -6
  13. pysdmx/io/json/sdmxjson2/messages/constraint.py +235 -16
  14. pysdmx/io/json/sdmxjson2/messages/dsd.py +35 -7
  15. pysdmx/io/json/sdmxjson2/messages/map.py +5 -4
  16. pysdmx/io/json/sdmxjson2/messages/metadataflow.py +1 -0
  17. pysdmx/io/json/sdmxjson2/messages/msd.py +18 -10
  18. pysdmx/io/json/sdmxjson2/messages/schema.py +2 -2
  19. pysdmx/io/json/sdmxjson2/messages/structure.py +81 -44
  20. pysdmx/io/json/sdmxjson2/messages/vtl.py +13 -9
  21. pysdmx/io/xml/__write_data_aux.py +20 -7
  22. pysdmx/io/xml/__write_structure_specific_aux.py +71 -54
  23. pysdmx/io/xml/sdmx21/writer/generic.py +31 -19
  24. pysdmx/model/__base.py +46 -1
  25. pysdmx/model/__init__.py +18 -0
  26. pysdmx/model/category.py +17 -0
  27. pysdmx/model/concept.py +16 -0
  28. pysdmx/model/constraint.py +69 -0
  29. pysdmx/model/message.py +80 -71
  30. {pysdmx-1.10.0rc1.dist-info → pysdmx-1.10.0rc2.dist-info}/METADATA +1 -1
  31. {pysdmx-1.10.0rc1.dist-info → pysdmx-1.10.0rc2.dist-info}/RECORD +33 -31
  32. {pysdmx-1.10.0rc1.dist-info → pysdmx-1.10.0rc2.dist-info}/WHEEL +0 -0
  33. {pysdmx-1.10.0rc1.dist-info → pysdmx-1.10.0rc2.dist-info}/licenses/LICENSE +0 -0
pysdmx/model/message.py CHANGED
@@ -23,6 +23,7 @@ from pysdmx.model.__base import MaintainableArtefact, Organisation
23
23
  from pysdmx.model.category import Categorisation, CategoryScheme
24
24
  from pysdmx.model.code import Codelist, Hierarchy, HierarchyAssociation
25
25
  from pysdmx.model.concept import ConceptScheme
26
+ from pysdmx.model.constraint import DataConstraint
26
27
  from pysdmx.model.dataflow import (
27
28
  Dataflow,
28
29
  DataStructureDefinition,
@@ -220,10 +221,20 @@ class StructureMessage(Struct, repr_omit_defaults=True, frozen=True):
220
221
  "Could not find the requested element.",
221
222
  )
222
223
 
224
+ # Return collection of a certain type
225
+
223
226
  def get_agency_schemes(self) -> List[AgencyScheme]:
224
227
  """Returns the AgencySchemes."""
225
228
  return self.__get_elements(AgencyScheme)
226
229
 
230
+ def get_categorisations(self) -> List[Categorisation]:
231
+ """Returns the Categorisations."""
232
+ return self.__get_elements(Categorisation)
233
+
234
+ def get_category_schemes(self) -> List[CategoryScheme]:
235
+ """Returns the CategorySchemes."""
236
+ return self.__get_elements(CategoryScheme)
237
+
227
238
  def get_codelists(self) -> List[Codelist]:
228
239
  """Returns the Codelists."""
229
240
  return self.__get_enumerations(Codelist, False)
@@ -232,6 +243,10 @@ class StructureMessage(Struct, repr_omit_defaults=True, frozen=True):
232
243
  """Returns the Concept Schemes."""
233
244
  return self.__get_elements(ConceptScheme)
234
245
 
246
+ def get_custom_type_schemes(self) -> List[CustomTypeScheme]:
247
+ """Returns the CustomType Schemes."""
248
+ return self.__get_elements(CustomTypeScheme)
249
+
235
250
  def get_data_structure_definitions(
236
251
  self,
237
252
  ) -> List[DataStructureDefinition]:
@@ -242,57 +257,13 @@ class StructureMessage(Struct, repr_omit_defaults=True, frozen=True):
242
257
  """Returns the Dataflows."""
243
258
  return self.__get_elements(Dataflow)
244
259
 
245
- def get_metadataflows(self) -> List[Metadataflow]:
246
- """Returns the MetadataProvisionAgreements."""
247
- return self.__get_elements(Metadataflow)
260
+ def get_data_constraints(self) -> List[DataConstraint]:
261
+ """Returns the DataConstraints."""
262
+ return self.__get_elements(DataConstraint)
248
263
 
249
- def get_organisation_scheme(self, short_urn: str) -> AgencyScheme:
250
- """Returns a specific AgencyScheme."""
251
- return self.__get_single_structure(AgencyScheme, short_urn)
252
-
253
- def get_codelist(self, short_urn: str) -> Codelist:
254
- """Returns a specific Codelist."""
255
- return self.__get_single_structure(Codelist, short_urn)
256
-
257
- def get_concept_scheme(self, short_urn: str) -> ConceptScheme:
258
- """Returns a specific Concept Scheme."""
259
- return self.__get_single_structure(ConceptScheme, short_urn)
260
-
261
- def get_data_structure_definition(
262
- self, short_urn: str
263
- ) -> DataStructureDefinition:
264
- """Returns a specific DataStructureDefinition."""
265
- return self.__get_single_structure(DataStructureDefinition, short_urn)
266
-
267
- def get_dataflow(self, short_urn: str) -> Dataflow:
268
- """Returns a specific Dataflow."""
269
- return self.__get_single_structure(Dataflow, short_urn)
270
-
271
- def get_provision_agreement(self, short_urn: str) -> ProvisionAgreement:
272
- """Returns a specific Provision Agreement."""
273
- return self.__get_single_structure(ProvisionAgreement, short_urn)
274
-
275
- def get_transformation_schemes(self) -> List[TransformationScheme]:
276
- """Returns the TransformationSchemes."""
277
- return self.__get_elements(TransformationScheme)
278
-
279
- def get_user_defined_operator_schemes(
280
- self,
281
- ) -> List[UserDefinedOperatorScheme]:
282
- """Returns the UserDefinedOperatorSchemes."""
283
- return self.__get_elements(UserDefinedOperatorScheme)
284
-
285
- def get_ruleset_schemes(self) -> List[RulesetScheme]:
286
- """Returns the RulesetSchemes."""
287
- return self.__get_elements(RulesetScheme)
288
-
289
- def get_category_schemes(self) -> List[CategoryScheme]:
290
- """Returns the CategorySchemes."""
291
- return self.__get_elements(CategoryScheme)
292
-
293
- def get_value_lists(self) -> List[Codelist]:
294
- """Returns the Codelists."""
295
- return self.__get_enumerations(Codelist, True)
264
+ def get_data_provider_schemes(self) -> List[DataProviderScheme]:
265
+ """Returns the DataProviderSchemes."""
266
+ return self.__get_elements(DataProviderScheme)
296
267
 
297
268
  def get_hierarchies(self) -> List[Hierarchy]:
298
269
  """Returns the HierarchyCodelists."""
@@ -302,13 +273,9 @@ class StructureMessage(Struct, repr_omit_defaults=True, frozen=True):
302
273
  """Returns the HierarchyAssociations."""
303
274
  return self.__get_elements(HierarchyAssociation)
304
275
 
305
- def get_data_provider_schemes(self) -> List[DataProviderScheme]:
306
- """Returns the DataProviderSchemes."""
307
- return self.__get_elements(DataProviderScheme)
308
-
309
- def get_provision_agreements(self) -> List[ProvisionAgreement]:
310
- """Returns the ProvisionAgreements."""
311
- return self.__get_elements(ProvisionAgreement)
276
+ def get_metadataflows(self) -> List[Metadataflow]:
277
+ """Returns the MetadataProvisionAgreements."""
278
+ return self.__get_elements(Metadataflow)
312
279
 
313
280
  def get_metadata_provider_schemes(self) -> List[MetadataProviderScheme]:
314
281
  """Returns the MetadataProviderSchemes."""
@@ -324,9 +291,15 @@ class StructureMessage(Struct, repr_omit_defaults=True, frozen=True):
324
291
  """Returns the MetadataStructures."""
325
292
  return self.__get_elements(MetadataStructure)
326
293
 
327
- def get_structure_maps(self) -> List[StructureMap]:
328
- """Returns the StructureMaps."""
329
- return self.__get_elements(StructureMap)
294
+ def get_name_personalisation_schemes(
295
+ self,
296
+ ) -> List[NamePersonalisationScheme]:
297
+ """Returns the NamePersonalisationSchemes."""
298
+ return self.__get_elements(NamePersonalisationScheme)
299
+
300
+ def get_provision_agreements(self) -> List[ProvisionAgreement]:
301
+ """Returns the ProvisionAgreements."""
302
+ return self.__get_elements(ProvisionAgreement)
330
303
 
331
304
  def get_representation_maps(
332
305
  self,
@@ -337,23 +310,59 @@ class StructureMessage(Struct, repr_omit_defaults=True, frozen=True):
337
310
  out.extend(self.__get_elements(MultiRepresentationMap))
338
311
  return out
339
312
 
340
- def get_categorisations(self) -> List[Categorisation]:
341
- """Returns the Categorisations."""
342
- return self.__get_elements(Categorisation)
313
+ def get_ruleset_schemes(self) -> List[RulesetScheme]:
314
+ """Returns the RulesetSchemes."""
315
+ return self.__get_elements(RulesetScheme)
343
316
 
344
- def get_custom_type_schemes(self) -> List[CustomTypeScheme]:
345
- """Returns the CustomType Schemes."""
346
- return self.__get_elements(CustomTypeScheme)
317
+ def get_structure_maps(self) -> List[StructureMap]:
318
+ """Returns the StructureMaps."""
319
+ return self.__get_elements(StructureMap)
320
+
321
+ def get_transformation_schemes(self) -> List[TransformationScheme]:
322
+ """Returns the TransformationSchemes."""
323
+ return self.__get_elements(TransformationScheme)
324
+
325
+ def get_user_defined_operator_schemes(
326
+ self,
327
+ ) -> List[UserDefinedOperatorScheme]:
328
+ """Returns the UserDefinedOperatorSchemes."""
329
+ return self.__get_elements(UserDefinedOperatorScheme)
330
+
331
+ def get_value_lists(self) -> List[Codelist]:
332
+ """Returns the Codelists."""
333
+ return self.__get_enumerations(Codelist, True)
347
334
 
348
335
  def get_vtl_mapping_schemes(self) -> List[VtlMappingScheme]:
349
336
  """Returns the VTL Mapping Schemes."""
350
337
  return self.__get_elements(VtlMappingScheme)
351
338
 
352
- def get_name_personalisation_schemes(
353
- self,
354
- ) -> List[NamePersonalisationScheme]:
355
- """Returns the NamePersonalisationSchemes."""
356
- return self.__get_elements(NamePersonalisationScheme)
339
+ # Return individual items
340
+
341
+ def get_codelist(self, short_urn: str) -> Codelist:
342
+ """Returns a specific Codelist."""
343
+ return self.__get_single_structure(Codelist, short_urn)
344
+
345
+ def get_concept_scheme(self, short_urn: str) -> ConceptScheme:
346
+ """Returns a specific Concept Scheme."""
347
+ return self.__get_single_structure(ConceptScheme, short_urn)
348
+
349
+ def get_dataflow(self, short_urn: str) -> Dataflow:
350
+ """Returns a specific Dataflow."""
351
+ return self.__get_single_structure(Dataflow, short_urn)
352
+
353
+ def get_data_structure_definition(
354
+ self, short_urn: str
355
+ ) -> DataStructureDefinition:
356
+ """Returns a specific DataStructureDefinition."""
357
+ return self.__get_single_structure(DataStructureDefinition, short_urn)
358
+
359
+ def get_organisation_scheme(self, short_urn: str) -> AgencyScheme:
360
+ """Returns a specific AgencyScheme."""
361
+ return self.__get_single_structure(AgencyScheme, short_urn)
362
+
363
+ def get_provision_agreement(self, short_urn: str) -> ProvisionAgreement:
364
+ """Returns a specific Provision Agreement."""
365
+ return self.__get_single_structure(ProvisionAgreement, short_urn)
357
366
 
358
367
 
359
368
  class MetadataMessage(Struct, frozen=True):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pysdmx
3
- Version: 1.10.0rc1
3
+ Version: 1.10.0rc2
4
4
  Summary: Your opinionated Python SDMX library
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,5 +1,5 @@
1
1
  pysdmx/__extras_check.py,sha256=Tmluui2OuJVyJB6a1Jl0PlrRjpsswhtCjAqtRLOSero,2059
2
- pysdmx/__init__.py,sha256=00h-DwPfv9b8RnK5FXzBTiZQOciFTXqXk7axxd3VD28,71
2
+ pysdmx/__init__.py,sha256=Q03oQ7Jwt3q1RWCdX2lHnJ8s7cd-qe2_l47m90Dqdgo,71
3
3
  pysdmx/api/__init__.py,sha256=8lRaF6kEO51ehl0fmW_pHLvkN_34TtEhqhr3oKo6E6g,26
4
4
  pysdmx/api/dc/__init__.py,sha256=oPU32X8CRZy4T1to9mO5KMqMwxQsVI424dPqai-I8zI,121
5
5
  pysdmx/api/dc/_api.py,sha256=poy1FYFXnF6maBGy5lpOodf32-7QQjH8PCBNDkuOXxQ,7747
@@ -10,7 +10,7 @@ pysdmx/api/dc/query/_parsing_util.py,sha256=pUc5z6sijGmJZsLilAxiPsCSRIO7l2iznzL3
10
10
  pysdmx/api/dc/query/_py_parser.py,sha256=_kVUk6Xu5jZdclng1F6eDSZS2-ok_yncI1y1q5lYpBU,1502
11
11
  pysdmx/api/dc/query/_sql_parser.py,sha256=vQjhSyt6qA4jAHchkq4XXVhNPtKjKSVLzhoPkUyhJKk,1561
12
12
  pysdmx/api/dc/query/util.py,sha256=9HALmvlgVCckaMTVG7sEFbAw_mBwfbL4K-Pac2KPSYw,915
13
- pysdmx/api/fmr/__init__.py,sha256=kLvtCWh5HXNg4uvVFVHtrJ-HJ6c2iM4fVNDDtydSSBI,50432
13
+ pysdmx/api/fmr/__init__.py,sha256=-0v6VBGt49k7-TDUMPfu7v6RHn6br10BUiMPneQjQjM,50473
14
14
  pysdmx/api/fmr/maintenance.py,sha256=AnR1beyL6nsoDM5LmDLXnRMW5JvhGHXTADf_INSNgUg,5920
15
15
  pysdmx/api/gds/__init__.py,sha256=BBl75wEdcz9zPMfk6kAGHitRW39S774VL9xifMZ_uHs,11560
16
16
  pysdmx/api/qb/__init__.py,sha256=vxdMJFFg4J_KWADrnzj_8KcU0UlwpJPdx0yiW3QJo9Y,1498
@@ -25,18 +25,19 @@ pysdmx/api/qb/structure.py,sha256=0m_Fmp410Rfjdv0ehLS8ivwccwn-xfBkcIdYayu8pgg,17
25
25
  pysdmx/api/qb/util.py,sha256=at2Sb2kVltSTDc1gKiqG6HtIFhjSx-Msbe--wCvRbQI,3667
26
26
  pysdmx/errors.py,sha256=9bfujYykzfGMa1TuUOmH9QqghnZGOo556fvbKH2jFa8,3295
27
27
  pysdmx/io/__init__.py,sha256=96ZCY1PfcWp_q2Nlo2tHJAK31sH_b05v9UkbR0vGdg0,180
28
+ pysdmx/io/_pd_utils.py,sha256=NgGhjn9clB0xD_3hsOzwXci8ix9dLe2Lt2DAZ9Tkyzw,2555
28
29
  pysdmx/io/csv/__csv_aux_reader.py,sha256=2RGzhga_VDnh2OVX_Bo-rR2hgAQxHXa7zt7-D5MVBu0,3994
29
- pysdmx/io/csv/__csv_aux_writer.py,sha256=lCPl6hpyp12xhXlyimRlxxOT33RcgXDGTQZb8JguksI,4118
30
+ pysdmx/io/csv/__csv_aux_writer.py,sha256=4PlnMuzv_XUoJnZCS8GjqzTpjsSf79bmD9KTmTH24KE,4779
30
31
  pysdmx/io/csv/__init__.py,sha256=53f2rPkwILigOqArgRQOOwLk-ha6zVTe4EypIsR7K6I,107
31
32
  pysdmx/io/csv/sdmx10/__init__.py,sha256=NAAm_yodK-gzkuzewGQeYpF3f5nZmDA4vWGfT2KGTWc,38
32
- pysdmx/io/csv/sdmx10/reader/__init__.py,sha256=uGc-sv4YXHteVQZPTdkVUkVZ6iKY7h7Fg56dw7VZ2UU,2735
33
- pysdmx/io/csv/sdmx10/writer/__init__.py,sha256=d-kLcP711k1nmG_D4whDxqWCzODRT7HTqk95N-jXBK8,2923
33
+ pysdmx/io/csv/sdmx10/reader/__init__.py,sha256=l7nK6Q-VpOhd_VFYNxvd05b8GxyNQXpI7aBPQYvy4LM,2733
34
+ pysdmx/io/csv/sdmx10/writer/__init__.py,sha256=_6u3ANN84JW1wb-9YpgzKSXcpMdUBRmDtFK2fVG_r7I,2959
34
35
  pysdmx/io/csv/sdmx20/__init__.py,sha256=6_YCb4iuUWJRS9y0KSdf4ebNKblSlnTTzNC5c19kNk8,38
35
- pysdmx/io/csv/sdmx20/reader/__init__.py,sha256=PmVXd8QXvXej6XSDAPsIc8VptLk69NK37-wunHH7Pvc,2846
36
- pysdmx/io/csv/sdmx20/writer/__init__.py,sha256=puksYRzcog3wv9JGWA--6rvv9aRAn86Vsv1CyA7Em-c,2489
36
+ pysdmx/io/csv/sdmx20/reader/__init__.py,sha256=DJMLkE4YKlBCxK4R38R3JXkd3pfiYtNa9HB8PIim0cQ,2844
37
+ pysdmx/io/csv/sdmx20/writer/__init__.py,sha256=vaeaRT1qtAl3dkkzL2EeCrkpLmeL_r3ivqqakVDxAn0,2456
37
38
  pysdmx/io/csv/sdmx21/__init__.py,sha256=I3_dwi4A4if62_mwEjqbOa-F7mhoIMf0D6szpDf3W7c,38
38
- pysdmx/io/csv/sdmx21/reader/__init__.py,sha256=J1cCkZh3klgZZWjdQ_U1zkfzT_DVzQmdreGZhN33SLs,2866
39
- pysdmx/io/csv/sdmx21/writer/__init__.py,sha256=CH8Nm7hqvXyN6XM_D2nJRmbKj6CJV-X1QzSF0WJrs0E,2484
39
+ pysdmx/io/csv/sdmx21/reader/__init__.py,sha256=hoXkOJM8prZZ6QESG3ZjReN2P-8pGryN6CPeEYtrqjw,2864
40
+ pysdmx/io/csv/sdmx21/writer/__init__.py,sha256=B-0ZYFxUm1cmv0-rwDaE4TmIE0fnAeojNPIXXP2ATXQ,2451
40
41
  pysdmx/io/format.py,sha256=EO-PyYpiU0WswvEGA5UHokladxPezcwBUo1AJTqxp1Q,5250
41
42
  pysdmx/io/input_processor.py,sha256=P1_jKegrOyV7EaZLjLrq8fX2u1EI7gPBJoKvlBCNkP0,6967
42
43
  pysdmx/io/json/fusion/messages/__init__.py,sha256=ac2jWfjGGBcfoSutiKy68LzqwNp_clt2RzmJOaYCxL0,2142
@@ -64,25 +65,25 @@ pysdmx/io/json/gds/messages/sdmx_api.py,sha256=RIjNQr6ZZXCFGRBpGPKoLaxD9UilVDNyH
64
65
  pysdmx/io/json/gds/messages/services.py,sha256=OUFmYK4XkNMoaw70n4QabyxzdRDh-0XeYxBJtVezxMs,1259
65
66
  pysdmx/io/json/gds/messages/urn_resolver.py,sha256=w_wRRAwjaBw_yooSda1MXcD_aN63FdpFE7WFvcjHSeQ,1209
66
67
  pysdmx/io/json/gds/reader/__init__.py,sha256=cXQvjSzRe4lTsGmru6qMYE_HU2DEccJSYKsQ5ayIpxw,373
67
- pysdmx/io/json/sdmxjson2/messages/__init__.py,sha256=qdvbmT8majCYQw_CPjP-Mqb4BgllFv-qf1T_VtzlCPg,2435
68
+ pysdmx/io/json/sdmxjson2/messages/__init__.py,sha256=DXxKzESV-PD0CEQDmvFS3_xxDvYeY6XUWbWS-nw8BqQ,2560
68
69
  pysdmx/io/json/sdmxjson2/messages/agency.py,sha256=d9t_2HrcZcqu_Y-EchShWDRF5yJQn86urfcFl5qvWAc,3720
69
70
  pysdmx/io/json/sdmxjson2/messages/category.py,sha256=L51-XTUxzELNCfdhLPKaOPoGss2tndd6Xs1nMsWJPiA,8804
70
- pysdmx/io/json/sdmxjson2/messages/code.py,sha256=t2MMvx2nQzlu4l8MMAPDEq15w5UIjHGgaJI2HoFPdus,17908
71
+ pysdmx/io/json/sdmxjson2/messages/code.py,sha256=gEdBPOmlO_7_-lHfE7k8RVY95ee7cwJH7eY8ibh5JyA,18205
71
72
  pysdmx/io/json/sdmxjson2/messages/concept.py,sha256=x7BoG6AaziZGNjxeypwy_lsFTmdHs-0MPUpqPsTBQIA,5496
72
- pysdmx/io/json/sdmxjson2/messages/constraint.py,sha256=6pONMHr7IT8O026Xnv6AjIMVmoS29ivNiOMPr1OWQZQ,1736
73
+ pysdmx/io/json/sdmxjson2/messages/constraint.py,sha256=TCg-Z6ZkZSzlhjvaZebKk1wL_CPhmJzyKjEkE4FPkAc,9055
73
74
  pysdmx/io/json/sdmxjson2/messages/core.py,sha256=qF0fscWY1yRxmN-4s2UweEWqbDMSioaUPaxlYEo8ouY,10137
74
75
  pysdmx/io/json/sdmxjson2/messages/dataflow.py,sha256=wjeq9yexTa012AtGdZsZflp3WQ6fP-3kas-gxADTFeQ,6256
75
- pysdmx/io/json/sdmxjson2/messages/dsd.py,sha256=8-Q5ADEk0cSKEtXECBqOkzW4yN9dhRmmiVFf8zdAOUE,19025
76
- pysdmx/io/json/sdmxjson2/messages/map.py,sha256=-hhUyPxIWKoIxij0qbuoFDsZMqmtMfclCMUme4c9SS0,16767
77
- pysdmx/io/json/sdmxjson2/messages/metadataflow.py,sha256=37VsdrDpXWKkRczPjxozygrmZAiWxyZbBwDUeg03DDk,2936
76
+ pysdmx/io/json/sdmxjson2/messages/dsd.py,sha256=CMnFZ97oXEJEIO-OnX-uZkSpPN-f5E6jbJo_q8WrYHE,19854
77
+ pysdmx/io/json/sdmxjson2/messages/map.py,sha256=ZB7XPX6nUcu2MMHAsgwAR0nxlbEQF7YasplhlS5K9EI,16774
78
+ pysdmx/io/json/sdmxjson2/messages/metadataflow.py,sha256=1hKCyzTEAvB_MOgmtjBObC9RVNSge7Sick6nQMwl17o,2994
78
79
  pysdmx/io/json/sdmxjson2/messages/mpa.py,sha256=ryoQCvOvd2j6gPdGOEML4bc-NXUSetuKNOfmd9Ogn2s,3050
79
- pysdmx/io/json/sdmxjson2/messages/msd.py,sha256=R2onHmPfG0q1NAOLqc36cbKihIaB1ntGysN40df28VY,8225
80
+ pysdmx/io/json/sdmxjson2/messages/msd.py,sha256=GtJbAgGFgsNvi0P4zdslh_EOdLv-UjFBM9H9TLpwIlw,8484
80
81
  pysdmx/io/json/sdmxjson2/messages/pa.py,sha256=VoaPBgcWGwWU7h5IaVa5wNWncOoktWihSXjcP4vEb00,2780
81
82
  pysdmx/io/json/sdmxjson2/messages/provider.py,sha256=htAwdDzVR3qeyExhmjpvg8W0X4lWqRh2Bvd5H8wsOTY,8197
82
83
  pysdmx/io/json/sdmxjson2/messages/report.py,sha256=thcZZUuoiJ6OJ9P33EOTN3PIHFKxdQUMapI7HmSoB4A,6571
83
- pysdmx/io/json/sdmxjson2/messages/schema.py,sha256=Ejs8roep6bSL8Eyu7j18E6IiHXWJ3qSybnnRYNyio-E,2868
84
- pysdmx/io/json/sdmxjson2/messages/structure.py,sha256=puqKLHX37MFhlB0ZxUhaRCUhEXfYPsVVMvHBjxhP4WA,11536
85
- pysdmx/io/json/sdmxjson2/messages/vtl.py,sha256=xCErG_ojn_z1-KrFBInatY2q83lEyWUUB0g-QK-auzk,35168
84
+ pysdmx/io/json/sdmxjson2/messages/schema.py,sha256=JwFYjgvhK_1NN5KQIUYNb0ul4ywQhDQ28ZQBGnsX5X4,2862
85
+ pysdmx/io/json/sdmxjson2/messages/structure.py,sha256=c0dyTJK49UpGvL1iLFaFLYFkT89kzvXwk65qd_j-Y1U,12738
86
+ pysdmx/io/json/sdmxjson2/messages/vtl.py,sha256=C-JQY1_W8SrJd2lLdUGCmQO9Br1pdqdT8WmB1K4e_yY,35284
86
87
  pysdmx/io/json/sdmxjson2/reader/__init__.py,sha256=RbNnZSrGQa4OE0HBWJau9tPFSQbDklcKZaBWOzxEw4I,1629
87
88
  pysdmx/io/json/sdmxjson2/reader/doc_validation.py,sha256=PsY_VEJOuEtXj7pRgabiEbWBSWjTlK2oN-ayU0XIXC4,3680
88
89
  pysdmx/io/json/sdmxjson2/reader/metadata.py,sha256=FT9CEWjrVfUK4vTEqs-f2ZO6jWeRRkEHCjsHMNgKQp0,1230
@@ -103,8 +104,8 @@ pysdmx/io/xml/__structure_aux_reader.py,sha256=50UPOCk2XnCU4J1hQNAXiGL2n8QPXdf4z
103
104
  pysdmx/io/xml/__structure_aux_writer.py,sha256=0i08hvFw2TfRElaGAeTwfsOaOpw8XWBlZ_zWdxmLPkM,45612
104
105
  pysdmx/io/xml/__tokens.py,sha256=M0x-tgoh6_pzL_BP-MArCu3w0NO-AUS6bR-W6BIEJG8,6891
105
106
  pysdmx/io/xml/__write_aux.py,sha256=c3HgDMey8nBXyeT_yU8PWdk25bgYyX49R21fLv8CgZc,15534
106
- pysdmx/io/xml/__write_data_aux.py,sha256=Kfwxi8XHXj4W94D41cTdPig6GYw_3wTUzfDucNWDVx0,3353
107
- pysdmx/io/xml/__write_structure_specific_aux.py,sha256=reRDVw4Xwag0ODyMzm9uOk9WJ_e1ELxAPYHSMUUDJBQ,8919
107
+ pysdmx/io/xml/__write_data_aux.py,sha256=ebuqtz97wa7scNM7cO0A_Cr40TXmRm3qqYbOjALj6wY,3547
108
+ pysdmx/io/xml/__write_structure_specific_aux.py,sha256=zNep8HYFYnBYjOKZZa7PWRhc60rnRMmnfJh39QMaPtg,9292
108
109
  pysdmx/io/xml/config.py,sha256=R24cczVkzkhjVLXpv-qfEm88W3_QTqVt2Qofi8IvJ5Y,93
109
110
  pysdmx/io/xml/doc_validation.py,sha256=WXDhte96VEAeZMMHJ0Y68WW8HEoOhEiOYEnbGP5Zwjw,1795
110
111
  pysdmx/io/xml/header.py,sha256=My03uhWD3AkfTwfUqiblmLIZuqd7uvIEYsOial6TClg,5971
@@ -117,7 +118,7 @@ pysdmx/io/xml/sdmx21/reader/structure_specific.py,sha256=S3-gLmaBFjBRIr25qQtlrao
117
118
  pysdmx/io/xml/sdmx21/reader/submission.py,sha256=8daiBW-sIVGaB6lYwHqJNkLI7IixMSydCK-0ZO8ri4I,1711
118
119
  pysdmx/io/xml/sdmx21/writer/__init__.py,sha256=QQGFAss26njCC4eKYxhBcI9LYm5NHuJaAJGKCrIrL80,31
119
120
  pysdmx/io/xml/sdmx21/writer/error.py,sha256=0wkX7K_n2oZNkOKg_zpl9Id82qP72Lqof-T-ZLGoZ1M,353
120
- pysdmx/io/xml/sdmx21/writer/generic.py,sha256=8_kUMMUiIFVdKMyhpR2LKDyfiinBohO_aL_6GZpOInY,15786
121
+ pysdmx/io/xml/sdmx21/writer/generic.py,sha256=_ouKoVndG7Jj8_EAvUXPK1RbDKdKemh0kSRaDPFjTHo,16214
121
122
  pysdmx/io/xml/sdmx21/writer/structure.py,sha256=S3qoNgXxrakn2V4NLdL5U5mAA16XisI0PpJDuxqalFE,2084
122
123
  pysdmx/io/xml/sdmx21/writer/structure_specific.py,sha256=iXc1J-RzoKyRznvgGgdTSeUfyqZLouI8CtSq2YhGBWI,2877
123
124
  pysdmx/io/xml/sdmx30/__init__.py,sha256=8BScJFEgLy8DoUreu2RBUtxjGjKyClkKBI_Qtarbk-Y,38
@@ -135,16 +136,17 @@ pysdmx/io/xml/sdmx31/writer/__init__.py,sha256=wSWTfbD6bBh-gsdn1Z2kyIa5YXq3WEfn-
135
136
  pysdmx/io/xml/sdmx31/writer/structure.py,sha256=hK-BYOsyyuqLTqxe6qC3PxeDJDp3_qyBTqGUfpVjTl8,2105
136
137
  pysdmx/io/xml/sdmx31/writer/structure_specific.py,sha256=OtP_uxn-y9tVB9eNRP6ov3zBL1wtr4SRef9llB4A3yk,3236
137
138
  pysdmx/io/xml/utils.py,sha256=ljrocQwPTYycg3I68sqYI5pF8qukNccSCMM9Xf_Tag0,583
138
- pysdmx/model/__base.py,sha256=_ugNVF4fUHXJKP04PpzJJoB5WzcfRSadimz1Shsmtio,13820
139
- pysdmx/model/__init__.py,sha256=uuR3JYtgLqa6BpY3EnylR_TEdIgF46dqsV63uHcHmQ0,5161
140
- pysdmx/model/category.py,sha256=4k4eWHSa1xuMtdtlfiiq0b1sxODFp9PQ-wC-QWObInA,6232
139
+ pysdmx/model/__base.py,sha256=M1O-uT8RqeKZpGT09HD6ifjPl0F9ORxlRYra3fn8qCM,15182
140
+ pysdmx/model/__init__.py,sha256=UPZtum_PF-nPPQa21Bq1doUXLCoU-yRGPh45ZXdUI9k,5493
141
+ pysdmx/model/category.py,sha256=ksYIOGPHgZI619RhmRXZUXHP_juY9im40tWzR2yuMEc,6796
141
142
  pysdmx/model/code.py,sha256=Wu6rEXeZf_XA0aBrDXgN-3yvySAHH7SAjrWliFlmC24,12799
142
- pysdmx/model/concept.py,sha256=mQfqJdtWc10WdTKX_Mw7Znw65cN3QO-kCar9MWYeWO4,9645
143
+ pysdmx/model/concept.py,sha256=aEVUZVeS2NUzvQ0MZLjFT7iKRFHzhH6oC2vmH7kHLXI,10325
144
+ pysdmx/model/constraint.py,sha256=MwI_GLKzwkuo0BzAsgcnDeB-b7bq8qqwHNte5JjCEFA,1960
143
145
  pysdmx/model/dataflow.py,sha256=9EzGn-EDm1OQa52N5ep8VApZoj7lHWfIs-W5tnBP9FY,23954
144
146
  pysdmx/model/dataset.py,sha256=Lbr7tYonGHD3NZUD-M9hK2puaEAluOVPG2DbkOohzMM,4861
145
147
  pysdmx/model/gds.py,sha256=QrnmI8Hn--C95gGXCeUeWwhn-Ur7DuT08Cg7oPJIEVI,4976
146
148
  pysdmx/model/map.py,sha256=9a3hl6efq_5kAYuJWkepoQOkao8Eqk17N69JGyRfxsk,17506
147
- pysdmx/model/message.py,sha256=l8NmTJOkSjN2X_OulyD8lqKhut3MI-hPkd9JlSmGMC4,16232
149
+ pysdmx/model/message.py,sha256=OFzIe3DYtDWRDwy-k8O3mtdcmWFWoF89Z7WoT6sMUao,16512
148
150
  pysdmx/model/metadata.py,sha256=qxUcb6AMmTJhRHyVHKbpfJ9TV-UYTdPXTxGVNip0UyA,16992
149
151
  pysdmx/model/organisation.py,sha256=k6ZQ_O4l7174Y8tr-nnMnsUL0q0O8Rw3q4mIWmJUh2A,4706
150
152
  pysdmx/model/submission.py,sha256=iMQSvt-BYuDrqPEBcjw_wWNp74Vsx2OnEj3tnkth0Z8,833
@@ -162,7 +164,7 @@ pysdmx/util/__init__.py,sha256=m_XWRAmVJ7F6ai4Ckrj_YuPbhg3cJZAXeZrEThrL88k,3997
162
164
  pysdmx/util/_date_pattern_map.py,sha256=IS1qONwVHbTBNIFCT0Rqbijj2a9mYvs7onXSK6GeQAQ,1620
163
165
  pysdmx/util/_model_utils.py,sha256=nQ1yWBt-tZYDios9xvRvJ7tHq6A8_RoGdY1wi7WGz2w,3793
164
166
  pysdmx/util/_net_utils.py,sha256=nOTz_x3FgFrwKh42_J70IqYXz9duQkMFJWtejZXcLHs,1326
165
- pysdmx-1.10.0rc1.dist-info/METADATA,sha256=kPs3kQG4EX60hnWKin3iojI-3tHGysb93P5Xc7uy56k,4852
166
- pysdmx-1.10.0rc1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
167
- pysdmx-1.10.0rc1.dist-info/licenses/LICENSE,sha256=3XTNDPtv2RxDUNkQzn9MIWit2u7_Ob5daMLEq-4pBJs,649
168
- pysdmx-1.10.0rc1.dist-info/RECORD,,
167
+ pysdmx-1.10.0rc2.dist-info/METADATA,sha256=ljfxmPVZvRL2pcDovZhz986lhAuMwF6mlwgm1qEoA14,4852
168
+ pysdmx-1.10.0rc2.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
169
+ pysdmx-1.10.0rc2.dist-info/licenses/LICENSE,sha256=3XTNDPtv2RxDUNkQzn9MIWit2u7_Ob5daMLEq-4pBJs,649
170
+ pysdmx-1.10.0rc2.dist-info/RECORD,,