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 CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev232'
2
- __revision__ = '2f0435f277c869f9ecf426be2aeaf08eeb9792de'
1
+ __version__ = '0.0.0.dev233'
2
+ __revision__ = '104fc39d3a0d5ea92881a45333cbcb1810f6b7ff'
3
3
 
4
4
 
5
5
  #
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.discover()}
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 discover(self) -> ta.Sequence[str]:
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,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: omlish
3
- Version: 0.0.0.dev232
3
+ Version: 0.0.0.dev233
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=vQTAIvR8OblSq-uP2GUfnbei0RnmAnM5j0T1-OToh9E,8253
2
- omlish/__about__.py,sha256=-wogzlxSt20e8KuTBCH4MRnaUQhIUXLRZdyQ82uUp4E,3380
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=Ald3fs707cJsUovYjNmxdT2zAQworvDxwMFk7DBT8r0,3995
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=LrWAvBfdzDkFdLuVwfw2RwFvLjxx-rvfkpU9eBsWeIc,5626
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.dev232.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
709
- omlish-0.0.0.dev232.dist-info/METADATA,sha256=q9xYAS00xDATKtVjZBhWNKwkSnMAIV0By4EIl_2vqFs,4176
710
- omlish-0.0.0.dev232.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
711
- omlish-0.0.0.dev232.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
712
- omlish-0.0.0.dev232.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
713
- omlish-0.0.0.dev232.dist-info/RECORD,,
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,,