omlish 0.0.0.dev335__py3-none-any.whl → 0.0.0.dev336__py3-none-any.whl

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.
omlish/__about__.py CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev335'
2
- __revision__ = '445472b51ecc513f0f43aa95228c3b9812ca338b'
1
+ __version__ = '0.0.0.dev336'
2
+ __revision__ = '16b945e9466bbc3af4270b99369d4041260ac765'
3
3
 
4
4
 
5
5
  #
@@ -55,19 +55,36 @@ class Sealed:
55
55
  if Sealed in base.__bases__:
56
56
  if cls.__module__ != base.__module__:
57
57
  raise SealedError(base)
58
+
58
59
  super().__init_subclass__(**kwargs)
59
60
 
60
61
 
61
62
  class PackageSealed:
62
63
  __slots__ = ()
63
64
 
64
- def __init_subclass__(cls, **kwargs: ta.Any) -> None:
65
+ __sealed_package__: ta.ClassVar[ta.Sequence[str] | None]
66
+
67
+ def __init_subclass__(cls, *, sealed_package: ta.Sequence[str] | str | None = None, **kwargs: ta.Any) -> None:
68
+ if PackageSealed in cls.__bases__:
69
+ if sealed_package is not None:
70
+ if isinstance(sealed_package, str):
71
+ sealed_package = sealed_package.split('.')
72
+ cls.__sealed_package__ = sealed_package
73
+ else:
74
+ cls.__sealed_package__ = cls.__module__.split('.')[:-1]
75
+ elif sealed_package is not None:
76
+ raise TypeError
77
+
65
78
  for base in cls.__bases__:
66
- if base is not Abstract:
67
- if PackageSealed in base.__bases__:
68
- pfx = base.__module__.split('.')[:-1]
69
- if cls.__module__.split('.')[:len(pfx)] != pfx:
70
- raise SealedError(base)
79
+ if (
80
+ base is Abstract or
81
+ PackageSealed not in base.__bases__
82
+ ):
83
+ continue
84
+ bsp = base.__dict__['__sealed_package__']
85
+ if cls.__module__.split('.')[:len(bsp)] != bsp:
86
+ raise SealedError(base)
87
+
71
88
  super().__init_subclass__(**kwargs)
72
89
 
73
90
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev335
3
+ Version: 0.0.0.dev336
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=orgsRvtpHu8tdhaCvlP9v3P495OJopYYiHKjK68WtWg,8587
2
- omlish/__about__.py,sha256=H-aNkbPszpa6awU7KHxFKYgjg-Cbj5UcLXu6RGHn5n0,3478
2
+ omlish/__about__.py,sha256=qfDmcKP6gZ8mkTC4jhOQsbycwdsxLHwhrOxUjvDl13M,3478
3
3
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
4
  omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
5
5
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -434,7 +434,7 @@ omlish/lang/cached/property.py,sha256=WHYyg4-6EA86TcNMfbXTjVhjEZPc0kngt9hfY3WN5w
434
434
  omlish/lang/classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
435
435
  omlish/lang/classes/abstract.py,sha256=A-Jg5X8o_WvFryN0Cm2TpVkrZoTT1SYKQnv_pXjZk7o,3808
436
436
  omlish/lang/classes/namespaces.py,sha256=_FBLekx2gNLql1C1ZRlpBtxuLWbcdFEzBm8CrD5XeOA,3589
437
- omlish/lang/classes/restrict.py,sha256=nCsQuSFsKTwLhYfmwZr9af00qdVA8TuPQXaSJQNKzBI,3543
437
+ omlish/lang/classes/restrict.py,sha256=Ki-UOc2yUVteqC7i_EgIVpeEcnvRHVczjts5Fyiz7Mk,4125
438
438
  omlish/lang/classes/simple.py,sha256=2C7u8k0K75xzcr6DT8zYd8U-1Yr_Xq1pfF3a0J6wo3g,2538
439
439
  omlish/lang/classes/virtual.py,sha256=z0MYQD9Q5MkX8DzF325wDB4J9XoYbsB09jZ1omC62To,3366
440
440
  omlish/lifecycles/__init__.py,sha256=1FjYceXs-4fc-S-C9zFYmc2axHs4znnQHcJVHdY7a6E,578
@@ -858,9 +858,9 @@ omlish/typedvalues/holder.py,sha256=vu-umn-h1nvUqmtV5T9ZfQ_OoOYsERu8PhI2N48Ryns,
858
858
  omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0,4956
859
859
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
860
860
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
861
- omlish-0.0.0.dev335.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
862
- omlish-0.0.0.dev335.dist-info/METADATA,sha256=iYf3Stk7331KK-5TJNBTAylpuR2OF5O3Lte6wAllk_4,4416
863
- omlish-0.0.0.dev335.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
864
- omlish-0.0.0.dev335.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
865
- omlish-0.0.0.dev335.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
866
- omlish-0.0.0.dev335.dist-info/RECORD,,
861
+ omlish-0.0.0.dev336.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
862
+ omlish-0.0.0.dev336.dist-info/METADATA,sha256=8A6pfMbK7CNFcf8IjZ_MAjSo9qLfSC_Z5s3IuPlUkb4,4416
863
+ omlish-0.0.0.dev336.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
864
+ omlish-0.0.0.dev336.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
865
+ omlish-0.0.0.dev336.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
866
+ omlish-0.0.0.dev336.dist-info/RECORD,,