hdx-python-utilities 3.6.8__tar.gz → 3.7.0__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 (123) hide show
  1. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/.config/pre-commit-config.yaml +4 -4
  2. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/.config/ruff.toml +0 -1
  3. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/PKG-INFO +3 -3
  4. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/pyproject.toml +2 -2
  5. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/requirements.txt +59 -30
  6. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/_version.py +2 -2
  7. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/dateparse.py +9 -5
  8. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/session.py +1 -1
  9. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_downloader.py +2 -2
  10. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/.config/coveragerc +0 -0
  11. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/.config/pytest.ini +0 -0
  12. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/.github/workflows/publish.yaml +0 -0
  13. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/.github/workflows/run-python-tests.yaml +0 -0
  14. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/.gitignore +0 -0
  15. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/CONTRIBUTING.md +0 -0
  16. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/LICENSE +0 -0
  17. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/README.md +0 -0
  18. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/documentation/.readthedocs.yaml +0 -0
  19. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/documentation/main.md +0 -0
  20. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/documentation/pydoc-markdown.yaml +0 -0
  21. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/__init__.py +0 -0
  22. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/base_downloader.py +0 -0
  23. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/compare.py +0 -0
  24. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/dictandlist.py +0 -0
  25. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/downloader.py +0 -0
  26. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/easy_logging.py +0 -0
  27. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/email.py +0 -0
  28. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/encoding.py +0 -0
  29. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/errors_onexit.py +0 -0
  30. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/frictionless_wrapper.py +0 -0
  31. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/html.py +0 -0
  32. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/loader.py +0 -0
  33. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/path.py +0 -0
  34. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/retriever.py +0 -0
  35. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/saver.py +0 -0
  36. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/state.py +0 -0
  37. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/text.py +0 -0
  38. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/typehint.py +0 -0
  39. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/useragent.py +0 -0
  40. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/src/hdx/utilities/uuid.py +0 -0
  41. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/compare/test_csv_processing.csv +0 -0
  42. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/compare/test_csv_processing2.csv +0 -0
  43. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/empty.yaml +0 -0
  44. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/hdx_config.json +0 -0
  45. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/hdx_config.yaml +0 -0
  46. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/hdx_email_configuration.json +0 -0
  47. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
  48. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/json_csv.yaml +0 -0
  49. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/logging_config.json +0 -0
  50. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/logging_config.yaml +0 -0
  51. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/project_configuration.json +0 -0
  52. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/project_configuration.yaml +0 -0
  53. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/smtp_config.json +0 -0
  54. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/smtp_config.yaml +0 -0
  55. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/user_agent_config.yaml +0 -0
  56. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/user_agent_config2.yaml +0 -0
  57. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/user_agent_config3.yaml +0 -0
  58. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
  59. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/basicauth.txt +0 -0
  60. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/bearertoken.txt +0 -0
  61. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/extra_params.json +0 -0
  62. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/extra_params.yaml +0 -0
  63. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/extra_params_tree.yaml +0 -0
  64. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_csv_processing.csv +0 -0
  65. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_csv_processing_blanks.csv +0 -0
  66. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_data.csv +0 -0
  67. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_data.xlsx +0 -0
  68. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_data1.csv/empty.txt +0 -0
  69. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_data2.csv +0 -0
  70. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_json_processing.json +0 -0
  71. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_xls_processing.xls +0 -0
  72. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/downloader/test_xlsx_processing.xlsx +0 -0
  73. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/html/response.html +0 -0
  74. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/loader/empty.json +0 -0
  75. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/loader/empty.yaml +0 -0
  76. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/fallbacks/test.csv +0 -0
  77. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/fallbacks/test.json +0 -0
  78. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/fallbacks/test.txt +0 -0
  79. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/fallbacks/test.yaml +0 -0
  80. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/retriever-test.csv +0 -0
  81. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/test.csv +0 -0
  82. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/test.json +0 -0
  83. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/test.txt +0 -0
  84. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/test.yaml +0 -0
  85. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/retriever/test_hxl.csv +0 -0
  86. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out.csv +0 -0
  87. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out.json +0 -0
  88. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out2.csv +0 -0
  89. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out2.json +0 -0
  90. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out5.json +0 -0
  91. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out6.json +0 -0
  92. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out7.json +0 -0
  93. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out8.csv +0 -0
  94. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/out8.json +0 -0
  95. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-false_sortkeys-false.json +0 -0
  96. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-false_sortkeys-false.yaml +0 -0
  97. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-false_sortkeys-true.json +0 -0
  98. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-false_sortkeys-true.yaml +0 -0
  99. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-true_sortkeys-false.json +0 -0
  100. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-true_sortkeys-false.yaml +0 -0
  101. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-true_sortkeys-true.json +0 -0
  102. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/saver/pretty-true_sortkeys-true.yaml +0 -0
  103. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/state/analysis_dates.txt +0 -0
  104. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/state/last_build_date.txt +0 -0
  105. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/fixtures/test_data.csv +0 -0
  106. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/conftest.py +0 -0
  107. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_compare.py +0 -0
  108. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_dateparse.py +0 -0
  109. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_dictandlist.py +0 -0
  110. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_easy_logging.py +0 -0
  111. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_email.py +0 -0
  112. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_encoding.py +0 -0
  113. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_errors_onexit.py +0 -0
  114. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_html.py +0 -0
  115. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_loader.py +0 -0
  116. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_path.py +0 -0
  117. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_retriever.py +0 -0
  118. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_saver.py +0 -0
  119. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_state.py +0 -0
  120. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_text.py +0 -0
  121. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_useragent.py +0 -0
  122. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/test_uuid.py +0 -0
  123. {hdx_python_utilities-3.6.8 → hdx_python_utilities-3.7.0}/tests/hdx/utilities/utils.py +0 -0
@@ -1,8 +1,8 @@
1
1
  default_language_version:
2
- python: python3.11
2
+ python: python3.12
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v4.5.0
5
+ rev: v4.6.0
6
6
  hooks:
7
7
  - id: trailing-whitespace
8
8
  exclude: test_loader.py
@@ -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.4.2
13
+ rev: v0.4.8
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.1.38
22
+ rev: 0.2.10
23
23
  hooks:
24
24
  # Run the pip compile
25
25
  - id: pip-compile
@@ -12,6 +12,5 @@ ignore = [
12
12
  "E501" # Line too long
13
13
  ]
14
14
 
15
-
16
15
  [lint.isort]
17
16
  known-local-folder = ["hdx"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: hdx-python-utilities
3
- Version: 3.6.8
3
+ Version: 3.7.0
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>
@@ -25,12 +25,12 @@ Classifier: Programming Language :: Python :: 3.11
25
25
  Classifier: Programming Language :: Python :: 3.12
26
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
27
  Requires-Python: >=3.8
28
- Requires-Dist: frictionless>=5.16.1
28
+ Requires-Dist: frictionless>=5.17.0
29
29
  Requires-Dist: ijson>=3.2.3
30
30
  Requires-Dist: jsonlines>=4.0.0
31
31
  Requires-Dist: loguru
32
32
  Requires-Dist: openpyxl>=3.1.2
33
- Requires-Dist: python-dateutil==2.8.2
33
+ Requires-Dist: python-dateutil==2.9.0.post0
34
34
  Requires-Dist: ratelimit
35
35
  Requires-Dist: requests-file
36
36
  Requires-Dist: ruamel-yaml
@@ -36,7 +36,7 @@ requires-python = ">=3.8"
36
36
  # Extras for frictionless[excel,json] added explicitly
37
37
  # for conda-forge compatibility
38
38
  dependencies = [
39
- "frictionless>=5.16.1",
39
+ "frictionless>=5.17.0",
40
40
  # frictionless[excel]
41
41
  "openpyxl>=3.1.2",
42
42
  "tableschema-to-template>=0.0.13",
@@ -47,7 +47,7 @@ dependencies = [
47
47
  "jsonlines>=4.0.0",
48
48
  # /end frictionless extras
49
49
  "loguru",
50
- "python-dateutil==2.8.2",
50
+ "python-dateutil==2.9.0.post0",
51
51
  "ratelimit",
52
52
  "requests-file",
53
53
  "ruamel.yaml",
@@ -1,14 +1,16 @@
1
1
  # This file was autogenerated by uv via the following command:
2
2
  # uv pip compile pyproject.toml --resolver=backtracking --all-extras -o requirements.txt
3
- annotated-types==0.6.0
3
+ annotated-types==0.7.0
4
4
  # via pydantic
5
5
  attrs==23.2.0
6
6
  # via
7
7
  # frictionless
8
8
  # jsonlines
9
9
  # jsonschema
10
+ # referencing
10
11
  beautifulsoup4==4.12.3
11
- certifi==2024.2.2
12
+ # via hdx-python-utilities (pyproject.toml)
13
+ certifi==2024.6.2
12
14
  # via requests
13
15
  cfgv==3.4.0
14
16
  # via pre-commit
@@ -18,19 +20,22 @@ charset-normalizer==3.3.2
18
20
  # via requests
19
21
  click==8.1.7
20
22
  # via typer
21
- coverage==7.5.0
23
+ coverage==7.5.3
22
24
  # via pytest-cov
23
25
  distlib==0.3.8
24
26
  # via virtualenv
25
27
  dnspython==2.6.1
26
28
  # via email-validator
27
29
  email-validator==2.1.1
30
+ # via hdx-python-utilities (pyproject.toml)
28
31
  et-xmlfile==1.1.0
29
32
  # via openpyxl
30
- filelock==3.13.4
33
+ filelock==3.14.0
31
34
  # via virtualenv
32
- frictionless==5.16.1
35
+ frictionless==5.17.0
36
+ # via hdx-python-utilities (pyproject.toml)
33
37
  html5lib==1.1
38
+ # via hdx-python-utilities (pyproject.toml)
34
39
  humanize==4.9.0
35
40
  # via frictionless
36
41
  identify==2.5.36
@@ -39,20 +44,26 @@ idna==3.7
39
44
  # via
40
45
  # email-validator
41
46
  # requests
42
- ijson==3.2.3
47
+ ijson==3.3.0
48
+ # via hdx-python-utilities (pyproject.toml)
43
49
  iniconfig==2.0.0
44
50
  # via pytest
45
51
  isodate==0.6.1
46
52
  # via frictionless
47
- jinja2==3.1.3
53
+ jinja2==3.1.4
48
54
  # via frictionless
49
55
  jsonlines==4.0.0
50
- jsonschema==4.17.3
56
+ # via hdx-python-utilities (pyproject.toml)
57
+ jsonschema==4.22.0
51
58
  # via
52
59
  # frictionless
53
60
  # tableschema-to-template
61
+ jsonschema-specifications==2023.12.1
62
+ # via jsonschema
54
63
  loguru==0.7.2
55
- # via pytest-loguru
64
+ # via
65
+ # hdx-python-utilities (pyproject.toml)
66
+ # pytest-loguru
56
67
  markdown-it-py==3.0.0
57
68
  # via rich
58
69
  marko==2.0.3
@@ -61,32 +72,38 @@ markupsafe==2.1.5
61
72
  # via jinja2
62
73
  mdurl==0.1.2
63
74
  # via markdown-it-py
64
- nodeenv==1.8.0
75
+ nodeenv==1.9.1
65
76
  # via pre-commit
66
- openpyxl==3.1.2
67
- packaging==24.0
77
+ openpyxl==3.1.3
78
+ # via hdx-python-utilities (pyproject.toml)
79
+ packaging==24.1
68
80
  # via pytest
69
81
  petl==1.7.15
70
82
  # via frictionless
71
- platformdirs==4.2.1
83
+ platformdirs==4.2.2
72
84
  # via virtualenv
73
85
  pluggy==1.5.0
74
86
  # via pytest
75
- pre-commit==3.7.0
76
- pydantic==2.7.1
87
+ pre-commit==3.7.1
88
+ # via hdx-python-utilities (pyproject.toml)
89
+ pydantic==2.7.3
77
90
  # via frictionless
78
- pydantic-core==2.18.2
91
+ pydantic-core==2.18.4
79
92
  # via pydantic
80
- pygments==2.17.2
93
+ pygments==2.18.0
81
94
  # via rich
82
- pyrsistent==0.20.0
83
- # via jsonschema
84
- pytest==8.1.1
85
- # via pytest-cov
95
+ pytest==8.2.2
96
+ # via
97
+ # hdx-python-utilities (pyproject.toml)
98
+ # pytest-cov
86
99
  pytest-cov==5.0.0
100
+ # via hdx-python-utilities (pyproject.toml)
87
101
  pytest-loguru==0.4.0
88
- python-dateutil==2.8.2
89
- # via frictionless
102
+ # via hdx-python-utilities (pyproject.toml)
103
+ python-dateutil==2.9.0.post0
104
+ # via
105
+ # hdx-python-utilities (pyproject.toml)
106
+ # frictionless
90
107
  python-slugify==8.0.4
91
108
  # via frictionless
92
109
  pyyaml==6.0.1
@@ -95,20 +112,29 @@ pyyaml==6.0.1
95
112
  # pre-commit
96
113
  # tableschema-to-template
97
114
  ratelimit==2.2.1
98
- requests==2.31.0
115
+ # via hdx-python-utilities (pyproject.toml)
116
+ referencing==0.35.1
117
+ # via
118
+ # jsonschema
119
+ # jsonschema-specifications
120
+ requests==2.32.3
99
121
  # via
100
122
  # frictionless
101
123
  # requests-file
102
- requests-file==2.0.0
124
+ requests-file==2.1.0
125
+ # via hdx-python-utilities (pyproject.toml)
103
126
  rfc3986==2.0.0
104
127
  # via frictionless
105
128
  rich==13.7.1
106
129
  # via typer
130
+ rpds-py==0.18.1
131
+ # via
132
+ # jsonschema
133
+ # referencing
107
134
  ruamel-yaml==0.18.6
135
+ # via hdx-python-utilities (pyproject.toml)
108
136
  ruamel-yaml-clib==0.2.8
109
137
  # via ruamel-yaml
110
- setuptools==69.5.1
111
- # via nodeenv
112
138
  shellingham==1.5.4
113
139
  # via typer
114
140
  simpleeval==0.9.13
@@ -123,13 +149,14 @@ soupsieve==2.5
123
149
  stringcase==1.2.0
124
150
  # via frictionless
125
151
  tableschema-to-template==0.0.13
152
+ # via hdx-python-utilities (pyproject.toml)
126
153
  tabulate==0.9.0
127
154
  # via frictionless
128
155
  text-unidecode==1.3
129
156
  # via python-slugify
130
157
  typer==0.12.3
131
158
  # via frictionless
132
- typing-extensions==4.11.0
159
+ typing-extensions==4.12.2
133
160
  # via
134
161
  # frictionless
135
162
  # pydantic
@@ -137,13 +164,15 @@ typing-extensions==4.11.0
137
164
  # typer
138
165
  urllib3==2.2.1
139
166
  # via requests
140
- validators==0.28.1
167
+ validators==0.28.3
141
168
  # via frictionless
142
- virtualenv==20.26.0
169
+ virtualenv==20.26.2
143
170
  # via pre-commit
144
171
  webencodings==0.5.1
145
172
  # via html5lib
146
173
  xlrd==2.0.1
174
+ # via hdx-python-utilities (pyproject.toml)
147
175
  xlsxwriter==3.2.0
148
176
  # via tableschema-to-template
149
177
  xlwt==1.3.0
178
+ # 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.6.8'
16
- __version_tuple__ = version_tuple = (3, 6, 8)
15
+ __version__ = version = '3.7.0'
16
+ __version_tuple__ = version_tuple = (3, 7, 0)
@@ -177,8 +177,10 @@ class _ymd(list): # pragma: no cover
177
177
  self.ystridx = len(self) - 1
178
178
 
179
179
  def _resolve_from_stridxs(self, strids):
180
- """Try to resolve the identities of year/month/day elements using
181
- ystridx, mstridx, and dstridx, if enough of these are specified."""
180
+ """
181
+ Try to resolve the identities of year/month/day elements using
182
+ ystridx, mstridx, and dstridx, if enough of these are specified.
183
+ """
182
184
  if len(self) == 3 and len(strids) == 2:
183
185
  # we can back out the remaining stridx value
184
186
  missing = [x for x in range(3) if x not in strids.values()]
@@ -301,8 +303,9 @@ class DateParser(dateutil.parser.parser): # pragma: no cover
301
303
  fuzzy=False,
302
304
  fuzzy_with_tokens=False,
303
305
  ):
304
- """Private method which performs the heavy lifting of parsing, called
305
- from ``parse()``, which passes on its ``kwargs`` to this function.
306
+ """
307
+ Private method which performs the heavy lifting of parsing, called from
308
+ ``parse()``, which passes on its ``kwargs`` to this function.
306
309
 
307
310
  :param timestr:
308
311
  The string to parse.
@@ -553,7 +556,8 @@ DEFAULTPARSER = DateParser(parserinfo(dayfirst=True))
553
556
  def parse(
554
557
  timestr, default=None, ignoretz=False, tzinfos=None, **kwargs
555
558
  ): # pragma: no cover
556
- """Parse the date/time string into a :class:`datetime.datetime` object.
559
+ """
560
+ Parse the date/time string into a :class:`datetime.datetime` object.
557
561
 
558
562
  :param timestr:
559
563
  Any date/time string using the supported formats.
@@ -98,7 +98,7 @@ def get_session(
98
98
  "Loading extra parameters from environment variable"
99
99
  )
100
100
  for extra_param in extra_params.split(","):
101
- key, value = extra_param.split("=")
101
+ key, value = extra_param.split("=", maxsplit=1)
102
102
  extra_params_dict[key] = value
103
103
  extra_params_found = True
104
104
  if not extra_params_found:
@@ -256,13 +256,13 @@ class TestDownloader:
256
256
  assert "param2=value2" in full_url
257
257
  assert "param3=11" in full_url
258
258
  assert "basic_auth" not in full_url
259
- monkeypatch.setenv("EXTRA_PARAMS", "param1=value2+3,param2=value3+7")
259
+ monkeypatch.setenv("EXTRA_PARAMS", "param1=value2+3==,param2=value3+7")
260
260
  with Download(
261
261
  extra_params_yaml=extraparamsyamltree, extra_params_lookup="mykey"
262
262
  ) as downloader:
263
263
  assert downloader.session.auth is None
264
264
  full_url = downloader.get_full_url(test_url)
265
- assert "param1=value2%2B3" in full_url
265
+ assert "param1=value2%2B3%3D%3D" in full_url
266
266
  assert "param2=value3%2B7" in full_url
267
267
  assert "param3=11" not in full_url
268
268
  assert "basic_auth" not in full_url