pysdmx 1.10.1__py3-none-any.whl → 1.12.0__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.
- pysdmx/__init__.py +1 -1
- pysdmx/api/fmr/maintenance.py +10 -5
- pysdmx/io/input_processor.py +4 -0
- pysdmx/io/json/fusion/messages/constraint.py +22 -1
- pysdmx/io/json/fusion/messages/dsd.py +20 -14
- pysdmx/io/json/fusion/messages/msd.py +6 -9
- pysdmx/io/json/fusion/messages/schema.py +20 -1
- pysdmx/io/json/sdmxjson2/messages/core.py +12 -5
- pysdmx/io/json/sdmxjson2/messages/dsd.py +11 -17
- pysdmx/io/json/sdmxjson2/messages/msd.py +2 -5
- pysdmx/io/json/sdmxjson2/messages/report.py +7 -3
- pysdmx/io/json/sdmxjson2/messages/schema.py +38 -5
- pysdmx/io/json/sdmxjson2/messages/structure.py +7 -3
- pysdmx/io/json/sdmxjson2/reader/metadata.py +3 -3
- pysdmx/io/json/sdmxjson2/reader/structure.py +3 -3
- pysdmx/io/json/sdmxjson2/writer/_helper.py +118 -0
- pysdmx/io/json/sdmxjson2/writer/v2_0/__init__.py +1 -0
- pysdmx/io/json/sdmxjson2/writer/v2_0/metadata.py +33 -0
- pysdmx/io/json/sdmxjson2/writer/v2_0/structure.py +33 -0
- pysdmx/io/json/sdmxjson2/writer/v2_1/__init__.py +1 -0
- pysdmx/io/json/sdmxjson2/writer/v2_1/metadata.py +31 -0
- pysdmx/io/json/sdmxjson2/writer/v2_1/structure.py +33 -0
- pysdmx/io/reader.py +12 -3
- pysdmx/io/writer.py +13 -3
- pysdmx/io/xml/__ss_aux_reader.py +39 -17
- pysdmx/io/xml/__structure_aux_reader.py +221 -33
- pysdmx/io/xml/__structure_aux_writer.py +304 -5
- pysdmx/io/xml/__tokens.py +12 -0
- pysdmx/io/xml/__write_aux.py +9 -0
- pysdmx/io/xml/sdmx21/writer/generic.py +2 -2
- pysdmx/model/dataflow.py +11 -2
- pysdmx/toolkit/pd/_data_utils.py +1 -1
- {pysdmx-1.10.1.dist-info → pysdmx-1.12.0.dist-info}/METADATA +7 -1
- {pysdmx-1.10.1.dist-info → pysdmx-1.12.0.dist-info}/RECORD +36 -31
- {pysdmx-1.10.1.dist-info → pysdmx-1.12.0.dist-info}/WHEEL +1 -1
- pysdmx/io/json/sdmxjson2/writer/metadata.py +0 -60
- pysdmx/io/json/sdmxjson2/writer/structure.py +0 -61
- {pysdmx-1.10.1.dist-info → pysdmx-1.12.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
pysdmx/__extras_check.py,sha256=Tmluui2OuJVyJB6a1Jl0PlrRjpsswhtCjAqtRLOSero,2059
|
|
2
|
-
pysdmx/__init__.py,sha256=
|
|
2
|
+
pysdmx/__init__.py,sha256=LCdSlP0rLXyq15h8hnc9obDN-ntA9c4EgVNKcYeP7IM,68
|
|
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
|
|
@@ -11,7 +11,7 @@ pysdmx/api/dc/query/_py_parser.py,sha256=_kVUk6Xu5jZdclng1F6eDSZS2-ok_yncI1y1q5l
|
|
|
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
13
|
pysdmx/api/fmr/__init__.py,sha256=uXD2dOY2lJSY6CoracIh8c1_7wWiJcsQ5ebIEIbHumk,50532
|
|
14
|
-
pysdmx/api/fmr/maintenance.py,sha256=
|
|
14
|
+
pysdmx/api/fmr/maintenance.py,sha256=_bdPSlSY3AvABxndlwwCKTk6uiFQfUSYhN9EjBuFRUw,6170
|
|
15
15
|
pysdmx/api/gds/__init__.py,sha256=BBl75wEdcz9zPMfk6kAGHitRW39S774VL9xifMZ_uHs,11560
|
|
16
16
|
pysdmx/api/qb/__init__.py,sha256=vxdMJFFg4J_KWADrnzj_8KcU0UlwpJPdx0yiW3QJo9Y,1498
|
|
17
17
|
pysdmx/api/qb/availability.py,sha256=2yPHnTXu_jACNKNhhtXMkxVkfLK1Ewa5ucGAbRxvC5o,10181
|
|
@@ -38,23 +38,23 @@ pysdmx/io/csv/sdmx21/__init__.py,sha256=I3_dwi4A4if62_mwEjqbOa-F7mhoIMf0D6szpDf3
|
|
|
38
38
|
pysdmx/io/csv/sdmx21/reader/__init__.py,sha256=J1cCkZh3klgZZWjdQ_U1zkfzT_DVzQmdreGZhN33SLs,2866
|
|
39
39
|
pysdmx/io/csv/sdmx21/writer/__init__.py,sha256=CH8Nm7hqvXyN6XM_D2nJRmbKj6CJV-X1QzSF0WJrs0E,2484
|
|
40
40
|
pysdmx/io/format.py,sha256=EO-PyYpiU0WswvEGA5UHokladxPezcwBUo1AJTqxp1Q,5250
|
|
41
|
-
pysdmx/io/input_processor.py,sha256=
|
|
41
|
+
pysdmx/io/input_processor.py,sha256=OPpnhXy8R2H0EKHvC92J3eWojk4I8dlp4jXA03FvvuA,7212
|
|
42
42
|
pysdmx/io/json/fusion/messages/__init__.py,sha256=ac2jWfjGGBcfoSutiKy68LzqwNp_clt2RzmJOaYCxL0,2142
|
|
43
43
|
pysdmx/io/json/fusion/messages/category.py,sha256=2NnYTptQ6nAdeYBIkAysyriTFF6dW8fjb9AvRWtTOao,5606
|
|
44
44
|
pysdmx/io/json/fusion/messages/code.py,sha256=YayxSKiHa124WTr_lK8HTfXHomh_e0oDZvuydd29XKg,8300
|
|
45
45
|
pysdmx/io/json/fusion/messages/concept.py,sha256=m4lTyncSIriFXWWupE-zLxUVPx3Xrg56qahzKr4HEag,2824
|
|
46
|
-
pysdmx/io/json/fusion/messages/constraint.py,sha256=
|
|
46
|
+
pysdmx/io/json/fusion/messages/constraint.py,sha256=pQlirYnZLCD-qqwcqHtAuYaBqU3R-o449nMubyDyC-g,1353
|
|
47
47
|
pysdmx/io/json/fusion/messages/core.py,sha256=GdzF3TNUGrB0gxuaaSpk9LaYqcdy_M6L2azExZQfM0Q,4843
|
|
48
48
|
pysdmx/io/json/fusion/messages/dataflow.py,sha256=lsaMPjmA-KiM51I78wrONfNHyvfBSeAll5Sp0jmTezc,2972
|
|
49
|
-
pysdmx/io/json/fusion/messages/dsd.py,sha256=
|
|
49
|
+
pysdmx/io/json/fusion/messages/dsd.py,sha256=67Wym_OLnUERBQGJehu08MdFvH1p3UcUbiz0WZ69zV8,10702
|
|
50
50
|
pysdmx/io/json/fusion/messages/map.py,sha256=TPsCFuUfk5Jhhe7CNvEoHuFNZFpHhvNiYFWeIEUx-sc,7695
|
|
51
51
|
pysdmx/io/json/fusion/messages/metadataflow.py,sha256=Js4j8lUF9ZwqL7lJUrfrjk9tmBmRQPt8qxdrfnZ6R5E,1374
|
|
52
52
|
pysdmx/io/json/fusion/messages/mpa.py,sha256=WvcHn7Pa_UBHxkZbfSzIxc8qeeMfTWThxgCRHuioXFY,1494
|
|
53
|
-
pysdmx/io/json/fusion/messages/msd.py,sha256=
|
|
53
|
+
pysdmx/io/json/fusion/messages/msd.py,sha256=XzQ5JiX0rAswj71a3mCYulhGLtu7GDp_RzL8-kd3t1U,3867
|
|
54
54
|
pysdmx/io/json/fusion/messages/org.py,sha256=gWIvmvVrj5wXCrwbsJL0B13YM3WjlfIQxrRUc_WAoYs,9538
|
|
55
55
|
pysdmx/io/json/fusion/messages/pa.py,sha256=6zN8Qxj5bdf5zo2N9TwYlSLyGxokvsELtk1--1cMbxw,1393
|
|
56
56
|
pysdmx/io/json/fusion/messages/report.py,sha256=ZE62ZmHlCXk3TxRTRWCDCKVMhnN0J5UjMEzrsnD5I3E,1551
|
|
57
|
-
pysdmx/io/json/fusion/messages/schema.py,sha256=
|
|
57
|
+
pysdmx/io/json/fusion/messages/schema.py,sha256=cdC2OTcuJFqR9GeyCr0OxL-jYjSdN0HKFMp1OkfORCA,3134
|
|
58
58
|
pysdmx/io/json/fusion/messages/vtl.py,sha256=7VGjDRWzKMO6WT4CnGvGBKinhX06DzrJmDRudnvN4XM,16092
|
|
59
59
|
pysdmx/io/json/fusion/reader/__init__.py,sha256=4lFrsX0Flhvlopv5FAYZBeQMPtmnMm5HgC-q7Pey0dw,1710
|
|
60
60
|
pysdmx/io/json/gds/messages/__init__.py,sha256=5LqGtO3GDi2B6HM2eDGCSJCncLS8C4MQ7vd5YBvCRok,885
|
|
@@ -70,39 +70,44 @@ pysdmx/io/json/sdmxjson2/messages/category.py,sha256=L51-XTUxzELNCfdhLPKaOPoGss2
|
|
|
70
70
|
pysdmx/io/json/sdmxjson2/messages/code.py,sha256=gEdBPOmlO_7_-lHfE7k8RVY95ee7cwJH7eY8ibh5JyA,18205
|
|
71
71
|
pysdmx/io/json/sdmxjson2/messages/concept.py,sha256=x7BoG6AaziZGNjxeypwy_lsFTmdHs-0MPUpqPsTBQIA,5496
|
|
72
72
|
pysdmx/io/json/sdmxjson2/messages/constraint.py,sha256=TCg-Z6ZkZSzlhjvaZebKk1wL_CPhmJzyKjEkE4FPkAc,9055
|
|
73
|
-
pysdmx/io/json/sdmxjson2/messages/core.py,sha256=
|
|
73
|
+
pysdmx/io/json/sdmxjson2/messages/core.py,sha256=dOVa5ibFuhNqmw7e2yVeYMMC8DEjk6jK5T40ev9S-0I,10394
|
|
74
74
|
pysdmx/io/json/sdmxjson2/messages/dataflow.py,sha256=wjeq9yexTa012AtGdZsZflp3WQ6fP-3kas-gxADTFeQ,6256
|
|
75
|
-
pysdmx/io/json/sdmxjson2/messages/dsd.py,sha256=
|
|
75
|
+
pysdmx/io/json/sdmxjson2/messages/dsd.py,sha256=_dqP-ZwKNM85xb77OMLY_wiGZxMwHvl4d-c1QECCP9Y,20415
|
|
76
76
|
pysdmx/io/json/sdmxjson2/messages/map.py,sha256=ZB7XPX6nUcu2MMHAsgwAR0nxlbEQF7YasplhlS5K9EI,16774
|
|
77
77
|
pysdmx/io/json/sdmxjson2/messages/metadataflow.py,sha256=1hKCyzTEAvB_MOgmtjBObC9RVNSge7Sick6nQMwl17o,2994
|
|
78
78
|
pysdmx/io/json/sdmxjson2/messages/mpa.py,sha256=ryoQCvOvd2j6gPdGOEML4bc-NXUSetuKNOfmd9Ogn2s,3050
|
|
79
|
-
pysdmx/io/json/sdmxjson2/messages/msd.py,sha256=
|
|
79
|
+
pysdmx/io/json/sdmxjson2/messages/msd.py,sha256=cYQqWOex5LVYE-8ASsyIwI_Y0jCuT9IPG_evG3CMnHs,8465
|
|
80
80
|
pysdmx/io/json/sdmxjson2/messages/pa.py,sha256=VoaPBgcWGwWU7h5IaVa5wNWncOoktWihSXjcP4vEb00,2780
|
|
81
81
|
pysdmx/io/json/sdmxjson2/messages/provider.py,sha256=htAwdDzVR3qeyExhmjpvg8W0X4lWqRh2Bvd5H8wsOTY,8197
|
|
82
|
-
pysdmx/io/json/sdmxjson2/messages/report.py,sha256=
|
|
83
|
-
pysdmx/io/json/sdmxjson2/messages/schema.py,sha256=
|
|
84
|
-
pysdmx/io/json/sdmxjson2/messages/structure.py,sha256=
|
|
82
|
+
pysdmx/io/json/sdmxjson2/messages/report.py,sha256=jr4HZunfnQicG2AFi15AGX_v031jNb3d6PiQgc8TPgY,6672
|
|
83
|
+
pysdmx/io/json/sdmxjson2/messages/schema.py,sha256=TfsYPKyaQRz-nd6wiSwtL2_VrLJFJQ4rzZmFeU-bH3E,3960
|
|
84
|
+
pysdmx/io/json/sdmxjson2/messages/structure.py,sha256=GCpQboHEpDyfCmXVJGbCyKpIaLCbOXYDxj6WXnvv9pw,12851
|
|
85
85
|
pysdmx/io/json/sdmxjson2/messages/vtl.py,sha256=C-JQY1_W8SrJd2lLdUGCmQO9Br1pdqdT8WmB1K4e_yY,35284
|
|
86
86
|
pysdmx/io/json/sdmxjson2/reader/__init__.py,sha256=RbNnZSrGQa4OE0HBWJau9tPFSQbDklcKZaBWOzxEw4I,1629
|
|
87
87
|
pysdmx/io/json/sdmxjson2/reader/doc_validation.py,sha256=Li0N5UmTKJy_FWT5vfwt7DEtp8xiYaXccDRBna_Q0Jw,3822
|
|
88
|
-
pysdmx/io/json/sdmxjson2/reader/metadata.py,sha256=
|
|
89
|
-
pysdmx/io/json/sdmxjson2/reader/structure.py,sha256=
|
|
88
|
+
pysdmx/io/json/sdmxjson2/reader/metadata.py,sha256=sktlmqyXnGhoDTypSDeJU97Evfb9HB0II4-LPnvfMrk,1248
|
|
89
|
+
pysdmx/io/json/sdmxjson2/reader/structure.py,sha256=6WtSmwx9KRSLX9Ovb1rFoIpghhy72o-1uZ9qN1Fo0zw,1236
|
|
90
90
|
pysdmx/io/json/sdmxjson2/writer/__init__.py,sha256=DZGkas1ghei4p6SZsIQI1LPToS-d8F1Nx75MC8reT7g,270
|
|
91
|
-
pysdmx/io/json/sdmxjson2/writer/
|
|
92
|
-
pysdmx/io/json/sdmxjson2/writer/
|
|
91
|
+
pysdmx/io/json/sdmxjson2/writer/_helper.py,sha256=sXZw2exVyHBUpdVf4NjieTrexXfA27NcxUo594h6ArE,4214
|
|
92
|
+
pysdmx/io/json/sdmxjson2/writer/v2_0/__init__.py,sha256=7PBjEmFonZtbhURmon4UQufFoR_dpZqLILXnq6oPIoo,58
|
|
93
|
+
pysdmx/io/json/sdmxjson2/writer/v2_0/metadata.py,sha256=AU-VstrSHpTrIQSx3e2JmeIRuC-CQn79OQODllz6BB8,1212
|
|
94
|
+
pysdmx/io/json/sdmxjson2/writer/v2_0/structure.py,sha256=jiJ9ww7zTZRaGzZTZVY2-0Tzj9JdSeXkI2fggqfqKRc,1245
|
|
95
|
+
pysdmx/io/json/sdmxjson2/writer/v2_1/__init__.py,sha256=-CwxbfR9kgwXYU_SMrmkkf0jgFPhcHTdG5dwjFhwjfk,58
|
|
96
|
+
pysdmx/io/json/sdmxjson2/writer/v2_1/metadata.py,sha256=9PE3yPpyD1pfF_8-A5VmakzC00XRC-BNEyZpZUIIJI8,1196
|
|
97
|
+
pysdmx/io/json/sdmxjson2/writer/v2_1/structure.py,sha256=s0SULtWmNUckly6cKPI0wGzElmVvgAEK6b32Es2Q0Rw,1243
|
|
93
98
|
pysdmx/io/pd.py,sha256=1C5UnAT25EADOpNsRBooEdWNaJEGdmcwh6_R9O5MOrc,464
|
|
94
|
-
pysdmx/io/reader.py,sha256=
|
|
99
|
+
pysdmx/io/reader.py,sha256=sceCnfJKdUiwNXnIkCKydj5Fcmc1DDnkzUlaz2DNOrU,11403
|
|
95
100
|
pysdmx/io/serde.py,sha256=xTd22JEaefhCpVcUqVthf4gtDQT1KeiDZ-9w52o2zQk,1594
|
|
96
|
-
pysdmx/io/writer.py,sha256=
|
|
101
|
+
pysdmx/io/writer.py,sha256=UEwRe8xVCKV_y9nu7amSVQzQss5x55EBJsH2LI-dsAI,6128
|
|
97
102
|
pysdmx/io/xml/__allowed_lxml_errors.py,sha256=PdIK2i6JwwGRh1Ogc5JA0hRySO7QXJKN-DI8EYtdjA0,225
|
|
98
103
|
pysdmx/io/xml/__data_aux.py,sha256=oLTfk49FuoF0LjMrV5o55PN_5wWPHZTv49aDBdbflYc,4331
|
|
99
104
|
pysdmx/io/xml/__init__.py,sha256=tcUsSEiM3nBA7lDbZPwGZ7Vu_K9gQd8oliASUMTGjFE,105
|
|
100
105
|
pysdmx/io/xml/__parse_xml.py,sha256=4zZKGlvrNAccILH-mlQzZFV2HF15wIUGDXttVG3SvNM,2975
|
|
101
|
-
pysdmx/io/xml/__ss_aux_reader.py,sha256=
|
|
102
|
-
pysdmx/io/xml/__structure_aux_reader.py,sha256=
|
|
103
|
-
pysdmx/io/xml/__structure_aux_writer.py,sha256=
|
|
104
|
-
pysdmx/io/xml/__tokens.py,sha256=
|
|
105
|
-
pysdmx/io/xml/__write_aux.py,sha256=
|
|
106
|
+
pysdmx/io/xml/__ss_aux_reader.py,sha256=_aJO-uWh60SNaOxB8mE8SBWy0c5_GPBNtr9lro_YlEA,3702
|
|
107
|
+
pysdmx/io/xml/__structure_aux_reader.py,sha256=IppBAE7oWeO0FbqdwAb2t6xXmVbZj7PaC2vHIcdWFNE,49122
|
|
108
|
+
pysdmx/io/xml/__structure_aux_writer.py,sha256=smDO5X5PwTXD48pgFBA_rYGvE-yMZb1YVR1WNyXE-EM,55176
|
|
109
|
+
pysdmx/io/xml/__tokens.py,sha256=mTunFE49N4TigxjPiDoyYdbN4Yk_HONZYFz-fRzDknk,7258
|
|
110
|
+
pysdmx/io/xml/__write_aux.py,sha256=Qi_f5K8a0mX4F4IMx3ZQ8J18NPj_2VhdiccjOAtvhQo,15896
|
|
106
111
|
pysdmx/io/xml/__write_data_aux.py,sha256=mnJpooA4koqGbKhF-6eonT3drQ-qCuwwP-lfZLHKqVQ,3403
|
|
107
112
|
pysdmx/io/xml/__write_structure_specific_aux.py,sha256=reRDVw4Xwag0ODyMzm9uOk9WJ_e1ELxAPYHSMUUDJBQ,8919
|
|
108
113
|
pysdmx/io/xml/config.py,sha256=R24cczVkzkhjVLXpv-qfEm88W3_QTqVt2Qofi8IvJ5Y,93
|
|
@@ -117,7 +122,7 @@ pysdmx/io/xml/sdmx21/reader/structure_specific.py,sha256=S3-gLmaBFjBRIr25qQtlrao
|
|
|
117
122
|
pysdmx/io/xml/sdmx21/reader/submission.py,sha256=8daiBW-sIVGaB6lYwHqJNkLI7IixMSydCK-0ZO8ri4I,1711
|
|
118
123
|
pysdmx/io/xml/sdmx21/writer/__init__.py,sha256=QQGFAss26njCC4eKYxhBcI9LYm5NHuJaAJGKCrIrL80,31
|
|
119
124
|
pysdmx/io/xml/sdmx21/writer/error.py,sha256=0wkX7K_n2oZNkOKg_zpl9Id82qP72Lqof-T-ZLGoZ1M,353
|
|
120
|
-
pysdmx/io/xml/sdmx21/writer/generic.py,sha256=
|
|
125
|
+
pysdmx/io/xml/sdmx21/writer/generic.py,sha256=kiTQ3HuO51xxQGrQ6PxpKAYGfoYu_r_oxfOPQHPX2vU,15824
|
|
121
126
|
pysdmx/io/xml/sdmx21/writer/structure.py,sha256=S3qoNgXxrakn2V4NLdL5U5mAA16XisI0PpJDuxqalFE,2084
|
|
122
127
|
pysdmx/io/xml/sdmx21/writer/structure_specific.py,sha256=iXc1J-RzoKyRznvgGgdTSeUfyqZLouI8CtSq2YhGBWI,2877
|
|
123
128
|
pysdmx/io/xml/sdmx30/__init__.py,sha256=8BScJFEgLy8DoUreu2RBUtxjGjKyClkKBI_Qtarbk-Y,38
|
|
@@ -141,7 +146,7 @@ pysdmx/model/category.py,sha256=ksYIOGPHgZI619RhmRXZUXHP_juY9im40tWzR2yuMEc,6796
|
|
|
141
146
|
pysdmx/model/code.py,sha256=Wu6rEXeZf_XA0aBrDXgN-3yvySAHH7SAjrWliFlmC24,12799
|
|
142
147
|
pysdmx/model/concept.py,sha256=mQfqJdtWc10WdTKX_Mw7Znw65cN3QO-kCar9MWYeWO4,9645
|
|
143
148
|
pysdmx/model/constraint.py,sha256=MwI_GLKzwkuo0BzAsgcnDeB-b7bq8qqwHNte5JjCEFA,1960
|
|
144
|
-
pysdmx/model/dataflow.py,sha256=
|
|
149
|
+
pysdmx/model/dataflow.py,sha256=FjXuMfAme1JyO1WCFV_yw0WcYqwXMB7kG0mOUwh04q8,24670
|
|
145
150
|
pysdmx/model/dataset.py,sha256=Lbr7tYonGHD3NZUD-M9hK2puaEAluOVPG2DbkOohzMM,4861
|
|
146
151
|
pysdmx/model/gds.py,sha256=QrnmI8Hn--C95gGXCeUeWwhn-Ur7DuT08Cg7oPJIEVI,4976
|
|
147
152
|
pysdmx/model/map.py,sha256=9a3hl6efq_5kAYuJWkepoQOkao8Eqk17N69JGyRfxsk,17506
|
|
@@ -153,7 +158,7 @@ pysdmx/model/vtl.py,sha256=k7WIb89876xKlf7k0R9sgZ1VVlRrIkbV7FzvMFZn8e0,6985
|
|
|
153
158
|
pysdmx/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
159
|
pysdmx/toolkit/__init__.py,sha256=yBRw4FXQH_RUJgF6vwZscNwCVBt-FMwslJEfDKa7eXo,26
|
|
155
160
|
pysdmx/toolkit/pd/__init__.py,sha256=3JoCZHamJR4mZfLt9GmaznLlG_YilmY0hAhuW5COQC8,3138
|
|
156
|
-
pysdmx/toolkit/pd/_data_utils.py,sha256=
|
|
161
|
+
pysdmx/toolkit/pd/_data_utils.py,sha256=S-u17kdYoWlZRLHFvCBKIO489cGBWcFcdCVjEhqJWuA,3311
|
|
157
162
|
pysdmx/toolkit/vtl/__init__.py,sha256=jYWScnAomHlkvTtl07ur82UEqALCveiAEmMbqdWhT1A,388
|
|
158
163
|
pysdmx/toolkit/vtl/_validations.py,sha256=k0le8fDUOGNl97P-QbNglrNyr5fCh5dLPMiTk1yu1jw,5590
|
|
159
164
|
pysdmx/toolkit/vtl/convert.py,sha256=FNToVTG4Zu9n7h_Fre-LEGihx8RMGSJb7G6-FFyPg8Y,11355
|
|
@@ -163,7 +168,7 @@ pysdmx/util/__init__.py,sha256=m_XWRAmVJ7F6ai4Ckrj_YuPbhg3cJZAXeZrEThrL88k,3997
|
|
|
163
168
|
pysdmx/util/_date_pattern_map.py,sha256=IS1qONwVHbTBNIFCT0Rqbijj2a9mYvs7onXSK6GeQAQ,1620
|
|
164
169
|
pysdmx/util/_model_utils.py,sha256=nQ1yWBt-tZYDios9xvRvJ7tHq6A8_RoGdY1wi7WGz2w,3793
|
|
165
170
|
pysdmx/util/_net_utils.py,sha256=nOTz_x3FgFrwKh42_J70IqYXz9duQkMFJWtejZXcLHs,1326
|
|
166
|
-
pysdmx-1.
|
|
167
|
-
pysdmx-1.
|
|
168
|
-
pysdmx-1.
|
|
169
|
-
pysdmx-1.
|
|
171
|
+
pysdmx-1.12.0.dist-info/METADATA,sha256=Lh2s5ZlVZY0MY1taf1MeFSTlqF1mJIiWEYX1qqRCLps,5364
|
|
172
|
+
pysdmx-1.12.0.dist-info/WHEEL,sha256=kJCRJT_g0adfAJzTx2GUMmS80rTJIVHRCfG0DQgLq3o,88
|
|
173
|
+
pysdmx-1.12.0.dist-info/licenses/LICENSE,sha256=3XTNDPtv2RxDUNkQzn9MIWit2u7_Ob5daMLEq-4pBJs,649
|
|
174
|
+
pysdmx-1.12.0.dist-info/RECORD,,
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"""Writer interface for SDMX-JSON 2.0.0 Reference Metadata messages."""
|
|
2
|
-
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
from typing import Optional, Sequence, Union
|
|
5
|
-
|
|
6
|
-
import msgspec
|
|
7
|
-
|
|
8
|
-
from pysdmx.io.json.sdmxjson2.messages import JsonMetadataMessage
|
|
9
|
-
from pysdmx.model import MetadataReport, encoders
|
|
10
|
-
from pysdmx.model.message import Header, MetadataMessage
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def write(
|
|
14
|
-
reports: Sequence[MetadataReport],
|
|
15
|
-
output_path: Optional[Union[str, Path]] = None,
|
|
16
|
-
prettyprint: bool = True,
|
|
17
|
-
header: Optional[Header] = None,
|
|
18
|
-
) -> Optional[str]:
|
|
19
|
-
"""Write metadata reports in SDMX-JSON 2.0.0.
|
|
20
|
-
|
|
21
|
-
Args:
|
|
22
|
-
reports: The reference metadata reports to be serialized.
|
|
23
|
-
output_path: The path to save the JSON file. If None or empty, the
|
|
24
|
-
serialized content is returned as a string instead.
|
|
25
|
-
prettyprint: Whether to format the JSON output with indentation (True)
|
|
26
|
-
or output compact JSON without extra whitespace (False).
|
|
27
|
-
header: The header to be used in the SDMX-JSON message
|
|
28
|
-
(will be generated if no header is supplied).
|
|
29
|
-
|
|
30
|
-
Returns:
|
|
31
|
-
The JSON string if output_path is None or empty, None otherwise.
|
|
32
|
-
"""
|
|
33
|
-
if not header:
|
|
34
|
-
header = Header()
|
|
35
|
-
sm = MetadataMessage(header, reports)
|
|
36
|
-
jsm = JsonMetadataMessage.from_model(sm)
|
|
37
|
-
|
|
38
|
-
encoder = msgspec.json.Encoder(enc_hook=encoders)
|
|
39
|
-
serialized_data = encoder.encode(jsm)
|
|
40
|
-
|
|
41
|
-
# Apply pretty-printing if requested
|
|
42
|
-
if prettyprint:
|
|
43
|
-
serialized_data = msgspec.json.format(serialized_data, indent=4)
|
|
44
|
-
|
|
45
|
-
# If output_path is provided, write to file
|
|
46
|
-
if output_path:
|
|
47
|
-
# Convert to Path object if string
|
|
48
|
-
if isinstance(output_path, str):
|
|
49
|
-
output_path = Path(output_path)
|
|
50
|
-
|
|
51
|
-
# Create parent directories if they don't exist
|
|
52
|
-
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
53
|
-
|
|
54
|
-
# Write to file
|
|
55
|
-
with open(output_path, "wb") as f:
|
|
56
|
-
f.write(serialized_data)
|
|
57
|
-
return None
|
|
58
|
-
else:
|
|
59
|
-
# Return as string
|
|
60
|
-
return serialized_data.decode("utf-8")
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"""Writer interface for SDMX-JSON 2.0.0 Structure messages."""
|
|
2
|
-
|
|
3
|
-
from pathlib import Path
|
|
4
|
-
from typing import Optional, Sequence, Union
|
|
5
|
-
|
|
6
|
-
import msgspec
|
|
7
|
-
|
|
8
|
-
from pysdmx.io.json.sdmxjson2.messages import JsonStructureMessage
|
|
9
|
-
from pysdmx.model import encoders
|
|
10
|
-
from pysdmx.model.__base import MaintainableArtefact
|
|
11
|
-
from pysdmx.model.message import Header, StructureMessage
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def write(
|
|
15
|
-
structures: Sequence[MaintainableArtefact],
|
|
16
|
-
output_path: Optional[Union[str, Path]] = None,
|
|
17
|
-
prettyprint: bool = True,
|
|
18
|
-
header: Optional[Header] = None,
|
|
19
|
-
) -> Optional[str]:
|
|
20
|
-
"""Write maintainable SDMX artefacts in SDMX-JSON 2.0.0.
|
|
21
|
-
|
|
22
|
-
Args:
|
|
23
|
-
structures: The maintainable SDMX artefacts to be serialized.
|
|
24
|
-
output_path: The path to save the JSON file. If None or empty, the
|
|
25
|
-
serialized content is returned as a string instead.
|
|
26
|
-
prettyprint: Whether to format the JSON output with indentation (True)
|
|
27
|
-
or output compact JSON without extra whitespace (False).
|
|
28
|
-
header: The header to be used in the SDMX-JSON message
|
|
29
|
-
(will be generated if no header is supplied).
|
|
30
|
-
|
|
31
|
-
Returns:
|
|
32
|
-
The JSON string if output_path is None or empty, None otherwise.
|
|
33
|
-
"""
|
|
34
|
-
if not header:
|
|
35
|
-
header = Header()
|
|
36
|
-
sm = StructureMessage(header, structures)
|
|
37
|
-
jsm = JsonStructureMessage.from_model(sm)
|
|
38
|
-
|
|
39
|
-
encoder = msgspec.json.Encoder(enc_hook=encoders)
|
|
40
|
-
serialized_data = encoder.encode(jsm)
|
|
41
|
-
|
|
42
|
-
# Apply pretty-printing if requested
|
|
43
|
-
if prettyprint:
|
|
44
|
-
serialized_data = msgspec.json.format(serialized_data, indent=4)
|
|
45
|
-
|
|
46
|
-
# If output_path is provided, write to file
|
|
47
|
-
if output_path:
|
|
48
|
-
# Convert to Path object if string
|
|
49
|
-
if isinstance(output_path, str):
|
|
50
|
-
output_path = Path(output_path)
|
|
51
|
-
|
|
52
|
-
# Create parent directories if they don't exist
|
|
53
|
-
output_path.parent.mkdir(parents=True, exist_ok=True)
|
|
54
|
-
|
|
55
|
-
# Write to file
|
|
56
|
-
with open(output_path, "wb") as f:
|
|
57
|
-
f.write(serialized_data)
|
|
58
|
-
return None
|
|
59
|
-
else:
|
|
60
|
-
# Return as string
|
|
61
|
-
return serialized_data.decode("utf-8")
|
|
File without changes
|