omlish 0.0.0.dev63__py3-none-any.whl → 0.0.0.dev64__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.dev63'
2
- __revision__ = '6de2b8280b36325b4e4b319adfe01b6a284bbdcc'
1
+ __version__ = '0.0.0.dev64'
2
+ __revision__ = '65b4d26bc20b482253b288f29eebe58b9ae531dd'
3
3
 
4
4
 
5
5
  #
@@ -92,7 +92,7 @@ class Project(ProjectBase):
92
92
  # 'psycopg ~= 3.2',
93
93
 
94
94
  'pymysql ~= 1.1',
95
- # 'mysql-connector-python ~= 9.0',
95
+ # 'mysql-connector-python ~= 9.1',
96
96
  # 'mysqlclient ~= 2.2',
97
97
 
98
98
  'aiomysql ~= 0.2',
@@ -14,6 +14,17 @@ V = ta.TypeVar('V')
14
14
  ##
15
15
 
16
16
 
17
+ class SimpleMetaDict(dict):
18
+ def update(self, m: ta.Mapping[K, V], **kwargs: V) -> None: # type: ignore
19
+ for k, v in m.items():
20
+ self[k] = v
21
+ for k, v in kwargs.items(): # type: ignore
22
+ self[k] = v
23
+
24
+
25
+ ##
26
+
27
+
17
28
  class _NamespaceMeta(abc.ABCMeta):
18
29
  def __new__(mcls, name, bases, namespace):
19
30
  if bases:
@@ -23,9 +34,14 @@ class _NamespaceMeta(abc.ABCMeta):
23
34
  return super().__new__(mcls, name, bases, namespace)
24
35
 
25
36
  def __iter__(cls) -> ta.Iterator[tuple[str, ta.Any]]:
26
- for a in dir(cls):
27
- if not a.startswith('_'):
28
- yield (a, getattr(cls, a))
37
+ seen: set[str] = set()
38
+ for bcls in reversed(cls.__mro__):
39
+ for a in bcls.__dict__:
40
+ if a in seen:
41
+ continue
42
+ seen.add(a)
43
+ if not a.startswith('_'):
44
+ yield (a, getattr(cls, a))
29
45
 
30
46
  def __getitem__(cls, n: str) -> ta.Any:
31
47
  return getattr(cls, n)
@@ -75,17 +91,6 @@ class Marker(NotInstantiable, metaclass=_MarkerMeta):
75
91
  ##
76
92
 
77
93
 
78
- class SimpleMetaDict(dict):
79
- def update(self, m: ta.Mapping[K, V], **kwargs: V) -> None: # type: ignore
80
- for k, v in m.items():
81
- self[k] = v
82
- for k, v in kwargs.items(): # type: ignore
83
- self[k] = v
84
-
85
-
86
- ##
87
-
88
-
89
94
  _SINGLETON_INSTANCE_ATTR = '__singleton_instance__'
90
95
  _SINGLETON_LOCK = threading.RLock()
91
96
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omlish
3
- Version: 0.0.0.dev63
3
+ Version: 0.0.0.dev64
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=jvyoQ7x8UJ9lpRgkh7eElwJ8qnzyG5aUGameT9Yk8GM,1419
2
- omlish/__about__.py,sha256=qlJrMz3s8VM_C0-4usZE5Jgx7f83IqPBmrc1ird0yoY,3420
2
+ omlish/__about__.py,sha256=GXVeIGR5dUduDtgf1PYJSdJKJyBBSxbzWMxY1GQOHN8,3420
3
3
  omlish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omlish/argparse.py,sha256=XLrLFCLNY1RfbiXIAELkzHK-vUPum_9dyylEdJi9Pog,7068
5
5
  omlish/c3.py,sha256=4vogWgwPb8TbNS2KkZxpoWbwjj7MuHG2lQG-hdtkvjI,8062
@@ -258,7 +258,7 @@ omlish/lang/typing.py,sha256=lJ2NGe4Pmb61I0Tx4A_rOqXNFTws1XHOzafg2knRUio,4155
258
258
  omlish/lang/classes/__init__.py,sha256=h9QXrvAKD17_pIog0uF-7BCqZbSpJZYxL7kzVzvljp0,583
259
259
  omlish/lang/classes/abstract.py,sha256=IRnjuLLNwpxvEJsp8fwoQdCIpw0MDAd0TiQfoDMgsn4,2306
260
260
  omlish/lang/classes/restrict.py,sha256=pSK7ZT_kpwqS6lWRrxwuEe-tt07F0-uZVazgGh-HDco,3921
261
- omlish/lang/classes/simple.py,sha256=roGxmtl5BAXl6_WAt89Hfd1Xmu-Cvnwo-YCZgs1Wq-s,3116
261
+ omlish/lang/classes/simple.py,sha256=XQ8b86WvQA0qtSYqlbMOJS7tHgE8sv9onda33uQmbkM,3294
262
262
  omlish/lang/classes/virtual.py,sha256=W-QJuKsDehOcrydwg6eMN0bFPTYbk3Tz84TSH3blb44,3367
263
263
  omlish/lifecycles/__init__.py,sha256=1FjYceXs-4fc-S-C9zFYmc2axHs4znnQHcJVHdY7a6E,578
264
264
  omlish/lifecycles/abstract.py,sha256=70CQyZy-c9a2o0ZJxPeUT7eYjWZTBrp2HpUBnrHdAOM,1109
@@ -408,9 +408,9 @@ omlish/text/delimit.py,sha256=ubPXcXQmtbOVrUsNh5gH1mDq5H-n1y2R4cPL5_DQf68,4928
408
408
  omlish/text/glyphsplit.py,sha256=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,3296
409
409
  omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
410
410
  omlish/text/parts.py,sha256=7vPF1aTZdvLVYJ4EwBZVzRSy8XB3YqPd7JwEnNGGAOo,6495
411
- omlish-0.0.0.dev63.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
412
- omlish-0.0.0.dev63.dist-info/METADATA,sha256=3QDOoC7dBsLktT4vePuK9dx8FjSwpxlZnE27yP_qQ8c,4167
413
- omlish-0.0.0.dev63.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
414
- omlish-0.0.0.dev63.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
415
- omlish-0.0.0.dev63.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
416
- omlish-0.0.0.dev63.dist-info/RECORD,,
411
+ omlish-0.0.0.dev64.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
412
+ omlish-0.0.0.dev64.dist-info/METADATA,sha256=fd-7ozSHicCgpU4SOmqEUW7WJAsroSMO531X7vxMDVo,4167
413
+ omlish-0.0.0.dev64.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
414
+ omlish-0.0.0.dev64.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
415
+ omlish-0.0.0.dev64.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
416
+ omlish-0.0.0.dev64.dist-info/RECORD,,