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.
- rudi_node_write-1.5.0/PKG-INFO +52 -0
- rudi_node_write-1.5.0/pyproject.toml +139 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_catalog_write.py +7 -4
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_meta.py +5 -0
- rudi_node_write-1.5.0/src/rudi_node_write.egg-info/PKG-INFO +52 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write.egg-info/SOURCES.txt +0 -2
- rudi_node_write-1.5.0/src/rudi_node_write.egg-info/requires.txt +4 -0
- rudi_node_write-1.4.4/PKG-INFO +0 -105
- rudi_node_write-1.4.4/pyproject.toml +0 -82
- rudi_node_write-1.4.4/requirements-dev.txt +0 -193
- rudi_node_write-1.4.4/requirements.txt +0 -7
- rudi_node_write-1.4.4/src/rudi_node_write.egg-info/PKG-INFO +0 -105
- rudi_node_write-1.4.4/src/rudi_node_write.egg-info/requires.txt +0 -56
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/LICENCE.md +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/README.md +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/setup.cfg +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/__init__.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/conf/meta_defaults.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_connector.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_jwt_factory.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_manager_write.py +0 -0
- {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
- {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
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_rudi_storage_write.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/rudi_node_auth.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_node_writer.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_const.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_contact.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_dates.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_dictionary_entry.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_geo.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_licence.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_media.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_meta_misc.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_org.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/serializable.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/dict_utils.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/err.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/file_utils.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/html_utils.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/jwt.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/list_utils.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/log.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/str_utils.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/type_date.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/typing_utils.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/utils/url_utils.py +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write.egg-info/dependency_links.txt +0 -0
- {rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write.egg-info/top_level.txt +0 -0
- {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
|
+
[](https://github.com/psf/black)
|
|
24
|
+
[](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
|
|
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
|
|
309
|
-
|
|
310
|
-
|
|
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
|
+
[](https://github.com/psf/black)
|
|
24
|
+
[](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
|
+
```
|
rudi_node_write-1.4.4/PKG-INFO
DELETED
|
@@ -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
|
-
[](https://github.com/psf/black)
|
|
77
|
-
[](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
|
-
[](https://github.com/psf/black)
|
|
77
|
-
[](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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/io_connector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/connectors/rudi_node_auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_const.py
RENAMED
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_contact.py
RENAMED
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_dates.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_licence.py
RENAMED
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_media.py
RENAMED
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/rudi_meta_misc.py
RENAMED
|
File without changes
|
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write/rudi_types/serializable.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rudi_node_write-1.4.4 → rudi_node_write-1.5.0}/src/rudi_node_write.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|