rudi-node-write 1.3.0__tar.gz → 1.3.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 (46) hide show
  1. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/PKG-INFO +7 -6
  2. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/pyproject.toml +2 -2
  3. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/requirements-dev.txt +16 -14
  4. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/requirements.txt +3 -3
  5. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/io_rudi_catalog_write.py +1 -1
  6. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/io_rudi_manager_write.py +4 -4
  7. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/io_rudi_manager_write_v3.py +12 -12
  8. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/file_utils.py +1 -2
  9. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write.egg-info/PKG-INFO +7 -6
  10. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write.egg-info/requires.txt +6 -5
  11. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/LICENCE.md +0 -0
  12. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/README.md +0 -0
  13. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/setup.cfg +0 -0
  14. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/__init__.py +0 -0
  15. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/conf/meta_defaults.py +0 -0
  16. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/io_connector.py +0 -0
  17. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/io_rudi_jwt_factory.py +0 -0
  18. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/io_rudi_manager_write_v2.py +0 -0
  19. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/io_rudi_storage_write.py +0 -0
  20. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/connectors/rudi_node_auth.py +0 -0
  21. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_node_writer.py +0 -0
  22. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_const.py +0 -0
  23. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_contact.py +0 -0
  24. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_dates.py +0 -0
  25. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_dictionary_entry.py +0 -0
  26. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_geo.py +0 -0
  27. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_licence.py +0 -0
  28. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_media.py +0 -0
  29. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_meta.py +0 -0
  30. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_meta_misc.py +0 -0
  31. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/rudi_org.py +0 -0
  32. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/rudi_types/serializable.py +0 -0
  33. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/dict_utils.py +0 -0
  34. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/err.py +0 -0
  35. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/html_utils.py +0 -0
  36. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/jwt.py +0 -0
  37. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/list_utils.py +0 -0
  38. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/log.py +0 -0
  39. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/str_utils.py +0 -0
  40. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/type_date.py +0 -0
  41. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/typing_utils.py +0 -0
  42. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write/utils/url_utils.py +0 -0
  43. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write.egg-info/SOURCES.txt +0 -0
  44. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write.egg-info/dependency_links.txt +0 -0
  45. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/src/rudi_node_write.egg-info/top_level.txt +0 -0
  46. {rudi_node_write-1.3.0 → rudi_node_write-1.3.2}/tests/test_rudi_node_write.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rudi-node-write
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Summary: Use the internal API of a RUDI Producer node
5
5
  Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
6
  Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
@@ -18,15 +18,15 @@ Description-Content-Type: text/markdown
18
18
  License-File: LICENCE.md
19
19
  Requires-Dist: beautifulsoup4==4.13.4
20
20
  Requires-Dist: chardet==5.2.0
21
- Requires-Dist: deepdiff==8.4.2
22
- Requires-Dist: puremagic==1.28
21
+ Requires-Dist: deepdiff==8.5.0
22
+ Requires-Dist: puremagic==1.29
23
23
  Provides-Extra: dev
24
24
  Requires-Dist: backports.tarfile==1.2.0; extra == "dev"
25
25
  Requires-Dist: black==25.1.0; extra == "dev"
26
26
  Requires-Dist: build==1.2.2.post1; extra == "dev"
27
- Requires-Dist: commitizen==4.6.0; extra == "dev"
27
+ Requires-Dist: commitizen==4.7.2; extra == "dev"
28
28
  Requires-Dist: flake8==7.2.0; extra == "dev"
29
- Requires-Dist: importlib-metadata==8.6.1; extra == "dev"
29
+ Requires-Dist: importlib-metadata==8.7.0; extra == "dev"
30
30
  Requires-Dist: importlib-resources==6.5.2; extra == "dev"
31
31
  Requires-Dist: inflect==7.5.0; extra == "dev"
32
32
  Requires-Dist: ipykernel==6.29.5; extra == "dev"
@@ -41,9 +41,10 @@ Requires-Dist: pkginfo==1.12.1.2; extra == "dev"
41
41
  Requires-Dist: pre-commit==4.2.0; extra == "dev"
42
42
  Requires-Dist: pre-commit-hooks==5.0.0; extra == "dev"
43
43
  Requires-Dist: py-env==0.0.1; extra == "dev"
44
- Requires-Dist: pyright==1.1.399; extra == "dev"
44
+ Requires-Dist: pyright==1.1.400; extra == "dev"
45
45
  Requires-Dist: pytest-check==2.5.3; extra == "dev"
46
46
  Requires-Dist: pytest-cov==6.1.1; extra == "dev"
47
+ Requires-Dist: rudi-node-write==1.3.1; extra == "dev"
47
48
  Requires-Dist: tomli==2.2.1; extra == "dev"
48
49
  Requires-Dist: twine==6.1.0; extra == "dev"
49
50
  Dynamic: license-file
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rudi-node-write"
7
- version = "1.3.0"
7
+ version = "1.3.2"
8
8
  authors = [{ name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" }]
9
9
  maintainers = [
10
10
  { name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" },
@@ -45,7 +45,7 @@ target-version = ['py311']
45
45
  # ----- Tool: commitizen
46
46
  [tool.commitizen]
47
47
  name = "cz_conventional_commits"
48
- version = "1.3.0"
48
+ version = "1.3.2"
49
49
  version_files = ["pyproject.toml:version"]
50
50
 
51
51
  # ----- Tool: pytest
@@ -1,9 +1,10 @@
1
+ # -r requirements.txt
1
2
  backports.tarfile==1.2.0
2
3
  black==25.1.0
3
4
  build==1.2.2.post1
4
- commitizen==4.6.0
5
+ commitizen==4.7.2
5
6
  flake8==7.2.0
6
- importlib-metadata==8.6.1
7
+ importlib-metadata==8.7.0
7
8
  importlib-resources==6.5.2
8
9
  inflect==7.5.0
9
10
  ipykernel==6.29.5
@@ -18,9 +19,10 @@ pkginfo==1.12.1.2
18
19
  pre-commit==4.2.0
19
20
  pre-commit-hooks==5.0.0
20
21
  py-env==0.0.1
21
- pyright==1.1.399
22
+ pyright==1.1.400
22
23
  pytest-check==2.5.3
23
24
  pytest-cov==6.1.1
25
+ rudi-node-write==1.3.1
24
26
  tomli==2.2.1
25
27
  twine==6.1.0
26
28
  # appnope==0.1.4 # Installed as dependency for ipykernel
@@ -28,10 +30,10 @@ twine==6.1.0
28
30
  # asttokens==3.0.0 # Installed as dependency for stack-data
29
31
  # attrs==25.3.0 # Installed as dependency for jsonschema, referencing
30
32
  # autocommand==2.2.2 # Installed as dependency for jaraco.text
31
- # certifi==2025.1.31 # Installed as dependency for requests
33
+ # certifi==2025.4.26 # Installed as dependency for requests
32
34
  # cfgv==3.4.0 # Installed as dependency for pre-commit
33
- # charset-normalizer==3.4.1 # Installed as dependency for commitizen, requests
34
- # click==8.1.8 # Installed as dependency for black
35
+ # charset-normalizer==3.4.2 # Installed as dependency for commitizen, requests
36
+ # click==8.2.0 # Installed as dependency for black
35
37
  # colorama==0.4.6 # Installed as dependency for commitizen
36
38
  # comm==0.2.2 # Installed as dependency for ipykernel
37
39
  # coverage==7.8.0 # Installed as dependency for pytest-cov
@@ -47,7 +49,7 @@ twine==6.1.0
47
49
  # identify==2.6.10 # Installed as dependency for pre-commit
48
50
  # idna==3.10 # Installed as dependency for requests
49
51
  # iniconfig==2.1.0 # Installed as dependency for pytest
50
- # ipython==9.1.0 # Installed as dependency for ipykernel
52
+ # ipython==9.2.0 # Installed as dependency for ipykernel
51
53
  # ipython-pygments-lexers==1.1.1 # Installed as dependency for ipython
52
54
  # jaraco.classes==3.4.0 # Installed as dependency for keyring
53
55
  # jaraco.context==6.0.1 # Installed as dependency for jaraco.text, keyring
@@ -56,7 +58,7 @@ twine==6.1.0
56
58
  # jedi==0.19.2 # Installed as dependency for ipython
57
59
  # jinja2==3.1.6 # Installed as dependency for commitizen
58
60
  # jsonschema==4.23.0 # Installed as dependency for nbformat
59
- # jsonschema-specifications==2024.10.1 # Installed as dependency for jsonschema
61
+ # jsonschema-specifications==2025.4.1 # Installed as dependency for jsonschema
60
62
  # jupyter-client==8.6.3 # Installed as dependency for ipykernel
61
63
  # jupyter-core==5.7.2 # Installed as dependency for ipykernel, jupyter-client, nbformat
62
64
  # keyring==25.6.0 # Installed as dependency for twine
@@ -75,8 +77,8 @@ twine==6.1.0
75
77
  # parso==0.8.4 # Installed as dependency for jedi
76
78
  # pathspec==0.12.1 # Installed as dependency for black
77
79
  # pexpect==4.9.0 # Installed as dependency for ipython
78
- # platformdirs==4.3.7 # Installed as dependency for black, jupyter-core, virtualenv
79
- # pluggy==1.5.0 # Installed as dependency for pytest
80
+ # platformdirs==4.3.8 # Installed as dependency for black, jupyter-core, virtualenv
81
+ # pluggy==1.6.0 # Installed as dependency for pytest
80
82
  # prompt-toolkit==3.0.51 # Installed as dependency for ipython, questionary
81
83
  # psutil==7.0.0 # Installed as dependency for ipykernel
82
84
  # ptyprocess==0.7.0 # Installed as dependency for pexpect
@@ -96,17 +98,17 @@ twine==6.1.0
96
98
  # requests-toolbelt==1.0.0 # Installed as dependency for twine
97
99
  # rfc3986==2.0.0 # Installed as dependency for twine
98
100
  # rich==14.0.0 # Installed as dependency for twine
99
- # rpds-py==0.24.0 # Installed as dependency for jsonschema, referencing
101
+ # rpds-py==0.25.0 # Installed as dependency for jsonschema, referencing
100
102
  # ruamel.yaml==0.18.10 # Installed as dependency for pre-commit-hooks
101
103
  # ruamel.yaml.clib==0.2.12 # Installed as dependency for ruamel.yaml
102
104
  # six==1.17.0 # Installed as dependency for python-dateutil
103
105
  # stack-data==0.6.3 # Installed as dependency for ipython
104
- # termcolor==3.0.1 # Installed as dependency for commitizen
106
+ # termcolor==2.5.0 # Installed as dependency for commitizen
105
107
  # tomlkit==0.13.2 # Installed as dependency for commitizen
106
- # tornado==6.4.2 # Installed as dependency for ipykernel, jupyter-client
108
+ # tornado==6.5 # Installed as dependency for ipykernel, jupyter-client
107
109
  # traitlets==5.14.3 # Installed as dependency for comm, ipykernel, ipython, jupyter-client, jupyter-core, matplotlib-inline, nbformat
108
110
  # typeguard==4.4.2 # Installed as dependency for inflect
109
111
  # urllib3==2.4.0 # Installed as dependency for requests, twine
110
- # virtualenv==20.30.0 # Installed as dependency for pre-commit
112
+ # virtualenv==20.31.2 # Installed as dependency for pre-commit
111
113
  # wcwidth==0.2.13 # Installed as dependency for prompt-toolkit
112
114
  # zipp==3.21.0 # Installed as dependency for importlib-metadata
@@ -1,7 +1,7 @@
1
1
  beautifulsoup4==4.13.4
2
2
  chardet==5.2.0
3
- deepdiff==8.4.2
4
- puremagic==1.28
5
- # orderly-set==5.4.0 # Installed as dependency for deepdiff
3
+ deepdiff==8.5.0
4
+ puremagic==1.29
5
+ # orderly-set==5.4.1 # Installed as dependency for deepdiff
6
6
  # soupsieve==2.7 # Installed as dependency for beautifulsoup4
7
7
  # typing-extensions==4.13.2 # Installed as dependency for beautifulsoup4, pyright, referencing, typeguard
@@ -120,7 +120,7 @@ class RudiNodeCatalogConnector(Connector):
120
120
  """
121
121
  Performs an identified GET request through /api/admin path
122
122
  :param url: part of the URL that comes after /api/admin
123
- :param keep_alive: True if the connection should be kep alive (for successive requests). Use
123
+ :param keep_alive: True if the connection should be kept alive (for successive requests). Use
124
124
  self.connection.close() in the end of your request series.
125
125
  :return: the result of the request, most likely a JSON
126
126
  """
@@ -127,7 +127,7 @@ class RudiNodeManagerConnector(Connector):
127
127
  """
128
128
  Performs an identified GET request through /api path
129
129
  :param url: part of the URL that comes after /api
130
- :param keep_alive: True if the connection should be kep alive (for successive requests). Use
130
+ :param keep_alive: True if the connection should be kept alive (for successive requests). Use
131
131
  self.connection.close() in the end of your request series.
132
132
  :return: the result of the request, most likely a JSON
133
133
  """
@@ -326,7 +326,7 @@ class RudiNodeManagerConnector(Connector):
326
326
  """
327
327
  Performs an identified GET request through /api path
328
328
  :param url: part of the URL that comes after /api
329
- :param keep_alive: True if the connection should be kep alive (for successive requests). Use
329
+ :param keep_alive: True if the connection should be kept alive (for successive requests). Use
330
330
  self.connection.close() in the end of your request series.
331
331
  :return: the result of the request, most likely a JSON
332
332
  """
@@ -475,7 +475,7 @@ class RudiNodeManagerConnector(Connector):
475
475
 
476
476
  @property
477
477
  def last_metadata_update_date(self) -> Date | None:
478
- res = self.get_data("resources?sort=-updatedAt&limit=1&fields=updatedAt")
478
+ res = self.get_data("resources?sort_by=-updatedAt&limit=1&fields=updatedAt")
479
479
  if not isinstance(res, list):
480
480
  raise TypeError(f"The server should have returned a list, got:\n{res}")
481
481
  if len(res) == 0:
@@ -485,7 +485,7 @@ class RudiNodeManagerConnector(Connector):
485
485
 
486
486
  @property
487
487
  def last_data_update_date(self) -> Date | None:
488
- res = self.get_data("resources?sort=-dataset_dates.updated&limit=1&fields=dataset_dates.updated")
488
+ res = self.get_data("resources?sort_by=-dataset_dates.updated&limit=1&fields=dataset_dates.updated")
489
489
  # print("last_data_update_date", res)
490
490
  if not isinstance(res, list):
491
491
  raise TypeError(f"The server should have returned a list, got:\n{res}")
@@ -120,11 +120,11 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
120
120
  return self._cached_conf
121
121
 
122
122
  # ----------[ Basic API calls ]-------------------------------------------------------------------------------------
123
- def get_manager(self, url: str, headers: dict, keep_alive: bool = False):
123
+ def get_api(self, url: str, headers: dict, keep_alive: bool = False):
124
124
  """
125
125
  Performs an identified GET request through /api path
126
126
  :param url: part of the URL that comes after /api
127
- :param keep_alive: True if the connection should be kep alive (for successive requests). Use
127
+ :param keep_alive: True if the connection should be kept alive (for successive requests). Use
128
128
  self.connection.close() in the end of your request series.
129
129
  :return: the result of the request, most likely a JSON
130
130
  """
@@ -180,7 +180,7 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
180
180
  )
181
181
 
182
182
  def test_connection(self):
183
- test = self.get_manager(url="open/test", headers=self._def_headers)
183
+ test = self.get_api(url="open/test", headers=self._def_headers)
184
184
  if test == "test":
185
185
  log_d(here, f"Node '{self.host}'", "connection OK")
186
186
  # log_d(here, f"Node '{self.host}'", "connection OK")
@@ -191,7 +191,7 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
191
191
  def test_identified_connection(self):
192
192
  self.test_connection()
193
193
  try:
194
- self.get_manager(url="catalog/uuid", headers=self._id_headers)
194
+ self.get_api(url="catalog/uuid", headers=self._id_headers)
195
195
  except HttpError:
196
196
  raise ConnectionError(f"Identifiers seem to be not working for the node: {self.server_url}")
197
197
  return True
@@ -209,11 +209,11 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
209
209
 
210
210
  @property
211
211
  def tags(self):
212
- return self.get_manager(url="open/tags", headers=self._def_headers)
212
+ return self.get_api(url="open/tags", headers=self._def_headers)
213
213
 
214
214
  @property
215
215
  def hash(self):
216
- return self.get_manager(url="open/hash", headers=self._def_headers)
216
+ return self.get_api(url="open/hash", headers=self._def_headers)
217
217
 
218
218
  @property
219
219
  def _def_headers(self):
@@ -269,7 +269,7 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
269
269
  def _storage_jwt(self) -> str:
270
270
  here = "_storage_jwt"
271
271
  if is_jwt_expired(self._cached_storage_jwt):
272
- res = self.get_manager(url="storage/jwt", headers=self._id_headers)
272
+ res = self.get_api(url="storage/jwt", headers=self._id_headers)
273
273
 
274
274
  if not isinstance(res, dict):
275
275
  raise TypeError(f"An error occurred while getting Storage JWT: got {res}")
@@ -295,7 +295,7 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
295
295
  """
296
296
  Performs an identified GET request through /api path
297
297
  :param url: part of the URL that comes after /api
298
- :param keep_alive: True if the connection should be kep alive (for successive requests). Use
298
+ :param keep_alive: True if the connection should be kept alive (for successive requests). Use
299
299
  self.connection.close() in the end of your request series.
300
300
  :return: the result of the request, most likely a JSON
301
301
  """
@@ -380,7 +380,7 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
380
380
  if url in RUDI_OBJECT_TYPES:
381
381
  data: list[dict] = self._get_full_obj_list(url)
382
382
  else:
383
- data = self.get_manager(url=url, headers=self._id_headers) # type: ignore
383
+ data = self.get_api(url=url, headers=self._id_headers) # type: ignore
384
384
 
385
385
  self._data_cache[url] = {"data": data, _REFRESH_KEY: time()}
386
386
  obj_data = self._data_cache[url]["data"]
@@ -452,7 +452,7 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
452
452
 
453
453
  @property
454
454
  def last_metadata_update_date(self) -> Date | None:
455
- res = self.get_catalog_cached("resources?sort=-updatedAt&limit=1&fields=updatedAt")
455
+ res = self.get_catalog_cached("resources?sort_by=-updatedAt&fields=updatedAt&limit=1")
456
456
  if not isinstance(res, list):
457
457
  raise TypeError(f"The server should have returned a list, got:\n{res}")
458
458
  if len(res) == 0:
@@ -462,7 +462,7 @@ class RudiNodeManagerConnectorV3(RudiNodeManagerConnector):
462
462
 
463
463
  @property
464
464
  def last_data_update_date(self) -> Date | None:
465
- res = self.get_catalog_cached("resources?sort=-dataset_dates.updated&limit=1&fields=dataset_dates.updated")
465
+ res = self.get_catalog_cached("resources?sort_by=-dataset_dates.updated&limit=1&fields=dataset_dates.updated")
466
466
  # print("last_data_update_date", res)
467
467
  if not isinstance(res, list):
468
468
  raise TypeError(f"The server should have returned a list, got:\n{res}")
@@ -1356,7 +1356,7 @@ if __name__ == "__main__": # pragma: no cover
1356
1356
  log_d(tests, "manager_url", manager.manager_url)
1357
1357
  log_d(tests, "manager_back_url", manager.base_url)
1358
1358
  log_d(tests, "test 1", manager.request(relative_url="open/test"))
1359
- log_d(tests, "test 2", manager.get_manager(url="open/test", headers=manager._def_headers))
1359
+ log_d(tests, "test 2", manager.get_api(url="open/test", headers=manager._def_headers))
1360
1360
  log_d(tests, "test 3", manager.test_connection())
1361
1361
 
1362
1362
  log_d(tests, "nb orgs", manager._count_obj("organizations"))
@@ -139,8 +139,7 @@ def get_file_hash(file_local_path: str, hash_algo: str = "md5") -> str:
139
139
  def read_json_file(file_path, mode: Literal["b", "t"] = "t"): # pragma: no cover
140
140
  check_is_file(file_path)
141
141
  with open(file_path, f"r{mode}") as json_file_content:
142
- json_dict = load(json_file_content)
143
- return json_dict
142
+ return load(json_file_content)
144
143
 
145
144
 
146
145
  def write_file(destination_file_path: str, content, mode: Literal["b", "t"] = "t"): # pragma: no cover
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rudi-node-write
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Summary: Use the internal API of a RUDI Producer node
5
5
  Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
6
  Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
@@ -18,15 +18,15 @@ Description-Content-Type: text/markdown
18
18
  License-File: LICENCE.md
19
19
  Requires-Dist: beautifulsoup4==4.13.4
20
20
  Requires-Dist: chardet==5.2.0
21
- Requires-Dist: deepdiff==8.4.2
22
- Requires-Dist: puremagic==1.28
21
+ Requires-Dist: deepdiff==8.5.0
22
+ Requires-Dist: puremagic==1.29
23
23
  Provides-Extra: dev
24
24
  Requires-Dist: backports.tarfile==1.2.0; extra == "dev"
25
25
  Requires-Dist: black==25.1.0; extra == "dev"
26
26
  Requires-Dist: build==1.2.2.post1; extra == "dev"
27
- Requires-Dist: commitizen==4.6.0; extra == "dev"
27
+ Requires-Dist: commitizen==4.7.2; extra == "dev"
28
28
  Requires-Dist: flake8==7.2.0; extra == "dev"
29
- Requires-Dist: importlib-metadata==8.6.1; extra == "dev"
29
+ Requires-Dist: importlib-metadata==8.7.0; extra == "dev"
30
30
  Requires-Dist: importlib-resources==6.5.2; extra == "dev"
31
31
  Requires-Dist: inflect==7.5.0; extra == "dev"
32
32
  Requires-Dist: ipykernel==6.29.5; extra == "dev"
@@ -41,9 +41,10 @@ Requires-Dist: pkginfo==1.12.1.2; extra == "dev"
41
41
  Requires-Dist: pre-commit==4.2.0; extra == "dev"
42
42
  Requires-Dist: pre-commit-hooks==5.0.0; extra == "dev"
43
43
  Requires-Dist: py-env==0.0.1; extra == "dev"
44
- Requires-Dist: pyright==1.1.399; extra == "dev"
44
+ Requires-Dist: pyright==1.1.400; extra == "dev"
45
45
  Requires-Dist: pytest-check==2.5.3; extra == "dev"
46
46
  Requires-Dist: pytest-cov==6.1.1; extra == "dev"
47
+ Requires-Dist: rudi-node-write==1.3.1; extra == "dev"
47
48
  Requires-Dist: tomli==2.2.1; extra == "dev"
48
49
  Requires-Dist: twine==6.1.0; extra == "dev"
49
50
  Dynamic: license-file
@@ -1,15 +1,15 @@
1
1
  beautifulsoup4==4.13.4
2
2
  chardet==5.2.0
3
- deepdiff==8.4.2
4
- puremagic==1.28
3
+ deepdiff==8.5.0
4
+ puremagic==1.29
5
5
 
6
6
  [dev]
7
7
  backports.tarfile==1.2.0
8
8
  black==25.1.0
9
9
  build==1.2.2.post1
10
- commitizen==4.6.0
10
+ commitizen==4.7.2
11
11
  flake8==7.2.0
12
- importlib-metadata==8.6.1
12
+ importlib-metadata==8.7.0
13
13
  importlib-resources==6.5.2
14
14
  inflect==7.5.0
15
15
  ipykernel==6.29.5
@@ -24,8 +24,9 @@ pkginfo==1.12.1.2
24
24
  pre-commit==4.2.0
25
25
  pre-commit-hooks==5.0.0
26
26
  py-env==0.0.1
27
- pyright==1.1.399
27
+ pyright==1.1.400
28
28
  pytest-check==2.5.3
29
29
  pytest-cov==6.1.1
30
+ rudi-node-write==1.3.1
30
31
  tomli==2.2.1
31
32
  twine==6.1.0