hdx-python-utilities 3.8.3__tar.gz → 3.8.4__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 (126) hide show
  1. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/.config/pre-commit-config.yaml +2 -2
  2. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/PKG-INFO +1 -1
  3. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/pyproject.toml +1 -1
  4. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/requirements.txt +8 -7
  5. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/_version.py +2 -2
  6. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/error_handler.py +5 -5
  7. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/text.py +1 -1
  8. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/.config/coveragerc +0 -0
  9. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/.config/pytest.ini +0 -0
  10. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/.config/ruff.toml +0 -0
  11. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/.github/workflows/publish.yaml +0 -0
  12. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/.github/workflows/run-python-tests.yaml +0 -0
  13. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/.gitignore +0 -0
  14. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/CONTRIBUTING.md +0 -0
  15. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/LICENSE +0 -0
  16. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/README.md +0 -0
  17. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/documentation/.readthedocs.yaml +0 -0
  18. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/documentation/main.md +0 -0
  19. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/documentation/pydoc-markdown.yaml +0 -0
  20. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/__init__.py +0 -0
  21. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/base_downloader.py +0 -0
  22. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/compare.py +0 -0
  23. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/dateparse.py +0 -0
  24. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/dictandlist.py +0 -0
  25. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/downloader.py +0 -0
  26. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/easy_logging.py +0 -0
  27. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/email.py +0 -0
  28. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/encoding.py +0 -0
  29. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/errors_onexit.py +0 -0
  30. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/frictionless_wrapper.py +0 -0
  31. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/html.py +0 -0
  32. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/loader.py +0 -0
  33. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/matching.py +0 -0
  34. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/path.py +0 -0
  35. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/retriever.py +0 -0
  36. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/saver.py +0 -0
  37. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/session.py +0 -0
  38. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/state.py +0 -0
  39. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/typehint.py +0 -0
  40. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/useragent.py +0 -0
  41. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/src/hdx/utilities/uuid.py +0 -0
  42. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/compare/test_csv_processing.csv +0 -0
  43. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/compare/test_csv_processing2.csv +0 -0
  44. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/empty.yaml +0 -0
  45. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/hdx_config.json +0 -0
  46. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/hdx_config.yaml +0 -0
  47. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/hdx_email_configuration.json +0 -0
  48. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
  49. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/json_csv.yaml +0 -0
  50. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/logging_config.json +0 -0
  51. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/logging_config.yaml +0 -0
  52. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/project_configuration.json +0 -0
  53. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/project_configuration.yaml +0 -0
  54. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/smtp_config.json +0 -0
  55. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/smtp_config.yaml +0 -0
  56. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/user_agent_config.yaml +0 -0
  57. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/user_agent_config2.yaml +0 -0
  58. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/user_agent_config3.yaml +0 -0
  59. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
  60. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/basicauth.txt +0 -0
  61. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/bearertoken.txt +0 -0
  62. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/extra_params.json +0 -0
  63. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/extra_params.yaml +0 -0
  64. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/extra_params_tree.yaml +0 -0
  65. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_csv_processing.csv +0 -0
  66. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_csv_processing_blanks.csv +0 -0
  67. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_data.csv +0 -0
  68. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_data.xlsx +0 -0
  69. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_data1.csv/empty.txt +0 -0
  70. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_data2.csv +0 -0
  71. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_json_processing.json +0 -0
  72. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_xls_processing.xls +0 -0
  73. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/downloader/test_xlsx_processing.xlsx +0 -0
  74. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/html/response.html +0 -0
  75. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/loader/empty.json +0 -0
  76. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/loader/empty.yaml +0 -0
  77. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/fallbacks/test.csv +0 -0
  78. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/fallbacks/test.json +0 -0
  79. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/fallbacks/test.txt +0 -0
  80. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/fallbacks/test.yaml +0 -0
  81. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/retriever-test.csv +0 -0
  82. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/test.csv +0 -0
  83. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/test.json +0 -0
  84. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/test.txt +0 -0
  85. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/test.yaml +0 -0
  86. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/retriever/test_hxl.csv +0 -0
  87. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out.csv +0 -0
  88. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out.json +0 -0
  89. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out2.csv +0 -0
  90. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out2.json +0 -0
  91. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out5.json +0 -0
  92. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out6.json +0 -0
  93. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out7.json +0 -0
  94. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out8.csv +0 -0
  95. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/out8.json +0 -0
  96. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-false_sortkeys-false.json +0 -0
  97. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-false_sortkeys-false.yaml +0 -0
  98. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-false_sortkeys-true.json +0 -0
  99. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-false_sortkeys-true.yaml +0 -0
  100. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-true_sortkeys-false.json +0 -0
  101. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-true_sortkeys-false.yaml +0 -0
  102. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-true_sortkeys-true.json +0 -0
  103. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/saver/pretty-true_sortkeys-true.yaml +0 -0
  104. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/state/analysis_dates.txt +0 -0
  105. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/state/last_build_date.txt +0 -0
  106. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/fixtures/test_data.csv +0 -0
  107. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/conftest.py +0 -0
  108. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_compare.py +0 -0
  109. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_dateparse.py +0 -0
  110. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_dictandlist.py +0 -0
  111. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_downloader.py +0 -0
  112. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_easy_logging.py +0 -0
  113. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_email.py +0 -0
  114. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_encoding.py +0 -0
  115. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_error_handler.py +0 -0
  116. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_html.py +0 -0
  117. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_loader.py +0 -0
  118. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_matching.py +0 -0
  119. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_path.py +0 -0
  120. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_retriever.py +0 -0
  121. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_saver.py +0 -0
  122. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_state.py +0 -0
  123. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_text.py +0 -0
  124. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_useragent.py +0 -0
  125. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/test_uuid.py +0 -0
  126. {hdx_python_utilities-3.8.3 → hdx_python_utilities-3.8.4}/tests/hdx/utilities/utils.py +0 -0
@@ -10,7 +10,7 @@ repos:
10
10
  exclude: (test_csv_processing_blanks.csv|test.txt)
11
11
  - id: check-ast
12
12
  - repo: https://github.com/astral-sh/ruff-pre-commit
13
- rev: v0.8.6
13
+ rev: v0.9.6
14
14
  hooks:
15
15
  # Run the linter.
16
16
  - id: ruff
@@ -19,7 +19,7 @@ repos:
19
19
  - id: ruff-format
20
20
  args: [--config, .config/ruff.toml]
21
21
  - repo: https://github.com/astral-sh/uv-pre-commit
22
- rev: 0.5.15
22
+ rev: 0.6.1
23
23
  hooks:
24
24
  # Run the pip compile
25
25
  - id: pip-compile
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hdx-python-utilities
3
- Version: 3.8.3
3
+ Version: 3.8.4
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>
@@ -107,7 +107,7 @@ run = """
107
107
  """
108
108
 
109
109
  [tool.hatch.envs.hatch-static-analysis]
110
- dependencies = ["ruff==0.8.6"]
110
+ dependencies = ["ruff==0.9.6"]
111
111
 
112
112
  [tool.hatch.envs.hatch-static-analysis.scripts]
113
113
  format-check = ["ruff format --config .config/ruff.toml --check --diff {args:.}",]
@@ -8,9 +8,9 @@ attrs==25.1.0
8
8
  # jsonlines
9
9
  # jsonschema
10
10
  # referencing
11
- beautifulsoup4==4.12.3
11
+ beautifulsoup4==4.13.3
12
12
  # via hdx-python-utilities (pyproject.toml)
13
- certifi==2024.12.14
13
+ certifi==2025.1.31
14
14
  # via requests
15
15
  cfgv==3.4.0
16
16
  # via pre-commit
@@ -20,7 +20,7 @@ charset-normalizer==3.4.1
20
20
  # via requests
21
21
  click==8.1.8
22
22
  # via typer
23
- coverage==7.6.10
23
+ coverage==7.6.12
24
24
  # via pytest-cov
25
25
  distlib==0.3.9
26
26
  # via virtualenv
@@ -36,9 +36,9 @@ frictionless==5.18.0
36
36
  # via hdx-python-utilities (pyproject.toml)
37
37
  html5lib==1.1
38
38
  # via hdx-python-utilities (pyproject.toml)
39
- humanize==4.11.0
39
+ humanize==4.12.1
40
40
  # via frictionless
41
- identify==2.6.6
41
+ identify==2.6.7
42
42
  # via pre-commit
43
43
  idna==3.10
44
44
  # via
@@ -159,6 +159,7 @@ typer==0.15.1
159
159
  # via frictionless
160
160
  typing-extensions==4.12.2
161
161
  # via
162
+ # beautifulsoup4
162
163
  # frictionless
163
164
  # pydantic
164
165
  # pydantic-core
@@ -170,7 +171,7 @@ urllib3==2.3.0
170
171
  # via requests
171
172
  validators==0.34.0
172
173
  # via frictionless
173
- virtualenv==20.29.1
174
+ virtualenv==20.29.2
174
175
  # via pre-commit
175
176
  webencodings==0.5.1
176
177
  # via html5lib
@@ -178,7 +179,7 @@ xlrd==2.0.1
178
179
  # via hdx-python-utilities (pyproject.toml)
179
180
  xlsx2csv==0.8.4
180
181
  # via hdx-python-utilities (pyproject.toml)
181
- xlsxwriter==3.2.1
182
+ xlsxwriter==3.2.2
182
183
  # via tableschema-to-template
183
184
  xlwt==1.3.0
184
185
  # via hdx-python-utilities (pyproject.toml)
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '3.8.3'
16
- __version_tuple__ = version_tuple = (3, 8, 3)
15
+ __version__ = version = '3.8.4'
16
+ __version_tuple__ = version_tuple = (3, 8, 4)
@@ -151,20 +151,20 @@ class ErrorHandler:
151
151
 
152
152
  def log(self) -> None:
153
153
  """
154
- Log errors and warnings by category and sorted
154
+ Log warnings and errors by category and sorted
155
155
 
156
156
  Returns:
157
157
  None
158
158
  """
159
159
 
160
- for _, errors in self.shared_errors["error"].items():
161
- errors = sorted(errors)
162
- for error in errors:
163
- logger.error(error)
164
160
  for _, warnings in self.shared_errors["warning"].items():
165
161
  warnings = sorted(warnings)
166
162
  for warning in warnings:
167
163
  logger.warning(warning)
164
+ for _, errors in self.shared_errors["error"].items():
165
+ errors = sorted(errors)
166
+ for error in errors:
167
+ logger.error(error)
168
168
 
169
169
  def exit_on_error(self) -> None:
170
170
  """Exit with a 1 code if there are errors and should_exit_on_error
@@ -122,7 +122,7 @@ def remove_string(
122
122
  newstring = remove_end_characters(
123
123
  newstring, characters_to_remove=end_characters_to_remove
124
124
  )
125
- return f"{newstring}{string[index + len(toremove):]}"
125
+ return f"{newstring}{string[index + len(toremove) :]}"
126
126
 
127
127
 
128
128
  def get_words_in_sentence(sentence: str) -> List[str]: