hdx-python-utilities 4.0.1__tar.gz → 4.0.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 (138) hide show
  1. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/PKG-INFO +1 -1
  2. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/_version.py +2 -2
  3. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/downloader.py +2 -2
  4. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/email.py +3 -2
  5. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/html.py +2 -1
  6. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/session.py +2 -1
  7. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/useragent.py +10 -9
  8. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/.coveragerc +0 -0
  9. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/.github/workflows/publish-test.yaml +0 -0
  10. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/.github/workflows/publish.yaml +0 -0
  11. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/.github/workflows/run-python-tests.yaml +0 -0
  12. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/.gitignore +0 -0
  13. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/.pre-commit-config.yaml +0 -0
  14. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/CONTRIBUTING.md +0 -0
  15. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/LICENSE +0 -0
  16. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/README.md +0 -0
  17. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/documentation/.readthedocs.yaml +0 -0
  18. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/documentation/index.md +0 -0
  19. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/documentation/mkdocs.yaml +0 -0
  20. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/hatch.toml +0 -0
  21. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/pyproject.toml +0 -0
  22. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/pytest.ini +0 -0
  23. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/requirements.txt +0 -0
  24. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/ruff.toml +0 -0
  25. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/__init__.py +0 -0
  26. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/base_downloader.py +0 -0
  27. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/compare.py +0 -0
  28. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/dateparse.py +0 -0
  29. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/dictandlist.py +0 -0
  30. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/easy_logging.py +0 -0
  31. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/encoding.py +0 -0
  32. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/error_handler.py +0 -0
  33. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/errors_onexit.py +0 -0
  34. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/file_hashing.py +0 -0
  35. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/frictionless_wrapper.py +0 -0
  36. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/loader.py +0 -0
  37. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/matching.py +0 -0
  38. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/path.py +0 -0
  39. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/retriever.py +0 -0
  40. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/saver.py +0 -0
  41. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/state.py +0 -0
  42. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/text.py +0 -0
  43. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/uuid.py +0 -0
  44. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/src/hdx/utilities/zip_crc.py +0 -0
  45. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/compare/test_csv_processing.csv +0 -0
  46. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/compare/test_csv_processing2.csv +0 -0
  47. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/empty.yaml +0 -0
  48. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/hdx_config.json +0 -0
  49. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/hdx_config.yaml +0 -0
  50. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/hdx_email_configuration.json +0 -0
  51. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
  52. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/json_csv.yaml +0 -0
  53. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/logging_config.json +0 -0
  54. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/logging_config.yaml +0 -0
  55. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/project_configuration.json +0 -0
  56. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/project_configuration.yaml +0 -0
  57. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/smtp_config.json +0 -0
  58. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/smtp_config.yaml +0 -0
  59. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/user_agent_config.yaml +0 -0
  60. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/user_agent_config2.yaml +0 -0
  61. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/user_agent_config3.yaml +0 -0
  62. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
  63. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/basicauth.txt +0 -0
  64. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/bearertoken.txt +0 -0
  65. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/extra_params.json +0 -0
  66. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/extra_params.yaml +0 -0
  67. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/extra_params_tree.yaml +0 -0
  68. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_csv_processing.csv +0 -0
  69. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_csv_processing_blanks.csv +0 -0
  70. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_data.csv +0 -0
  71. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_data.xlsx +0 -0
  72. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_data1.csv/empty.txt +0 -0
  73. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_data2.csv +0 -0
  74. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_json_processing.json +0 -0
  75. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_xls_processing.xls +0 -0
  76. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/downloader/test_xlsx_processing.xlsx +0 -0
  77. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/file_hashing/bad_header.zip +0 -0
  78. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/file_hashing/bad_index.xlsx +0 -0
  79. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/file_hashing/empty.zip +0 -0
  80. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/file_hashing/test.xlsx +0 -0
  81. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/file_hashing/test_shapefile.zip +0 -0
  82. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/file_hashing/valid_sig_invalid_body.zip +0 -0
  83. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/html/response.html +0 -0
  84. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/loader/empty.json +0 -0
  85. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/loader/empty.yaml +0 -0
  86. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/loader/empty_list.json +0 -0
  87. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/fallbacks/test.csv +0 -0
  88. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/fallbacks/test.json +0 -0
  89. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/fallbacks/test.txt +0 -0
  90. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/fallbacks/test.yaml +0 -0
  91. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/retriever-test.csv +0 -0
  92. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/test.csv +0 -0
  93. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/test.json +0 -0
  94. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/test.txt +0 -0
  95. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/test.yaml +0 -0
  96. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/retriever/test_hxl.csv +0 -0
  97. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out.csv +0 -0
  98. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out.json +0 -0
  99. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out2.csv +0 -0
  100. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out2.json +0 -0
  101. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out5.json +0 -0
  102. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out6.json +0 -0
  103. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out7.json +0 -0
  104. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out8.csv +0 -0
  105. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/out8.json +0 -0
  106. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-false_sortkeys-false.json +0 -0
  107. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-false_sortkeys-false.yaml +0 -0
  108. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-false_sortkeys-true.json +0 -0
  109. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-false_sortkeys-true.yaml +0 -0
  110. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-true_sortkeys-false.json +0 -0
  111. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-true_sortkeys-false.yaml +0 -0
  112. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-true_sortkeys-true.json +0 -0
  113. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/saver/pretty-true_sortkeys-true.yaml +0 -0
  114. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/state/analysis_dates.txt +0 -0
  115. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/state/last_build_date.txt +0 -0
  116. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/fixtures/test_data.csv +0 -0
  117. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/conftest.py +0 -0
  118. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_compare.py +0 -0
  119. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_dateparse.py +0 -0
  120. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_dictandlist.py +0 -0
  121. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_downloader.py +0 -0
  122. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_easy_logging.py +0 -0
  123. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_email.py +0 -0
  124. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_encoding.py +0 -0
  125. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_error_handler.py +0 -0
  126. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_file_hashing.py +0 -0
  127. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_html.py +0 -0
  128. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_loader.py +0 -0
  129. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_matching.py +0 -0
  130. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_path.py +0 -0
  131. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_retriever.py +0 -0
  132. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_saver.py +0 -0
  133. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_state.py +0 -0
  134. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_text.py +0 -0
  135. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_useragent.py +0 -0
  136. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_uuid.py +0 -0
  137. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.2}/tests/hdx/utilities/test_zip_crc.py +0 -0
  138. {hdx_python_utilities-4.0.1 → hdx_python_utilities-4.0.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: 4.0.1
3
+ Version: 4.0.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>
@@ -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 = '4.0.1'
32
- __version_tuple__ = version_tuple = (4, 0, 1)
31
+ __version__ = version = '4.0.2'
32
+ __version_tuple__ = version_tuple = (4, 0, 2)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -65,7 +65,7 @@ class Download(BaseDownload):
65
65
  def __init__(
66
66
  self,
67
67
  user_agent: str | None = None,
68
- user_agent_config_yaml: str | None = None,
68
+ user_agent_config_yaml: Path | str | None = None,
69
69
  user_agent_lookup: str | None = None,
70
70
  use_env: bool = True,
71
71
  fail_on_missing_file: bool = True,
@@ -1279,7 +1279,7 @@ class Download(BaseDownload):
1279
1279
  cls,
1280
1280
  custom_configs: dict[str, dict],
1281
1281
  user_agent: str | None = None,
1282
- user_agent_config_yaml: str | None = None,
1282
+ user_agent_config_yaml: Path | str | None = None,
1283
1283
  user_agent_lookup: str | None = None,
1284
1284
  use_env: bool = True,
1285
1285
  fail_on_missing_file: bool = True,
@@ -5,7 +5,8 @@ import smtplib
5
5
  from collections.abc import Sequence
6
6
  from email.mime.multipart import MIMEMultipart
7
7
  from email.mime.text import MIMEText
8
- from os.path import expanduser, join
8
+ from os.path import expanduser
9
+ from pathlib import Path
9
10
  from typing import Any
10
11
 
11
12
  from hdx.utilities.loader import load_json, load_yaml
@@ -45,7 +46,7 @@ class Email:
45
46
  email_config_yaml (str): Path to YAML HDX configuration. Defaults to ~/hdx_email_configuration.yaml.
46
47
  """
47
48
 
48
- default_email_config_yaml = join(expanduser("~"), "hdx_email_configuration.yaml")
49
+ default_email_config_yaml = Path(expanduser("~")) / "hdx_email_configuration.yaml"
49
50
 
50
51
  def __init__(self, **kwargs: Any) -> None:
51
52
  email_config_found = False
@@ -1,6 +1,7 @@
1
1
  """HTML parsing utilities."""
2
2
 
3
3
  import logging
4
+ from pathlib import Path
4
5
  from typing import Any
5
6
 
6
7
  try:
@@ -20,7 +21,7 @@ if BeautifulSoup is not None:
20
21
  url: str,
21
22
  downloader: Download = None,
22
23
  user_agent: str | None = None,
23
- user_agent_config_yaml: str | None = None,
24
+ user_agent_config_yaml: Path | str | None = None,
24
25
  user_agent_lookup: str | None = None,
25
26
  **kwargs: Any,
26
27
  ) -> BeautifulSoup:
@@ -2,6 +2,7 @@
2
2
 
3
3
  import logging
4
4
  import os
5
+ from pathlib import Path
5
6
  from typing import Any
6
7
 
7
8
  import requests
@@ -22,7 +23,7 @@ class SessionError(Exception):
22
23
 
23
24
  def get_session(
24
25
  user_agent: str | None = None,
25
- user_agent_config_yaml: str | None = None,
26
+ user_agent_config_yaml: Path | str | None = None,
26
27
  user_agent_lookup: str | None = None,
27
28
  use_env: bool = True,
28
29
  fail_on_missing_file: bool = True,
@@ -2,7 +2,8 @@
2
2
 
3
3
  import logging
4
4
  import os
5
- from os.path import expanduser, isfile, join
5
+ from os.path import expanduser
6
+ from pathlib import Path
6
7
  from typing import Any
7
8
 
8
9
  from hdx.utilities import __version__
@@ -16,7 +17,7 @@ class UserAgentError(Exception):
16
17
 
17
18
 
18
19
  class UserAgent:
19
- default_user_agent_config_yaml = join(expanduser("~"), ".useragent.yaml")
20
+ default_user_agent_config_yaml = Path(expanduser("~")) / ".useragent.yaml"
20
21
  user_agent = None
21
22
 
22
23
  @staticmethod
@@ -68,7 +69,7 @@ class UserAgent:
68
69
  def _load(
69
70
  cls,
70
71
  prefix: str,
71
- user_agent_config_yaml: str,
72
+ user_agent_config_yaml: Path | str,
72
73
  user_agent_lookup: str | None = None,
73
74
  ) -> str:
74
75
  """Load user agent YAML file.
@@ -83,9 +84,9 @@ class UserAgent:
83
84
  """
84
85
  if not user_agent_config_yaml:
85
86
  user_agent_config_yaml = cls.default_user_agent_config_yaml
86
- if not isfile(user_agent_config_yaml):
87
- user_agent_config_yaml = user_agent_config_yaml.replace(".yaml", ".yml")
88
- if isfile(user_agent_config_yaml):
87
+ if not user_agent_config_yaml.is_file():
88
+ user_agent_config_yaml = user_agent_config_yaml.with_suffix(".yml")
89
+ if user_agent_config_yaml.is_file():
89
90
  logger.info(
90
91
  f"No user agent or user agent config file given. Using default user agent config file: {user_agent_config_yaml}."
91
92
  )
@@ -108,7 +109,7 @@ class UserAgent:
108
109
  def _create(
109
110
  cls,
110
111
  user_agent: str | None = None,
111
- user_agent_config_yaml: str | None = None,
112
+ user_agent_config_yaml: Path | str | None = None,
112
113
  user_agent_lookup: str | None = None,
113
114
  **kwargs: Any,
114
115
  ) -> str:
@@ -146,7 +147,7 @@ class UserAgent:
146
147
  def set_global(
147
148
  cls,
148
149
  user_agent: str | None = None,
149
- user_agent_config_yaml: str | None = None,
150
+ user_agent_config_yaml: Path | str | None = None,
150
151
  user_agent_lookup: str | None = None,
151
152
  **kwargs: Any,
152
153
  ) -> None:
@@ -168,7 +169,7 @@ class UserAgent:
168
169
  def get(
169
170
  cls,
170
171
  user_agent: str | None = None,
171
- user_agent_config_yaml: str | None = None,
172
+ user_agent_config_yaml: Path | str | None = None,
172
173
  user_agent_lookup: str | None = None,
173
174
  **kwargs: Any,
174
175
  ) -> str: