rudi-node-write 1.4.4__tar.gz → 1.5.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 (50) hide show
  1. rudi_node_write-1.5.0/PKG-INFO +52 -0
  2. rudi_node_write-1.5.0/pyproject.toml +139 -0
  3. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_catalog_write.py +7 -4
  4. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_meta.py +5 -0
  5. rudi_node_write-1.5.0/src/rudi_node_write.egg-info/PKG-INFO +52 -0
  6. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write.egg-info/SOURCES.txt +0 -2
  7. rudi_node_write-1.5.0/src/rudi_node_write.egg-info/requires.txt +4 -0
  8. rudi_node_write-1.4.4/PKG-INFO +0 -105
  9. rudi_node_write-1.4.4/pyproject.toml +0 -82
  10. rudi_node_write-1.4.4/requirements-dev.txt +0 -193
  11. rudi_node_write-1.4.4/requirements.txt +0 -7
  12. rudi_node_write-1.4.4/src/rudi_node_write.egg-info/PKG-INFO +0 -105
  13. rudi_node_write-1.4.4/src/rudi_node_write.egg-info/requires.txt +0 -56
  14. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/LICENCE.md +0 -0
  15. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/README.md +0 -0
  16. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/setup.cfg +0 -0
  17. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/__init__.py +0 -0
  18. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/conf/meta_defaults.py +0 -0
  19. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_connector.py +0 -0
  20. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_jwt_factory.py +0 -0
  21. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_manager_write.py +0 -0
  22. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_manager_write_v2.py +0 -0
  23. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_manager_write_v3.py +0 -0
  24. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_storage_write.py +0 -0
  25. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/rudi_node_auth.py +0 -0
  26. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_node_writer.py +0 -0
  27. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_const.py +0 -0
  28. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_contact.py +0 -0
  29. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_dates.py +0 -0
  30. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_dictionary_entry.py +0 -0
  31. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_geo.py +0 -0
  32. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_licence.py +0 -0
  33. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_media.py +0 -0
  34. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_meta_misc.py +0 -0
  35. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_org.py +0 -0
  36. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/serializable.py +0 -0
  37. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/dict_utils.py +0 -0
  38. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/err.py +0 -0
  39. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/file_utils.py +0 -0
  40. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/html_utils.py +0 -0
  41. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/jwt.py +0 -0
  42. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/list_utils.py +0 -0
  43. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/log.py +0 -0
  44. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/str_utils.py +0 -0
  45. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/type_date.py +0 -0
  46. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/typing_utils.py +0 -0
  47. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/url_utils.py +0 -0
  48. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write.egg-info/dependency_links.txt +0 -0
  49. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write.egg-info/top_level.txt +0 -0
  50. {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/tests/test_rudi_node_write.py +0 -0
@@ -0,0 +1,52 @@
1
+ Metadata-Version: 2.4
2
+ Name: rudi-node-write
3
+ Version: 1.5.0
4
+ Summary: Use the internal API of a RUDI Producer node
5
+ Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
+ Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
7
+ License-Expression: EUPL-1.2
8
+ Project-URL: Homepage, https://github.com/OlivierMartineau/rudi-node-write
9
+ Project-URL: Documentation, https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI
10
+ Project-URL: Repository, https://github.com/OlivierMartineau/rudi-node-write
11
+ Keywords: rudi-node-write,rudi-node-put,RUDI,producer node,RUDI node,open-data,Univ. Rennes
12
+ Classifier: Natural Language :: English
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.11
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENCE.md
17
+ Requires-Dist: beautifulsoup4>=4.15.0
18
+ Requires-Dist: chardet>=7.7.0
19
+ Requires-Dist: deepdiff>=9.1.0
20
+ Requires-Dist: puremagic>=1.30
21
+ Dynamic: license-file
22
+
23
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
24
+ [![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)
25
+
26
+ # RUDI Node tools: _rudi-node-write_ library
27
+
28
+ This library offers tools to take advantage of
29
+ the [internal API](https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI) of a RUDI Producer node (
30
+ also
31
+ referred as RUDI node), through the API of the backend of the user interface, the "Producer node manager" or "RUDI Manager" module.
32
+
33
+ ## Installation
34
+
35
+ ```bash
36
+ python3 -m venv .venv
37
+ source .venv/bin/activate
38
+ pip install rudi_node_write
39
+ ```
40
+
41
+ ## Usage: RudiNodeWriter
42
+
43
+ The Jupyter notebook [`README.ipynb`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/README.ipynb) details how to use the library through the [`RudiNodeWriter`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/src/rudi_node_write/rudi_node_writer.py) object.
44
+
45
+ ## Testing
46
+
47
+ The [tests](https://github.com/OlivierMartineau/rudi-node-write/tree/main/tests) can be analyzed for further
48
+ information about how to call the API
49
+
50
+ ```bash
51
+ $ pytest
52
+ ```
@@ -0,0 +1,139 @@
1
+ [project]
2
+ name = "rudi-node-write"
3
+ version = "1.5.0"
4
+ authors = [{ name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" }]
5
+ maintainers = [
6
+ { name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" },
7
+ ]
8
+ description = "Use the internal API of a RUDI Producer node"
9
+ readme = "README.md"
10
+ license-files = ["LICENCE.md"]
11
+ requires-python = ">=3.11"
12
+ license = "EUPL-1.2"
13
+ classifiers = [
14
+ "Natural Language :: English",
15
+ "Operating System :: OS Independent",
16
+ ]
17
+ keywords = [
18
+ "rudi-node-write",
19
+ "rudi-node-put",
20
+ "RUDI",
21
+ "producer node",
22
+ "RUDI node",
23
+ "open-data",
24
+ "Univ. Rennes",
25
+ ]
26
+ dependencies = [
27
+ "beautifulsoup4>=4.15.0",
28
+ "chardet>=7.7.0",
29
+ "deepdiff>=9.1.0",
30
+ "puremagic>=1.30",
31
+ ]
32
+
33
+ [dependency-groups]
34
+ dev = ["black==25.1.0", "commitizen==4.8.3", "uv-bump>=0.6.0"]
35
+ build = ["twine==6.1.0"]
36
+ test = ["ipykernel>=7.4.0", "pytest-cov>=7.1.0"]
37
+
38
+ [project.urls]
39
+ Homepage = "https://github.com/OlivierMartineau/rudi-node-write"
40
+ Documentation = "https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI"
41
+ Repository = "https://github.com/OlivierMartineau/rudi-node-write"
42
+
43
+ [build-system]
44
+ requires = ["setuptools>=82.0.1"]
45
+ build-backend = "setuptools.build_meta"
46
+
47
+ # ----- Tool: black
48
+ [tool.black]
49
+ line-length = 120
50
+ target-version = ['py311']
51
+
52
+ # ----- Tool: commitizen
53
+ [tool.commitizen]
54
+ name = "cz_conventional_commits"
55
+ version = "1.5.0"
56
+ version_files = ["pyproject.toml:version"]
57
+
58
+ # ----- Tool: pytest
59
+ [tool.pytest.ini_options]
60
+ pythonpath = ["src"]
61
+ norecursedirs = ["*.egg", ".eggs", "dist", "build", "wip"]
62
+ filterwarnings = ["ignore:.*pkg_resources.*:DeprecationWarning"]
63
+ addopts = [
64
+ "--cov=rudi_node_write",
65
+ "--cov-report=term-missing",
66
+ "--cov-report=html:reports/html_dir",
67
+ "--cov-report=xml:reports/coverage.xml",
68
+ ]
69
+
70
+ # ----- Tool: setuptools
71
+ [tool.setuptools.packages.find]
72
+ where = ["src"]
73
+ include = ["rudi_node_write*"]
74
+
75
+ # ----- Tool: pyright
76
+ [tool.pyright]
77
+ exclude = ["**/node_modules", "**/__pycache__"]
78
+ include = ["src"]
79
+ pythonVersion = "3.11"
80
+ reportMissingImports = true
81
+ reportDuplicateImport = true
82
+ reportUnusedImport = true
83
+ reportImportCycles = true
84
+ venvPath = "."
85
+ venv = ".venv"
86
+
87
+ # ----- Tool: tox
88
+ # Single source of truth for the checks run locally and in CI:
89
+ # uv run tox # all environments, serial
90
+ # uv run tox run-parallel # what CI runs (only py312 writes coverage)
91
+ # uv run tox -e py312 # one environment
92
+ [tool.tox]
93
+ env_list = ["py311", "py312", "py313", "py314", "py315", "quality"]
94
+ skip_missing_interpreters = false
95
+
96
+ [tool.tox.env_run_base]
97
+ runner = "uv-venv-lock-runner"
98
+ dependency_groups = ["test"]
99
+ # The interpreter envs exist to prove the suite runs on each version, so only
100
+ # py312 (the dev interpreter, see [tool.tox.env.py312] below) instruments the
101
+ # run. Coverage is off everywhere else: it triples the test time, and measuring
102
+ # it under every version yields no extra information — the badge publishes a
103
+ # single percentage, and the line counts genuinely differ between versions
104
+ # (coverage.py's executable-line detection changed in 3.14), so comparing them
105
+ # compares different denominators.
106
+ commands = [["pytest", "-q", "-p", "no:cacheprovider", "--no-cov"]]
107
+
108
+ # The one env that produces the coverage reports the badge reads. It writes the
109
+ # shared reports/coverage.xml, which is safe precisely because no other env
110
+ # writes one — the interpreter envs run in parallel.
111
+ [tool.tox.env.py312]
112
+ commands = [["pytest", "-q", "-p", "no:cacheprovider"]]
113
+
114
+ [tool.tox.env.quality]
115
+ base_python = ["python3.12"]
116
+ dependency_groups = ["dev", "test"]
117
+ commands = [
118
+ [
119
+ "ruff",
120
+ "check",
121
+ "--no-fix",
122
+ ],
123
+ [
124
+ "black",
125
+ "--check",
126
+ "--diff",
127
+ ".",
128
+ ],
129
+ [
130
+ "pyright",
131
+ ],
132
+ [
133
+ "bandit",
134
+ "-c",
135
+ "pyproject.toml",
136
+ "-r",
137
+ "src",
138
+ ],
139
+ ]
@@ -216,7 +216,7 @@ class RudiNodeCatalogConnector(Connector):
216
216
  def _clean_cache(self) -> None:
217
217
  if self._data_cache is None:
218
218
  self._data_cache = {}
219
- for cached_type in self._data_cache.keys():
219
+ for cached_type in self._data_cache:
220
220
  if time() - (self._data_cache[cached_type][_REFRESH_KEY]) > _DELAY_REFRESH_S:
221
221
  self._data_cache[cached_type] = None
222
222
  # TODO: check the date of the last modified object on source node
@@ -305,9 +305,12 @@ class RudiNodeCatalogConnector(Connector):
305
305
  :param organization_id: the UUID v4 identifier of the organization
306
306
  :return: the deleted organization
307
307
  """
308
- if is_uuid_v4(organization_id) and self.get_producer_with_id(organization_id):
309
- if deleted_org := self.del_admin_api(f"organizations/{organization_id}"):
310
- return RudiOrganization.from_json(deleted_org)
308
+ if (
309
+ is_uuid_v4(organization_id)
310
+ and self.get_producer_with_id(organization_id)
311
+ and (deleted_org := self.del_admin_api(f"organizations/{organization_id}"))
312
+ ):
313
+ return RudiOrganization.from_json(deleted_org)
311
314
  raise HttpErrorNotFound(f"No organization was found with id '{organization_id}'")
312
315
 
313
316
  def delete_org_with_name(self, organization_name: str) -> RudiOrganization:
@@ -80,6 +80,7 @@ class RudiMetadata(Serializable):
80
80
  metadata_source: str | None = None,
81
81
  collection_tag: str | None = None,
82
82
  metadata_status: str | None = None,
83
+ extras: dict | list | None = None,
83
84
  ):
84
85
  # ---------- Mandatory parameters ----------
85
86
  self.global_id = check_is_uuid4(global_id)
@@ -128,6 +129,8 @@ class RudiMetadata(Serializable):
128
129
  self.metadata_source = check_is_string_or_none(metadata_source)
129
130
  self.metadata_status = check_is_literal_or_none(metadata_status, METADATA_STATUSES)
130
131
 
132
+ self.extras = extras if isinstance(extras, (dict, list)) else None
133
+
131
134
  @staticmethod
132
135
  def from_json(o: dict):
133
136
  check_is_dict(o)
@@ -176,6 +179,7 @@ class RudiMetadata(Serializable):
176
179
  collection_tag = check_is_string_or_none(o.get("collection_tag"))
177
180
 
178
181
  metadata_status = check_is_literal_or_none(o.get("metadata_status"), METADATA_STATUSES)
182
+ extras = o.get("extras")
179
183
 
180
184
  return RudiMetadata(
181
185
  global_id=global_id,
@@ -199,6 +203,7 @@ class RudiMetadata(Serializable):
199
203
  geography=geography,
200
204
  collection_tag=collection_tag,
201
205
  metadata_status=metadata_status,
206
+ extras=extras,
202
207
  )
203
208
 
204
209
  def get_number_of_records(self) -> int | None:
@@ -0,0 +1,52 @@
1
+ Metadata-Version: 2.4
2
+ Name: rudi-node-write
3
+ Version: 1.5.0
4
+ Summary: Use the internal API of a RUDI Producer node
5
+ Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
+ Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
7
+ License-Expression: EUPL-1.2
8
+ Project-URL: Homepage, https://github.com/OlivierMartineau/rudi-node-write
9
+ Project-URL: Documentation, https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI
10
+ Project-URL: Repository, https://github.com/OlivierMartineau/rudi-node-write
11
+ Keywords: rudi-node-write,rudi-node-put,RUDI,producer node,RUDI node,open-data,Univ. Rennes
12
+ Classifier: Natural Language :: English
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.11
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENCE.md
17
+ Requires-Dist: beautifulsoup4>=4.15.0
18
+ Requires-Dist: chardet>=7.7.0
19
+ Requires-Dist: deepdiff>=9.1.0
20
+ Requires-Dist: puremagic>=1.30
21
+ Dynamic: license-file
22
+
23
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
24
+ [![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)
25
+
26
+ # RUDI Node tools: _rudi-node-write_ library
27
+
28
+ This library offers tools to take advantage of
29
+ the [internal API](https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI) of a RUDI Producer node (
30
+ also
31
+ referred as RUDI node), through the API of the backend of the user interface, the "Producer node manager" or "RUDI Manager" module.
32
+
33
+ ## Installation
34
+
35
+ ```bash
36
+ python3 -m venv .venv
37
+ source .venv/bin/activate
38
+ pip install rudi_node_write
39
+ ```
40
+
41
+ ## Usage: RudiNodeWriter
42
+
43
+ The Jupyter notebook [`README.ipynb`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/README.ipynb) details how to use the library through the [`RudiNodeWriter`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/src/rudi_node_write/rudi_node_writer.py) object.
44
+
45
+ ## Testing
46
+
47
+ The [tests](https://github.com/OlivierMartineau/rudi-node-write/tree/main/tests) can be analyzed for further
48
+ information about how to call the API
49
+
50
+ ```bash
51
+ $ pytest
52
+ ```
@@ -1,8 +1,6 @@
1
1
  LICENCE.md
2
2
  README.md
3
3
  pyproject.toml
4
- requirements-dev.txt
5
- requirements.txt
6
4
  src/rudi_node_write/__init__.py
7
5
  src/rudi_node_write/rudi_node_writer.py
8
6
  src/rudi_node_write.egg-info/PKG-INFO
@@ -0,0 +1,4 @@
1
+ beautifulsoup4>=4.15.0
2
+ chardet>=7.7.0
3
+ deepdiff>=9.1.0
4
+ puremagic>=1.30
@@ -1,105 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: rudi-node-write
3
- Version: 1.4.4
4
- Summary: Use the internal API of a RUDI Producer node
5
- Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
- Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
7
- License-Expression: EUPL-1.2
8
- Project-URL: Homepage, https://github.com/OlivierMartineau/rudi-node-write
9
- Project-URL: Documentation, https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI
10
- Project-URL: Repository, https://github.com/OlivierMartineau/rudi-node-write
11
- Keywords: rudi-node-write,rudi-node-put,RUDI,producer node,RUDI node,open-data,Univ. Rennes
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Programming Language :: Python :: 3.12
14
- Classifier: Natural Language :: English
15
- Classifier: Operating System :: OS Independent
16
- Requires-Python: >=3.11
17
- Description-Content-Type: text/markdown
18
- License-File: LICENCE.md
19
- Requires-Dist: beautifulsoup4==4.15.0
20
- Requires-Dist: chardet==7.4.3
21
- Requires-Dist: deepdiff==9.1.0
22
- Requires-Dist: puremagic==2.2.0
23
- Provides-Extra: dev
24
- Requires-Dist: backports.tarfile==1.2.0; extra == "dev"
25
- Requires-Dist: black==25.1.0; extra == "dev"
26
- Requires-Dist: build==1.2.2.post1; extra == "dev"
27
- Requires-Dist: commitizen==4.8.3; extra == "dev"
28
- Requires-Dist: configparser==7.2.0; extra == "dev"
29
- Requires-Dist: contourpy==1.3.2; extra == "dev"
30
- Requires-Dist: cssbeautifier==1.15.4; extra == "dev"
31
- Requires-Dist: cycler==0.12.1; extra == "dev"
32
- Requires-Dist: email-validator==2.2.0; extra == "dev"
33
- Requires-Dist: fastapi==0.115.14; extra == "dev"
34
- Requires-Dist: fastapi-cli==0.0.7; extra == "dev"
35
- Requires-Dist: flake8==7.3.0; extra == "dev"
36
- Requires-Dist: ftfy==6.3.1; extra == "dev"
37
- Requires-Dist: httptools==0.6.4; extra == "dev"
38
- Requires-Dist: httpx==0.28.1; extra == "dev"
39
- Requires-Dist: importlib-resources==6.5.2; extra == "dev"
40
- Requires-Dist: inflect==7.5.0; extra == "dev"
41
- Requires-Dist: ipykernel==6.29.5; extra == "dev"
42
- Requires-Dist: jaraco-collections==5.2.1; extra == "dev"
43
- Requires-Dist: jaraco-functools==4.2.1; extra == "dev"
44
- Requires-Dist: jaraco.collections==5.1.0; extra == "dev"
45
- Requires-Dist: json5==0.12.0; extra == "dev"
46
- Requires-Dist: kiwisolver==1.4.8; extra == "dev"
47
- Requires-Dist: lxml==6.0.0; extra == "dev"
48
- Requires-Dist: nbstripout==0.8.1; extra == "dev"
49
- Requires-Dist: onlykey-agent==1.1.15; extra == "dev"
50
- Requires-Dist: ordered-set==4.1.0; extra == "dev"
51
- Requires-Dist: pip-autoremove==0.10.0; extra == "dev"
52
- Requires-Dist: pip-chill==1.0.3; extra == "dev"
53
- Requires-Dist: pip-upgrade-outdated==1.5; extra == "dev"
54
- Requires-Dist: pip3-autoremove==1.2.2; extra == "dev"
55
- Requires-Dist: pkginfo==1.12.1.2; extra == "dev"
56
- Requires-Dist: pre-commit==4.2.0; extra == "dev"
57
- Requires-Dist: pre-commit-hooks==5.0.0; extra == "dev"
58
- Requires-Dist: protobuf==6.31.1; extra == "dev"
59
- Requires-Dist: py-env==0.0.1; extra == "dev"
60
- Requires-Dist: pybind11==2.13.6; extra == "dev"
61
- Requires-Dist: pyright==1.1.402; extra == "dev"
62
- Requires-Dist: pyside6-addons==6.9.1; extra == "dev"
63
- Requires-Dist: pytest-check==2.5.3; extra == "dev"
64
- Requires-Dist: pytest-cov==6.2.1; extra == "dev"
65
- Requires-Dist: python-dotenv==1.1.1; extra == "dev"
66
- Requires-Dist: python-multipart==0.0.20; extra == "dev"
67
- Requires-Dist: regex==2024.11.6; extra == "dev"
68
- Requires-Dist: timm==1.0.16; extra == "dev"
69
- Requires-Dist: tomli==2.2.1; extra == "dev"
70
- Requires-Dist: twine==6.1.0; extra == "dev"
71
- Requires-Dist: uvloop==0.21.0; extra == "dev"
72
- Requires-Dist: watchfiles==1.1.0; extra == "dev"
73
- Requires-Dist: websockets==15.0.1; extra == "dev"
74
- Dynamic: license-file
75
-
76
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
77
- [![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)
78
-
79
- # RUDI Node tools: _rudi-node-write_ library
80
-
81
- This library offers tools to take advantage of
82
- the [internal API](https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI) of a RUDI Producer node (
83
- also
84
- referred as RUDI node), through the API of the backend of the user interface, the "Producer node manager" or "RUDI Manager" module.
85
-
86
- ## Installation
87
-
88
- ```bash
89
- python3 -m venv .venv
90
- source .venv/bin/activate
91
- pip install rudi_node_write
92
- ```
93
-
94
- ## Usage: RudiNodeWriter
95
-
96
- The Jupyter notebook [`README.ipynb`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/README.ipynb) details how to use the library through the [`RudiNodeWriter`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/src/rudi_node_write/rudi_node_writer.py) object.
97
-
98
- ## Testing
99
-
100
- The [tests](https://github.com/OlivierMartineau/rudi-node-write/tree/main/tests) can be analyzed for further
101
- information about how to call the API
102
-
103
- ```bash
104
- $ pytest
105
- ```
@@ -1,82 +0,0 @@
1
- [project]
2
- name = "rudi-node-write"
3
- version = "1.4.4"
4
- authors = [{ name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" }]
5
- maintainers = [
6
- { name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" },
7
- ]
8
- description = "Use the internal API of a RUDI Producer node"
9
- readme = "README.md"
10
- license-files = ["LICENCE.md"]
11
- requires-python = ">=3.11"
12
- license = "EUPL-1.2"
13
- classifiers = [
14
- "Programming Language :: Python :: 3.11",
15
- "Programming Language :: Python :: 3.12",
16
- "Natural Language :: English",
17
- "Operating System :: OS Independent",
18
- ]
19
- keywords = [
20
- "rudi-node-write",
21
- "rudi-node-put",
22
- "RUDI",
23
- "producer node",
24
- "RUDI node",
25
- "open-data",
26
- "Univ. Rennes",
27
- ]
28
- dynamic = ["dependencies", "optional-dependencies"]
29
- # dependencies = ["beautifulsoup4", "chardet", "deepdiff", "puremagic"]
30
-
31
- [project.urls]
32
- Homepage = "https://github.com/OlivierMartineau/rudi-node-write"
33
- Documentation = "https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI"
34
- Repository = "https://github.com/OlivierMartineau/rudi-node-write"
35
-
36
- [build-system]
37
- requires = ["setuptools>=82.0.1"]
38
- build-backend = "setuptools.build_meta"
39
-
40
- # ----- Tool: black
41
- [tool.black]
42
- line-length = 120
43
- target-version = ['py311']
44
-
45
- # ----- Tool: commitizen
46
- [tool.commitizen]
47
- name = "cz_conventional_commits"
48
- version = "1.4.4"
49
- version_files = ["pyproject.toml:version"]
50
-
51
- # ----- Tool: pytest
52
- [tool.pytest.ini_options]
53
- pythonpath = ["src"]
54
- norecursedirs = ["*.egg", ".eggs", "dist", "build", "wip"]
55
- filterwarnings = ["ignore:.*pkg_resources.*:DeprecationWarning"]
56
- addopts = [
57
- "--cov=rudi_node_write",
58
- "--cov-report=term-missing",
59
- "--cov-report=html:reports/html_dir",
60
- "--cov-report=xml:reports/coverage.xml",
61
- ]
62
-
63
- # ----- Tool: setuptools
64
- [tool.setuptools.packages.find]
65
- where = ["src"]
66
- include = ["rudi_node_write*"]
67
-
68
- [tool.setuptools.dynamic]
69
- dependencies = { file = ["requirements.txt"] }
70
- optional-dependencies = { dev = { file = ["requirements-dev.txt"] } }
71
-
72
- # ----- Tool: pyright
73
- [tool.pyright]
74
- exclude = ["**/node_modules", "**/__pycache__"]
75
- include = ["src"]
76
- pythonVersion = "3.11"
77
- reportMissingImports = true
78
- reportDuplicateImport = true
79
- reportUnusedImport = true
80
- reportImportCycles = true
81
- venvPath = "."
82
- venv = ".venv"
@@ -1,193 +0,0 @@
1
- backports.tarfile==1.2.0
2
- black==25.1.0
3
- build==1.2.2.post1
4
- commitizen==4.8.3
5
- configparser==7.2.0
6
- contourpy==1.3.2
7
- cssbeautifier==1.15.4
8
- cycler==0.12.1
9
- email-validator==2.2.0
10
- fastapi==0.115.14
11
- fastapi-cli==0.0.7
12
- flake8==7.3.0
13
- ftfy==6.3.1
14
- httptools==0.6.4
15
- httpx==0.28.1
16
- importlib-resources==6.5.2
17
- inflect==7.5.0
18
- ipykernel==6.29.5
19
- jaraco-collections==5.2.1
20
- jaraco-functools==4.2.1
21
- jaraco.collections==5.1.0
22
- json5==0.12.0
23
- kiwisolver==1.4.8
24
- lxml==6.0.0
25
- nbstripout==0.8.1
26
- onlykey-agent==1.1.15
27
- ordered-set==4.1.0
28
- pip-autoremove==0.10.0
29
- pip-chill==1.0.3
30
- pip-upgrade-outdated==1.5
31
- pip3-autoremove==1.2.2
32
- pkginfo==1.12.1.2
33
- pre-commit==4.2.0
34
- pre-commit-hooks==5.0.0
35
- protobuf==6.31.1
36
- py-env==0.0.1
37
- pybind11==2.13.6
38
- pyright==1.1.402
39
- pyside6-addons==6.9.1
40
- pytest-check==2.5.3
41
- pytest-cov==6.2.1
42
- python-dotenv==1.1.1
43
- python-multipart==0.0.20
44
- regex==2024.11.6
45
- timm==1.0.16
46
- tomli==2.2.1
47
- twine==6.1.0
48
- uvloop==0.21.0
49
- watchfiles==1.1.0
50
- websockets==15.0.1
51
- # aenum==3.1.16 # Installed as dependency for onlykey
52
- # annotated-types==0.7.0 # Installed as dependency for pydantic
53
- # anyio==4.14.0 # Installed as dependency for httpx, starlette, watchfiles
54
- # appnope==0.1.4 # Installed as dependency for ipykernel
55
- # argcomplete==3.6.2 # Installed as dependency for commitizen
56
- # asttokens==3.0.0 # Installed as dependency for stack-data
57
- # attrs==25.3.0 # Installed as dependency for jsonschema, referencing
58
- # autocommand==2.2.2 # Installed as dependency for jaraco.text
59
- # backports.shutil-which==3.5.2 # Installed as dependency for lib-agent
60
- # bech32==1.2.0 # Installed as dependency for lib-agent
61
- # certifi==2025.6.15 # Installed as dependency for httpcore, httpx, requests
62
- # cffi==1.17.1 # Installed as dependency for cryptography, pynacl
63
- # cfgv==3.4.0 # Installed as dependency for pre-commit
64
- # charset-normalizer==3.4.2 # Installed as dependency for commitizen, requests
65
- # click==8.2.1 # Installed as dependency for black, onlykey-solo-python, rich-toolkit, typer, uvicorn
66
- # colorama==0.4.6 # Installed as dependency for commitizen
67
- # comm==0.2.2 # Installed as dependency for ipykernel
68
- # configargparse==1.7.1 # Installed as dependency for lib-agent
69
- # coverage==7.9.1 # Installed as dependency for pytest-cov
70
- # cryptography==45.0.4 # Installed as dependency for fido2, lib-agent, onlykey-solo-python
71
- # cython==3.1.2 # Installed as dependency for onlykey
72
- # debugpy==1.8.14 # Installed as dependency for ipykernel
73
- # decli==0.6.3 # Installed as dependency for commitizen
74
- # decorator==5.2.1 # Installed as dependency for ipython
75
- # distlib==0.3.9 # Installed as dependency for virtualenv
76
- # dnspython==2.7.0 # Installed as dependency for email-validator
77
- # docutils==0.21.2 # Installed as dependency for lib-agent, readme-renderer
78
- # ecdsa==0.19.1 # Installed as dependency for lib-agent, onlykey, onlykey-solo-python
79
- # editorconfig==0.17.1 # Installed as dependency for cssbeautifier, jsbeautifier
80
- # executing==2.2.0 # Installed as dependency for stack-data
81
- # fastjsonschema==2.21.1 # Installed as dependency for nbformat
82
- # fido2==2.0.0 # Installed as dependency for onlykey-solo-python
83
- # filelock==3.18.0 # Installed as dependency for huggingface-hub, torch, virtualenv
84
- # fsspec==2025.5.1 # Installed as dependency for huggingface-hub, torch
85
- # h11==0.16.0 # Installed as dependency for httpcore, uvicorn
86
- # hf-xet==1.1.5 # Installed as dependency for huggingface-hub
87
- # hidapi==0.14.0.post4 # Installed as dependency for onlykey
88
- # httpcore==1.0.9 # Installed as dependency for httpx
89
- # huggingface-hub==0.33.2 # Installed as dependency for timm
90
- # id==1.5.0 # Installed as dependency for twine
91
- # identify==2.6.12 # Installed as dependency for pre-commit
92
- # idna==3.10 # Installed as dependency for anyio, email-validator, httpx, requests
93
- # importlib-metadata==8.7.0 # Installed as dependency for commitizen
94
- # iniconfig==2.1.0 # Installed as dependency for pytest
95
- # intelhex==2.3.0 # Installed as dependency for onlykey-solo-python
96
- # ipython==9.4.0 # Installed as dependency for ipykernel
97
- # ipython-pygments-lexers==1.1.1 # Installed as dependency for ipython
98
- # jaraco.classes==3.4.0 # Installed as dependency for keyring
99
- # jaraco.context==6.0.1 # Installed as dependency for jaraco.text, keyring
100
- # jaraco.functools==4.0.1 # Installed as dependency for jaraco.text, keyring
101
- # jaraco.text==4.0.0 # Installed as dependency for jaraco-collections, jaraco.collections
102
- # jedi==0.19.2 # Installed as dependency for ipython
103
- # jinja2==3.1.6 # Installed as dependency for commitizen, torch
104
- # jsbeautifier==1.15.4 # Installed as dependency for cssbeautifier
105
- # jsonschema==4.24.0 # Installed as dependency for nbformat
106
- # jsonschema-specifications==2025.4.1 # Installed as dependency for jsonschema
107
- # jupyter-client==8.6.3 # Installed as dependency for ipykernel
108
- # jupyter-core==5.8.1 # Installed as dependency for ipykernel, jupyter-client, nbformat
109
- # keyring==25.6.0 # Installed as dependency for twine
110
- # lib-agent==1.0.6 # Installed as dependency for onlykey-agent
111
- # lockfile==0.12.2 # Installed as dependency for python-daemon
112
- # markdown-it-py==3.0.0 # Installed as dependency for rich
113
- # markupsafe==3.0.2 # Installed as dependency for jinja2
114
- # matplotlib-inline==0.1.7 # Installed as dependency for ipykernel, ipython
115
- # mccabe==0.7.0 # Installed as dependency for flake8
116
- # mdurl==0.1.2 # Installed as dependency for markdown-it-py
117
- # mnemonic==0.21 # Installed as dependency for lib-agent
118
- # more-itertools==10.7.0 # Installed as dependency for inflect, jaraco-functools, jaraco.classes, jaraco.functools, jaraco.text
119
- # mpmath==1.3.0 # Installed as dependency for sympy
120
- # mypy-extensions==1.1.0 # Installed as dependency for black
121
- # nbformat==5.10.4 # Installed as dependency for nbstripout
122
- # nest-asyncio==1.6.0 # Installed as dependency for ipykernel
123
- # networkx==3.5 # Installed as dependency for torch
124
- # nh3==0.2.21 # Installed as dependency for readme-renderer
125
- # nodeenv==1.9.1 # Installed as dependency for pre-commit, pyright
126
- # numpy==2.3.1 # Installed as dependency for contourpy, torchvision
127
- # onlykey==1.2.10 # Installed as dependency for onlykey-agent
128
- # onlykey-solo-python==0.0.32 # Installed as dependency for onlykey
129
- # packaging==25.0 # Installed as dependency for black, build, commitizen, huggingface-hub, ipykernel, pytest, twine
130
- # parso==0.8.4 # Installed as dependency for jedi
131
- # pathspec==0.12.1 # Installed as dependency for black
132
- # pexpect==4.9.0 # Installed as dependency for ipython
133
- # pillow==11.3.0 # Installed as dependency for torchvision
134
- # platformdirs==4.3.8 # Installed as dependency for black, jupyter-core, virtualenv
135
- # pluggy==1.6.0 # Installed as dependency for pytest, pytest-cov
136
- # prompt-toolkit==3.0.51 # Installed as dependency for ipython, onlykey, questionary
137
- # psutil==7.0.0 # Installed as dependency for ipykernel
138
- # ptyprocess==0.7.0 # Installed as dependency for pexpect
139
- # pure-eval==0.2.3 # Installed as dependency for stack-data
140
- # pycodestyle==2.14.0 # Installed as dependency for flake8
141
- # pycparser==2.22 # Installed as dependency for cffi
142
- # pycryptodome==3.23.0 # Installed as dependency for lib-agent
143
- # pydantic==2.11.7 # Installed as dependency for fastapi
144
- # pydantic-core==2.33.2 # Installed as dependency for pydantic
145
- # pyflakes==3.4.0 # Installed as dependency for flake8
146
- # pygments==2.19.2 # Installed as dependency for ipython, ipython-pygments-lexers, pytest, readme-renderer, rich
147
- # pymsgbox==1.0.9 # Installed as dependency for lib-agent
148
- # pynacl==1.5.0 # Installed as dependency for lib-agent, onlykey
149
- # pyproject-hooks==1.2.0 # Installed as dependency for build
150
- # pyserial==3.5 # Installed as dependency for onlykey-solo-python
151
- # pyside6-essentials==6.9.1 # Installed as dependency for pyside6-addons
152
- # pytest==8.4.1 # Installed as dependency for pytest-check, pytest-cov
153
- # python-daemon==3.1.2 # Installed as dependency for lib-agent
154
- # python-dateutil==2.9.0.post0 # Installed as dependency for jupyter-client
155
- # pyusb==1.3.1 # Installed as dependency for onlykey-solo-python
156
- # pyyaml==6.0.2 # Installed as dependency for commitizen, huggingface-hub, pre-commit, timm
157
- # pyzmq==27.0.0 # Installed as dependency for ipykernel, jupyter-client
158
- # questionary==2.1.0 # Installed as dependency for commitizen
159
- # readme-renderer==44.0 # Installed as dependency for twine
160
- # referencing==0.36.2 # Installed as dependency for jsonschema, jsonschema-specifications
161
- # requests==2.32.4 # Installed as dependency for huggingface-hub, id, onlykey-solo-python, requests-toolbelt, twine
162
- # requests-toolbelt==1.0.0 # Installed as dependency for twine
163
- # rfc3986==2.0.0 # Installed as dependency for twine
164
- # rich==14.0.0 # Installed as dependency for rich-toolkit, twine, typer
165
- # rich-toolkit==0.14.8 # Installed as dependency for fastapi-cli
166
- # rpds-py==0.26.0 # Installed as dependency for jsonschema, referencing
167
- # ruamel.yaml==0.18.14 # Installed as dependency for pre-commit-hooks
168
- # ruamel.yaml.clib==0.2.12 # Installed as dependency for ruamel.yaml
169
- # safetensors==0.5.3 # Installed as dependency for timm
170
- # semver==3.0.4 # Installed as dependency for lib-agent
171
- # shellingham==1.5.4 # Installed as dependency for typer
172
- # shiboken6==6.9.1 # Installed as dependency for pyside6-addons, pyside6-essentials
173
- # six==1.17.0 # Installed as dependency for cssbeautifier, ecdsa, jsbeautifier, onlykey, python-dateutil
174
- # sniffio==1.3.1 # Installed as dependency for anyio
175
- # stack-data==0.6.3 # Installed as dependency for ipython
176
- # starlette==0.46.2 # Installed as dependency for fastapi
177
- # sympy==1.14.0 # Installed as dependency for torch
178
- # termcolor==3.1.0 # Installed as dependency for commitizen
179
- # tomlkit==0.13.3 # Installed as dependency for commitizen
180
- # torch==2.7.1 # Installed as dependency for timm, torchvision
181
- # torchvision==0.22.1 # Installed as dependency for timm
182
- # tornado==6.5.1 # Installed as dependency for ipykernel, jupyter-client
183
- # tqdm==4.67.1 # Installed as dependency for huggingface-hub
184
- # traitlets==5.14.3 # Installed as dependency for comm, ipykernel, ipython, jupyter-client, jupyter-core, matplotlib-inline, nbformat
185
- # typeguard==4.4.4 # Installed as dependency for inflect
186
- # typer==0.16.0 # Installed as dependency for fastapi-cli
187
- # typing-inspection==0.4.1 # Installed as dependency for pydantic
188
- # unidecode==1.4.0 # Installed as dependency for lib-agent
189
- # urllib3==2.5.0 # Installed as dependency for requests, twine
190
- # uvicorn==0.35.0 # Installed as dependency for fastapi-cli
191
- # virtualenv==20.31.2 # Installed as dependency for pre-commit
192
- # wcwidth==0.2.13 # Installed as dependency for ftfy, prompt-toolkit
193
- # zipp==3.23.0 # Installed as dependency for importlib-metadata
@@ -1,7 +0,0 @@
1
- beautifulsoup4==4.15.0
2
- chardet==7.4.3
3
- deepdiff==9.1.0
4
- puremagic==2.2.0
5
- # orderly-set==5.4.1 # Installed as dependency for deepdiff
6
- # soupsieve==2.7 # Installed as dependency for beautifulsoup4
7
- # typing-extensions==4.14.0 # Installed as dependency for anyio, beautifulsoup4, fastapi, huggingface-hub, pydantic, pydantic-core, pyright, referencing, rich-toolkit, torch, typeguard, typer, typing-inspection
@@ -1,105 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: rudi-node-write
3
- Version: 1.4.4
4
- Summary: Use the internal API of a RUDI Producer node
5
- Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
- Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
7
- License-Expression: EUPL-1.2
8
- Project-URL: Homepage, https://github.com/OlivierMartineau/rudi-node-write
9
- Project-URL: Documentation, https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI
10
- Project-URL: Repository, https://github.com/OlivierMartineau/rudi-node-write
11
- Keywords: rudi-node-write,rudi-node-put,RUDI,producer node,RUDI node,open-data,Univ. Rennes
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Programming Language :: Python :: 3.12
14
- Classifier: Natural Language :: English
15
- Classifier: Operating System :: OS Independent
16
- Requires-Python: >=3.11
17
- Description-Content-Type: text/markdown
18
- License-File: LICENCE.md
19
- Requires-Dist: beautifulsoup4==4.15.0
20
- Requires-Dist: chardet==7.4.3
21
- Requires-Dist: deepdiff==9.1.0
22
- Requires-Dist: puremagic==2.2.0
23
- Provides-Extra: dev
24
- Requires-Dist: backports.tarfile==1.2.0; extra == "dev"
25
- Requires-Dist: black==25.1.0; extra == "dev"
26
- Requires-Dist: build==1.2.2.post1; extra == "dev"
27
- Requires-Dist: commitizen==4.8.3; extra == "dev"
28
- Requires-Dist: configparser==7.2.0; extra == "dev"
29
- Requires-Dist: contourpy==1.3.2; extra == "dev"
30
- Requires-Dist: cssbeautifier==1.15.4; extra == "dev"
31
- Requires-Dist: cycler==0.12.1; extra == "dev"
32
- Requires-Dist: email-validator==2.2.0; extra == "dev"
33
- Requires-Dist: fastapi==0.115.14; extra == "dev"
34
- Requires-Dist: fastapi-cli==0.0.7; extra == "dev"
35
- Requires-Dist: flake8==7.3.0; extra == "dev"
36
- Requires-Dist: ftfy==6.3.1; extra == "dev"
37
- Requires-Dist: httptools==0.6.4; extra == "dev"
38
- Requires-Dist: httpx==0.28.1; extra == "dev"
39
- Requires-Dist: importlib-resources==6.5.2; extra == "dev"
40
- Requires-Dist: inflect==7.5.0; extra == "dev"
41
- Requires-Dist: ipykernel==6.29.5; extra == "dev"
42
- Requires-Dist: jaraco-collections==5.2.1; extra == "dev"
43
- Requires-Dist: jaraco-functools==4.2.1; extra == "dev"
44
- Requires-Dist: jaraco.collections==5.1.0; extra == "dev"
45
- Requires-Dist: json5==0.12.0; extra == "dev"
46
- Requires-Dist: kiwisolver==1.4.8; extra == "dev"
47
- Requires-Dist: lxml==6.0.0; extra == "dev"
48
- Requires-Dist: nbstripout==0.8.1; extra == "dev"
49
- Requires-Dist: onlykey-agent==1.1.15; extra == "dev"
50
- Requires-Dist: ordered-set==4.1.0; extra == "dev"
51
- Requires-Dist: pip-autoremove==0.10.0; extra == "dev"
52
- Requires-Dist: pip-chill==1.0.3; extra == "dev"
53
- Requires-Dist: pip-upgrade-outdated==1.5; extra == "dev"
54
- Requires-Dist: pip3-autoremove==1.2.2; extra == "dev"
55
- Requires-Dist: pkginfo==1.12.1.2; extra == "dev"
56
- Requires-Dist: pre-commit==4.2.0; extra == "dev"
57
- Requires-Dist: pre-commit-hooks==5.0.0; extra == "dev"
58
- Requires-Dist: protobuf==6.31.1; extra == "dev"
59
- Requires-Dist: py-env==0.0.1; extra == "dev"
60
- Requires-Dist: pybind11==2.13.6; extra == "dev"
61
- Requires-Dist: pyright==1.1.402; extra == "dev"
62
- Requires-Dist: pyside6-addons==6.9.1; extra == "dev"
63
- Requires-Dist: pytest-check==2.5.3; extra == "dev"
64
- Requires-Dist: pytest-cov==6.2.1; extra == "dev"
65
- Requires-Dist: python-dotenv==1.1.1; extra == "dev"
66
- Requires-Dist: python-multipart==0.0.20; extra == "dev"
67
- Requires-Dist: regex==2024.11.6; extra == "dev"
68
- Requires-Dist: timm==1.0.16; extra == "dev"
69
- Requires-Dist: tomli==2.2.1; extra == "dev"
70
- Requires-Dist: twine==6.1.0; extra == "dev"
71
- Requires-Dist: uvloop==0.21.0; extra == "dev"
72
- Requires-Dist: watchfiles==1.1.0; extra == "dev"
73
- Requires-Dist: websockets==15.0.1; extra == "dev"
74
- Dynamic: license-file
75
-
76
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
77
- [![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)
78
-
79
- # RUDI Node tools: _rudi-node-write_ library
80
-
81
- This library offers tools to take advantage of
82
- the [internal API](https://app.swaggerhub.com/apis/OlivierMartineau/RudiProducer-InternalAPI) of a RUDI Producer node (
83
- also
84
- referred as RUDI node), through the API of the backend of the user interface, the "Producer node manager" or "RUDI Manager" module.
85
-
86
- ## Installation
87
-
88
- ```bash
89
- python3 -m venv .venv
90
- source .venv/bin/activate
91
- pip install rudi_node_write
92
- ```
93
-
94
- ## Usage: RudiNodeWriter
95
-
96
- The Jupyter notebook [`README.ipynb`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/README.ipynb) details how to use the library through the [`RudiNodeWriter`](https://github.com/OlivierMartineau/rudi-node-write/blob/main/src/rudi_node_write/rudi_node_writer.py) object.
97
-
98
- ## Testing
99
-
100
- The [tests](https://github.com/OlivierMartineau/rudi-node-write/tree/main/tests) can be analyzed for further
101
- information about how to call the API
102
-
103
- ```bash
104
- $ pytest
105
- ```
@@ -1,56 +0,0 @@
1
- beautifulsoup4==4.15.0
2
- chardet==7.4.3
3
- deepdiff==9.1.0
4
- puremagic==2.2.0
5
-
6
- [dev]
7
- backports.tarfile==1.2.0
8
- black==25.1.0
9
- build==1.2.2.post1
10
- commitizen==4.8.3
11
- configparser==7.2.0
12
- contourpy==1.3.2
13
- cssbeautifier==1.15.4
14
- cycler==0.12.1
15
- email-validator==2.2.0
16
- fastapi==0.115.14
17
- fastapi-cli==0.0.7
18
- flake8==7.3.0
19
- ftfy==6.3.1
20
- httptools==0.6.4
21
- httpx==0.28.1
22
- importlib-resources==6.5.2
23
- inflect==7.5.0
24
- ipykernel==6.29.5
25
- jaraco-collections==5.2.1
26
- jaraco-functools==4.2.1
27
- jaraco.collections==5.1.0
28
- json5==0.12.0
29
- kiwisolver==1.4.8
30
- lxml==6.0.0
31
- nbstripout==0.8.1
32
- onlykey-agent==1.1.15
33
- ordered-set==4.1.0
34
- pip-autoremove==0.10.0
35
- pip-chill==1.0.3
36
- pip-upgrade-outdated==1.5
37
- pip3-autoremove==1.2.2
38
- pkginfo==1.12.1.2
39
- pre-commit==4.2.0
40
- pre-commit-hooks==5.0.0
41
- protobuf==6.31.1
42
- py-env==0.0.1
43
- pybind11==2.13.6
44
- pyright==1.1.402
45
- pyside6-addons==6.9.1
46
- pytest-check==2.5.3
47
- pytest-cov==6.2.1
48
- python-dotenv==1.1.1
49
- python-multipart==0.0.20
50
- regex==2024.11.6
51
- timm==1.0.16
52
- tomli==2.2.1
53
- twine==6.1.0
54
- uvloop==0.21.0
55
- watchfiles==1.1.0
56
- websockets==15.0.1