rudi-node-write 1.3.2__tar.gz → 1.3.4__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 (48) hide show
  1. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/PKG-INFO +28 -4
  2. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/pyproject.toml +2 -2
  3. rudi_node_write-1.3.4/requirements-dev.txt +193 -0
  4. rudi_node_write-1.3.4/requirements.txt +7 -0
  5. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/io_connector.py +2 -2
  6. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_node_writer.py +10 -15
  7. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_const.py +1 -2
  8. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_dictionary_entry.py +2 -2
  9. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_media.py +10 -9
  10. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_meta.py +5 -12
  11. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/dict_utils.py +2 -3
  12. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/file_utils.py +9 -1
  13. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/list_utils.py +3 -3
  14. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/str_utils.py +1 -1
  15. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write.egg-info/PKG-INFO +28 -4
  16. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write.egg-info/requires.txt +27 -3
  17. rudi_node_write-1.3.2/requirements-dev.txt +0 -114
  18. rudi_node_write-1.3.2/requirements.txt +0 -7
  19. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/LICENCE.md +0 -0
  20. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/README.md +0 -0
  21. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/setup.cfg +0 -0
  22. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/__init__.py +0 -0
  23. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/conf/meta_defaults.py +0 -0
  24. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/io_rudi_catalog_write.py +0 -0
  25. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/io_rudi_jwt_factory.py +0 -0
  26. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/io_rudi_manager_write.py +0 -0
  27. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/io_rudi_manager_write_v2.py +0 -0
  28. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/io_rudi_manager_write_v3.py +0 -0
  29. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/io_rudi_storage_write.py +0 -0
  30. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/connectors/rudi_node_auth.py +0 -0
  31. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_contact.py +0 -0
  32. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_dates.py +0 -0
  33. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_geo.py +0 -0
  34. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_licence.py +0 -0
  35. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_meta_misc.py +0 -0
  36. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/rudi_org.py +0 -0
  37. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/rudi_types/serializable.py +0 -0
  38. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/err.py +0 -0
  39. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/html_utils.py +0 -0
  40. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/jwt.py +0 -0
  41. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/log.py +0 -0
  42. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/type_date.py +0 -0
  43. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/typing_utils.py +0 -0
  44. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write/utils/url_utils.py +0 -0
  45. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write.egg-info/SOURCES.txt +0 -0
  46. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write.egg-info/dependency_links.txt +0 -0
  47. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/src/rudi_node_write.egg-info/top_level.txt +0 -0
  48. {rudi_node_write-1.3.2 → rudi_node_write-1.3.4}/tests/test_rudi_node_write.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rudi-node-write
3
- Version: 1.3.2
3
+ Version: 1.3.4
4
4
  Summary: Use the internal API of a RUDI Producer node
5
5
  Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
6
  Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
@@ -24,14 +24,28 @@ Provides-Extra: dev
24
24
  Requires-Dist: backports.tarfile==1.2.0; extra == "dev"
25
25
  Requires-Dist: black==25.1.0; extra == "dev"
26
26
  Requires-Dist: build==1.2.2.post1; extra == "dev"
27
- Requires-Dist: commitizen==4.7.2; extra == "dev"
27
+ Requires-Dist: commitizen==4.8.2; 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.12; extra == "dev"
34
+ Requires-Dist: fastapi-cli==0.0.7; extra == "dev"
28
35
  Requires-Dist: flake8==7.2.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"
29
39
  Requires-Dist: importlib-metadata==8.7.0; extra == "dev"
30
40
  Requires-Dist: importlib-resources==6.5.2; extra == "dev"
31
41
  Requires-Dist: inflect==7.5.0; extra == "dev"
32
42
  Requires-Dist: ipykernel==6.29.5; extra == "dev"
33
43
  Requires-Dist: jaraco.collections==5.1.0; extra == "dev"
44
+ Requires-Dist: json5==0.12.0; extra == "dev"
45
+ Requires-Dist: kiwisolver==1.4.8; extra == "dev"
46
+ Requires-Dist: lxml==5.4.0; extra == "dev"
34
47
  Requires-Dist: nbstripout==0.8.1; extra == "dev"
48
+ Requires-Dist: onlykey-agent==1.1.15; extra == "dev"
35
49
  Requires-Dist: ordered-set==4.1.0; extra == "dev"
36
50
  Requires-Dist: pip-autoremove==0.10.0; extra == "dev"
37
51
  Requires-Dist: pip-chill==1.0.3; extra == "dev"
@@ -40,13 +54,23 @@ Requires-Dist: pip3-autoremove==1.2.2; extra == "dev"
40
54
  Requires-Dist: pkginfo==1.12.1.2; extra == "dev"
41
55
  Requires-Dist: pre-commit==4.2.0; extra == "dev"
42
56
  Requires-Dist: pre-commit-hooks==5.0.0; extra == "dev"
57
+ Requires-Dist: protobuf==6.31.1; extra == "dev"
43
58
  Requires-Dist: py-env==0.0.1; extra == "dev"
44
- Requires-Dist: pyright==1.1.400; extra == "dev"
59
+ Requires-Dist: pybind11==2.13.6; extra == "dev"
60
+ Requires-Dist: pyright==1.1.401; extra == "dev"
61
+ Requires-Dist: pyside6-addons==6.9.0; extra == "dev"
45
62
  Requires-Dist: pytest-check==2.5.3; extra == "dev"
46
63
  Requires-Dist: pytest-cov==6.1.1; extra == "dev"
47
- Requires-Dist: rudi-node-write==1.3.1; extra == "dev"
64
+ Requires-Dist: python-dotenv==1.1.0; extra == "dev"
65
+ Requires-Dist: python-multipart==0.0.20; extra == "dev"
66
+ Requires-Dist: regex==2024.11.6; extra == "dev"
67
+ Requires-Dist: rudi-node-write==1.3.3; extra == "dev"
68
+ Requires-Dist: timm==1.0.15; extra == "dev"
48
69
  Requires-Dist: tomli==2.2.1; extra == "dev"
49
70
  Requires-Dist: twine==6.1.0; extra == "dev"
71
+ Requires-Dist: uvloop==0.21.0; extra == "dev"
72
+ Requires-Dist: watchfiles==1.0.5; extra == "dev"
73
+ Requires-Dist: websockets==15.0.1; extra == "dev"
50
74
  Dynamic: license-file
51
75
 
52
76
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "rudi-node-write"
7
- version = "1.3.2"
7
+ version = "1.3.4"
8
8
  authors = [{ name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" }]
9
9
  maintainers = [
10
10
  { name = "Olivier Martineau", email = "olivier.martineau@irisa.fr" },
@@ -45,7 +45,7 @@ target-version = ['py311']
45
45
  # ----- Tool: commitizen
46
46
  [tool.commitizen]
47
47
  name = "cz_conventional_commits"
48
- version = "1.3.2"
48
+ version = "1.3.4"
49
49
  version_files = ["pyproject.toml:version"]
50
50
 
51
51
  # ----- Tool: pytest
@@ -0,0 +1,193 @@
1
+ # -r requirements.txt
2
+ backports.tarfile==1.2.0
3
+ black==25.1.0
4
+ build==1.2.2.post1
5
+ commitizen==4.8.2
6
+ configparser==7.2.0
7
+ contourpy==1.3.2
8
+ cssbeautifier==1.15.4
9
+ cycler==0.12.1
10
+ email-validator==2.2.0
11
+ fastapi==0.115.12
12
+ fastapi-cli==0.0.7
13
+ flake8==7.2.0
14
+ ftfy==6.3.1
15
+ httptools==0.6.4
16
+ httpx==0.28.1
17
+ importlib-metadata==8.7.0
18
+ importlib-resources==6.5.2
19
+ inflect==7.5.0
20
+ ipykernel==6.29.5
21
+ jaraco.collections==5.1.0
22
+ json5==0.12.0
23
+ kiwisolver==1.4.8
24
+ lxml==5.4.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.401
39
+ pyside6-addons==6.9.0
40
+ pytest-check==2.5.3
41
+ pytest-cov==6.1.1
42
+ python-dotenv==1.1.0
43
+ python-multipart==0.0.20
44
+ regex==2024.11.6
45
+ rudi-node-write==1.3.3
46
+ timm==1.0.15
47
+ tomli==2.2.1
48
+ twine==6.1.0
49
+ uvloop==0.21.0
50
+ watchfiles==1.0.5
51
+ websockets==15.0.1
52
+ # aenum==3.1.16 # Installed as dependency for onlykey
53
+ # annotated-types==0.7.0 # Installed as dependency for pydantic
54
+ # anyio==4.9.0 # Installed as dependency for httpx, starlette, watchfiles
55
+ # appnope==0.1.4 # Installed as dependency for ipykernel
56
+ # argcomplete==3.6.2 # Installed as dependency for commitizen
57
+ # asttokens==3.0.0 # Installed as dependency for stack-data
58
+ # attrs==25.3.0 # Installed as dependency for jsonschema, referencing
59
+ # autocommand==2.2.2 # Installed as dependency for jaraco.text
60
+ # backports.shutil-which==3.5.2 # Installed as dependency for lib-agent
61
+ # bech32==1.2.0 # Installed as dependency for lib-agent
62
+ # certifi==2025.4.26 # Installed as dependency for httpcore, httpx, requests
63
+ # cffi==1.17.1 # Installed as dependency for cryptography, pynacl
64
+ # cfgv==3.4.0 # Installed as dependency for pre-commit
65
+ # charset-normalizer==3.4.2 # Installed as dependency for commitizen, requests
66
+ # click==8.2.1 # Installed as dependency for black, onlykey-solo-python, rich-toolkit, typer, uvicorn
67
+ # colorama==0.4.6 # Installed as dependency for commitizen
68
+ # comm==0.2.2 # Installed as dependency for ipykernel
69
+ # configargparse==1.7.1 # Installed as dependency for lib-agent
70
+ # coverage==7.8.2 # Installed as dependency for pytest-cov
71
+ # cryptography==45.0.3 # Installed as dependency for fido2, lib-agent, onlykey-solo-python
72
+ # cython==3.1.1 # Installed as dependency for onlykey
73
+ # debugpy==1.8.14 # Installed as dependency for ipykernel
74
+ # decli==0.6.3 # Installed as dependency for commitizen
75
+ # decorator==5.2.1 # Installed as dependency for ipython
76
+ # distlib==0.3.9 # Installed as dependency for virtualenv
77
+ # dnspython==2.7.0 # Installed as dependency for email-validator
78
+ # docutils==0.21.2 # Installed as dependency for lib-agent, readme-renderer
79
+ # ecdsa==0.19.1 # Installed as dependency for lib-agent, onlykey, onlykey-solo-python
80
+ # editorconfig==0.17.0 # Installed as dependency for cssbeautifier, jsbeautifier
81
+ # executing==2.2.0 # Installed as dependency for stack-data
82
+ # fastjsonschema==2.21.1 # Installed as dependency for nbformat
83
+ # fido2==2.0.0 # Installed as dependency for onlykey-solo-python
84
+ # filelock==3.18.0 # Installed as dependency for huggingface-hub, torch, virtualenv
85
+ # fsspec==2025.5.1 # Installed as dependency for huggingface-hub, torch
86
+ # h11==0.16.0 # Installed as dependency for httpcore, uvicorn
87
+ # hf-xet==1.1.2 # Installed as dependency for huggingface-hub
88
+ # hidapi==0.14.0.post4 # Installed as dependency for onlykey
89
+ # httpcore==1.0.9 # Installed as dependency for httpx
90
+ # huggingface-hub==0.32.3 # Installed as dependency for timm
91
+ # id==1.5.0 # Installed as dependency for twine
92
+ # identify==2.6.12 # Installed as dependency for pre-commit
93
+ # idna==3.10 # Installed as dependency for anyio, email-validator, httpx, requests
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.3.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.1.0 # Installed as dependency for jaraco.text, keyring
101
+ # jaraco.text==4.0.0 # Installed as dependency for 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.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.2.6 # 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.2.1 # 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
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.13.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.5 # Installed as dependency for fastapi
144
+ # pydantic-core==2.34.1 # Installed as dependency for pydantic
145
+ # pyflakes==3.3.2 # Installed as dependency for flake8
146
+ # pygments==2.19.1 # Installed as dependency for ipython, ipython-pygments-lexers, 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.0 # Installed as dependency for pyside6-addons
152
+ # pytest==8.3.5 # 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==26.4.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.3 # 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.7 # Installed as dependency for fastapi-cli
166
+ # rpds-py==0.25.1 # Installed as dependency for jsonschema, referencing
167
+ # ruamel.yaml==0.18.12 # 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.0 # 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.47.0 # 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.2 # Installed as dependency for commitizen
180
+ # torch==2.7.0 # Installed as dependency for timm, torchvision
181
+ # torchvision==0.22.0 # 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.2 # 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.4.0 # Installed as dependency for requests, twine
190
+ # uvicorn==0.34.3 # 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.22.0 # Installed as dependency for importlib-metadata
@@ -0,0 +1,7 @@
1
+ beautifulsoup4==4.13.4
2
+ chardet==5.2.0
3
+ deepdiff==8.5.0
4
+ puremagic==1.29
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
@@ -5,9 +5,9 @@ from urllib.parse import urlsplit
5
5
 
6
6
  from rudi_node_write.rudi_types.rudi_const import check_is_literal
7
7
  from rudi_node_write.rudi_types.serializable import Serializable
8
- from rudi_node_write.utils.dict_utils import is_dict, safe_get_key
8
+ from rudi_node_write.utils.dict_utils import safe_get_key
9
9
  from rudi_node_write.utils.err import HttpError
10
- from rudi_node_write.utils.log import log_d_if, log_e, log_d, log_w
10
+ from rudi_node_write.utils.log import log_d_if, log_e, log_d
11
11
  from rudi_node_write.utils.str_utils import slash_join
12
12
  from rudi_node_write.utils.url_utils import get_response_cookies, url_encode_req_params
13
13
 
@@ -496,20 +496,15 @@ class RudiNodeWriter:
496
496
 
497
497
  if __name__ == "__main__": # pragma: no cover
498
498
  begin = time()
499
- NODE_URL = "url" # The URL of RUDI node
500
- PM_URL = "pm_url" # The URL of the RUDI node manager. If not set in the credential file, it will be set to NODE_URL+'/prodmanager'
501
499
  tests = "RudiNodeWriter tests"
502
- creds_file = "../creds/creds_release.json"
500
+ creds_file = "../creds/creds_2.5.2.json"
503
501
  rudi_node_creds = read_json_file(creds_file)
504
- if rudi_node_creds.get(PM_URL) is not None:
505
- pm_url = rudi_node_creds[PM_URL]
506
- else:
507
- pm_url = rudi_node_creds[NODE_URL] + "/prodmanager"
508
-
509
- if (b64url_auth := rudi_node_creds["b64auth"]) is not None:
502
+ pm_url = slash_join(rudi_node_creds.get("url"), "manager")
503
+ b64url_auth = rudi_node_creds.get("b64auth")
504
+ if b64url_auth is not None:
510
505
  auth = RudiNodeAuth(b64url_auth=b64url_auth)
511
506
  else:
512
- auth = RudiNodeAuth(usr=rudi_node_creds["pm_usr"], pwd=rudi_node_creds["pm_pwd"])
507
+ auth = RudiNodeAuth(usr=rudi_node_creds.get("usr"), pwd=rudi_node_creds.get("pwd"))
513
508
 
514
509
  rudi_node_writer = RudiNodeWriter(pm_url=pm_url, auth=auth)
515
510
  log_d(tests, "used_organization_list", rudi_node_writer.used_organization_list)
@@ -519,18 +514,18 @@ if __name__ == "__main__": # pragma: no cover
519
514
  log_d(tests, "contact_1_id", rudi_node_writer.contact_list[0]["contact_id"])
520
515
  # log_d(tests, "metadata_with_available_media", rudi_node_writer.select_metadata_with_available_media())
521
516
 
522
- release_creds = read_json_file("../creds/creds_release.json")
517
+ release_creds = read_json_file("../creds/creds_2.5.2.json")
523
518
  auth = RudiNodeAuth(b64url_auth=release_creds["b64auth"])
524
- writer = RudiNodeWriter(release_creds["pm_url"], auth)
519
+ writer = RudiNodeWriter(release_creds["url"], auth)
525
520
  path1 = "../dwnld/tball.gif"
526
521
  path2 = "../dwnld/toucan.jpg"
527
522
  path3 = "../dwnld/unicode_chars.txt"
528
523
  try:
529
524
  answer = loads(str(writer.post_local_file_and_media_info(file_local_path=path1)))
530
- print(f"Filename : {path1}, file type : {answer["file_type"]}")
525
+ print("Filename:", path1, "file type:", answer["file_type"])
531
526
  answer2 = loads(str(writer.post_local_file_and_media_info(file_local_path=path2)))
532
- print(f"Filename : {path2}, file type : {answer2["file_type"]}")
527
+ print("Filename:", path2, "file type:", answer2["file_type"])
533
528
  answer3 = loads(str(writer.post_local_file_and_media_info(file_local_path=path3)))
534
- print(f"Filename : {path3}, file type : {answer3["file_type"]}")
529
+ print("Filename:", path3, "file type:", answer3["file_type"])
535
530
  except Exception as e:
536
531
  print(str(e))
@@ -2,7 +2,6 @@ from re import compile
2
2
  from typing import Literal, get_args, Final
3
3
 
4
4
  from rudi_node_write.utils.err import LiteralUnexpectedValueException
5
- from rudi_node_write.utils.str_utils import is_string
6
5
 
7
6
  # -----[ RUDI version ]-------------------------------------------------------------------------------------------------
8
7
 
@@ -346,6 +345,6 @@ def check_is_literal_or_none(val, series: tuple, err_msg: str = "incorrect value
346
345
 
347
346
 
348
347
  def check_rudi_version(version: str):
349
- if not (is_string(version) and REGEX_RUDI_VERSION.match(version)):
348
+ if not (isinstance(version, str) and REGEX_RUDI_VERSION.match(version)):
350
349
  raise ValueError(f"Incorrect RUDI metadata version: '{version}'")
351
350
  return version
@@ -4,7 +4,7 @@ from rudi_node_write.conf.meta_defaults import DEFAULT_LANG
4
4
  from rudi_node_write.rudi_types.rudi_const import RECOGNIZED_LANGUAGES, Language, check_is_literal
5
5
  from rudi_node_write.rudi_types.serializable import Serializable
6
6
  from rudi_node_write.utils.dict_utils import check_is_dict, check_has_key
7
- from rudi_node_write.utils.list_utils import is_list, are_list_equal
7
+ from rudi_node_write.utils.list_utils import are_list_equal
8
8
  from rudi_node_write.utils.log import log_d
9
9
  from rudi_node_write.utils.str_utils import check_is_string
10
10
  from rudi_node_write.utils.typing_utils import get_type_name
@@ -35,7 +35,7 @@ class RudiDictionaryEntry(Serializable):
35
35
 
36
36
  class RudiDictionaryEntryList(Serializable, list):
37
37
  def __init__(self, list_entries: list[RudiDictionaryEntry]):
38
- if not is_list(list_entries):
38
+ if not isinstance(list_entries, list):
39
39
  raise ValueError("input parameter should be a list")
40
40
  super().__init__()
41
41
  for entry in list_entries:
@@ -18,13 +18,13 @@ from rudi_node_write.rudi_types.rudi_const import (
18
18
  )
19
19
  from rudi_node_write.rudi_types.rudi_dates import RudiDates
20
20
  from rudi_node_write.rudi_types.serializable import Serializable
21
- from rudi_node_write.utils.dict_utils import check_is_dict, check_has_key, is_dict
21
+ from rudi_node_write.utils.dict_utils import check_is_dict, check_has_key
22
22
  from rudi_node_write.utils.file_utils import FileDetails
23
- from rudi_node_write.utils.list_utils import check_is_list_or_none, is_list
23
+ from rudi_node_write.utils.list_utils import check_is_list_or_none
24
24
  from rudi_node_write.utils.log import log_d
25
25
  from rudi_node_write.utils.str_utils import check_is_string_or_none, check_is_uuid4, check_is_string, uuid4_str
26
26
  from rudi_node_write.utils.type_date import Date
27
- from rudi_node_write.utils.typing_utils import check_is_int, does_inherit_from, get_type_name, check_type, is_type
27
+ from rudi_node_write.utils.typing_utils import check_is_int, does_inherit_from, get_type_name, check_type
28
28
 
29
29
  NORMALIZED_CONNECTOR_PARAMS_TYPES = {
30
30
  "STR": "STRING",
@@ -116,8 +116,7 @@ class RudiMediaConnectorParameter(Serializable):
116
116
  accepted_values=accepted_values,
117
117
  usage=check_is_string_or_none(o.get("usage")), # type: ignore
118
118
  )
119
- if is_list(o):
120
- # log_d(here, 'is_list')
119
+ if isinstance(o, list):
121
120
  return RudiMediaConnectorParameterList.from_json(o)
122
121
 
123
122
  raise TypeError("RudiMediaConnectorParameter.from_json input should be a dict")
@@ -139,9 +138,9 @@ class RudiMediaConnectorParameterList(Serializable, list[RudiMediaConnectorParam
139
138
 
140
139
  @staticmethod
141
140
  def from_json(o: list | dict):
142
- if is_dict(o):
141
+ if isinstance(o, dict):
143
142
  return RudiMediaConnectorParameterList([RudiMediaConnectorParameter.from_json(o)])
144
- if is_list(o):
143
+ if isinstance(o, list):
145
144
  return RudiMediaConnectorParameterList([RudiMediaConnectorParameter.from_json(entry) for entry in o])
146
145
  raise TypeError("Property 'connector_parameters' should be a list")
147
146
 
@@ -159,9 +158,11 @@ class RudiMediaConnector(Serializable):
159
158
  self.interface_contract = check_is_string_or_none(interface_contract)
160
159
  self.connector_parameters = None
161
160
  if connector_parameters is not None:
162
- if is_type(connector_parameters, RudiMediaConnectorParameterList):
161
+ if isinstance(connector_parameters, RudiMediaConnectorParameterList):
163
162
  self.connector_parameters = connector_parameters
164
- elif is_list(connector_parameters) or is_type(connector_parameters, RudiMediaConnectorParameter):
163
+ elif isinstance(connector_parameters, list) or isinstance(
164
+ connector_parameters, RudiMediaConnectorParameter
165
+ ):
165
166
  self.connector_parameters = RudiMediaConnectorParameterList(connector_parameters)
166
167
  else:
167
168
  check_type(connector_parameters, RudiMediaConnectorParameterList)
@@ -3,7 +3,6 @@ from uuid import UUID
3
3
  from rudi_node_write.conf.meta_defaults import RUDI_API_VERSION
4
4
  from rudi_node_write.rudi_types.rudi_const import (
5
5
  METADATA_STATUSES,
6
- MetadataStatus,
7
6
  StorageStatus,
8
7
  Language,
9
8
  check_is_literal,
@@ -22,21 +21,15 @@ from rudi_node_write.rudi_types.rudi_meta_misc import RudiMetadataInfo, RudiData
22
21
  from rudi_node_write.rudi_types.rudi_org import RudiOrganization
23
22
  from rudi_node_write.rudi_types.serializable import Serializable
24
23
  from rudi_node_write.utils.dict_utils import check_is_dict, check_has_key
25
- from rudi_node_write.utils.list_utils import is_list, ensure_is_str_list
24
+ from rudi_node_write.utils.list_utils import ensure_is_str_list
26
25
  from rudi_node_write.utils.log import log_d
27
- from rudi_node_write.utils.str_utils import (
28
- check_is_string_or_none,
29
- check_is_uuid4,
30
- check_is_string,
31
- is_string,
32
- uuid4_str,
33
- )
26
+ from rudi_node_write.utils.str_utils import check_is_string_or_none, check_is_uuid4, check_is_string, uuid4_str
34
27
  from rudi_node_write.utils.type_date import Date
35
28
  from rudi_node_write.utils.typing_utils import check_type_or_null, get_type_name, check_type
36
29
 
37
30
 
38
31
  def normalize_theme(theme: str | list) -> str:
39
- normalized_theme = ThemeTranslation.get(theme[0] if is_list(theme) else theme)
32
+ normalized_theme = ThemeTranslation.get(theme[0] if isinstance(theme, list) else theme)
40
33
  return (
41
34
  normalized_theme.strip()
42
35
  if normalized_theme is not None
@@ -105,7 +98,7 @@ class RudiMetadata(Serializable):
105
98
  if resource_languages is None
106
99
  else (
107
100
  [check_is_literal(resource_languages, RECOGNIZED_LANGUAGES)]
108
- if is_string(resource_languages)
101
+ if isinstance(resource_languages, str)
109
102
  else [check_is_literal(lang, RECOGNIZED_LANGUAGES) for lang in resource_languages]
110
103
  )
111
104
  )
@@ -116,7 +109,7 @@ class RudiMetadata(Serializable):
116
109
 
117
110
  self.collection_tag = check_is_string_or_none(collection_tag)
118
111
  self.metadata_source = check_is_string_or_none(metadata_source)
119
- self.metadata_status = check_is_literal(metadata_status, METADATA_STATUSES)
112
+ self.metadata_status = check_is_literal_or_none(metadata_status, METADATA_STATUSES)
120
113
 
121
114
  @staticmethod
122
115
  def from_json(o: dict):
@@ -63,7 +63,7 @@ def safe_get_key(obj, *args):
63
63
  :param args: hierarchy of attributes we need to access.
64
64
  :return: None if the operation doesn't succeed. o['arg1']['arg2']...['argN'] otherwise.
65
65
  """
66
- if not is_dict(obj):
66
+ if not isinstance(obj, dict):
67
67
  return None
68
68
  leaf = obj
69
69
  nb_args = len(args)
@@ -73,7 +73,7 @@ def safe_get_key(obj, *args):
73
73
  return None
74
74
  if i + 1 == nb_args:
75
75
  return leaf
76
- if not is_dict(leaf):
76
+ if not isinstance(leaf, dict):
77
77
  return None
78
78
  return None
79
79
 
@@ -106,7 +106,6 @@ def is_element_matching_filter(element, match_filter) -> bool:
106
106
  if not has_key(element, key) or not is_element_matching_filter(element[key], val):
107
107
  return False
108
108
  return True
109
- # elif is_list(element):
110
109
  if isinstance(match_filter, dict):
111
110
  for e in element:
112
111
  if is_element_matching_filter(e, match_filter):
@@ -1,7 +1,7 @@
1
1
  from chardet import detect
2
2
  from hashlib import md5, sha256, sha512
3
3
  from json import load, dump
4
- from os import stat
4
+ from os import makedirs, stat
5
5
  from os.path import exists
6
6
  from pathlib import Path
7
7
  from puremagic import magic_file
@@ -23,6 +23,14 @@ def check_is_dir(dir_local_path: str, err_msg: str | None = None):
23
23
  return dir_local_path
24
24
 
25
25
 
26
+ def make_dir(dir_local_path: str):
27
+ if not exists(dir_local_path):
28
+ makedirs(dir_local_path)
29
+ else:
30
+ check_is_dir(dir_local_path)
31
+ return dir_local_path
32
+
33
+
26
34
  def exists_file(file_local_path: str):
27
35
  return exists(file_local_path)
28
36
 
@@ -79,11 +79,11 @@ def merge_lists(list_a: list | None, list_b: list | None):
79
79
  return list_a
80
80
  if list_a is None:
81
81
  return list_b
82
- if is_list(list_a) and is_list(list_b):
82
+ if isinstance(list_a, list) and isinstance(list_b, list):
83
83
  return list_a + list_b
84
- if is_list(list_a):
84
+ if isinstance(list_a, list):
85
85
  return list_a + [list_b]
86
- if is_list(list_b):
86
+ if isinstance(list_b, list):
87
87
  return [list_a] + list_b
88
88
 
89
89
 
@@ -29,7 +29,7 @@ REGEX_UUID = compile(r"^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[
29
29
 
30
30
 
31
31
  def is_email(email_str: str):
32
- return is_string(email_str) and bool(REGEX_EMAIL.match(email_str))
32
+ return isinstance(email_str, str) and bool(REGEX_EMAIL.match(email_str))
33
33
 
34
34
 
35
35
  def check_is_email(email_str: str) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rudi-node-write
3
- Version: 1.3.2
3
+ Version: 1.3.4
4
4
  Summary: Use the internal API of a RUDI Producer node
5
5
  Author-email: Olivier Martineau <olivier.martineau@irisa.fr>
6
6
  Maintainer-email: Olivier Martineau <olivier.martineau@irisa.fr>
@@ -24,14 +24,28 @@ Provides-Extra: dev
24
24
  Requires-Dist: backports.tarfile==1.2.0; extra == "dev"
25
25
  Requires-Dist: black==25.1.0; extra == "dev"
26
26
  Requires-Dist: build==1.2.2.post1; extra == "dev"
27
- Requires-Dist: commitizen==4.7.2; extra == "dev"
27
+ Requires-Dist: commitizen==4.8.2; 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.12; extra == "dev"
34
+ Requires-Dist: fastapi-cli==0.0.7; extra == "dev"
28
35
  Requires-Dist: flake8==7.2.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"
29
39
  Requires-Dist: importlib-metadata==8.7.0; extra == "dev"
30
40
  Requires-Dist: importlib-resources==6.5.2; extra == "dev"
31
41
  Requires-Dist: inflect==7.5.0; extra == "dev"
32
42
  Requires-Dist: ipykernel==6.29.5; extra == "dev"
33
43
  Requires-Dist: jaraco.collections==5.1.0; extra == "dev"
44
+ Requires-Dist: json5==0.12.0; extra == "dev"
45
+ Requires-Dist: kiwisolver==1.4.8; extra == "dev"
46
+ Requires-Dist: lxml==5.4.0; extra == "dev"
34
47
  Requires-Dist: nbstripout==0.8.1; extra == "dev"
48
+ Requires-Dist: onlykey-agent==1.1.15; extra == "dev"
35
49
  Requires-Dist: ordered-set==4.1.0; extra == "dev"
36
50
  Requires-Dist: pip-autoremove==0.10.0; extra == "dev"
37
51
  Requires-Dist: pip-chill==1.0.3; extra == "dev"
@@ -40,13 +54,23 @@ Requires-Dist: pip3-autoremove==1.2.2; extra == "dev"
40
54
  Requires-Dist: pkginfo==1.12.1.2; extra == "dev"
41
55
  Requires-Dist: pre-commit==4.2.0; extra == "dev"
42
56
  Requires-Dist: pre-commit-hooks==5.0.0; extra == "dev"
57
+ Requires-Dist: protobuf==6.31.1; extra == "dev"
43
58
  Requires-Dist: py-env==0.0.1; extra == "dev"
44
- Requires-Dist: pyright==1.1.400; extra == "dev"
59
+ Requires-Dist: pybind11==2.13.6; extra == "dev"
60
+ Requires-Dist: pyright==1.1.401; extra == "dev"
61
+ Requires-Dist: pyside6-addons==6.9.0; extra == "dev"
45
62
  Requires-Dist: pytest-check==2.5.3; extra == "dev"
46
63
  Requires-Dist: pytest-cov==6.1.1; extra == "dev"
47
- Requires-Dist: rudi-node-write==1.3.1; extra == "dev"
64
+ Requires-Dist: python-dotenv==1.1.0; extra == "dev"
65
+ Requires-Dist: python-multipart==0.0.20; extra == "dev"
66
+ Requires-Dist: regex==2024.11.6; extra == "dev"
67
+ Requires-Dist: rudi-node-write==1.3.3; extra == "dev"
68
+ Requires-Dist: timm==1.0.15; extra == "dev"
48
69
  Requires-Dist: tomli==2.2.1; extra == "dev"
49
70
  Requires-Dist: twine==6.1.0; extra == "dev"
71
+ Requires-Dist: uvloop==0.21.0; extra == "dev"
72
+ Requires-Dist: watchfiles==1.0.5; extra == "dev"
73
+ Requires-Dist: websockets==15.0.1; extra == "dev"
50
74
  Dynamic: license-file
51
75
 
52
76
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
@@ -7,14 +7,28 @@ puremagic==1.29
7
7
  backports.tarfile==1.2.0
8
8
  black==25.1.0
9
9
  build==1.2.2.post1
10
- commitizen==4.7.2
10
+ commitizen==4.8.2
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.12
17
+ fastapi-cli==0.0.7
11
18
  flake8==7.2.0
19
+ ftfy==6.3.1
20
+ httptools==0.6.4
21
+ httpx==0.28.1
12
22
  importlib-metadata==8.7.0
13
23
  importlib-resources==6.5.2
14
24
  inflect==7.5.0
15
25
  ipykernel==6.29.5
16
26
  jaraco.collections==5.1.0
27
+ json5==0.12.0
28
+ kiwisolver==1.4.8
29
+ lxml==5.4.0
17
30
  nbstripout==0.8.1
31
+ onlykey-agent==1.1.15
18
32
  ordered-set==4.1.0
19
33
  pip-autoremove==0.10.0
20
34
  pip-chill==1.0.3
@@ -23,10 +37,20 @@ pip3-autoremove==1.2.2
23
37
  pkginfo==1.12.1.2
24
38
  pre-commit==4.2.0
25
39
  pre-commit-hooks==5.0.0
40
+ protobuf==6.31.1
26
41
  py-env==0.0.1
27
- pyright==1.1.400
42
+ pybind11==2.13.6
43
+ pyright==1.1.401
44
+ pyside6-addons==6.9.0
28
45
  pytest-check==2.5.3
29
46
  pytest-cov==6.1.1
30
- rudi-node-write==1.3.1
47
+ python-dotenv==1.1.0
48
+ python-multipart==0.0.20
49
+ regex==2024.11.6
50
+ rudi-node-write==1.3.3
51
+ timm==1.0.15
31
52
  tomli==2.2.1
32
53
  twine==6.1.0
54
+ uvloop==0.21.0
55
+ watchfiles==1.0.5
56
+ websockets==15.0.1
@@ -1,114 +0,0 @@
1
- # -r requirements.txt
2
- backports.tarfile==1.2.0
3
- black==25.1.0
4
- build==1.2.2.post1
5
- commitizen==4.7.2
6
- flake8==7.2.0
7
- importlib-metadata==8.7.0
8
- importlib-resources==6.5.2
9
- inflect==7.5.0
10
- ipykernel==6.29.5
11
- jaraco.collections==5.1.0
12
- nbstripout==0.8.1
13
- ordered-set==4.1.0
14
- pip-autoremove==0.10.0
15
- pip-chill==1.0.3
16
- pip-upgrade-outdated==1.5
17
- pip3-autoremove==1.2.2
18
- pkginfo==1.12.1.2
19
- pre-commit==4.2.0
20
- pre-commit-hooks==5.0.0
21
- py-env==0.0.1
22
- pyright==1.1.400
23
- pytest-check==2.5.3
24
- pytest-cov==6.1.1
25
- rudi-node-write==1.3.1
26
- tomli==2.2.1
27
- twine==6.1.0
28
- # appnope==0.1.4 # Installed as dependency for ipykernel
29
- # argcomplete==3.6.2 # Installed as dependency for commitizen
30
- # asttokens==3.0.0 # Installed as dependency for stack-data
31
- # attrs==25.3.0 # Installed as dependency for jsonschema, referencing
32
- # autocommand==2.2.2 # Installed as dependency for jaraco.text
33
- # certifi==2025.4.26 # Installed as dependency for requests
34
- # cfgv==3.4.0 # Installed as dependency for pre-commit
35
- # charset-normalizer==3.4.2 # Installed as dependency for commitizen, requests
36
- # click==8.2.0 # Installed as dependency for black
37
- # colorama==0.4.6 # Installed as dependency for commitizen
38
- # comm==0.2.2 # Installed as dependency for ipykernel
39
- # coverage==7.8.0 # Installed as dependency for pytest-cov
40
- # debugpy==1.8.14 # Installed as dependency for ipykernel
41
- # decli==0.6.2 # Installed as dependency for commitizen
42
- # decorator==5.2.1 # Installed as dependency for ipython
43
- # distlib==0.3.9 # Installed as dependency for virtualenv
44
- # docutils==0.21.2 # Installed as dependency for readme-renderer
45
- # executing==2.2.0 # Installed as dependency for stack-data
46
- # fastjsonschema==2.21.1 # Installed as dependency for nbformat
47
- # filelock==3.18.0 # Installed as dependency for virtualenv
48
- # id==1.5.0 # Installed as dependency for twine
49
- # identify==2.6.10 # Installed as dependency for pre-commit
50
- # idna==3.10 # Installed as dependency for requests
51
- # iniconfig==2.1.0 # Installed as dependency for pytest
52
- # ipython==9.2.0 # Installed as dependency for ipykernel
53
- # ipython-pygments-lexers==1.1.1 # Installed as dependency for ipython
54
- # jaraco.classes==3.4.0 # Installed as dependency for keyring
55
- # jaraco.context==6.0.1 # Installed as dependency for jaraco.text, keyring
56
- # jaraco.functools==4.1.0 # Installed as dependency for jaraco.text, keyring
57
- # jaraco.text==4.0.0 # Installed as dependency for jaraco.collections
58
- # jedi==0.19.2 # Installed as dependency for ipython
59
- # jinja2==3.1.6 # Installed as dependency for commitizen
60
- # jsonschema==4.23.0 # Installed as dependency for nbformat
61
- # jsonschema-specifications==2025.4.1 # Installed as dependency for jsonschema
62
- # jupyter-client==8.6.3 # Installed as dependency for ipykernel
63
- # jupyter-core==5.7.2 # Installed as dependency for ipykernel, jupyter-client, nbformat
64
- # keyring==25.6.0 # Installed as dependency for twine
65
- # markdown-it-py==3.0.0 # Installed as dependency for rich
66
- # markupsafe==3.0.2 # Installed as dependency for jinja2
67
- # matplotlib-inline==0.1.7 # Installed as dependency for ipykernel, ipython
68
- # mccabe==0.7.0 # Installed as dependency for flake8
69
- # mdurl==0.1.2 # Installed as dependency for markdown-it-py
70
- # more-itertools==10.7.0 # Installed as dependency for inflect, jaraco.classes, jaraco.functools, jaraco.text
71
- # mypy-extensions==1.1.0 # Installed as dependency for black
72
- # nbformat==5.10.4 # Installed as dependency for nbstripout
73
- # nest-asyncio==1.6.0 # Installed as dependency for ipykernel
74
- # nh3==0.2.21 # Installed as dependency for readme-renderer
75
- # nodeenv==1.9.1 # Installed as dependency for pre-commit, pyright
76
- # packaging==25.0 # Installed as dependency for black, build, commitizen, ipykernel, pytest, twine
77
- # parso==0.8.4 # Installed as dependency for jedi
78
- # pathspec==0.12.1 # Installed as dependency for black
79
- # pexpect==4.9.0 # Installed as dependency for ipython
80
- # platformdirs==4.3.8 # Installed as dependency for black, jupyter-core, virtualenv
81
- # pluggy==1.6.0 # Installed as dependency for pytest
82
- # prompt-toolkit==3.0.51 # Installed as dependency for ipython, questionary
83
- # psutil==7.0.0 # Installed as dependency for ipykernel
84
- # ptyprocess==0.7.0 # Installed as dependency for pexpect
85
- # pure-eval==0.2.3 # Installed as dependency for stack-data
86
- # pycodestyle==2.13.0 # Installed as dependency for flake8
87
- # pyflakes==3.3.2 # Installed as dependency for flake8
88
- # pygments==2.19.1 # Installed as dependency for ipython, ipython-pygments-lexers, readme-renderer, rich
89
- # pyproject-hooks==1.2.0 # Installed as dependency for build
90
- # pytest==8.3.5 # Installed as dependency for pytest-check, pytest-cov
91
- # python-dateutil==2.9.0.post0 # Installed as dependency for jupyter-client
92
- # pyyaml==6.0.2 # Installed as dependency for commitizen, pre-commit
93
- # pyzmq==26.4.0 # Installed as dependency for ipykernel, jupyter-client
94
- # questionary==2.1.0 # Installed as dependency for commitizen
95
- # readme-renderer==44.0 # Installed as dependency for twine
96
- # referencing==0.36.2 # Installed as dependency for jsonschema, jsonschema-specifications
97
- # requests==2.32.3 # Installed as dependency for id, requests-toolbelt, twine
98
- # requests-toolbelt==1.0.0 # Installed as dependency for twine
99
- # rfc3986==2.0.0 # Installed as dependency for twine
100
- # rich==14.0.0 # Installed as dependency for twine
101
- # rpds-py==0.25.0 # Installed as dependency for jsonschema, referencing
102
- # ruamel.yaml==0.18.10 # Installed as dependency for pre-commit-hooks
103
- # ruamel.yaml.clib==0.2.12 # Installed as dependency for ruamel.yaml
104
- # six==1.17.0 # Installed as dependency for python-dateutil
105
- # stack-data==0.6.3 # Installed as dependency for ipython
106
- # termcolor==2.5.0 # Installed as dependency for commitizen
107
- # tomlkit==0.13.2 # Installed as dependency for commitizen
108
- # tornado==6.5 # Installed as dependency for ipykernel, jupyter-client
109
- # traitlets==5.14.3 # Installed as dependency for comm, ipykernel, ipython, jupyter-client, jupyter-core, matplotlib-inline, nbformat
110
- # typeguard==4.4.2 # Installed as dependency for inflect
111
- # urllib3==2.4.0 # Installed as dependency for requests, twine
112
- # virtualenv==20.31.2 # Installed as dependency for pre-commit
113
- # wcwidth==0.2.13 # Installed as dependency for prompt-toolkit
114
- # zipp==3.21.0 # Installed as dependency for importlib-metadata
@@ -1,7 +0,0 @@
1
- beautifulsoup4==4.13.4
2
- chardet==5.2.0
3
- deepdiff==8.5.0
4
- puremagic==1.29
5
- # orderly-set==5.4.1 # Installed as dependency for deepdiff
6
- # soupsieve==2.7 # Installed as dependency for beautifulsoup4
7
- # typing-extensions==4.13.2 # Installed as dependency for beautifulsoup4, pyright, referencing, typeguard