omlish 0.0.0.dev99__py3-none-any.whl → 0.0.0.dev100__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.dev99'
2
- __revision__ = '68bd172d5acce0086e88d20a01fe294fc1fc390c'
1
+ __version__ = '0.0.0.dev100'
2
+ __revision__ = '82ba736e6716a22664513d7e70b388c6645703db'
3
3
 
4
4
 
5
5
  #
omlish/asyncs/bridge.py CHANGED
@@ -8,10 +8,19 @@ KEEP THE SPACE SHUTTLE FLYING.
8
8
 
9
9
  TODO:
10
10
  - reuse greenlet if nested somehow?
11
+ - test cancel
11
12
 
12
13
  See:
13
- - https://greenback.readthedocs.io/en/latest/
14
- """
14
+ - https://github.com/sqlalchemy/sqlalchemy/blob/21ea01eebe0350ad1185c7288dca61f363ebd2fe/lib/sqlalchemy/util/concurrency.py
15
+ - ( https://gist.github.com/snaury/202bf4f22c41ca34e56297bae5f33fef )
16
+ - Baked into sqlalchemy and hard-bound to asyncio.
17
+ - https://github.com/oremanj/greenback/blob/ca69b023a9b7b58b715f3b1d78fc116e788a2c9f/greenback/_impl.py
18
+ - ( https://gist.github.com/oremanj/f18ef3e55b9487c2e93eee42232583f2 )
19
+ - Similar to this, but does horrible things with ctypes and is hard-bound to greenlet.
20
+ - https://github.com/fastapi/asyncer/blob/2a4b8ef2540ec687af13d3f361c4ed0cf0cb624d/asyncer/_main.py
21
+ - https://github.com/django/asgiref/blob/05ae3eee3fae4005ae4cfb0bb22d281725fabade/asgiref/sync.py
22
+ - Both are much heavier weight and hard-bound to threads.
23
+ """ # noqa
15
24
  import functools # noqa
16
25
  import itertools
17
26
  import sys # noqa
@@ -60,7 +60,7 @@ class hash_eq(HashEq[K], lang.NotInstantiable, lang.Final): # noqa
60
60
  raise TypeError
61
61
 
62
62
 
63
- class HashEqMap(ta.Mapping[K, V]):
63
+ class HashEqMap(ta.MutableMapping[K, V]):
64
64
  class _Node(ta.NamedTuple, ta.Generic[K2, V2]):
65
65
  k: K2
66
66
  v: V2
@@ -70,6 +70,7 @@ class HashEqMap(ta.Mapping[K, V]):
70
70
  super().__init__()
71
71
 
72
72
  self._hash_eq = hash_eq
73
+
73
74
  self._dct: dict[int, list[HashEqMap._Node[K, V]]] = {}
74
75
  self._len = 0
75
76
 
@@ -79,6 +80,10 @@ class HashEqMap(ta.Mapping[K, V]):
79
80
  def __len__(self) -> int:
80
81
  return self._len
81
82
 
83
+ def clear(self) -> None:
84
+ self._dct.clear()
85
+ self._len = 0
86
+
82
87
  def __contains__(self, k: K) -> bool: # type: ignore[override]
83
88
  h = self._hash_eq.hash(k)
84
89
  try:
@@ -69,7 +69,7 @@ class Renderer(lang.Abstract):
69
69
  return self._params_preparer.prepare()
70
70
 
71
71
  @dispatch.method
72
- def render(self, o: ta.Any) -> str:
72
+ def render(self, o: ta.Any) -> None:
73
73
  raise TypeError(o)
74
74
 
75
75
  @classmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omlish
3
- Version: 0.0.0.dev99
3
+ Version: 0.0.0.dev100
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=hTFp9tvE72BxKloIq1s1SS0LRQlIsvMtO69Sbc47rKg,1704
2
- omlish/__about__.py,sha256=6713nqxxPtA38L0r9uYNrMgouxInTcm_aUGG-SmXVbI,3351
2
+ omlish/__about__.py,sha256=yVqFrqrMN4BTjvYSB13be3wGA95pIC84Yq_0m2yFPyA,3352
3
3
  omlish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omlish/argparse.py,sha256=Dc73G8lyoQBLvXhMYUbzQUh4SJu_OTvKUXjSUxq_ang,7499
5
5
  omlish/c3.py,sha256=4vogWgwPb8TbNS2KkZxpoWbwjj7MuHG2lQG-hdtkvjI,8062
@@ -82,7 +82,7 @@ omlish/asyncs/__init__.py,sha256=uUz9ziKh4_QrgmdhKFMgq6j7mFbiZd3LiogguDCQsGI,587
82
82
  omlish/asyncs/anyio.py,sha256=gfpx-D8QGmUfhnQxHEaHXcAP8zSMQjcGw4COFTGNnHI,8021
83
83
  omlish/asyncs/asyncio.py,sha256=JfM59QgB3asgEbrps0zoVbNjWD4kL2XdsEkRMEIoFos,971
84
84
  omlish/asyncs/asyncs.py,sha256=Tf7ZodTGepkM7HAuFcDNh9lLzzrMw6rELWvopGmFkh4,2035
85
- omlish/asyncs/bridge.py,sha256=bcTEhsBJOWAMixu_fCxkDedLP3NEitAfwaHYTu26sQE,8980
85
+ omlish/asyncs/bridge.py,sha256=GJOjXVwZJvpq2q9rCwRI2u7Tg-KLUx-SY92b873-M4c,9738
86
86
  omlish/asyncs/flavors.py,sha256=1mNxGNRVmjUHzA13K5ht8vdJv4CLEmzYTQ6BZXr1520,4866
87
87
  omlish/asyncs/trio.py,sha256=fmZ5b_lKdVV8NQ3euCUutWgnkqTFzSnOjvJSA_jvmrE,367
88
88
  omlish/asyncs/trio_asyncio.py,sha256=oqdOHy0slj9PjVxaDf3gJkq9AAgg7wYZbB469jOftVw,1327
@@ -100,7 +100,7 @@ omlish/collections/_io_abc.py,sha256=Cxs8KB1B_69rxpUYxI-MTsilAmNooJJn3w07DKqYKkE
100
100
  omlish/collections/coerce.py,sha256=o11AMrUiyoadd8WkdqeKPIpXf2xd0LyylzNCyJivCLU,7036
101
101
  omlish/collections/exceptions.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
102
102
  omlish/collections/frozen.py,sha256=DGxemj_pVID85tSBm-Wns_x4ov0wOEIT6X5bVgJtmkA,4152
103
- omlish/collections/hasheq.py,sha256=UXgZQycBTgPLtwt4onBlNzmjy1zuAw32xuUvOwpwM6g,3813
103
+ omlish/collections/hasheq.py,sha256=Q3tmo0f-vVlNNICNvxCfqgOPwVJymKSahdlG1w6TtTU,3899
104
104
  omlish/collections/identity.py,sha256=jhEpC8tnfh3Sg-MJff1Fp9eMydt150wits_UeVdctUk,2723
105
105
  omlish/collections/indexed.py,sha256=tFQsIWH4k9QqsF5VB7DsIVNsRThiQNx-ooRF36X_PnU,2203
106
106
  omlish/collections/mappings.py,sha256=eEifLZez-BWunTuj6974bGxBFfNRODZpu6Oa7_2ME94,3190
@@ -421,7 +421,7 @@ omlish/sql/queries/multi.py,sha256=7x6x-4jnPzxA6ZasBjnjFuhHFpWt5rGCua3UvuTMIJ0,8
421
421
  omlish/sql/queries/names.py,sha256=YiIyS6ehYMYrdLlUxMawV_Xf2zdi7RwVO9Qsxr_W4_4,772
422
422
  omlish/sql/queries/ops.py,sha256=B7IDfjr2DW5LJhWoNaY1WW90BJhe5ZtmxIELhWXbW-0,129
423
423
  omlish/sql/queries/relations.py,sha256=-d3n-dN17c3TPMZmzSplhWawllUzdq12XPDAuzoeMEQ,838
424
- omlish/sql/queries/rendering.py,sha256=QegTkbSGlGKen4U4XB2lqjpkt1WGaZUmXmVR2gm8UiU,5944
424
+ omlish/sql/queries/rendering.py,sha256=DUmdsQqChCBxCSXSL0dDUz0H5joTL_qayhdErsWz6dQ,5945
425
425
  omlish/sql/queries/selects.py,sha256=8dqm4KyrJvOsW3KHSO7qLEfPlZa7sJDp8puuGxrfvoA,1369
426
426
  omlish/sql/queries/stmts.py,sha256=pBqwD7dRlqMu6uh6vR3xaWOEgbZCcFWbOQ9ryYd17T4,441
427
427
  omlish/sql/queries/unary.py,sha256=MEYBDZn_H0bexmUrJeONOv5-gIpYowUaXOsEHeQM4ks,1144
@@ -458,9 +458,9 @@ omlish/text/delimit.py,sha256=ubPXcXQmtbOVrUsNh5gH1mDq5H-n1y2R4cPL5_DQf68,4928
458
458
  omlish/text/glyphsplit.py,sha256=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,3296
459
459
  omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
460
460
  omlish/text/parts.py,sha256=7vPF1aTZdvLVYJ4EwBZVzRSy8XB3YqPd7JwEnNGGAOo,6495
461
- omlish-0.0.0.dev99.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
462
- omlish-0.0.0.dev99.dist-info/METADATA,sha256=dlvMKXrg8JClykUv0QJZisR5FWrEFVDWqr5W07gAKP0,3999
463
- omlish-0.0.0.dev99.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
464
- omlish-0.0.0.dev99.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
465
- omlish-0.0.0.dev99.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
466
- omlish-0.0.0.dev99.dist-info/RECORD,,
461
+ omlish-0.0.0.dev100.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
462
+ omlish-0.0.0.dev100.dist-info/METADATA,sha256=TdLGZ5Orn-POreEB-DwNEVxZtZLSzc-J_wm9QxN6WVM,4000
463
+ omlish-0.0.0.dev100.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
464
+ omlish-0.0.0.dev100.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
465
+ omlish-0.0.0.dev100.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
466
+ omlish-0.0.0.dev100.dist-info/RECORD,,