omlish 0.0.0.dev21__py3-none-any.whl → 0.0.0.dev23__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 +17 -8
- omlish/asyncs/bridge.py +35 -19
- omlish/bootstrap/__init__.py +39 -0
- omlish/bootstrap/base.py +3 -1
- omlish/bootstrap/diag.py +51 -2
- omlish/bootstrap/main.py +2 -1
- omlish/bootstrap/marshal.py +18 -0
- omlish/check.py +123 -33
- omlish/concurrent/__init__.py +11 -0
- omlish/concurrent/executors.py +52 -0
- omlish/{concurrent.py → concurrent/futures.py} +0 -44
- omlish/concurrent/threadlets.py +91 -0
- omlish/diag/asts.py +132 -0
- omlish/diag/pycharm.py +80 -0
- omlish/docker.py +3 -0
- omlish/genmachine.py +58 -0
- omlish/lang/functions.py +3 -0
- omlish/logs/__init__.py +4 -0
- omlish/logs/handlers.py +10 -0
- omlish/marshal/__init__.py +4 -0
- omlish/marshal/base64.py +4 -0
- omlish/marshal/primitives.py +6 -0
- omlish/marshal/standard.py +4 -0
- omlish/marshal/unions.py +101 -0
- omlish/matchfns.py +3 -3
- omlish/secrets/openssl.py +2 -2
- omlish/sql/__init__.py +18 -0
- omlish/sql/qualifiedname.py +82 -0
- {omlish-0.0.0.dev21.dist-info → omlish-0.0.0.dev23.dist-info}/METADATA +13 -9
- {omlish-0.0.0.dev21.dist-info → omlish-0.0.0.dev23.dist-info}/RECORD +33 -23
- {omlish-0.0.0.dev21.dist-info → omlish-0.0.0.dev23.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev21.dist-info → omlish-0.0.0.dev23.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev21.dist-info → omlish-0.0.0.dev23.dist-info}/top_level.txt +0 -0
omlish/matchfns.py
CHANGED
@@ -93,7 +93,7 @@ class MultiMatchFn(MatchFn[P, T]):
|
|
93
93
|
children: ta.Sequence[MatchFn[P, T]]
|
94
94
|
strict: bool = False
|
95
95
|
|
96
|
-
def
|
96
|
+
def match(self, *args: P.args, **kwargs: P.kwargs) -> MatchFn[P, T] | None:
|
97
97
|
matches = []
|
98
98
|
for cur in self.children:
|
99
99
|
if cur.guard(*args, **kwargs):
|
@@ -109,10 +109,10 @@ class MultiMatchFn(MatchFn[P, T]):
|
|
109
109
|
return matches[0]
|
110
110
|
|
111
111
|
def guard(self, *args: P.args, **kwargs: P.kwargs) -> bool:
|
112
|
-
return self.
|
112
|
+
return self.match(*args, **kwargs) is not None
|
113
113
|
|
114
114
|
def fn(self, *args: P.args, **kwargs: P.kwargs) -> T:
|
115
|
-
if (m := self.
|
115
|
+
if (m := self.match(*args, **kwargs)) is None:
|
116
116
|
raise MatchGuardError(*args, **kwargs)
|
117
117
|
return m.fn(*args, **kwargs)
|
118
118
|
|
omlish/secrets/openssl.py
CHANGED
@@ -42,7 +42,7 @@ def generate_key(self, sz: int = DEFAULT_KEY_SIZE) -> bytes:
|
|
42
42
|
##
|
43
43
|
|
44
44
|
|
45
|
-
class
|
45
|
+
class OpensslAescbcCrypto(Crypto):
|
46
46
|
"""
|
47
47
|
!!! https://docs.openssl.org/3.0/man7/passphrase-encoding/
|
48
48
|
https://cryptography.io/en/latest/hazmat/primitives/symmetric-encryption/#cryptography.hazmat.primitives.ciphers.Cipher
|
@@ -122,7 +122,7 @@ class OpensslAes265CbcCrypto(Crypto):
|
|
122
122
|
##
|
123
123
|
|
124
124
|
|
125
|
-
class
|
125
|
+
class OpensslSubprocessAescbcCrypto(Crypto):
|
126
126
|
def __init__(
|
127
127
|
self,
|
128
128
|
*,
|
omlish/sql/__init__.py
CHANGED
@@ -7,3 +7,21 @@ from .asyncs import ( # noqa
|
|
7
7
|
AsyncTransactionLike,
|
8
8
|
async_adapt,
|
9
9
|
)
|
10
|
+
|
11
|
+
from .dbs import ( # noqa
|
12
|
+
DbLoc,
|
13
|
+
DbSpec,
|
14
|
+
DbType,
|
15
|
+
DbTypes,
|
16
|
+
HostDbLoc,
|
17
|
+
UrlDbLoc,
|
18
|
+
)
|
19
|
+
|
20
|
+
from .exprs import ( # noqa
|
21
|
+
paren,
|
22
|
+
)
|
23
|
+
|
24
|
+
from .qualifiedname import ( # noqa
|
25
|
+
QualifiedName,
|
26
|
+
qn,
|
27
|
+
)
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import collections.abc
|
2
|
+
import dataclasses as dc
|
3
|
+
import typing as ta
|
4
|
+
|
5
|
+
|
6
|
+
@dc.dataclass(frozen=True)
|
7
|
+
class QualifiedName(ta.Sequence[str]):
|
8
|
+
parts: ta.Sequence[str]
|
9
|
+
|
10
|
+
def __post_init__(self) -> None:
|
11
|
+
if not (
|
12
|
+
self.parts and
|
13
|
+
not isinstance(self.parts, str) and
|
14
|
+
all(self.parts) and
|
15
|
+
all(isinstance(p, str) for p in self.parts)
|
16
|
+
):
|
17
|
+
raise ValueError(self)
|
18
|
+
|
19
|
+
def __repr__(self) -> str:
|
20
|
+
return f'{self.__class__.__name__}([{", ".join(map(repr, self.parts))}])'
|
21
|
+
|
22
|
+
@property
|
23
|
+
def dotted(self) -> str:
|
24
|
+
return '.'.join(self.parts)
|
25
|
+
|
26
|
+
def prefixed(self, sz: int) -> tuple[str | None, ...]:
|
27
|
+
if len(self) > sz:
|
28
|
+
raise ValueError(self)
|
29
|
+
return ((None,) * (sz - len(self))) + tuple(self.parts)
|
30
|
+
|
31
|
+
@property
|
32
|
+
def pair(self) -> tuple[str | None, str]:
|
33
|
+
return self.prefixed(2) # type: ignore
|
34
|
+
|
35
|
+
@property
|
36
|
+
def triple(self) -> tuple[str | None, str | None, str]:
|
37
|
+
return self.prefixed(3) # type: ignore
|
38
|
+
|
39
|
+
@property
|
40
|
+
def quad(self) -> tuple[str | None, str | None, str | None, str]:
|
41
|
+
return self.prefixed(4) # type: ignore
|
42
|
+
|
43
|
+
def __iter__(self) -> ta.Iterator[str]:
|
44
|
+
return iter(self.parts)
|
45
|
+
|
46
|
+
def __len__(self) -> int:
|
47
|
+
return len(self.parts)
|
48
|
+
|
49
|
+
def __getitem__(self, idx: int) -> str: # type: ignore
|
50
|
+
return self.parts[idx]
|
51
|
+
|
52
|
+
@classmethod
|
53
|
+
def of_dotted(cls, dotted: str) -> 'QualifiedName':
|
54
|
+
return cls(dotted.split('.'))
|
55
|
+
|
56
|
+
@classmethod
|
57
|
+
def of(
|
58
|
+
cls,
|
59
|
+
obj: ta.Union['QualifiedName', ta.Iterable[str]],
|
60
|
+
) -> 'QualifiedName':
|
61
|
+
if isinstance(obj, QualifiedName):
|
62
|
+
return obj
|
63
|
+
elif isinstance(obj, str):
|
64
|
+
raise TypeError(obj)
|
65
|
+
elif isinstance(obj, collections.abc.Iterable):
|
66
|
+
return cls(list(obj))
|
67
|
+
else:
|
68
|
+
raise TypeError(obj)
|
69
|
+
|
70
|
+
@classmethod
|
71
|
+
def of_optional(
|
72
|
+
cls,
|
73
|
+
obj: ta.Union['QualifiedName', ta.Iterable[str], None],
|
74
|
+
) -> ta.Optional['QualifiedName']:
|
75
|
+
if obj is None:
|
76
|
+
return None
|
77
|
+
else:
|
78
|
+
return cls.of(obj)
|
79
|
+
|
80
|
+
|
81
|
+
def qn(*args: str) -> QualifiedName:
|
82
|
+
return QualifiedName(args)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: omlish
|
3
|
-
Version: 0.0.0.
|
3
|
+
Version: 0.0.0.dev23
|
4
4
|
Summary: omlish
|
5
5
|
Author: wrmsr
|
6
6
|
License: BSD-3-Clause
|
@@ -15,11 +15,16 @@ License-File: LICENSE
|
|
15
15
|
Provides-Extra: all
|
16
16
|
Requires-Dist: anyio ~=4.4 ; extra == 'all'
|
17
17
|
Requires-Dist: sniffio ~=1.3 ; extra == 'all'
|
18
|
+
Requires-Dist: greenlet ~=3.1 ; extra == 'all'
|
18
19
|
Requires-Dist: trio ~=0.26 ; extra == 'all'
|
20
|
+
Requires-Dist: trio-asyncio ~=0.15 ; extra == 'all'
|
19
21
|
Requires-Dist: lz4 ~=4.0 ; extra == 'all'
|
20
22
|
Requires-Dist: zstd ~=1.5 ; extra == 'all'
|
23
|
+
Requires-Dist: asttokens ~=2.4 ; extra == 'all'
|
24
|
+
Requires-Dist: executing ~=2.1 ; extra == 'all'
|
21
25
|
Requires-Dist: psutil ~=6.0 ; extra == 'all'
|
22
26
|
Requires-Dist: orjson ~=3.10 ; extra == 'all'
|
27
|
+
Requires-Dist: ujson ~=5.10 ; extra == 'all'
|
23
28
|
Requires-Dist: json5 ~=0.9 ; extra == 'all'
|
24
29
|
Requires-Dist: pyyaml ~=5.0 ; extra == 'all'
|
25
30
|
Requires-Dist: cloudpickle ~=3.0 ; extra == 'all'
|
@@ -27,33 +32,33 @@ Requires-Dist: httpx[http2] ~=0.27 ; extra == 'all'
|
|
27
32
|
Requires-Dist: jinja2 ~=3.1 ; extra == 'all'
|
28
33
|
Requires-Dist: wrapt ~=1.14 ; extra == 'all'
|
29
34
|
Requires-Dist: cryptography ~=43.0 ; extra == 'all'
|
35
|
+
Requires-Dist: sqlalchemy[asyncio] ~=2.0 ; extra == 'all'
|
30
36
|
Requires-Dist: pg8000 ~=1.31 ; extra == 'all'
|
31
37
|
Requires-Dist: pymysql ~=1.1 ; extra == 'all'
|
32
38
|
Requires-Dist: aiomysql ~=0.2 ; extra == 'all'
|
33
39
|
Requires-Dist: aiosqlite ~=0.20 ; extra == 'all'
|
34
40
|
Requires-Dist: duckdb ~=1.1 ; extra == 'all'
|
35
41
|
Requires-Dist: pytest ~=8.0 ; extra == 'all'
|
36
|
-
Requires-Dist: greenlet ~=3.0 ; (python_version < "3.13") and extra == 'all'
|
37
|
-
Requires-Dist: trio-asyncio ~=0.15 ; (python_version < "3.13") and extra == 'all'
|
38
42
|
Requires-Dist: python-snappy ~=0.7 ; (python_version < "3.13") and extra == 'all'
|
39
|
-
Requires-Dist: sqlalchemy[asyncio] ~=2.0 ; (python_version < "3.13") and extra == 'all'
|
40
43
|
Requires-Dist: asyncpg ~=0.29 ; (python_version < "3.13") and extra == 'all'
|
41
44
|
Requires-Dist: sqlean.py ~=3.45 ; (python_version < "3.13") and extra == 'all'
|
42
|
-
Requires-Dist: sqlalchemy ~=2.0 ; (python_version ~= "3.13") and extra == 'all'
|
43
45
|
Provides-Extra: async
|
44
46
|
Requires-Dist: anyio ~=4.4 ; extra == 'async'
|
45
47
|
Requires-Dist: sniffio ~=1.3 ; extra == 'async'
|
48
|
+
Requires-Dist: greenlet ~=3.1 ; extra == 'async'
|
46
49
|
Requires-Dist: trio ~=0.26 ; extra == 'async'
|
47
|
-
Requires-Dist:
|
48
|
-
Requires-Dist: trio-asyncio ~=0.15 ; (python_version < "3.13") and extra == 'async'
|
50
|
+
Requires-Dist: trio-asyncio ~=0.15 ; extra == 'async'
|
49
51
|
Provides-Extra: compression
|
50
52
|
Requires-Dist: lz4 ~=4.0 ; extra == 'compression'
|
51
53
|
Requires-Dist: zstd ~=1.5 ; extra == 'compression'
|
52
54
|
Requires-Dist: python-snappy ~=0.7 ; (python_version < "3.13") and extra == 'compression'
|
53
55
|
Provides-Extra: diag
|
56
|
+
Requires-Dist: asttokens ~=2.4 ; extra == 'diag'
|
57
|
+
Requires-Dist: executing ~=2.1 ; extra == 'diag'
|
54
58
|
Requires-Dist: psutil ~=6.0 ; extra == 'diag'
|
55
59
|
Provides-Extra: formats
|
56
60
|
Requires-Dist: orjson ~=3.10 ; extra == 'formats'
|
61
|
+
Requires-Dist: ujson ~=5.10 ; extra == 'formats'
|
57
62
|
Requires-Dist: json5 ~=0.9 ; extra == 'formats'
|
58
63
|
Requires-Dist: pyyaml ~=5.0 ; extra == 'formats'
|
59
64
|
Requires-Dist: cloudpickle ~=3.0 ; extra == 'formats'
|
@@ -65,13 +70,12 @@ Requires-Dist: wrapt ~=1.14 ; extra == 'misc'
|
|
65
70
|
Provides-Extra: secrets
|
66
71
|
Requires-Dist: cryptography ~=43.0 ; extra == 'secrets'
|
67
72
|
Provides-Extra: sql
|
73
|
+
Requires-Dist: sqlalchemy[asyncio] ~=2.0 ; extra == 'sql'
|
68
74
|
Requires-Dist: pg8000 ~=1.31 ; extra == 'sql'
|
69
75
|
Requires-Dist: pymysql ~=1.1 ; extra == 'sql'
|
70
76
|
Requires-Dist: aiomysql ~=0.2 ; extra == 'sql'
|
71
77
|
Requires-Dist: aiosqlite ~=0.20 ; extra == 'sql'
|
72
|
-
Requires-Dist: sqlalchemy[asyncio] ~=2.0 ; (python_version < "3.13") and extra == 'sql'
|
73
78
|
Requires-Dist: asyncpg ~=0.29 ; (python_version < "3.13") and extra == 'sql'
|
74
|
-
Requires-Dist: sqlalchemy ~=2.0 ; (python_version ~= "3.13") and extra == 'sql'
|
75
79
|
Provides-Extra: sqlx
|
76
80
|
Requires-Dist: duckdb ~=1.1 ; extra == 'sqlx'
|
77
81
|
Requires-Dist: sqlean.py ~=3.45 ; (python_version < "3.13") and extra == 'sqlx'
|
@@ -1,18 +1,18 @@
|
|
1
|
-
omlish/__about__.py,sha256=
|
1
|
+
omlish/__about__.py,sha256=KiGBpOncoW1f9W1y130G59BNQdvfrd0cRxVrJ-_d5JA,2532
|
2
2
|
omlish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
3
|
omlish/argparse.py,sha256=QRQmX9G0-L_nATkFtGHvpd4qrpYzKATdjuFLbBqzJPM,6224
|
4
4
|
omlish/c3.py,sha256=W5EwYx9Por3rWYLkKUitJ6OoRMLLgVTfLTyroOz41Y0,8047
|
5
5
|
omlish/cached.py,sha256=UAizxlH4eMWHPzQtmItmyE6FEpFEUFzIkxaO2BHWZ5s,196
|
6
|
-
omlish/check.py,sha256=
|
7
|
-
omlish/concurrent.py,sha256=jCGG76Ca_8761g1uY3nCJONg_Nxcf4JQQZYvvrmsKE4,5395
|
6
|
+
omlish/check.py,sha256=18vZWH9qEVMs62LTfn_XC0U5GPeaOotKLmL41qecyNQ,7560
|
8
7
|
omlish/datetimes.py,sha256=HajeM1kBvwlTa-uR1TTZHmZ3zTPnnUr1uGGQhiO1XQ0,2152
|
9
8
|
omlish/defs.py,sha256=T3bq_7h_tO3nDB5RAFBn7DkdeQgqheXzkFColbOHZko,4890
|
10
|
-
omlish/docker.py,sha256=
|
9
|
+
omlish/docker.py,sha256=Nwyk4jpUmpd4NE0H1JeMQ42WC9NymJDZ8TPLQ9P24MY,4748
|
11
10
|
omlish/dynamic.py,sha256=35C_cCX_Vq2HrHzGk5T-zbrMvmUdiIiwDzDNixczoDo,6541
|
12
11
|
omlish/fnpairs.py,sha256=hVuLqQFdRNNze3FYH2cAQO3GC7nK5yQP_GWPUSbL7nE,10601
|
12
|
+
omlish/genmachine.py,sha256=LDIMOc5OXnJ5IBzRyHX4ZR6FqViVKowuiGVWamexP9k,1595
|
13
13
|
omlish/iterators.py,sha256=GGLC7RIT86uXMjhIIIqnff_Iu5SI_b9rXYywYGFyzmo,7292
|
14
14
|
omlish/libc.py,sha256=u0481imCiTFqP_e-v9g0pD-0WD249j5vYzhtn-fnNkY,15308
|
15
|
-
omlish/matchfns.py,sha256=
|
15
|
+
omlish/matchfns.py,sha256=ygqbqthRxgF9I1PJaw9Xl7FoZnAVMmnKBrYgimKQ0ag,6152
|
16
16
|
omlish/math.py,sha256=AVqp5Y8yxKA-wO0BgrzaxA0Ga3PZiCXnYcwivMneC-0,3804
|
17
17
|
omlish/multiprocessing.py,sha256=QZT4C7I-uThCAjaEY3xgUYb-5GagUlnE4etN01LDyU4,5186
|
18
18
|
omlish/os.py,sha256=cz4nL2ujaxH_-XRq3JUD8af8mSe1JXGPIoXP9XAEd0M,2607
|
@@ -24,16 +24,17 @@ omlish/asyncs/__init__.py,sha256=uUz9ziKh4_QrgmdhKFMgq6j7mFbiZd3LiogguDCQsGI,587
|
|
24
24
|
omlish/asyncs/anyio.py,sha256=Hqdi1iCopKoaAWGx-AYTRLEwnavLWx1esfJISK1IVF0,8024
|
25
25
|
omlish/asyncs/asyncio.py,sha256=JfM59QgB3asgEbrps0zoVbNjWD4kL2XdsEkRMEIoFos,971
|
26
26
|
omlish/asyncs/asyncs.py,sha256=Tf7ZodTGepkM7HAuFcDNh9lLzzrMw6rELWvopGmFkh4,2035
|
27
|
-
omlish/asyncs/bridge.py,sha256=
|
27
|
+
omlish/asyncs/bridge.py,sha256=fkMQWG2TNmPB9BfIxtXrE50W5FJw0ma44GleOXbcSKw,8628
|
28
28
|
omlish/asyncs/flavors.py,sha256=1mNxGNRVmjUHzA13K5ht8vdJv4CLEmzYTQ6BZXr1520,4866
|
29
29
|
omlish/asyncs/trio.py,sha256=GKG3wgelFr7gIKKHZhcflvMyCvxXHNZe862KB0Xw2uA,370
|
30
30
|
omlish/asyncs/trio_asyncio.py,sha256=oqdOHy0slj9PjVxaDf3gJkq9AAgg7wYZbB469jOftVw,1327
|
31
|
-
omlish/bootstrap/__init__.py,sha256
|
31
|
+
omlish/bootstrap/__init__.py,sha256=-Rtsg7uPQNhh1dIT9nqrz96XlqizwoLnWf-FwOEstJI,730
|
32
32
|
omlish/bootstrap/__main__.py,sha256=d23loR_cKfTYZwYiqpt_CmKI7dd5WcYFgIYzqMep75E,68
|
33
|
-
omlish/bootstrap/base.py,sha256=
|
34
|
-
omlish/bootstrap/diag.py,sha256=
|
33
|
+
omlish/bootstrap/base.py,sha256=koELbK6UmsZaRj-6Bng5_zPVmEBqDpFCduEdR5BddOs,1077
|
34
|
+
omlish/bootstrap/diag.py,sha256=8ajcsuY__5TlYzpbO6m4T87jw8uLcQ0wuJKdtQ7350w,4396
|
35
35
|
omlish/bootstrap/harness.py,sha256=vQCIhCQY_N0NHWvDh8rG6Lo57U1qHkQf2egifbXzN-8,2027
|
36
|
-
omlish/bootstrap/main.py,sha256=
|
36
|
+
omlish/bootstrap/main.py,sha256=9ZbgXaRNZwt_hXdg8W4YjpP0v0Si_qqlfu86jfgRz04,5215
|
37
|
+
omlish/bootstrap/marshal.py,sha256=qKewGVs-3i2p5W9nywkXSo1pcbVxmOAlTvfLjyo0xpo,554
|
37
38
|
omlish/bootstrap/sys.py,sha256=U0MFxO9tLFV3cdN5Y-Zrink6_45sFvzPUYQXyBk7-ns,8741
|
38
39
|
omlish/collections/__init__.py,sha256=h7gXQNMI_46hRRlIAI3PTaewMV8H381FV_KlONReg9s,1660
|
39
40
|
omlish/collections/_abc.py,sha256=sP7BpTVhx6s6C59mTFeosBi4rHOWC6tbFBYbxdZmvh0,2365
|
@@ -56,6 +57,10 @@ omlish/collections/cache/__init__.py,sha256=Cv8RX-Ehit3um0QLDq7uRDqJUCcdqTKoAB9T
|
|
56
57
|
omlish/collections/cache/descriptor.py,sha256=t-1Gh4DTABDuNmeDJlpoW4LV3gi_uSlBd9ZfBINfYCM,5023
|
57
58
|
omlish/collections/cache/impl.py,sha256=nQox5kChhns9h2a5gnX-ayQGBQJ5-B1aZkLQ2Aej19g,15137
|
58
59
|
omlish/collections/cache/types.py,sha256=yNjwd6CGyTJQdxN2CQxFqqBAlcs1Z7vvNV-aU1K7p8E,685
|
60
|
+
omlish/concurrent/__init__.py,sha256=9p-s8MvBEYDqHIoYU3OYoe-Nni22QdkW7nhZGEukJTM,197
|
61
|
+
omlish/concurrent/executors.py,sha256=FYKCDYYuj-OgMa8quLsA47SfFNX3KDJvRENVk8NDsrA,1292
|
62
|
+
omlish/concurrent/futures.py,sha256=J2s9wYURUskqRJiBbAR0PNEAp1pXbIMYldOVBTQduQY,4239
|
63
|
+
omlish/concurrent/threadlets.py,sha256=2fzXEp_KPqIY7uoa5Jk2DJ3bLMY73ZsnzgN5myGanwc,2034
|
59
64
|
omlish/configs/__init__.py,sha256=3uh09ezodTwkMI0nRmAMP0eEuJ_0VdF-LYyNmPjHiCE,77
|
60
65
|
omlish/configs/classes.py,sha256=GLbB8xKjHjjoUQRCUQm3nEjM8z1qNTx9gPV7ODSt5dg,1317
|
61
66
|
omlish/configs/flattening.py,sha256=AOlRpBHm449MxwMp3CiIRGunStOC1DUNs1f3CLou0wc,4731
|
@@ -86,9 +91,11 @@ omlish/dataclasses/impl/simple.py,sha256=EovA-GpmQYtB_svItO2byTAWqbKGF4njz0MdQts
|
|
86
91
|
omlish/dataclasses/impl/slots.py,sha256=_sm-x9v1tPnXEHBHNUMTHZocgVyhZaPdvamIPPBUVyk,2635
|
87
92
|
omlish/dataclasses/impl/utils.py,sha256=aER2iL3UAtgS1BdLuEvTr9Tr2wC28wk1kiOeO-jIymw,6138
|
88
93
|
omlish/diag/__init__.py,sha256=BYQoq12W2qU0O7m2Z-RLCX6YLIYEW9MmfN7_i9--Yk0,132
|
94
|
+
omlish/diag/asts.py,sha256=BveUUNUcaAm4Hg55f4ZxGSI313E4L8cCZ5XjHpEkKVI,3325
|
89
95
|
omlish/diag/procfs.py,sha256=ggIeFoaNZ4j6HvKTiXD6Q3b9apgto7j55pwswCrIHXE,9581
|
90
96
|
omlish/diag/procstats.py,sha256=9uQMvVL7Yzf_1F8dW55pcZeCFtP5yUbK1KuGn9bt2Qg,502
|
91
97
|
omlish/diag/ps.py,sha256=1JWxZen3fVG-20R6ZZ8BtO_gpzw_5bhHZiKdoHkgxoU,1004
|
98
|
+
omlish/diag/pycharm.py,sha256=HgPvABfgzNU3rb77B5W8hZ4_5sP6l3W5hg8R6vM1Yr4,1686
|
92
99
|
omlish/diag/pydevd.py,sha256=Fsx9rfCOnwLD6RLBqH0uAdtq75rbNeBAQfiDvIBd3e0,7295
|
93
100
|
omlish/diag/threads.py,sha256=1-x02VCDZ407gfbtXm1pWK-ubqhqfePm9PMqkHCVoqk,3642
|
94
101
|
omlish/diag/replserver/__init__.py,sha256=uLo6V2aQ29v9z3IMELlPDSlG3_2iOT4-_X8VniF-EgE,235
|
@@ -161,7 +168,7 @@ omlish/lang/cmp.py,sha256=5vbzWWbqdzDmNKAGL19z6ZfUKe5Ci49e-Oegf9f4BsE,1346
|
|
161
168
|
omlish/lang/contextmanagers.py,sha256=rzMSwJU7ObFXl46r6pGDbD45Zi_qZ9NHxDPnLNuux9o,9732
|
162
169
|
omlish/lang/descriptors.py,sha256=VGbebrhWR0WLe3SASN444lBBvAreVMcwdam1FjcRxkQ,5908
|
163
170
|
omlish/lang/exceptions.py,sha256=qJBo3NU1mOWWm-NhQUHCY5feYXR3arZVyEHinLsmRH4,47
|
164
|
-
omlish/lang/functions.py,sha256=
|
171
|
+
omlish/lang/functions.py,sha256=yJxWwqlXEAT2gied4uTwiz5x1qXeuVubOSXyn9zy5aI,3624
|
165
172
|
omlish/lang/imports.py,sha256=04ugFC8NI5sbL7NH4V0r0q_nFsP_AMkHLz697CVkMtQ,6274
|
166
173
|
omlish/lang/iterables.py,sha256=_q6rHbdFfW3VBqez0IV3rUABoNxsA_oBv_sykm5zsbQ,2243
|
167
174
|
omlish/lang/maybes.py,sha256=NYHZDjqDtwPMheDrj2VtUVujxRPf8Qpgk4ZlZCTvBZc,3492
|
@@ -196,16 +203,17 @@ omlish/lite/runtime.py,sha256=VUhmNQvwf8QzkWSKj4Q0ReieJA_PzHaJNRBivfTseow,452
|
|
196
203
|
omlish/lite/secrets.py,sha256=FEc47dcU9M1CyMTnrihAAVwKf0ySZLahf83djOEDWXw,488
|
197
204
|
omlish/lite/strings.py,sha256=9dO_A6EkhcTZ2xmOUGSOMT-mx9BnoOzYu1-ocSrDJaA,670
|
198
205
|
omlish/lite/subprocesses.py,sha256=KuGV3ImehMjCUK0JoV3pUtG_7o5wei1lRDn9HxzByAg,3063
|
199
|
-
omlish/logs/__init__.py,sha256=
|
206
|
+
omlish/logs/__init__.py,sha256=E4m-RTIaTh0rT9ADY9iB1Yc3pYBcnmn-tfkWXsjRTW4,276
|
200
207
|
omlish/logs/_abc.py,sha256=UgrCUQVUi_PvT3p1CEkb3P74CFrFcZq2AFby3GEUv9M,5974
|
201
208
|
omlish/logs/configs.py,sha256=VfZjhyA4CeMYNhlsv5oD2IZ6Iv4d_lbUgZzcnLAkxNA,1052
|
202
209
|
omlish/logs/formatters.py,sha256=AFs9C6-qrFkgXZ0nL39wih_LGck1Tc79alvGyibBdQo,720
|
210
|
+
omlish/logs/handlers.py,sha256=nyuFgmO05By_Xwq7es58ClzS51-F53lJL7gD0x5IqAg,228
|
203
211
|
omlish/logs/noisy.py,sha256=8JORjI1dH38yU2MddM54OB6qt32Xozfocdb88vY4wro,335
|
204
212
|
omlish/logs/utils.py,sha256=MgGovbP0zUrZ3FGD3qYNQWn-l0jy0Y0bStcQvv5BOmQ,391
|
205
|
-
omlish/marshal/__init__.py,sha256=
|
213
|
+
omlish/marshal/__init__.py,sha256=Oqp0e27zj3YsI5Ek0CPvyH8Rfm3hWU0wzXJcjeu5HdQ,1573
|
206
214
|
omlish/marshal/any.py,sha256=e82OyYK3Emm1P1ClnsnxP7fIWC2iNVyW0H5nK4mLmWM,779
|
207
215
|
omlish/marshal/base.py,sha256=EIgrqsQ1OQ4mVUMuDH5zRBCwJpn8ijVS98Nmoka_Mrs,6025
|
208
|
-
omlish/marshal/base64.py,sha256=
|
216
|
+
omlish/marshal/base64.py,sha256=F-3ogJdcFCtWINRgJgWT0rErqgx6f4qahhcg8OrkqhE,1089
|
209
217
|
omlish/marshal/dataclasses.py,sha256=cqHfzkQe7T-A_eAx-xZm6AIOZLnqE-alMUXMtRTYxuI,3910
|
210
218
|
omlish/marshal/datetimes.py,sha256=0ffg8cEvx9SMKIXZGD9b7MqpLfmgw0uKKdn6YTfoqok,3714
|
211
219
|
omlish/marshal/enums.py,sha256=-0fKutBbyz8ygEaA0_P_8IOJrI9jMGigmnPbutV9Bg4,1464
|
@@ -222,9 +230,10 @@ omlish/marshal/numbers.py,sha256=oY_yMNJEnJhjfLh89gpPXvKqeUyhQcaTcQB6ecyHiG8,170
|
|
222
230
|
omlish/marshal/objects.py,sha256=T3prlm0HESpOLXHWcdsYekfmythJRZQOvaoL0is8J_o,3097
|
223
231
|
omlish/marshal/optionals.py,sha256=r0XB5rqfasvgZJNrKYd6Unq2U4nHt3JURi26j0dYHlw,1499
|
224
232
|
omlish/marshal/polymorphism.py,sha256=gyvNYUAkmQVhWrcXBLzXINxqx6RHyulf9n16Iv38PFI,5597
|
225
|
-
omlish/marshal/primitives.py,sha256
|
233
|
+
omlish/marshal/primitives.py,sha256=wcvcs5GH_TWVmzAszh3dvyKibJgBxnXke-AlAXiwrrI,1107
|
226
234
|
omlish/marshal/registries.py,sha256=GI2KogcxawMkk02Ky7-TsnijChoe1I7YTOPIbUNwSAI,1665
|
227
|
-
omlish/marshal/standard.py,sha256=
|
235
|
+
omlish/marshal/standard.py,sha256=uQZIGiCwihmhB1tmhpKnZWZly0DDkdGjCnN0d41WHho,2985
|
236
|
+
omlish/marshal/unions.py,sha256=m9uVp2HrkZKY9lDyGoWQGXFgan8mRuBaKimtWNksl64,2635
|
228
237
|
omlish/marshal/utils.py,sha256=puKJpwPpuDlMOIrKMcLTRLJyMiL6n_Xs-p59AuDEymA,543
|
229
238
|
omlish/marshal/uuids.py,sha256=H4B7UX_EPNmP2tC8bubcKrPLTS4aQu98huvbXQ3Zv2g,910
|
230
239
|
omlish/marshal/values.py,sha256=ssHiWdg_L6M17kAn8GiGdPW7UeQOm3RDikWkvwblf5I,263
|
@@ -236,7 +245,7 @@ omlish/reflect/types.py,sha256=R9AH5YnOvdZs6QhzJ6VmjvcvGibQEQi6YqK25f5VUxw,6862
|
|
236
245
|
omlish/secrets/__init__.py,sha256=VKB2IF9vz4h4RXcZxgXj36KXOLcGBzfqVnxPgPDWpmg,408
|
237
246
|
omlish/secrets/crypto.py,sha256=6CsLy0UEqCrBK8Xx_3-iFF6SKtu2GlEqUQ8-MliY3tk,3709
|
238
247
|
omlish/secrets/marshal.py,sha256=nVzsvQH5w3T2oMP7DCc1SLKxyR5e66psM57VOQoL0QA,2086
|
239
|
-
omlish/secrets/openssl.py,sha256=
|
248
|
+
omlish/secrets/openssl.py,sha256=wxA_wIlxtuOUy71ABxAJgavh-UI_taOfm-A0dVlmSwM,6219
|
240
249
|
omlish/secrets/passwords.py,sha256=3r-vEK6Gp6aq4L5Csnd06QnrjO9xfzHJP-g_7I9W_ao,4101
|
241
250
|
omlish/secrets/secrets.py,sha256=hFN82uYiBVx8YSE86leWNxb4IRp3qdwZPOi4w04h8u0,6855
|
242
251
|
omlish/secrets/subprocesses.py,sha256=EcnKlHHtnUMHGrBWXDfu8tv28wlgZx4P4GOiuPW9Vo8,1105
|
@@ -253,12 +262,13 @@ omlish/specs/jsonschema/keywords/validation.py,sha256=ghewVUSG5qPYnmexy1Ylc-Xoui
|
|
253
262
|
omlish/specs/jsonschema/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
254
263
|
omlish/specs/jsonschema/schemas/draft202012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
255
264
|
omlish/specs/jsonschema/schemas/draft202012/vocabularies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
256
|
-
omlish/sql/__init__.py,sha256=
|
265
|
+
omlish/sql/__init__.py,sha256=QHKkiM0rvSDWKUYrvTSynOni5fB46QQ2gOw_TcMBQ2o,398
|
257
266
|
omlish/sql/_abc.py,sha256=HLhnnLZ7l0r_N99I-RCqJe6VHth-9iluU7cR-7-5jfs,1519
|
258
267
|
omlish/sql/asyncs.py,sha256=Wye3dwh7oZEGYz2Y4DZQSHtW4xjI2AH5qjW-BSS2IfU,3688
|
259
268
|
omlish/sql/dbs.py,sha256=lpdFmm2vTwLoBiVYGj9yPsVcTEYYNCxlYZZpjfChzkY,1870
|
260
269
|
omlish/sql/duckdb.py,sha256=Z3wiZEn_21Lu1ElFRX0ATzoBMCw0KJxINjTRuTexYGM,3748
|
261
270
|
omlish/sql/exprs.py,sha256=gO4Fj4xEY-PuDgV-N8hBMy55glZz7O-4H7v1LWabfZY,323
|
271
|
+
omlish/sql/qualifiedname.py,sha256=rlW3gVmyucJbqwcxj_7BfK4X2HoXrMroZT2H45zPgJQ,2264
|
262
272
|
omlish/sql/secrets.py,sha256=mDUunIACxHBsPD_ONbHQJVndeMMzJR4vMC2WWX7tGfY,177
|
263
273
|
omlish/sql/sqlean.py,sha256=RbkuOuFIfM4fowwKk8-sQ6Dxk-tTUwxS94nY5Kxt52s,403
|
264
274
|
omlish/testing/__init__.py,sha256=kfiF10ykrjWXniedIl3g8j3pNAFyuSbp1D3ZXug3-Eo,168
|
@@ -285,8 +295,8 @@ omlish/text/delimit.py,sha256=ubPXcXQmtbOVrUsNh5gH1mDq5H-n1y2R4cPL5_DQf68,4928
|
|
285
295
|
omlish/text/glyphsplit.py,sha256=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,3296
|
286
296
|
omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
|
287
297
|
omlish/text/parts.py,sha256=KGgo0wHOIMVMZtDso-rhSWKAcAkYAH2IGpg9tULabu8,6505
|
288
|
-
omlish-0.0.0.
|
289
|
-
omlish-0.0.0.
|
290
|
-
omlish-0.0.0.
|
291
|
-
omlish-0.0.0.
|
292
|
-
omlish-0.0.0.
|
298
|
+
omlish-0.0.0.dev23.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
299
|
+
omlish-0.0.0.dev23.dist-info/METADATA,sha256=vhWl21vTSXsQivm5hv_6iQ-60K2Iiaa2UigiH6Hbkww,3666
|
300
|
+
omlish-0.0.0.dev23.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
301
|
+
omlish-0.0.0.dev23.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
302
|
+
omlish-0.0.0.dev23.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|