corio 2.4.2__tar.gz → 2.4.3__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 (182) hide show
  1. {corio-2.4.2 → corio-2.4.3}/PKG-INFO +9 -9
  2. {corio-2.4.2 → corio-2.4.3}/corio/db/search.py +2 -0
  3. {corio-2.4.2 → corio-2.4.3}/corio/pyproject.package.toml +15 -15
  4. corio-2.4.3/corio/yml.py +39 -0
  5. {corio-2.4.2 → corio-2.4.3}/corio.egg-info/PKG-INFO +9 -9
  6. {corio-2.4.2 → corio-2.4.3}/corio.egg-info/SOURCES.txt +0 -1
  7. {corio-2.4.2 → corio-2.4.3}/corio.egg-info/requires.txt +8 -8
  8. {corio-2.4.2 → corio-2.4.3}/pyproject.toml +15 -15
  9. corio-2.4.2/corio/yml.py +0 -90
  10. corio-2.4.2/scripts/install-ys +0 -5
  11. {corio-2.4.2 → corio-2.4.3}/LICENSE +0 -0
  12. {corio-2.4.2 → corio-2.4.3}/README.md +0 -0
  13. {corio-2.4.2 → corio-2.4.3}/corio/__init__.py +0 -0
  14. {corio-2.4.2 → corio-2.4.3}/corio/ai/__init__.py +0 -0
  15. {corio-2.4.2 → corio-2.4.3}/corio/ai/agentic.py +0 -0
  16. {corio-2.4.2 → corio-2.4.3}/corio/ai/infer.py +0 -0
  17. {corio-2.4.2 → corio-2.4.3}/corio/aio.py +0 -0
  18. {corio-2.4.2 → corio-2.4.3}/corio/api/__init__.py +0 -0
  19. {corio-2.4.2 → corio-2.4.3}/corio/api/api.py +0 -0
  20. {corio-2.4.2 → corio-2.4.3}/corio/api/endpoint.py +0 -0
  21. {corio-2.4.2 → corio-2.4.3}/corio/augmentation.py +0 -0
  22. {corio-2.4.2 → corio-2.4.3}/corio/av.py +0 -0
  23. {corio-2.4.2 → corio-2.4.3}/corio/caching.py +0 -0
  24. {corio-2.4.2 → corio-2.4.3}/corio/constants.py +0 -0
  25. {corio-2.4.2 → corio-2.4.3}/corio/context.py +0 -0
  26. {corio-2.4.2 → corio-2.4.3}/corio/dataclass.py +0 -0
  27. {corio-2.4.2 → corio-2.4.3}/corio/datatype.py +0 -0
  28. {corio-2.4.2 → corio-2.4.3}/corio/db/__init__.py +0 -0
  29. {corio-2.4.2 → corio-2.4.3}/corio/db/document.py +0 -0
  30. {corio-2.4.2 → corio-2.4.3}/corio/debug.py +0 -0
  31. {corio-2.4.2 → corio-2.4.3}/corio/dm.py +0 -0
  32. {corio-2.4.2 → corio-2.4.3}/corio/dns/__init__.py +0 -0
  33. {corio-2.4.2 → corio-2.4.3}/corio/dns/client.py +0 -0
  34. {corio-2.4.2 → corio-2.4.3}/corio/dns/dm.py +0 -0
  35. {corio-2.4.2 → corio-2.4.3}/corio/dns/proxy.py +0 -0
  36. {corio-2.4.2 → corio-2.4.3}/corio/dns/server.py +0 -0
  37. {corio-2.4.2 → corio-2.4.3}/corio/docker/__init__.py +0 -0
  38. {corio-2.4.2 → corio-2.4.3}/corio/dt.py +0 -0
  39. {corio-2.4.2 → corio-2.4.3}/corio/encrypt.py +0 -0
  40. {corio-2.4.2 → corio-2.4.3}/corio/entrypoint.py +0 -0
  41. {corio-2.4.2 → corio-2.4.3}/corio/env.py +0 -0
  42. {corio-2.4.2 → corio-2.4.3}/corio/function.py +0 -0
  43. {corio-2.4.2 → corio-2.4.3}/corio/google_api.py +0 -0
  44. {corio-2.4.2 → corio-2.4.3}/corio/ha/__init__.py +0 -0
  45. {corio-2.4.2 → corio-2.4.3}/corio/ha/constants.py +0 -0
  46. {corio-2.4.2 → corio-2.4.3}/corio/ha/core.py +0 -0
  47. {corio-2.4.2 → corio-2.4.3}/corio/ha/supervisor.py +0 -0
  48. {corio-2.4.2 → corio-2.4.3}/corio/ha/utils.py +0 -0
  49. {corio-2.4.2 → corio-2.4.3}/corio/hash.py +0 -0
  50. {corio-2.4.2 → corio-2.4.3}/corio/hfh.py +0 -0
  51. {corio-2.4.2 → corio-2.4.3}/corio/hook.py +0 -0
  52. {corio-2.4.2 → corio-2.4.3}/corio/https.py +0 -0
  53. {corio-2.4.2 → corio-2.4.3}/corio/infra/__init__.py +0 -0
  54. {corio-2.4.2 → corio-2.4.3}/corio/infra/api.py +0 -0
  55. {corio-2.4.2 → corio-2.4.3}/corio/infra/incrementor_pyproject.py +0 -0
  56. {corio-2.4.2 → corio-2.4.3}/corio/infra/project.py +0 -0
  57. {corio-2.4.2 → corio-2.4.3}/corio/infra/releaser.py +0 -0
  58. {corio-2.4.2 → corio-2.4.3}/corio/infra/repository.py +0 -0
  59. {corio-2.4.2 → corio-2.4.3}/corio/infra/stack.py +0 -0
  60. {corio-2.4.2 → corio-2.4.3}/corio/inherit.py +0 -0
  61. {corio-2.4.2 → corio-2.4.3}/corio/inspection.py +0 -0
  62. {corio-2.4.2 → corio-2.4.3}/corio/interface/__init__.py +0 -0
  63. {corio-2.4.2 → corio-2.4.3}/corio/interface/context.py +0 -0
  64. {corio-2.4.2 → corio-2.4.3}/corio/interface/controls.py +0 -0
  65. {corio-2.4.2 → corio-2.4.3}/corio/interface/interface.py +0 -0
  66. {corio-2.4.2 → corio-2.4.3}/corio/iterator.py +0 -0
  67. {corio-2.4.2 → corio-2.4.3}/corio/jsn.py +0 -0
  68. {corio-2.4.2 → corio-2.4.3}/corio/json_fix.py +0 -0
  69. {corio-2.4.2 → corio-2.4.3}/corio/logs.py +0 -0
  70. {corio-2.4.2 → corio-2.4.3}/corio/markup.py +0 -0
  71. {corio-2.4.2 → corio-2.4.3}/corio/merging.py +0 -0
  72. {corio-2.4.2 → corio-2.4.3}/corio/metric.py +0 -0
  73. {corio-2.4.2 → corio-2.4.3}/corio/mqtt.py +0 -0
  74. {corio-2.4.2 → corio-2.4.3}/corio/name.py +0 -0
  75. {corio-2.4.2 → corio-2.4.3}/corio/net.py +0 -0
  76. {corio-2.4.2 → corio-2.4.3}/corio/netrc.py +0 -0
  77. {corio-2.4.2 → corio-2.4.3}/corio/openai.py +0 -0
  78. {corio-2.4.2 → corio-2.4.3}/corio/parallel.py +0 -0
  79. {corio-2.4.2 → corio-2.4.3}/corio/path/__init__.py +0 -0
  80. {corio-2.4.2 → corio-2.4.3}/corio/path/app.py +0 -0
  81. {corio-2.4.2 → corio-2.4.3}/corio/path/path.py +0 -0
  82. {corio-2.4.2 → corio-2.4.3}/corio/path/type.py +0 -0
  83. {corio-2.4.2 → corio-2.4.3}/corio/paths.py +0 -0
  84. {corio-2.4.2 → corio-2.4.3}/corio/patterns.py +0 -0
  85. {corio-2.4.2 → corio-2.4.3}/corio/pdf.py +0 -0
  86. {corio-2.4.2 → corio-2.4.3}/corio/plat.py +0 -0
  87. {corio-2.4.2 → corio-2.4.3}/corio/process.py +0 -0
  88. {corio-2.4.2 → corio-2.4.3}/corio/profiling.py +0 -0
  89. {corio-2.4.2 → corio-2.4.3}/corio/rand.py +0 -0
  90. {corio-2.4.2 → corio-2.4.3}/corio/sandbox/__init__.py +0 -0
  91. {corio-2.4.2 → corio-2.4.3}/corio/sandbox/api.py +0 -0
  92. {corio-2.4.2 → corio-2.4.3}/corio/sandbox.py +0 -0
  93. {corio-2.4.2 → corio-2.4.3}/corio/sec.py +0 -0
  94. {corio-2.4.2 → corio-2.4.3}/corio/semantic.py +0 -0
  95. {corio-2.4.2 → corio-2.4.3}/corio/sets.py +0 -0
  96. {corio-2.4.2 → corio-2.4.3}/corio/setup/__init__.py +0 -0
  97. {corio-2.4.2 → corio-2.4.3}/corio/shell/__init__.py +0 -0
  98. {corio-2.4.2 → corio-2.4.3}/corio/shell/dsl.py +0 -0
  99. {corio-2.4.2 → corio-2.4.3}/corio/spaces.py +0 -0
  100. {corio-2.4.2 → corio-2.4.3}/corio/strings.py +0 -0
  101. {corio-2.4.2 → corio-2.4.3}/corio/tabular.py +0 -0
  102. {corio-2.4.2 → corio-2.4.3}/corio/tests/__init__.py +0 -0
  103. {corio-2.4.2 → corio-2.4.3}/corio/tests/conftest.py +0 -0
  104. {corio-2.4.2 → corio-2.4.3}/corio/tests/helpers.py +0 -0
  105. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_api.py +0 -0
  106. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_caching.py +0 -0
  107. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_datatype.py +0 -0
  108. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_dns.py +0 -0
  109. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_dt.py +0 -0
  110. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_encrypt.py +0 -0
  111. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_env.py +0 -0
  112. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_hash.py +0 -0
  113. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_hook.py +0 -0
  114. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_infra.py +0 -0
  115. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_inherit.py +0 -0
  116. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_iterator.py +0 -0
  117. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_jsn.py +0 -0
  118. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_name.py +0 -0
  119. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_path.py +0 -0
  120. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_patterns.py +0 -0
  121. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_rand.py +0 -0
  122. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_shell.py +0 -0
  123. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_strings.py +0 -0
  124. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_toml.py +0 -0
  125. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_tools.py +0 -0
  126. {corio-2.4.2 → corio-2.4.3}/corio/tests/test_yml.py +0 -0
  127. {corio-2.4.2 → corio-2.4.3}/corio/tokenization.py +0 -0
  128. {corio-2.4.2 → corio-2.4.3}/corio/toml.py +0 -0
  129. {corio-2.4.2 → corio-2.4.3}/corio/tools.py +0 -0
  130. {corio-2.4.2 → corio-2.4.3}/corio/unicode.py +0 -0
  131. {corio-2.4.2 → corio-2.4.3}/corio/version/__init__.py +0 -0
  132. {corio-2.4.2 → corio-2.4.3}/corio/version/version.py +0 -0
  133. {corio-2.4.2 → corio-2.4.3}/corio/webhook.py +0 -0
  134. {corio-2.4.2 → corio-2.4.3}/corio/youtube.py +0 -0
  135. {corio-2.4.2 → corio-2.4.3}/corio.egg-info/dependency_links.txt +0 -0
  136. {corio-2.4.2 → corio-2.4.3}/corio.egg-info/entry_points.txt +0 -0
  137. {corio-2.4.2 → corio-2.4.3}/corio.egg-info/top_level.txt +0 -0
  138. {corio-2.4.2 → corio-2.4.3}/scripts/add-service +0 -0
  139. {corio-2.4.2 → corio-2.4.3}/scripts/add-user-path +0 -0
  140. {corio-2.4.2 → corio-2.4.3}/scripts/add-ve-shell +0 -0
  141. {corio-2.4.2 → corio-2.4.3}/scripts/apt-essentials +0 -0
  142. {corio-2.4.2 → corio-2.4.3}/scripts/apt-headless +0 -0
  143. {corio-2.4.2 → corio-2.4.3}/scripts/auth-token +0 -0
  144. {corio-2.4.2 → corio-2.4.3}/scripts/compose-update +0 -0
  145. {corio-2.4.2 → corio-2.4.3}/scripts/compress-dir +0 -0
  146. {corio-2.4.2 → corio-2.4.3}/scripts/cru +0 -0
  147. {corio-2.4.2 → corio-2.4.3}/scripts/docker-build-bases +0 -0
  148. {corio-2.4.2 → corio-2.4.3}/scripts/docker-build-bases-dev +0 -0
  149. {corio-2.4.2 → corio-2.4.3}/scripts/docker-install-deps +0 -0
  150. {corio-2.4.2 → corio-2.4.3}/scripts/docker-install-prod +0 -0
  151. {corio-2.4.2 → corio-2.4.3}/scripts/docker-prune +0 -0
  152. {corio-2.4.2 → corio-2.4.3}/scripts/docker-sandbox +0 -0
  153. {corio-2.4.2 → corio-2.4.3}/scripts/docker-sandbox-init +0 -0
  154. {corio-2.4.2 → corio-2.4.3}/scripts/docs-deploy +0 -0
  155. {corio-2.4.2 → corio-2.4.3}/scripts/download +0 -0
  156. {corio-2.4.2 → corio-2.4.3}/scripts/encrypt-secrets +0 -0
  157. {corio-2.4.2 → corio-2.4.3}/scripts/fmtr-test-script +0 -0
  158. {corio-2.4.2 → corio-2.4.3}/scripts/git-clone +0 -0
  159. {corio-2.4.2 → corio-2.4.3}/scripts/ha-addon-launch +0 -0
  160. {corio-2.4.2 → corio-2.4.3}/scripts/infra +0 -0
  161. {corio-2.4.2 → corio-2.4.3}/scripts/install-browser +0 -0
  162. {corio-2.4.2 → corio-2.4.3}/scripts/install-docker +0 -0
  163. {corio-2.4.2 → corio-2.4.3}/scripts/install-ts +0 -0
  164. {corio-2.4.2 → corio-2.4.3}/scripts/mirror-dir +0 -0
  165. {corio-2.4.2 → corio-2.4.3}/scripts/opt-dev-init +0 -0
  166. {corio-2.4.2 → corio-2.4.3}/scripts/parse-args +0 -0
  167. {corio-2.4.2 → corio-2.4.3}/scripts/pypi-check +0 -0
  168. {corio-2.4.2 → corio-2.4.3}/scripts/pypi-reserve +0 -0
  169. {corio-2.4.2 → corio-2.4.3}/scripts/run-script +0 -0
  170. {corio-2.4.2 → corio-2.4.3}/scripts/run-tests +0 -0
  171. {corio-2.4.2 → corio-2.4.3}/scripts/set-password +0 -0
  172. {corio-2.4.2 → corio-2.4.3}/scripts/set-secure-path +0 -0
  173. {corio-2.4.2 → corio-2.4.3}/scripts/set-user-sudo +0 -0
  174. {corio-2.4.2 → corio-2.4.3}/scripts/snips-install +0 -0
  175. {corio-2.4.2 → corio-2.4.3}/scripts/ssh-auth +0 -0
  176. {corio-2.4.2 → corio-2.4.3}/scripts/ssh-serve +0 -0
  177. {corio-2.4.2 → corio-2.4.3}/scripts/tasmota-config +0 -0
  178. {corio-2.4.2 → corio-2.4.3}/scripts/tasmota-flash +0 -0
  179. {corio-2.4.2 → corio-2.4.3}/scripts/tasmota-terminal +0 -0
  180. {corio-2.4.2 → corio-2.4.3}/scripts/vlc-tn +0 -0
  181. {corio-2.4.2 → corio-2.4.3}/scripts/vm-launch +0 -0
  182. {corio-2.4.2 → corio-2.4.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: corio
3
- Version: 2.4.2
3
+ Version: 2.4.3
4
4
  Summary: Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML
5
5
  Author-email: Frontmatter AI <innovative.fowler@mask.pro.fmtr.dev>
6
6
  License-Expression: Apache-2.0
@@ -15,7 +15,7 @@ Requires-Dist: pydantic-settings; extra == "dev"
15
15
  Requires-Dist: pydantic; extra == "dev"
16
16
  Requires-Dist: pydantic-extra-types; extra == "dev"
17
17
  Requires-Dist: pycountry; extra == "dev"
18
- Requires-Dist: yamlscript; extra == "dev"
18
+ Requires-Dist: yamlscript>=0.2.20; extra == "dev"
19
19
  Requires-Dist: pyyaml; extra == "dev"
20
20
  Requires-Dist: beanie; extra == "dev"
21
21
  Requires-Dist: setuptools; extra == "dev"
@@ -47,10 +47,10 @@ Requires-Dist: pytest; extra == "test"
47
47
  Requires-Dist: pytest-cov; extra == "test"
48
48
  Requires-Dist: pytest-asyncio; extra == "test"
49
49
  Provides-Extra: yml
50
- Requires-Dist: yamlscript; extra == "yml"
50
+ Requires-Dist: yamlscript>=0.2.20; extra == "yml"
51
51
  Requires-Dist: pyyaml; extra == "yml"
52
52
  Provides-Extra: yaml
53
- Requires-Dist: yamlscript; extra == "yaml"
53
+ Requires-Dist: yamlscript>=0.2.20; extra == "yaml"
54
54
  Requires-Dist: pyyaml; extra == "yaml"
55
55
  Provides-Extra: logging
56
56
  Requires-Dist: logfire; extra == "logging"
@@ -192,7 +192,7 @@ Requires-Dist: pydantic-settings; extra == "sets"
192
192
  Requires-Dist: pydantic; extra == "sets"
193
193
  Requires-Dist: pydantic-extra-types; extra == "sets"
194
194
  Requires-Dist: pycountry; extra == "sets"
195
- Requires-Dist: yamlscript; extra == "sets"
195
+ Requires-Dist: yamlscript>=0.2.20; extra == "sets"
196
196
  Requires-Dist: pyyaml; extra == "sets"
197
197
  Provides-Extra: path-app
198
198
  Requires-Dist: appdirs; extra == "path-app"
@@ -264,7 +264,7 @@ Requires-Dist: pydantic-settings; extra == "infra"
264
264
  Requires-Dist: pydantic; extra == "infra"
265
265
  Requires-Dist: pydantic-extra-types; extra == "infra"
266
266
  Requires-Dist: pycountry; extra == "infra"
267
- Requires-Dist: yamlscript; extra == "infra"
267
+ Requires-Dist: yamlscript>=0.2.20; extra == "infra"
268
268
  Requires-Dist: pyyaml; extra == "infra"
269
269
  Requires-Dist: build; extra == "infra"
270
270
  Requires-Dist: twine; extra == "infra"
@@ -294,7 +294,7 @@ Requires-Dist: pyrage; extra == "encrypt"
294
294
  Provides-Extra: secrets
295
295
  Requires-Dist: pyrage; extra == "secrets"
296
296
  Requires-Dist: dotenv; extra == "secrets"
297
- Requires-Dist: yamlscript; extra == "secrets"
297
+ Requires-Dist: yamlscript>=0.2.20; extra == "secrets"
298
298
  Requires-Dist: pyyaml; extra == "secrets"
299
299
  Requires-Dist: logfire; extra == "secrets"
300
300
  Requires-Dist: pydantic-settings; extra == "secrets"
@@ -307,7 +307,7 @@ Requires-Dist: pydantic-settings; extra == "cli"
307
307
  Requires-Dist: pydantic; extra == "cli"
308
308
  Requires-Dist: pydantic-extra-types; extra == "cli"
309
309
  Requires-Dist: pycountry; extra == "cli"
310
- Requires-Dist: yamlscript; extra == "cli"
310
+ Requires-Dist: yamlscript>=0.2.20; extra == "cli"
311
311
  Requires-Dist: pyyaml; extra == "cli"
312
312
  Requires-Dist: logfire; extra == "cli"
313
313
  Provides-Extra: all
@@ -318,7 +318,7 @@ Requires-Dist: pydantic-settings; extra == "all"
318
318
  Requires-Dist: pydantic; extra == "all"
319
319
  Requires-Dist: pydantic-extra-types; extra == "all"
320
320
  Requires-Dist: pycountry; extra == "all"
321
- Requires-Dist: yamlscript; extra == "all"
321
+ Requires-Dist: yamlscript>=0.2.20; extra == "all"
322
322
  Requires-Dist: pyyaml; extra == "all"
323
323
  Requires-Dist: beanie; extra == "all"
324
324
  Requires-Dist: setuptools; extra == "all"
@@ -9,6 +9,8 @@ from corio.logs import logger
9
9
 
10
10
  models=qc.models
11
11
 
12
+
13
+
12
14
  class Client:
13
15
 
14
16
  def __init__(
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "corio"
3
- version = "2.4.2"
3
+ version = "2.4.3"
4
4
  description = "Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML"
5
5
  readme = "README.md"
6
6
  dependencies = []
@@ -9,10 +9,10 @@ license-files = ["LICENSE"]
9
9
  keywords = []
10
10
 
11
11
  [project.optional-dependencies]
12
- dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
12
+ dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
13
13
  test = ["pytest", "pytest-cov", "pytest-asyncio"]
14
- yml = ["yamlscript", "pyyaml"]
15
- yaml = ["yamlscript", "pyyaml"]
14
+ yml = ["yamlscript>=0.2.20", "pyyaml"]
15
+ yaml = ["yamlscript>=0.2.20", "pyyaml"]
16
16
  logging = ["logfire"]
17
17
  parallel = ["dask[bag]", "distributed", "bokeh"]
18
18
  tokenization = ["tokenizers"]
@@ -44,7 +44,7 @@ interface = ["flet[all] <0.80.0", "flet-video", "flet-webview"]
44
44
  caching = ["diskcache", "cachetools"]
45
45
  pdf = ["pymupdf", "pydantic", "pydantic-extra-types", "pycountry", "pymupdf4llm"]
46
46
  debug = ["pydevd-pycharm~=251.25410.159"]
47
- sets = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml"]
47
+ sets = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml"]
48
48
  "path.app" = ["appdirs"]
49
49
  "path.type" = ["filetype"]
50
50
  dns = ["dnspython[doh]", "httpx", "httpx_retries", "logfire", "logfire[httpx]", "diskcache", "cachetools"]
@@ -66,13 +66,13 @@ ha = ["dotenv"]
66
66
  "ha.api" = ["dotenv", "homeassistant_api", "aiohasupervisor"]
67
67
  doc = ["mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav"]
68
68
  youtube = ["pytubefix"]
69
- infra = ["semver", "logfire", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
69
+ infra = ["semver", "logfire", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
70
70
  vcs = ["pygit2"]
71
71
  tasmota = ["decode-config", "esptool"]
72
72
  encrypt = ["pyrage"]
73
- secrets = ["pyrage", "dotenv", "yamlscript", "pyyaml", "logfire", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "pygit2"]
74
- cli = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "logfire"]
75
- all = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio", "dask[bag]", "distributed", "bokeh", "tokenizers", "faker", "sre_yield", "contexttimer", "Unidecode", "tinynetrc", "huggingface_hub", "fastmcp", "peft", "transformers[sentencepiece]", "torchvision", "torchaudio", "cuda-bindings==13.2.0", "cuda-pathfinder==1.5.4", "cuda-toolkit==13.0.2", "nvidia-cublas==13.1.0.3", "nvidia-cuda-cupti==13.0.85", "nvidia-cuda-nvrtc==13.0.88", "nvidia-cuda-runtime==13.0.96", "nvidia-cudnn-cu13==9.19.0.56", "nvidia-cufft==12.0.0.61", "nvidia-cufile==1.15.1.6", "nvidia-curand==10.4.0.35", "nvidia-cusolver==12.0.4.66", "nvidia-cusparse==12.6.3.3", "nvidia-cusparselt-cu13==0.8.0", "nvidia-nccl-cu13==2.28.9", "nvidia-nvjitlink==13.0.88", "nvidia-nvshmem-cu13==3.4.5", "nvidia-nvtx==13.0.85", "torch==2.11.0", "triton==3.6.0", "openai", "pydantic-ai-slim[logfire,openai]", "ollama", "json_repair", "sentence_transformers", "pandas", "tabulate", "openpyxl", "odfpy", "deepdiff", "html2text", "flet[all] <0.80.0", "flet-video", "flet-webview", "google-auth", "google-auth-oauthlib", "google-auth-httplib2", "google-api-python-client", "diskcache", "cachetools", "pymupdf", "pymupdf4llm", "appdirs", "filetype", "dnspython[doh]", "regex", "playwright", "qdrant-client[fastembed]", "aiomqtt", "av", "homeassistant_api", "aiohasupervisor", "pytubefix", "decode-config", "esptool"]
73
+ secrets = ["pyrage", "dotenv", "yamlscript>=0.2.20", "pyyaml", "logfire", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "pygit2"]
74
+ cli = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "logfire"]
75
+ all = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio", "dask[bag]", "distributed", "bokeh", "tokenizers", "faker", "sre_yield", "contexttimer", "Unidecode", "tinynetrc", "huggingface_hub", "fastmcp", "peft", "transformers[sentencepiece]", "torchvision", "torchaudio", "cuda-bindings==13.2.0", "cuda-pathfinder==1.5.4", "cuda-toolkit==13.0.2", "nvidia-cublas==13.1.0.3", "nvidia-cuda-cupti==13.0.85", "nvidia-cuda-nvrtc==13.0.88", "nvidia-cuda-runtime==13.0.96", "nvidia-cudnn-cu13==9.19.0.56", "nvidia-cufft==12.0.0.61", "nvidia-cufile==1.15.1.6", "nvidia-curand==10.4.0.35", "nvidia-cusolver==12.0.4.66", "nvidia-cusparse==12.6.3.3", "nvidia-cusparselt-cu13==0.8.0", "nvidia-nccl-cu13==2.28.9", "nvidia-nvjitlink==13.0.88", "nvidia-nvshmem-cu13==3.4.5", "nvidia-nvtx==13.0.85", "torch==2.11.0", "triton==3.6.0", "openai", "pydantic-ai-slim[logfire,openai]", "ollama", "json_repair", "sentence_transformers", "pandas", "tabulate", "openpyxl", "odfpy", "deepdiff", "html2text", "flet[all] <0.80.0", "flet-video", "flet-webview", "google-auth", "google-auth-oauthlib", "google-auth-httplib2", "google-api-python-client", "diskcache", "cachetools", "pymupdf", "pymupdf4llm", "appdirs", "filetype", "dnspython[doh]", "regex", "playwright", "qdrant-client[fastembed]", "aiomqtt", "av", "homeassistant_api", "aiohasupervisor", "pytubefix", "decode-config", "esptool"]
76
76
 
77
77
  [[project.authors]]
78
78
  name = "Frontmatter AI"
@@ -85,7 +85,7 @@ Homepage = "https://github.com/fmtr/corio"
85
85
  corio = "corio.entrypoint:main"
86
86
 
87
87
  [tool.corio.metadata]
88
- version = "2.4.2"
88
+ version = "2.4.3"
89
89
  port = 0
90
90
  base = "python"
91
91
  description = "Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML"
@@ -106,7 +106,7 @@ test_envs = true
106
106
  dev = ["logging", "version.dev", "debug", "sets", "yaml", "db.document", "infra"]
107
107
  install = []
108
108
  test = ["pytest", "pytest-cov", "pytest-asyncio"]
109
- yml = ["yamlscript", "pyyaml"]
109
+ yml = ["yamlscript>=0.2.20", "pyyaml"]
110
110
  yaml = ["yml"]
111
111
  logging = ["logfire", "version"]
112
112
  parallel = ["dask[bag]", "distributed", "bokeh"]
@@ -169,7 +169,7 @@ secrets = ["encrypt", "env.io", "yaml", "logging", "sets", "vcs"]
169
169
  cli = ["sets", "logging"]
170
170
 
171
171
  [tool.setuptools]
172
- script-files = ["scripts/opt-dev-init", "scripts/docker-prune", "scripts/vlc-tn", "scripts/ha-addon-launch", "scripts/install-ys", "scripts/tasmota-config", "scripts/download", "scripts/run-script", "scripts/ssh-auth", "scripts/cru", "scripts/ssh-serve", "scripts/set-secure-path", "scripts/vm-launch", "scripts/auth-token", "scripts/set-user-sudo", "scripts/docker-build-bases", "scripts/fmtr-test-script", "scripts/compose-update", "scripts/add-ve-shell", "scripts/apt-headless", "scripts/snips-install", "scripts/install-ts", "scripts/tasmota-flash", "scripts/docs-deploy", "scripts/parse-args", "scripts/docker-install-deps", "scripts/run-tests", "scripts/pypi-reserve", "scripts/install-docker", "scripts/set-password", "scripts/tasmota-terminal", "scripts/mirror-dir", "scripts/compress-dir", "scripts/pypi-check", "scripts/git-clone", "scripts/docker-sandbox", "scripts/docker-install-prod", "scripts/docker-sandbox-init", "scripts/install-browser", "scripts/docker-build-bases-dev", "scripts/apt-essentials", "scripts/encrypt-secrets", "scripts/add-user-path", "scripts/infra", "scripts/add-service"]
172
+ script-files = ["scripts/opt-dev-init", "scripts/docker-prune", "scripts/vlc-tn", "scripts/ha-addon-launch", "scripts/tasmota-config", "scripts/download", "scripts/run-script", "scripts/ssh-auth", "scripts/cru", "scripts/ssh-serve", "scripts/set-secure-path", "scripts/vm-launch", "scripts/auth-token", "scripts/set-user-sudo", "scripts/docker-build-bases", "scripts/fmtr-test-script", "scripts/compose-update", "scripts/add-ve-shell", "scripts/apt-headless", "scripts/snips-install", "scripts/install-ts", "scripts/tasmota-flash", "scripts/docs-deploy", "scripts/parse-args", "scripts/docker-install-deps", "scripts/run-tests", "scripts/pypi-reserve", "scripts/install-docker", "scripts/set-password", "scripts/tasmota-terminal", "scripts/mirror-dir", "scripts/compress-dir", "scripts/pypi-check", "scripts/git-clone", "scripts/docker-sandbox", "scripts/docker-install-prod", "scripts/docker-sandbox-init", "scripts/install-browser", "scripts/docker-build-bases-dev", "scripts/apt-essentials", "scripts/encrypt-secrets", "scripts/add-user-path", "scripts/infra", "scripts/add-service"]
173
173
 
174
174
  [tool.setuptools.packages.find]
175
175
  where = ["."]
@@ -230,7 +230,7 @@ commands = [["python", "-m", "pytest", "-q", "corio/tests/test_hook.py"]]
230
230
 
231
231
  [tool.tox.env.infra]
232
232
  description = "Run infra tests."
233
- deps = ["build", "deepmerge", "dotenv", "fastapi", "httpx", "httpx_retries", "logfire", "logfire[fastapi]", "logfire[httpx]", "mike", "mkdocs", "mkdocs-include-dir-to-nav", "mkdocs-material", "mkdocstrings[python]", "packaging", "pycountry", "pydantic", "pydantic-extra-types", "pydantic-settings", "pygit2", "pyrage", "pytest", "pytest-asyncio", "pytest-cov", "python-on-whales", "pyyaml", "semver", "setuptools", "tomlkit", "twine", "uvicorn[standard]", "yamlscript"]
233
+ deps = ["build", "deepmerge", "dotenv", "fastapi", "httpx", "httpx_retries", "logfire", "logfire[fastapi]", "logfire[httpx]", "mike", "mkdocs", "mkdocs-include-dir-to-nav", "mkdocs-material", "mkdocstrings[python]", "packaging", "pycountry", "pydantic", "pydantic-extra-types", "pydantic-settings", "pygit2", "pyrage", "pytest", "pytest-asyncio", "pytest-cov", "python-on-whales", "pyyaml", "semver", "setuptools", "tomlkit", "twine", "uvicorn[standard]", "yamlscript>=0.2.20"]
234
234
  commands = [["python", "-m", "pytest", "-q", "corio/tests/test_infra.py"]]
235
235
 
236
236
  [tool.tox.env.inherit]
@@ -290,7 +290,7 @@ commands = [["python", "-m", "pytest", "-q", "corio/tests/test_tools.py"]]
290
290
 
291
291
  [tool.tox.env.yml]
292
292
  description = "Run yml tests."
293
- deps = ["pytest", "pytest-asyncio", "pytest-cov", "pyyaml", "yamlscript"]
293
+ deps = ["pytest", "pytest-asyncio", "pytest-cov", "pyyaml", "yamlscript>=0.2.20"]
294
294
  commands = [["python", "-m", "pytest", "-q", "corio/tests/test_yml.py"]]
295
295
 
296
296
  [build-system]
@@ -298,4 +298,4 @@ requires = ["setuptools>=82", "wheel"]
298
298
  build-backend = "setuptools.build_meta"
299
299
 
300
300
  [dependency-groups]
301
- dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
301
+ dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
@@ -0,0 +1,39 @@
1
+ from functools import lru_cache
2
+ from typing import Any
3
+ from yaml import CDumper as Dumper
4
+ from yaml import dump
5
+
6
+ import yamlscript
7
+
8
+
9
+ @lru_cache
10
+ def get_interpreter():
11
+ """
12
+
13
+ Fetches and returns a cached instance of the YAMLScript interpreter.
14
+
15
+ """
16
+ interpreter = yamlscript.YAMLScript()
17
+ return interpreter
18
+
19
+
20
+ def to_yaml(obj: Any, **kwargs) -> str:
21
+ """
22
+
23
+ Serialize to YAML
24
+
25
+ """
26
+
27
+ kwargs = dict(allow_unicode=True, Dumper=Dumper, sort_keys=False) | kwargs
28
+ yaml_str = dump(obj, **kwargs)
29
+ return yaml_str
30
+
31
+
32
+ def from_yaml(yaml_str: str) -> Any:
33
+ """
34
+
35
+ Deserialize from YAML
36
+
37
+ """
38
+ obj = get_interpreter().load(yaml_str)
39
+ return obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: corio
3
- Version: 2.4.2
3
+ Version: 2.4.3
4
4
  Summary: Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML
5
5
  Author-email: Frontmatter AI <innovative.fowler@mask.pro.fmtr.dev>
6
6
  License-Expression: Apache-2.0
@@ -15,7 +15,7 @@ Requires-Dist: pydantic-settings; extra == "dev"
15
15
  Requires-Dist: pydantic; extra == "dev"
16
16
  Requires-Dist: pydantic-extra-types; extra == "dev"
17
17
  Requires-Dist: pycountry; extra == "dev"
18
- Requires-Dist: yamlscript; extra == "dev"
18
+ Requires-Dist: yamlscript>=0.2.20; extra == "dev"
19
19
  Requires-Dist: pyyaml; extra == "dev"
20
20
  Requires-Dist: beanie; extra == "dev"
21
21
  Requires-Dist: setuptools; extra == "dev"
@@ -47,10 +47,10 @@ Requires-Dist: pytest; extra == "test"
47
47
  Requires-Dist: pytest-cov; extra == "test"
48
48
  Requires-Dist: pytest-asyncio; extra == "test"
49
49
  Provides-Extra: yml
50
- Requires-Dist: yamlscript; extra == "yml"
50
+ Requires-Dist: yamlscript>=0.2.20; extra == "yml"
51
51
  Requires-Dist: pyyaml; extra == "yml"
52
52
  Provides-Extra: yaml
53
- Requires-Dist: yamlscript; extra == "yaml"
53
+ Requires-Dist: yamlscript>=0.2.20; extra == "yaml"
54
54
  Requires-Dist: pyyaml; extra == "yaml"
55
55
  Provides-Extra: logging
56
56
  Requires-Dist: logfire; extra == "logging"
@@ -192,7 +192,7 @@ Requires-Dist: pydantic-settings; extra == "sets"
192
192
  Requires-Dist: pydantic; extra == "sets"
193
193
  Requires-Dist: pydantic-extra-types; extra == "sets"
194
194
  Requires-Dist: pycountry; extra == "sets"
195
- Requires-Dist: yamlscript; extra == "sets"
195
+ Requires-Dist: yamlscript>=0.2.20; extra == "sets"
196
196
  Requires-Dist: pyyaml; extra == "sets"
197
197
  Provides-Extra: path-app
198
198
  Requires-Dist: appdirs; extra == "path-app"
@@ -264,7 +264,7 @@ Requires-Dist: pydantic-settings; extra == "infra"
264
264
  Requires-Dist: pydantic; extra == "infra"
265
265
  Requires-Dist: pydantic-extra-types; extra == "infra"
266
266
  Requires-Dist: pycountry; extra == "infra"
267
- Requires-Dist: yamlscript; extra == "infra"
267
+ Requires-Dist: yamlscript>=0.2.20; extra == "infra"
268
268
  Requires-Dist: pyyaml; extra == "infra"
269
269
  Requires-Dist: build; extra == "infra"
270
270
  Requires-Dist: twine; extra == "infra"
@@ -294,7 +294,7 @@ Requires-Dist: pyrage; extra == "encrypt"
294
294
  Provides-Extra: secrets
295
295
  Requires-Dist: pyrage; extra == "secrets"
296
296
  Requires-Dist: dotenv; extra == "secrets"
297
- Requires-Dist: yamlscript; extra == "secrets"
297
+ Requires-Dist: yamlscript>=0.2.20; extra == "secrets"
298
298
  Requires-Dist: pyyaml; extra == "secrets"
299
299
  Requires-Dist: logfire; extra == "secrets"
300
300
  Requires-Dist: pydantic-settings; extra == "secrets"
@@ -307,7 +307,7 @@ Requires-Dist: pydantic-settings; extra == "cli"
307
307
  Requires-Dist: pydantic; extra == "cli"
308
308
  Requires-Dist: pydantic-extra-types; extra == "cli"
309
309
  Requires-Dist: pycountry; extra == "cli"
310
- Requires-Dist: yamlscript; extra == "cli"
310
+ Requires-Dist: yamlscript>=0.2.20; extra == "cli"
311
311
  Requires-Dist: pyyaml; extra == "cli"
312
312
  Requires-Dist: logfire; extra == "cli"
313
313
  Provides-Extra: all
@@ -318,7 +318,7 @@ Requires-Dist: pydantic-settings; extra == "all"
318
318
  Requires-Dist: pydantic; extra == "all"
319
319
  Requires-Dist: pydantic-extra-types; extra == "all"
320
320
  Requires-Dist: pycountry; extra == "all"
321
- Requires-Dist: yamlscript; extra == "all"
321
+ Requires-Dist: yamlscript>=0.2.20; extra == "all"
322
322
  Requires-Dist: pyyaml; extra == "all"
323
323
  Requires-Dist: beanie; extra == "all"
324
324
  Requires-Dist: setuptools; extra == "all"
@@ -158,7 +158,6 @@ scripts/infra
158
158
  scripts/install-browser
159
159
  scripts/install-docker
160
160
  scripts/install-ts
161
- scripts/install-ys
162
161
  scripts/mirror-dir
163
162
  scripts/opt-dev-init
164
163
  scripts/parse-args
@@ -47,7 +47,7 @@ pydantic-settings
47
47
  pydantic
48
48
  pydantic-extra-types
49
49
  pycountry
50
- yamlscript
50
+ yamlscript>=0.2.20
51
51
  pyyaml
52
52
  beanie
53
53
  setuptools
@@ -185,7 +185,7 @@ pydantic-settings
185
185
  pydantic
186
186
  pydantic-extra-types
187
187
  pycountry
188
- yamlscript
188
+ yamlscript>=0.2.20
189
189
  pyyaml
190
190
  logfire
191
191
 
@@ -208,7 +208,7 @@ pydantic-settings
208
208
  pydantic
209
209
  pydantic-extra-types
210
210
  pycountry
211
- yamlscript
211
+ yamlscript>=0.2.20
212
212
  pyyaml
213
213
  beanie
214
214
  setuptools
@@ -307,7 +307,7 @@ pydantic-settings
307
307
  pydantic
308
308
  pydantic-extra-types
309
309
  pycountry
310
- yamlscript
310
+ yamlscript>=0.2.20
311
311
  pyyaml
312
312
  build
313
313
  twine
@@ -388,7 +388,7 @@ contexttimer
388
388
  [secrets]
389
389
  pyrage
390
390
  dotenv
391
- yamlscript
391
+ yamlscript>=0.2.20
392
392
  pyyaml
393
393
  logfire
394
394
  pydantic-settings
@@ -410,7 +410,7 @@ pydantic-settings
410
410
  pydantic
411
411
  pydantic-extra-types
412
412
  pycountry
413
- yamlscript
413
+ yamlscript>=0.2.20
414
414
  pyyaml
415
415
 
416
416
  [setup]
@@ -461,11 +461,11 @@ logfire
461
461
  logfire[httpx]
462
462
 
463
463
  [yaml]
464
- yamlscript
464
+ yamlscript>=0.2.20
465
465
  pyyaml
466
466
 
467
467
  [yml]
468
- yamlscript
468
+ yamlscript>=0.2.20
469
469
  pyyaml
470
470
 
471
471
  [youtube]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "corio"
3
- version = "2.4.2"
3
+ version = "2.4.3"
4
4
  description = "Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML"
5
5
  readme = "README.md"
6
6
  dependencies = []
@@ -9,10 +9,10 @@ license-files = ["LICENSE"]
9
9
  keywords = []
10
10
 
11
11
  [project.optional-dependencies]
12
- dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
12
+ dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
13
13
  test = ["pytest", "pytest-cov", "pytest-asyncio"]
14
- yml = ["yamlscript", "pyyaml"]
15
- yaml = ["yamlscript", "pyyaml"]
14
+ yml = ["yamlscript>=0.2.20", "pyyaml"]
15
+ yaml = ["yamlscript>=0.2.20", "pyyaml"]
16
16
  logging = ["logfire"]
17
17
  parallel = ["dask[bag]", "distributed", "bokeh"]
18
18
  tokenization = ["tokenizers"]
@@ -44,7 +44,7 @@ interface = ["flet[all] <0.80.0", "flet-video", "flet-webview"]
44
44
  caching = ["diskcache", "cachetools"]
45
45
  pdf = ["pymupdf", "pydantic", "pydantic-extra-types", "pycountry", "pymupdf4llm"]
46
46
  debug = ["pydevd-pycharm~=251.25410.159"]
47
- sets = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml"]
47
+ sets = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml"]
48
48
  "path.app" = ["appdirs"]
49
49
  "path.type" = ["filetype"]
50
50
  dns = ["dnspython[doh]", "httpx", "httpx_retries", "logfire", "logfire[httpx]", "diskcache", "cachetools"]
@@ -66,13 +66,13 @@ ha = ["dotenv"]
66
66
  "ha.api" = ["dotenv", "homeassistant_api", "aiohasupervisor"]
67
67
  doc = ["mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav"]
68
68
  youtube = ["pytubefix"]
69
- infra = ["semver", "logfire", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
69
+ infra = ["semver", "logfire", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
70
70
  vcs = ["pygit2"]
71
71
  tasmota = ["decode-config", "esptool"]
72
72
  encrypt = ["pyrage"]
73
- secrets = ["pyrage", "dotenv", "yamlscript", "pyyaml", "logfire", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "pygit2"]
74
- cli = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "logfire"]
75
- all = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio", "dask[bag]", "distributed", "bokeh", "tokenizers", "faker", "sre_yield", "contexttimer", "Unidecode", "tinynetrc", "huggingface_hub", "fastmcp", "peft", "transformers[sentencepiece]", "torchvision", "torchaudio", "cuda-bindings==13.2.0", "cuda-pathfinder==1.5.4", "cuda-toolkit==13.0.2", "nvidia-cublas==13.1.0.3", "nvidia-cuda-cupti==13.0.85", "nvidia-cuda-nvrtc==13.0.88", "nvidia-cuda-runtime==13.0.96", "nvidia-cudnn-cu13==9.19.0.56", "nvidia-cufft==12.0.0.61", "nvidia-cufile==1.15.1.6", "nvidia-curand==10.4.0.35", "nvidia-cusolver==12.0.4.66", "nvidia-cusparse==12.6.3.3", "nvidia-cusparselt-cu13==0.8.0", "nvidia-nccl-cu13==2.28.9", "nvidia-nvjitlink==13.0.88", "nvidia-nvshmem-cu13==3.4.5", "nvidia-nvtx==13.0.85", "torch==2.11.0", "triton==3.6.0", "openai", "pydantic-ai-slim[logfire,openai]", "ollama", "json_repair", "sentence_transformers", "pandas", "tabulate", "openpyxl", "odfpy", "deepdiff", "html2text", "flet[all] <0.80.0", "flet-video", "flet-webview", "google-auth", "google-auth-oauthlib", "google-auth-httplib2", "google-api-python-client", "diskcache", "cachetools", "pymupdf", "pymupdf4llm", "appdirs", "filetype", "dnspython[doh]", "regex", "playwright", "qdrant-client[fastembed]", "aiomqtt", "av", "homeassistant_api", "aiohasupervisor", "pytubefix", "decode-config", "esptool"]
73
+ secrets = ["pyrage", "dotenv", "yamlscript>=0.2.20", "pyyaml", "logfire", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "pygit2"]
74
+ cli = ["pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "logfire"]
75
+ all = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio", "dask[bag]", "distributed", "bokeh", "tokenizers", "faker", "sre_yield", "contexttimer", "Unidecode", "tinynetrc", "huggingface_hub", "fastmcp", "peft", "transformers[sentencepiece]", "torchvision", "torchaudio", "cuda-bindings==13.2.0", "cuda-pathfinder==1.5.4", "cuda-toolkit==13.0.2", "nvidia-cublas==13.1.0.3", "nvidia-cuda-cupti==13.0.85", "nvidia-cuda-nvrtc==13.0.88", "nvidia-cuda-runtime==13.0.96", "nvidia-cudnn-cu13==9.19.0.56", "nvidia-cufft==12.0.0.61", "nvidia-cufile==1.15.1.6", "nvidia-curand==10.4.0.35", "nvidia-cusolver==12.0.4.66", "nvidia-cusparse==12.6.3.3", "nvidia-cusparselt-cu13==0.8.0", "nvidia-nccl-cu13==2.28.9", "nvidia-nvjitlink==13.0.88", "nvidia-nvshmem-cu13==3.4.5", "nvidia-nvtx==13.0.85", "torch==2.11.0", "triton==3.6.0", "openai", "pydantic-ai-slim[logfire,openai]", "ollama", "json_repair", "sentence_transformers", "pandas", "tabulate", "openpyxl", "odfpy", "deepdiff", "html2text", "flet[all] <0.80.0", "flet-video", "flet-webview", "google-auth", "google-auth-oauthlib", "google-auth-httplib2", "google-api-python-client", "diskcache", "cachetools", "pymupdf", "pymupdf4llm", "appdirs", "filetype", "dnspython[doh]", "regex", "playwright", "qdrant-client[fastembed]", "aiomqtt", "av", "homeassistant_api", "aiohasupervisor", "pytubefix", "decode-config", "esptool"]
76
76
 
77
77
  [[project.authors]]
78
78
  name = "Frontmatter AI"
@@ -85,7 +85,7 @@ Homepage = "https://github.com/fmtr/corio"
85
85
  corio = "corio.entrypoint:main"
86
86
 
87
87
  [tool.corio.metadata]
88
- version = "2.4.2"
88
+ version = "2.4.3"
89
89
  port = 0
90
90
  base = "python"
91
91
  description = "Collection of high-level tools to simplify everyday development tasks, with a focus on AI/ML"
@@ -106,7 +106,7 @@ test_envs = true
106
106
  dev = ["logging", "version.dev", "debug", "sets", "yaml", "db.document", "infra"]
107
107
  install = []
108
108
  test = ["pytest", "pytest-cov", "pytest-asyncio"]
109
- yml = ["yamlscript", "pyyaml"]
109
+ yml = ["yamlscript>=0.2.20", "pyyaml"]
110
110
  yaml = ["yml"]
111
111
  logging = ["logfire", "version"]
112
112
  parallel = ["dask[bag]", "distributed", "bokeh"]
@@ -169,7 +169,7 @@ secrets = ["encrypt", "env.io", "yaml", "logging", "sets", "vcs"]
169
169
  cli = ["sets", "logging"]
170
170
 
171
171
  [tool.setuptools]
172
- script-files = ["scripts/opt-dev-init", "scripts/docker-prune", "scripts/vlc-tn", "scripts/ha-addon-launch", "scripts/install-ys", "scripts/tasmota-config", "scripts/download", "scripts/run-script", "scripts/ssh-auth", "scripts/cru", "scripts/ssh-serve", "scripts/set-secure-path", "scripts/vm-launch", "scripts/auth-token", "scripts/set-user-sudo", "scripts/docker-build-bases", "scripts/fmtr-test-script", "scripts/compose-update", "scripts/add-ve-shell", "scripts/apt-headless", "scripts/snips-install", "scripts/install-ts", "scripts/tasmota-flash", "scripts/docs-deploy", "scripts/parse-args", "scripts/docker-install-deps", "scripts/run-tests", "scripts/pypi-reserve", "scripts/install-docker", "scripts/set-password", "scripts/tasmota-terminal", "scripts/mirror-dir", "scripts/compress-dir", "scripts/pypi-check", "scripts/git-clone", "scripts/docker-sandbox", "scripts/docker-install-prod", "scripts/docker-sandbox-init", "scripts/install-browser", "scripts/docker-build-bases-dev", "scripts/apt-essentials", "scripts/encrypt-secrets", "scripts/add-user-path", "scripts/infra", "scripts/add-service"]
172
+ script-files = ["scripts/opt-dev-init", "scripts/docker-prune", "scripts/vlc-tn", "scripts/ha-addon-launch", "scripts/tasmota-config", "scripts/download", "scripts/run-script", "scripts/ssh-auth", "scripts/cru", "scripts/ssh-serve", "scripts/set-secure-path", "scripts/vm-launch", "scripts/auth-token", "scripts/set-user-sudo", "scripts/docker-build-bases", "scripts/fmtr-test-script", "scripts/compose-update", "scripts/add-ve-shell", "scripts/apt-headless", "scripts/snips-install", "scripts/install-ts", "scripts/tasmota-flash", "scripts/docs-deploy", "scripts/parse-args", "scripts/docker-install-deps", "scripts/run-tests", "scripts/pypi-reserve", "scripts/install-docker", "scripts/set-password", "scripts/tasmota-terminal", "scripts/mirror-dir", "scripts/compress-dir", "scripts/pypi-check", "scripts/git-clone", "scripts/docker-sandbox", "scripts/docker-install-prod", "scripts/docker-sandbox-init", "scripts/install-browser", "scripts/docker-build-bases-dev", "scripts/apt-essentials", "scripts/encrypt-secrets", "scripts/add-user-path", "scripts/infra", "scripts/add-service"]
173
173
 
174
174
  [tool.setuptools.packages.find]
175
175
  where = ["."]
@@ -230,7 +230,7 @@ commands = [["python", "-m", "pytest", "-q", "corio/tests/test_hook.py"]]
230
230
 
231
231
  [tool.tox.env.infra]
232
232
  description = "Run infra tests."
233
- deps = ["build", "deepmerge", "dotenv", "fastapi", "httpx", "httpx_retries", "logfire", "logfire[fastapi]", "logfire[httpx]", "mike", "mkdocs", "mkdocs-include-dir-to-nav", "mkdocs-material", "mkdocstrings[python]", "packaging", "pycountry", "pydantic", "pydantic-extra-types", "pydantic-settings", "pygit2", "pyrage", "pytest", "pytest-asyncio", "pytest-cov", "python-on-whales", "pyyaml", "semver", "setuptools", "tomlkit", "twine", "uvicorn[standard]", "yamlscript"]
233
+ deps = ["build", "deepmerge", "dotenv", "fastapi", "httpx", "httpx_retries", "logfire", "logfire[fastapi]", "logfire[httpx]", "mike", "mkdocs", "mkdocs-include-dir-to-nav", "mkdocs-material", "mkdocstrings[python]", "packaging", "pycountry", "pydantic", "pydantic-extra-types", "pydantic-settings", "pygit2", "pyrage", "pytest", "pytest-asyncio", "pytest-cov", "python-on-whales", "pyyaml", "semver", "setuptools", "tomlkit", "twine", "uvicorn[standard]", "yamlscript>=0.2.20"]
234
234
  commands = [["python", "-m", "pytest", "-q", "corio/tests/test_infra.py"]]
235
235
 
236
236
  [tool.tox.env.inherit]
@@ -290,7 +290,7 @@ commands = [["python", "-m", "pytest", "-q", "corio/tests/test_tools.py"]]
290
290
 
291
291
  [tool.tox.env.yml]
292
292
  description = "Run yml tests."
293
- deps = ["pytest", "pytest-asyncio", "pytest-cov", "pyyaml", "yamlscript"]
293
+ deps = ["pytest", "pytest-asyncio", "pytest-cov", "pyyaml", "yamlscript>=0.2.20"]
294
294
  commands = [["python", "-m", "pytest", "-q", "corio/tests/test_yml.py"]]
295
295
 
296
296
  [build-system]
@@ -298,4 +298,4 @@ requires = ["setuptools>=82", "wheel"]
298
298
  build-backend = "setuptools.build_meta"
299
299
 
300
300
  [dependency-groups]
301
- dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
301
+ dev = ["logfire", "semver", "pydevd-pycharm~=251.25410.159", "pydantic-settings", "pydantic", "pydantic-extra-types", "pycountry", "yamlscript>=0.2.20", "pyyaml", "beanie", "setuptools", "mkdocs", "mkdocs-material", "mkdocstrings[python]", "mike", "mkdocs-include-dir-to-nav", "build", "twine", "packaging", "pygit2", "python-on-whales", "deepmerge", "httpx", "httpx_retries", "logfire[httpx]", "fastapi", "uvicorn[standard]", "logfire[fastapi]", "tomlkit", "pyrage", "dotenv", "pytest", "pytest-cov", "pytest-asyncio"]
corio-2.4.2/corio/yml.py DELETED
@@ -1,90 +0,0 @@
1
- import importlib.metadata
2
- from functools import lru_cache
3
- from typing import Any
4
- from yaml import CDumper as Dumper
5
- from yaml import dump
6
-
7
- try:
8
- import yamlscript
9
- except ImportError:
10
- raise # Raise if even the package isn't installed, to trigger the regular missing extra exception.
11
- except Exception as exception:
12
- pass # Allow missing binary, so we can install on-demand
13
-
14
-
15
- def get_version(module):
16
- """
17
-
18
- Retrieve the version of a specified module.
19
-
20
- """
21
-
22
- if type(module) is not str:
23
- module = module.__name__
24
- version = importlib.metadata.version(module)
25
- return version
26
-
27
- def install():
28
- """
29
-
30
- Installs the YAML Script runtime binary of the specified version.
31
-
32
- """
33
- import subprocess
34
- from corio import logger
35
-
36
- version = get_version('yamlscript')
37
- logger.warning(f"Installing YAML Script runtime binary version {version}...")
38
- result = subprocess.run(f"curl https://yamlscript.org/install | VERSION={version} LIB=1 bash", shell=True, check=True)
39
- return result
40
-
41
-
42
- @lru_cache
43
- def get_module(is_auto=True):
44
- """
45
-
46
- Get the YAML Script runtime module, installing the runtime if specified
47
-
48
- """
49
- try:
50
- import yamlscript
51
- except Exception as exception:
52
- if not is_auto:
53
- raise ImportError(f'YAML Script runtime missing and {is_auto=}. Set to {True} to install.') from exception
54
- install()
55
- import yamlscript
56
- return yamlscript
57
-
58
-
59
- @lru_cache
60
- def get_interpreter():
61
- """
62
-
63
- Fetches and returns a cached instance of the YAMLScript interpreter.
64
-
65
- """
66
- module = get_module()
67
- interpreter = module.YAMLScript()
68
- return interpreter
69
-
70
-
71
- def to_yaml(obj: Any, **kwargs) -> str:
72
- """
73
-
74
- Serialize to YAML
75
-
76
- """
77
-
78
- kwargs = dict(allow_unicode=True, Dumper=Dumper, sort_keys=False) | kwargs
79
- yaml_str = dump(obj, **kwargs)
80
- return yaml_str
81
-
82
-
83
- def from_yaml(yaml_str: str) -> Any:
84
- """
85
-
86
- Deserialize from YAML
87
-
88
- """
89
- obj = get_interpreter().load(yaml_str)
90
- return obj
@@ -1,5 +0,0 @@
1
- #!/bin/bash
2
-
3
- . parse-args "$@"
4
-
5
- curl https://yamlscript.org/install | bash
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