hdx-python-utilities 3.9.1__tar.gz → 3.9.2__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 (129) hide show
  1. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/PKG-INFO +1 -1
  2. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/requirements.txt +11 -11
  3. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/_version.py +2 -2
  4. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/downloader.py +9 -2
  5. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_downloader.py +23 -0
  6. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/.coveragerc +0 -0
  7. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/.github/workflows/publish-test.yaml +0 -0
  8. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/.github/workflows/publish.yaml +0 -0
  9. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/.github/workflows/run-python-tests.yaml +0 -0
  10. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/.gitignore +0 -0
  11. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/.pre-commit-config.yaml +0 -0
  12. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/CONTRIBUTING.md +0 -0
  13. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/LICENSE +0 -0
  14. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/README.md +0 -0
  15. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/documentation/.readthedocs.yaml +0 -0
  16. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/documentation/index.md +0 -0
  17. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/documentation/mkdocs.yaml +0 -0
  18. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/hatch.toml +0 -0
  19. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/pyproject.toml +0 -0
  20. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/pytest.ini +0 -0
  21. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/ruff.toml +0 -0
  22. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/__init__.py +0 -0
  23. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/base_downloader.py +0 -0
  24. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/compare.py +0 -0
  25. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/dateparse.py +0 -0
  26. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/dictandlist.py +0 -0
  27. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/easy_logging.py +0 -0
  28. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/email.py +0 -0
  29. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/encoding.py +0 -0
  30. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/error_handler.py +0 -0
  31. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/errors_onexit.py +0 -0
  32. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/frictionless_wrapper.py +0 -0
  33. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/html.py +0 -0
  34. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/loader.py +0 -0
  35. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/matching.py +0 -0
  36. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/path.py +0 -0
  37. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/retriever.py +0 -0
  38. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/saver.py +0 -0
  39. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/session.py +0 -0
  40. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/state.py +0 -0
  41. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/text.py +0 -0
  42. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/typehint.py +0 -0
  43. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/useragent.py +0 -0
  44. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/src/hdx/utilities/uuid.py +0 -0
  45. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/compare/test_csv_processing.csv +0 -0
  46. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/compare/test_csv_processing2.csv +0 -0
  47. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/empty.yaml +0 -0
  48. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/hdx_config.json +0 -0
  49. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/hdx_config.yaml +0 -0
  50. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/hdx_email_configuration.json +0 -0
  51. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
  52. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/json_csv.yaml +0 -0
  53. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/logging_config.json +0 -0
  54. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/logging_config.yaml +0 -0
  55. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/project_configuration.json +0 -0
  56. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/project_configuration.yaml +0 -0
  57. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/smtp_config.json +0 -0
  58. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/smtp_config.yaml +0 -0
  59. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/user_agent_config.yaml +0 -0
  60. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/user_agent_config2.yaml +0 -0
  61. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/user_agent_config3.yaml +0 -0
  62. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
  63. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/basicauth.txt +0 -0
  64. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/bearertoken.txt +0 -0
  65. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/extra_params.json +0 -0
  66. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/extra_params.yaml +0 -0
  67. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/extra_params_tree.yaml +0 -0
  68. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_csv_processing.csv +0 -0
  69. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_csv_processing_blanks.csv +0 -0
  70. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_data.csv +0 -0
  71. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_data.xlsx +0 -0
  72. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_data1.csv/empty.txt +0 -0
  73. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_data2.csv +0 -0
  74. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_json_processing.json +0 -0
  75. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_xls_processing.xls +0 -0
  76. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/downloader/test_xlsx_processing.xlsx +0 -0
  77. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/html/response.html +0 -0
  78. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/loader/empty.json +0 -0
  79. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/loader/empty.yaml +0 -0
  80. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/loader/empty_list.json +0 -0
  81. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/fallbacks/test.csv +0 -0
  82. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/fallbacks/test.json +0 -0
  83. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/fallbacks/test.txt +0 -0
  84. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/fallbacks/test.yaml +0 -0
  85. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/retriever-test.csv +0 -0
  86. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/test.csv +0 -0
  87. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/test.json +0 -0
  88. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/test.txt +0 -0
  89. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/test.yaml +0 -0
  90. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/retriever/test_hxl.csv +0 -0
  91. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out.csv +0 -0
  92. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out.json +0 -0
  93. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out2.csv +0 -0
  94. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out2.json +0 -0
  95. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out5.json +0 -0
  96. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out6.json +0 -0
  97. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out7.json +0 -0
  98. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out8.csv +0 -0
  99. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/out8.json +0 -0
  100. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-false_sortkeys-false.json +0 -0
  101. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-false_sortkeys-false.yaml +0 -0
  102. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-false_sortkeys-true.json +0 -0
  103. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-false_sortkeys-true.yaml +0 -0
  104. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-true_sortkeys-false.json +0 -0
  105. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-true_sortkeys-false.yaml +0 -0
  106. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-true_sortkeys-true.json +0 -0
  107. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/saver/pretty-true_sortkeys-true.yaml +0 -0
  108. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/state/analysis_dates.txt +0 -0
  109. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/state/last_build_date.txt +0 -0
  110. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/fixtures/test_data.csv +0 -0
  111. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/conftest.py +0 -0
  112. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_compare.py +0 -0
  113. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_dateparse.py +0 -0
  114. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_dictandlist.py +0 -0
  115. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_easy_logging.py +0 -0
  116. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_email.py +0 -0
  117. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_encoding.py +0 -0
  118. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_error_handler.py +0 -0
  119. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_html.py +0 -0
  120. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_loader.py +0 -0
  121. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_matching.py +0 -0
  122. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_path.py +0 -0
  123. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_retriever.py +0 -0
  124. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_saver.py +0 -0
  125. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_state.py +0 -0
  126. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_text.py +0 -0
  127. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_useragent.py +0 -0
  128. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/test_uuid.py +0 -0
  129. {hdx_python_utilities-3.9.1 → hdx_python_utilities-3.9.2}/tests/hdx/utilities/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hdx-python-utilities
3
- Version: 3.9.1
3
+ Version: 3.9.2
4
4
  Summary: HDX Python Utilities for streaming tabular data, date and time handling and other helpful functions
5
5
  Project-URL: Homepage, https://github.com/OCHA-DAP/hdx-python-utilities
6
6
  Author-email: Michael Rans <rans@email.com>
@@ -31,13 +31,13 @@ click==8.2.1
31
31
  # typer
32
32
  colorama==0.4.6
33
33
  # via mkdocs-material
34
- coverage==7.10.5
34
+ coverage==7.10.7
35
35
  # via pytest-cov
36
36
  cydifflib==1.2.0
37
37
  # via hdx-python-utilities (pyproject.toml)
38
38
  distlib==0.4.0
39
39
  # via virtualenv
40
- dnspython==2.7.0
40
+ dnspython==2.8.0
41
41
  # via email-validator
42
42
  email-validator==2.3.0
43
43
  # via hdx-python-utilities (pyproject.toml)
@@ -53,7 +53,7 @@ html5lib==1.1
53
53
  # via hdx-python-utilities (pyproject.toml)
54
54
  humanize==4.13.0
55
55
  # via frictionless
56
- identify==2.6.13
56
+ identify==2.6.14
57
57
  # via pre-commit
58
58
  idna==3.10
59
59
  # via
@@ -77,13 +77,13 @@ jsonschema==4.25.1
77
77
  # via
78
78
  # frictionless
79
79
  # tableschema-to-template
80
- jsonschema-specifications==2025.4.1
80
+ jsonschema-specifications==2025.9.1
81
81
  # via jsonschema
82
82
  loguru==0.7.3
83
83
  # via
84
84
  # hdx-python-utilities (pyproject.toml)
85
85
  # pytest-loguru
86
- markdown==3.8.2
86
+ markdown==3.9
87
87
  # via
88
88
  # mkdocs
89
89
  # mkdocs-material
@@ -110,7 +110,7 @@ mkdocs==1.6.1
110
110
  # mkdocs-material
111
111
  mkdocs-get-deps==0.2.0
112
112
  # via mkdocs
113
- mkdocs-material==9.6.18
113
+ mkdocs-material==9.6.20
114
114
  # via mkapi
115
115
  mkdocs-material-extensions==1.3.1
116
116
  # via mkdocs-material
@@ -138,7 +138,7 @@ pluggy==1.6.0
138
138
  # pytest-cov
139
139
  pre-commit==4.3.0
140
140
  # via hdx-python-utilities (pyproject.toml)
141
- pydantic==2.11.7
141
+ pydantic==2.11.9
142
142
  # via frictionless
143
143
  pydantic-core==2.33.2
144
144
  # via pydantic
@@ -151,11 +151,11 @@ pymdown-extensions==10.16.1
151
151
  # via mkdocs-material
152
152
  pyphonetics==0.5.3
153
153
  # via hdx-python-utilities (pyproject.toml)
154
- pytest==8.4.1
154
+ pytest==8.4.2
155
155
  # via
156
156
  # hdx-python-utilities (pyproject.toml)
157
157
  # pytest-cov
158
- pytest-cov==6.2.1
158
+ pytest-cov==7.0.0
159
159
  # via hdx-python-utilities (pyproject.toml)
160
160
  pytest-loguru==0.4.0
161
161
  # via hdx-python-utilities (pyproject.toml)
@@ -218,7 +218,7 @@ tabulate==0.9.0
218
218
  # via frictionless
219
219
  text-unidecode==1.3
220
220
  # via python-slugify
221
- typer==0.16.1
221
+ typer==0.19.1
222
222
  # via frictionless
223
223
  typing-extensions==4.15.0
224
224
  # via
@@ -246,7 +246,7 @@ xlrd==2.0.2
246
246
  # via hdx-python-utilities (pyproject.toml)
247
247
  xlsx2csv==0.8.4
248
248
  # via hdx-python-utilities (pyproject.toml)
249
- xlsxwriter==3.2.5
249
+ xlsxwriter==3.2.9
250
250
  # via tableschema-to-template
251
251
  xlwt==1.3.0
252
252
  # via hdx-python-utilities (pyproject.toml)
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '3.9.1'
32
- __version_tuple__ = version_tuple = (3, 9, 1)
31
+ __version__ = version = '3.9.2'
32
+ __version_tuple__ = version_tuple = (3, 9, 2)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -261,6 +261,7 @@ class Download(BaseDownload):
261
261
  timeout: Optional[float] = None,
262
262
  headers: Optional[Dict] = None,
263
263
  encoding: Optional[str] = None,
264
+ json_string: bool = False,
264
265
  ) -> requests.Response:
265
266
  """Setup download from provided url returning the response.
266
267
 
@@ -272,6 +273,7 @@ class Download(BaseDownload):
272
273
  timeout (Optional[float]): Timeout for connecting to URL. Defaults to None (no timeout).
273
274
  headers (Optional[Dict]): Headers to pass. Defaults to None.
274
275
  encoding (Optional[str]): Encoding to use for text response. Defaults to None (best guess).
276
+ json_string (bool): Whether to post parameters as JSON string. Defaults to False.
275
277
 
276
278
  Returns:
277
279
  requests.Response: requests.Response object
@@ -288,10 +290,11 @@ class Download(BaseDownload):
288
290
  url = urlunsplit(spliturl)
289
291
  if post:
290
292
  full_url, parameters = self.get_url_params_for_post(url, parameters)
291
- json_parameters = json.dumps(parameters)
293
+ if json_string:
294
+ parameters = json.dumps(parameters)
292
295
  self.response = self.session.post(
293
296
  full_url,
294
- data=json_parameters,
297
+ data=parameters,
295
298
  stream=stream,
296
299
  timeout=timeout,
297
300
  headers=headers,
@@ -423,6 +426,7 @@ class Download(BaseDownload):
423
426
  timeout (float): Timeout for connecting to URL. Defaults to None (no timeout).
424
427
  headers (Dict): Headers to pass. Defaults to None.
425
428
  encoding (str): Encoding to use for text response. Defaults to None (best guess).
429
+ json_string (bool): Whether to post parameters as JSON string. Defaults to False.
426
430
 
427
431
  Returns:
428
432
  str: Path of downloaded file
@@ -443,6 +447,7 @@ class Download(BaseDownload):
443
447
  timeout=kwargs.get("timeout"),
444
448
  headers=kwargs.get("headers"),
445
449
  encoding=kwargs.get("encoding"),
450
+ json_string=kwargs.get("json_string", False),
446
451
  )
447
452
  return self.stream_path(
448
453
  path, f"Download of {url} failed in retrieval of stream!"
@@ -459,6 +464,7 @@ class Download(BaseDownload):
459
464
  timeout (float): Timeout for connecting to URL. Defaults to None (no timeout).
460
465
  headers (Dict): Headers to pass. Defaults to None.
461
466
  encoding (str): Encoding to use for text response. Defaults to None (best guess).
467
+ json_string (bool): Whether to post parameters as JSON string. Defaults to False.
462
468
 
463
469
  Returns:
464
470
  requests.Response: Response
@@ -471,6 +477,7 @@ class Download(BaseDownload):
471
477
  timeout=kwargs.get("timeout"),
472
478
  headers=kwargs.get("headers"),
473
479
  encoding=kwargs.get("encoding"),
480
+ json_string=kwargs.get("json_string", False),
474
481
  )
475
482
 
476
483
  def get_header(self, header: str) -> Any:
@@ -386,6 +386,18 @@ class TestDownloader:
386
386
  parameters=OrderedDict([("a", "3"), ("c", "2")]),
387
387
  )
388
388
  json = downloader.get_json()
389
+ assert list(json["form"].items()) == list(
390
+ OrderedDict(
391
+ [("a", "3"), ("c", "2"), ("id", "3"), ("lala", "b")]
392
+ ).items()
393
+ )
394
+ downloader.setup(
395
+ f"{postfixtureurl}?id=3&lala=b",
396
+ post=True,
397
+ parameters=OrderedDict([("a", "3"), ("c", "2")]),
398
+ json_string=True,
399
+ )
400
+ json = downloader.get_json()
389
401
  assert list(json["json"].items()) == list(
390
402
  OrderedDict(
391
403
  [("a", "3"), ("c", "2"), ("id", "3"), ("lala", "b")]
@@ -526,6 +538,17 @@ class TestDownloader:
526
538
  post=True,
527
539
  parameters=OrderedDict([("a", "3"), ("c", "2")]),
528
540
  )
541
+ assert list(json["form"].items()) == list(
542
+ OrderedDict(
543
+ [("a", "3"), ("c", "2"), ("id", "3"), ("lala", "b")]
544
+ ).items()
545
+ )
546
+ json = downloader.download_json(
547
+ f"{postfixtureurl}?id=3&lala=b",
548
+ post=True,
549
+ parameters=OrderedDict([("a", "3"), ("c", "2")]),
550
+ json_string=True,
551
+ )
529
552
  assert list(json["json"].items()) == list(
530
553
  OrderedDict(
531
554
  [("a", "3"), ("c", "2"), ("id", "3"), ("lala", "b")]