omlish 0.0.0.dev232__py3-none-any.whl → 0.0.0.dev233__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omlish/__about__.py +2 -2
- omlish/codecs/registry.py +1 -1
- omlish/manifests/load.py +31 -1
- {omlish-0.0.0.dev232.dist-info → omlish-0.0.0.dev233.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev232.dist-info → omlish-0.0.0.dev233.dist-info}/RECORD +9 -9
- {omlish-0.0.0.dev232.dist-info → omlish-0.0.0.dev233.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev232.dist-info → omlish-0.0.0.dev233.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev232.dist-info → omlish-0.0.0.dev233.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev232.dist-info → omlish-0.0.0.dev233.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/codecs/registry.py
CHANGED
@@ -105,7 +105,7 @@ def _install_standard_codecs(registry: CodecRegistry) -> None:
|
|
105
105
|
@cached.function
|
106
106
|
def _build_manifest_lazy_loaded_codecs() -> ta.Sequence[LazyLoadedCodec]:
|
107
107
|
ldr = manifest_load.MANIFEST_LOADER
|
108
|
-
pkgs = {__package__.split('.')[0], *ldr.
|
108
|
+
pkgs = {__package__.split('.')[0], *ldr.discover_pkgs()}
|
109
109
|
mns = ldr.load(*pkgs, only=[LazyLoadedCodec])
|
110
110
|
return [m.value for m in mns]
|
111
111
|
|
omlish/manifests/load.py
CHANGED
@@ -9,6 +9,7 @@ import dataclasses as dc
|
|
9
9
|
import importlib.machinery
|
10
10
|
import importlib.resources
|
11
11
|
import json
|
12
|
+
import os.path
|
12
13
|
import threading
|
13
14
|
import typing as ta
|
14
15
|
|
@@ -193,7 +194,7 @@ class ManifestLoader:
|
|
193
194
|
|
194
195
|
ENTRY_POINT_GROUP = 'omlish.manifests'
|
195
196
|
|
196
|
-
def
|
197
|
+
def discover_pkgs(self) -> ta.Sequence[str]:
|
197
198
|
# This is a fat dep so do it late.
|
198
199
|
import importlib.metadata
|
199
200
|
|
@@ -202,6 +203,35 @@ class ManifestLoader:
|
|
202
203
|
for ep in importlib.metadata.entry_points(group=self.ENTRY_POINT_GROUP)
|
203
204
|
]
|
204
205
|
|
206
|
+
def scan_pkg_root(self, root: str) -> ta.Sequence[str]:
|
207
|
+
pkgs: ta.List[str] = []
|
208
|
+
for n in os.listdir(root):
|
209
|
+
if os.path.isdir(p := os.path.join(root, n)) and os.path.exists(os.path.join(p, '__init__.py')):
|
210
|
+
pkgs.append(n)
|
211
|
+
return pkgs
|
212
|
+
|
213
|
+
def scan_or_discover_pkgs(
|
214
|
+
self,
|
215
|
+
*,
|
216
|
+
specified_roots: ta.Optional[ta.Sequence[str]] = None,
|
217
|
+
fallback_root: ta.Optional[str] = None,
|
218
|
+
) -> ta.Sequence[str]:
|
219
|
+
pkgs: list[str] = []
|
220
|
+
|
221
|
+
if specified_roots is not None:
|
222
|
+
if isinstance(specified_roots, str):
|
223
|
+
raise TypeError(specified_roots)
|
224
|
+
for r in specified_roots:
|
225
|
+
pkgs.extend(self.scan_pkg_root(r))
|
226
|
+
|
227
|
+
else:
|
228
|
+
pkgs.extend(self.discover_pkgs())
|
229
|
+
|
230
|
+
if not pkgs and fallback_root is not None:
|
231
|
+
pkgs.extend(self.scan_pkg_root(fallback_root))
|
232
|
+
|
233
|
+
return pkgs
|
234
|
+
|
205
235
|
|
206
236
|
##
|
207
237
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=vQTAIvR8OblSq-uP2GUfnbei0RnmAnM5j0T1-OToh9E,8253
|
2
|
-
omlish/__about__.py,sha256
|
2
|
+
omlish/__about__.py,sha256=hETL5TQrI5YAv_0oaMECavt9Vu8jjHjGR0tqTGZ353U,3380
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
4
4
|
omlish/c3.py,sha256=ubu7lHwss5V4UznbejAI0qXhXahrU01MysuHOZI9C4U,8116
|
5
5
|
omlish/cached.py,sha256=UI-XTFBwA6YXWJJJeBn-WkwBkfzDjLBBaZf4nIJA9y0,510
|
@@ -131,7 +131,7 @@ omlish/codecs/base.py,sha256=uFrDvP7SZdeBbpuUzGHvyOdFNAmhjkBG2cVaVydRsjw,2221
|
|
131
131
|
omlish/codecs/bytes.py,sha256=jlZ87OmZ52HhQDNyL87R3OIviK2qV5iU2jZYOTOLWjk,2157
|
132
132
|
omlish/codecs/chain.py,sha256=DrBi5vbaFfObfoppo6alwOmyW2XbrH2051cjExwr2Gs,527
|
133
133
|
omlish/codecs/funcs.py,sha256=p4imNt7TobyZVXWC-WhntHVu9KfJrO4QwdtPRh-cVOk,850
|
134
|
-
omlish/codecs/registry.py,sha256=
|
134
|
+
omlish/codecs/registry.py,sha256=yDkDpRJXD7owFCa4b0R4MMf3Le6KxknNBewjSrehepw,4000
|
135
135
|
omlish/codecs/standard.py,sha256=eiZ4u9ep0XrA4Z_D1zJI0vmWyuN8HLrX4Se_r_Cq_ZM,60
|
136
136
|
omlish/codecs/text.py,sha256=JzrdwMpQPo2NBBg3K1EZszzQy5vEWmd82SIerJd4yeQ,5723
|
137
137
|
omlish/collections/__init__.py,sha256=ddzZS3C2rvDo65hspO9KlFsrinElxPWvYEgVyBUZdb0,2164
|
@@ -461,7 +461,7 @@ omlish/logs/standard.py,sha256=FbKdF2Z4Na5i2TNwKn0avLJXyICe2JKsPufjvKCHGn0,3162
|
|
461
461
|
omlish/logs/timing.py,sha256=XrFUHIPT4EHDujLKbGs9fGFMmoM3NEP8xPRaESJr7bQ,1513
|
462
462
|
omlish/logs/utils.py,sha256=mzHrZ9ji75p5A8qR29eUr05CBAHMb8J753MSkID_VaQ,393
|
463
463
|
omlish/manifests/__init__.py,sha256=P2B0dpT8D7l5lJwRGPA92IcQj6oeXfd90X5-q9BJrKg,51
|
464
|
-
omlish/manifests/load.py,sha256=
|
464
|
+
omlish/manifests/load.py,sha256=u84sAHhDgHefTDK8S50W5czRnqfwm0obqiOzNBCBP9Q,6603
|
465
465
|
omlish/manifests/types.py,sha256=d8bv5tknCJqclRfxCpao_8XxHo2yofhLpVHQTB-MfNw,260
|
466
466
|
omlish/marshal/__init__.py,sha256=00D3S6qwUld1TUWd67hVHuNcrj3c_FAFSkCVXgGWT-s,2607
|
467
467
|
omlish/marshal/base.py,sha256=tJ4iNuD7cW2GpGMznOhkAf2hugqp2pF2em0FaQcekrk,6740
|
@@ -705,9 +705,9 @@ omlish/text/indent.py,sha256=YjtJEBYWuk8--b9JU_T6q4yxV85_TR7VEVr5ViRCFwk,1336
|
|
705
705
|
omlish/text/minja.py,sha256=jZC-fp3Xuhx48ppqsf2Sf1pHbC0t8XBB7UpUUoOk2Qw,5751
|
706
706
|
omlish/text/parts.py,sha256=JkNZpyR2tv2CNcTaWJJhpQ9E4F0yPR8P_YfDbZfMtwQ,6182
|
707
707
|
omlish/text/random.py,sha256=jNWpqiaKjKyTdMXC-pWAsSC10AAP-cmRRPVhm59ZWLk,194
|
708
|
-
omlish-0.0.0.
|
709
|
-
omlish-0.0.0.
|
710
|
-
omlish-0.0.0.
|
711
|
-
omlish-0.0.0.
|
712
|
-
omlish-0.0.0.
|
713
|
-
omlish-0.0.0.
|
708
|
+
omlish-0.0.0.dev233.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
709
|
+
omlish-0.0.0.dev233.dist-info/METADATA,sha256=0YKyq7oO-djATl7sDOSc7EmgfhqGDWCX7iWI3ND1lpo,4176
|
710
|
+
omlish-0.0.0.dev233.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
711
|
+
omlish-0.0.0.dev233.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
712
|
+
omlish-0.0.0.dev233.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
713
|
+
omlish-0.0.0.dev233.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|