omlish 0.0.0.dev448__py3-none-any.whl → 0.0.0.dev449__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.
Potentially problematic release.
This version of omlish might be problematic. Click here for more details.
- omlish/__about__.py +3 -3
- omlish/collections/mappings.py +3 -0
- omlish/lang/__init__.py +162 -96
- omlish/lang/contextmanagers.py +12 -0
- omlish/lang/functions.py +20 -16
- omlish/metadata.py +23 -1
- omlish/sql/{tabledefs/alchemy.py → alchemy/tabledefs.py} +2 -2
- {omlish-0.0.0.dev448.dist-info → omlish-0.0.0.dev449.dist-info}/METADATA +5 -5
- {omlish-0.0.0.dev448.dist-info → omlish-0.0.0.dev449.dist-info}/RECORD +13 -13
- {omlish-0.0.0.dev448.dist-info → omlish-0.0.0.dev449.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev448.dist-info → omlish-0.0.0.dev449.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev448.dist-info → omlish-0.0.0.dev449.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev448.dist-info → omlish-0.0.0.dev449.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
__version__ = '0.0.0.
|
|
2
|
-
__revision__ = '
|
|
1
|
+
__version__ = '0.0.0.dev449'
|
|
2
|
+
__revision__ = 'f126f0642775913f3de0d8cc4b62ff957b8480cf'
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
#
|
|
@@ -36,7 +36,7 @@ class Project(ProjectBase):
|
|
|
36
36
|
|
|
37
37
|
optional_dependencies = {
|
|
38
38
|
'async': [
|
|
39
|
-
'anyio ~= 4.
|
|
39
|
+
'anyio ~= 4.11',
|
|
40
40
|
'sniffio ~= 1.3',
|
|
41
41
|
|
|
42
42
|
'greenlet ~= 3.2',
|
omlish/collections/mappings.py
CHANGED
omlish/lang/__init__.py
CHANGED
|
@@ -68,10 +68,12 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
68
68
|
)
|
|
69
69
|
|
|
70
70
|
from .classes.abstract import ( # noqa
|
|
71
|
-
get_abstracts,
|
|
72
|
-
is_abstract,
|
|
73
|
-
is_abstract_class,
|
|
74
71
|
is_abstract_method,
|
|
72
|
+
|
|
73
|
+
is_abstract_class,
|
|
74
|
+
is_abstract,
|
|
75
|
+
|
|
76
|
+
get_abstracts,
|
|
75
77
|
make_abstract,
|
|
76
78
|
)
|
|
77
79
|
|
|
@@ -81,8 +83,8 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
81
83
|
|
|
82
84
|
from .classes.namespaces import ( # noqa
|
|
83
85
|
GenericNamespaceMeta,
|
|
84
|
-
Namespace,
|
|
85
86
|
NamespaceMeta,
|
|
87
|
+
Namespace,
|
|
86
88
|
)
|
|
87
89
|
|
|
88
90
|
from .classes.protocols import ( # noqa
|
|
@@ -91,54 +93,65 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
91
93
|
)
|
|
92
94
|
|
|
93
95
|
from .classes.restrict import ( # noqa
|
|
94
|
-
AnySensitive,
|
|
95
|
-
Final,
|
|
96
96
|
FinalTypeError,
|
|
97
|
-
|
|
97
|
+
Final,
|
|
98
|
+
|
|
99
|
+
SealedError,
|
|
100
|
+
Sealed,
|
|
101
|
+
PackageSealed,
|
|
102
|
+
|
|
98
103
|
NotInstantiable,
|
|
99
104
|
NotPicklable,
|
|
100
|
-
|
|
105
|
+
|
|
106
|
+
NoBool,
|
|
107
|
+
no_bool,
|
|
108
|
+
|
|
101
109
|
SENSITIVE_ATTR,
|
|
102
|
-
Sealed,
|
|
103
|
-
SealedError,
|
|
104
110
|
Sensitive,
|
|
105
|
-
|
|
111
|
+
AnySensitive,
|
|
106
112
|
)
|
|
107
113
|
|
|
108
114
|
from .classes.simple import ( # noqa
|
|
109
|
-
LazySingleton,
|
|
110
|
-
Marker,
|
|
111
115
|
SimpleMetaDict,
|
|
116
|
+
|
|
117
|
+
Marker,
|
|
118
|
+
|
|
112
119
|
Singleton,
|
|
120
|
+
LazySingleton,
|
|
113
121
|
)
|
|
114
122
|
|
|
115
123
|
from .classes.virtual import ( # noqa
|
|
116
|
-
Callable,
|
|
117
|
-
Descriptor,
|
|
118
|
-
Picklable,
|
|
119
124
|
Virtual,
|
|
120
125
|
virtual_check,
|
|
126
|
+
|
|
127
|
+
Descriptor,
|
|
128
|
+
Picklable,
|
|
129
|
+
|
|
130
|
+
Callable,
|
|
121
131
|
)
|
|
122
132
|
|
|
123
133
|
from .clsdct import ( # noqa
|
|
134
|
+
is_possibly_cls_dct,
|
|
135
|
+
get_caller_cls_dct,
|
|
136
|
+
|
|
124
137
|
ClassDctFn,
|
|
125
138
|
cls_dct_fn,
|
|
126
|
-
get_caller_cls_dct,
|
|
127
|
-
is_possibly_cls_dct,
|
|
128
139
|
)
|
|
129
140
|
|
|
130
141
|
from .collections import ( # noqa
|
|
131
|
-
empty_map,
|
|
132
|
-
merge_dicts,
|
|
133
142
|
yield_dict_init,
|
|
143
|
+
merge_dicts,
|
|
144
|
+
|
|
145
|
+
empty_map,
|
|
134
146
|
)
|
|
135
147
|
|
|
136
148
|
from .comparison import ( # noqa
|
|
137
|
-
|
|
149
|
+
cmp,
|
|
150
|
+
|
|
138
151
|
InfinityType,
|
|
139
|
-
|
|
152
|
+
Infinity,
|
|
140
153
|
NegativeInfinityType,
|
|
141
|
-
|
|
154
|
+
NegativeInfinity,
|
|
142
155
|
)
|
|
143
156
|
|
|
144
157
|
from .contextmanagers import ( # noqa
|
|
@@ -181,6 +194,9 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
181
194
|
|
|
182
195
|
call_with_exit_stack,
|
|
183
196
|
call_with_async_exit_stack,
|
|
197
|
+
|
|
198
|
+
with_exit_stack,
|
|
199
|
+
with_async_exit_stack,
|
|
184
200
|
)
|
|
185
201
|
|
|
186
202
|
from .datetimes import ( # noqa
|
|
@@ -194,19 +210,26 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
194
210
|
)
|
|
195
211
|
|
|
196
212
|
from .descriptors import ( # noqa
|
|
197
|
-
AccessForbiddenError,
|
|
198
|
-
access_forbidden,
|
|
199
213
|
attr_property,
|
|
200
|
-
classonly,
|
|
201
|
-
decorator,
|
|
202
|
-
is_method_descriptor,
|
|
203
214
|
item_property,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
unwrap_func,
|
|
207
|
-
unwrap_func_with_partials,
|
|
215
|
+
|
|
216
|
+
is_method_descriptor,
|
|
208
217
|
unwrap_method_descriptors,
|
|
218
|
+
|
|
219
|
+
unwrap_func_with_partials,
|
|
220
|
+
unwrap_func,
|
|
221
|
+
|
|
222
|
+
unwrap_callable_with_partials,
|
|
223
|
+
unwrap_callable,
|
|
224
|
+
|
|
209
225
|
update_wrapper,
|
|
226
|
+
|
|
227
|
+
decorator,
|
|
228
|
+
|
|
229
|
+
AccessForbiddenError,
|
|
230
|
+
access_forbidden,
|
|
231
|
+
|
|
232
|
+
classonly,
|
|
210
233
|
)
|
|
211
234
|
|
|
212
235
|
from .enums import ( # noqa
|
|
@@ -218,43 +241,57 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
218
241
|
)
|
|
219
242
|
|
|
220
243
|
from .functions import ( # noqa
|
|
221
|
-
|
|
244
|
+
is_lambda,
|
|
245
|
+
|
|
222
246
|
call_with,
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
247
|
+
opt_call,
|
|
248
|
+
opt_fn,
|
|
249
|
+
recurse,
|
|
250
|
+
|
|
251
|
+
raise_,
|
|
252
|
+
raising,
|
|
253
|
+
try_,
|
|
226
254
|
finally_,
|
|
255
|
+
|
|
227
256
|
identity,
|
|
228
|
-
|
|
257
|
+
constant,
|
|
258
|
+
nullary_constant,
|
|
259
|
+
|
|
229
260
|
is_none,
|
|
230
261
|
is_not_none,
|
|
231
262
|
isinstance_of,
|
|
232
263
|
issubclass_of,
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
264
|
+
strict_eq,
|
|
265
|
+
|
|
266
|
+
VoidError,
|
|
267
|
+
Void,
|
|
268
|
+
void,
|
|
269
|
+
|
|
270
|
+
periodically,
|
|
271
|
+
|
|
272
|
+
opt_getattr,
|
|
273
|
+
coalesce,
|
|
237
274
|
opt_coalesce,
|
|
238
|
-
|
|
275
|
+
|
|
276
|
+
cond_kw,
|
|
239
277
|
opt_kw,
|
|
240
|
-
periodically,
|
|
241
|
-
raise_,
|
|
242
|
-
raising,
|
|
243
|
-
recurse,
|
|
244
|
-
strict_eq,
|
|
245
278
|
truthy_kw,
|
|
246
|
-
|
|
247
|
-
|
|
279
|
+
|
|
280
|
+
new_function,
|
|
281
|
+
new_function_kwargs,
|
|
248
282
|
)
|
|
249
283
|
|
|
250
284
|
from .generators import ( # noqa
|
|
251
|
-
|
|
252
|
-
GeneratorMappedIterator,
|
|
285
|
+
nextgen,
|
|
253
286
|
autostart,
|
|
254
|
-
|
|
287
|
+
|
|
288
|
+
GeneratorLike,
|
|
289
|
+
|
|
255
290
|
capture_generator,
|
|
291
|
+
capture_coroutine,
|
|
292
|
+
|
|
293
|
+
GeneratorMappedIterator,
|
|
256
294
|
genmap,
|
|
257
|
-
nextgen,
|
|
258
295
|
)
|
|
259
296
|
|
|
260
297
|
from .imports.capture import ( # noqa
|
|
@@ -294,21 +331,26 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
294
331
|
)
|
|
295
332
|
|
|
296
333
|
from .iterables import ( # noqa
|
|
297
|
-
IteratorWithReturn,
|
|
298
|
-
asrange,
|
|
299
|
-
chunk,
|
|
300
|
-
common_prefix_len,
|
|
301
|
-
consume,
|
|
302
|
-
flatmap,
|
|
303
|
-
flatten,
|
|
304
334
|
ilen,
|
|
335
|
+
take,
|
|
336
|
+
consume,
|
|
337
|
+
peek,
|
|
338
|
+
chunk,
|
|
305
339
|
interleave,
|
|
340
|
+
renumerate,
|
|
341
|
+
common_prefix_len,
|
|
342
|
+
|
|
343
|
+
readiter,
|
|
344
|
+
|
|
306
345
|
itergen,
|
|
307
|
-
|
|
346
|
+
|
|
347
|
+
flatten,
|
|
348
|
+
flatmap,
|
|
349
|
+
|
|
350
|
+
asrange,
|
|
308
351
|
prodrange,
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
take,
|
|
352
|
+
|
|
353
|
+
IteratorWithReturn,
|
|
312
354
|
)
|
|
313
355
|
|
|
314
356
|
from .lazyglobals import ( # noqa
|
|
@@ -330,27 +372,38 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
330
372
|
)
|
|
331
373
|
|
|
332
374
|
from .objects import ( # noqa
|
|
333
|
-
Identity,
|
|
334
|
-
SimpleProxy,
|
|
335
|
-
anon_object,
|
|
336
375
|
arg_repr,
|
|
376
|
+
opt_repr,
|
|
377
|
+
|
|
337
378
|
can_weakref,
|
|
338
|
-
|
|
379
|
+
|
|
339
380
|
new_type,
|
|
340
|
-
opt_repr,
|
|
341
381
|
super_meta,
|
|
382
|
+
|
|
383
|
+
deep_subclasses,
|
|
384
|
+
|
|
385
|
+
SimpleProxy,
|
|
386
|
+
|
|
387
|
+
anon_object,
|
|
388
|
+
|
|
389
|
+
Identity,
|
|
342
390
|
)
|
|
343
391
|
|
|
344
392
|
from .outcomes import ( # noqa
|
|
345
|
-
Either,
|
|
346
|
-
Error,
|
|
347
|
-
Outcome,
|
|
348
393
|
OutcomeAlreadyUnwrappedError,
|
|
349
|
-
|
|
350
|
-
acapture,
|
|
394
|
+
|
|
351
395
|
capture,
|
|
352
|
-
|
|
396
|
+
acapture,
|
|
397
|
+
|
|
398
|
+
Outcome,
|
|
399
|
+
|
|
400
|
+
Value,
|
|
353
401
|
value,
|
|
402
|
+
|
|
403
|
+
Error,
|
|
404
|
+
error,
|
|
405
|
+
|
|
406
|
+
Either,
|
|
354
407
|
)
|
|
355
408
|
|
|
356
409
|
from .overrides import ( # noqa
|
|
@@ -363,29 +416,35 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
363
416
|
)
|
|
364
417
|
|
|
365
418
|
from .params import ( # noqa
|
|
419
|
+
Param,
|
|
420
|
+
|
|
421
|
+
VarParam,
|
|
366
422
|
ArgsParam,
|
|
367
|
-
KwOnlyParam,
|
|
368
423
|
KwargsParam,
|
|
369
|
-
|
|
424
|
+
|
|
425
|
+
ValParam,
|
|
426
|
+
PosOnlyParam,
|
|
427
|
+
KwOnlyParam,
|
|
428
|
+
|
|
370
429
|
ParamSeparator,
|
|
430
|
+
|
|
371
431
|
ParamSpec,
|
|
372
|
-
|
|
373
|
-
ValParam,
|
|
374
|
-
VarParam,
|
|
432
|
+
|
|
375
433
|
param_render,
|
|
376
434
|
)
|
|
377
435
|
|
|
378
436
|
from .recursion import ( # noqa
|
|
379
437
|
LimitedRecursionError,
|
|
380
|
-
recursion_limiting,
|
|
381
438
|
recursion_limiting_context,
|
|
439
|
+
|
|
440
|
+
recursion_limiting,
|
|
382
441
|
)
|
|
383
442
|
|
|
384
443
|
from .resolving import ( # noqa
|
|
385
|
-
Resolvable,
|
|
386
444
|
ResolvableClassNameError,
|
|
387
445
|
get_cls_fqcn,
|
|
388
446
|
get_fqcn_cls,
|
|
447
|
+
Resolvable,
|
|
389
448
|
)
|
|
390
449
|
|
|
391
450
|
from .resources import ( # noqa
|
|
@@ -395,24 +454,31 @@ with _auto_proxy_init(globals(), update_exports=True):
|
|
|
395
454
|
)
|
|
396
455
|
|
|
397
456
|
from .strings import ( # noqa
|
|
398
|
-
BOOL_FALSE_STRINGS,
|
|
399
|
-
BOOL_STRINGS,
|
|
400
|
-
BOOL_TRUE_STRINGS,
|
|
401
|
-
STRING_BOOL_VALUES,
|
|
402
|
-
find_any,
|
|
403
|
-
indent_lines,
|
|
404
|
-
is_dunder,
|
|
405
|
-
is_ident,
|
|
406
|
-
is_ident_cont,
|
|
407
|
-
is_ident_start,
|
|
408
|
-
is_sunder,
|
|
409
|
-
iter_pat,
|
|
410
457
|
prefix_delimited,
|
|
411
458
|
prefix_lines,
|
|
412
|
-
|
|
413
|
-
|
|
459
|
+
indent_lines,
|
|
460
|
+
|
|
414
461
|
strip_prefix,
|
|
415
462
|
strip_suffix,
|
|
463
|
+
|
|
464
|
+
replace_many,
|
|
465
|
+
|
|
466
|
+
find_any,
|
|
467
|
+
rfind_any,
|
|
468
|
+
|
|
469
|
+
is_dunder,
|
|
470
|
+
is_sunder,
|
|
471
|
+
|
|
472
|
+
is_ident_start,
|
|
473
|
+
is_ident_cont,
|
|
474
|
+
is_ident,
|
|
475
|
+
|
|
476
|
+
BOOL_STRINGS,
|
|
477
|
+
BOOL_FALSE_STRINGS,
|
|
478
|
+
BOOL_TRUE_STRINGS,
|
|
479
|
+
STRING_BOOL_VALUES,
|
|
480
|
+
|
|
481
|
+
iter_pat,
|
|
416
482
|
)
|
|
417
483
|
|
|
418
484
|
from .sys import ( # noqa
|
omlish/lang/contextmanagers.py
CHANGED
|
@@ -408,3 +408,15 @@ async def call_with_async_exit_stack(
|
|
|
408
408
|
) -> T:
|
|
409
409
|
async with contextlib.AsyncExitStack() as aes:
|
|
410
410
|
return await fn(aes, *args, **kwargs)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
def with_exit_stack(
|
|
414
|
+
fn: ta.Callable[ta.Concatenate[contextlib.ExitStack, P], T],
|
|
415
|
+
) -> ta.Callable[P, T]:
|
|
416
|
+
return functools.partial(call_with_exit_stack, fn)
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
def with_async_exit_stack(
|
|
420
|
+
fn: ta.Callable[ta.Concatenate[contextlib.AsyncExitStack, P], ta.Awaitable[T]],
|
|
421
|
+
) -> ta.Callable[P, ta.Awaitable[T]]:
|
|
422
|
+
return functools.partial(call_with_async_exit_stack, fn)
|
omlish/lang/functions.py
CHANGED
|
@@ -29,7 +29,18 @@ def call_with(fn: ta.Any, *args: ta.Any, **kwargs: ta.Any) -> ta.Callable[[T], T
|
|
|
29
29
|
return inner
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
def
|
|
32
|
+
def opt_fn(fn: ta.Callable[[F], T]) -> ta.Callable[[F | None], T | None]:
|
|
33
|
+
@functools.wraps(fn)
|
|
34
|
+
def inner(v: F | None) -> T | None:
|
|
35
|
+
if v is not None:
|
|
36
|
+
return fn(v)
|
|
37
|
+
else:
|
|
38
|
+
return None
|
|
39
|
+
|
|
40
|
+
return inner
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def opt_call(obj: ta.Any, att: str, *args, default: ta.Any = None, **kwargs: ta.Any) -> ta.Any:
|
|
33
44
|
try:
|
|
34
45
|
fn = getattr(obj, att)
|
|
35
46
|
except AttributeError:
|
|
@@ -39,7 +50,7 @@ def maybe_call(obj: ta.Any, att: str, *args, default: ta.Any = None, **kwargs: t
|
|
|
39
50
|
|
|
40
51
|
|
|
41
52
|
def recurse(fn: ta.Callable[..., T], *args, **kwargs) -> T:
|
|
42
|
-
def rec(*args, **kwargs) -> T:
|
|
53
|
+
def rec(*args, **kwargs) -> T: # noqa
|
|
43
54
|
return fn(rec, *args, **kwargs)
|
|
44
55
|
|
|
45
56
|
return rec(*args, **kwargs)
|
|
@@ -91,20 +102,6 @@ def identity(obj: T) -> T:
|
|
|
91
102
|
return obj
|
|
92
103
|
|
|
93
104
|
|
|
94
|
-
def opt_fn(fn: ta.Callable[[F], T]) -> ta.Callable[[F | None], T | None]:
|
|
95
|
-
@functools.wraps(fn)
|
|
96
|
-
def inner(v: F | None) -> T | None:
|
|
97
|
-
if v is not None:
|
|
98
|
-
return fn(v)
|
|
99
|
-
else:
|
|
100
|
-
return None
|
|
101
|
-
|
|
102
|
-
return inner
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
##
|
|
106
|
-
|
|
107
|
-
|
|
108
105
|
class _constant(ta.Generic[T]): # noqa
|
|
109
106
|
def __init__(self, obj: T) -> None:
|
|
110
107
|
super().__init__()
|
|
@@ -198,6 +195,13 @@ def periodically(
|
|
|
198
195
|
##
|
|
199
196
|
|
|
200
197
|
|
|
198
|
+
def opt_getattr(obj: ta.Any, att: str, default: ta.Any = None) -> ta.Any:
|
|
199
|
+
try:
|
|
200
|
+
return getattr(obj, att)
|
|
201
|
+
except AttributeError:
|
|
202
|
+
return default
|
|
203
|
+
|
|
204
|
+
|
|
201
205
|
def coalesce(*vs: T | None) -> T:
|
|
202
206
|
for v in vs:
|
|
203
207
|
if v is not None:
|
omlish/metadata.py
CHANGED
|
@@ -19,6 +19,8 @@ from . import lang
|
|
|
19
19
|
|
|
20
20
|
T = ta.TypeVar('T')
|
|
21
21
|
|
|
22
|
+
ObjectMetadataT = ta.TypeVar('ObjectMetadataT', bound='ObjectMetadata')
|
|
23
|
+
|
|
22
24
|
|
|
23
25
|
##
|
|
24
26
|
|
|
@@ -94,12 +96,32 @@ def append_object_metadata(obj: T, *mds: ObjectMetadata) -> T:
|
|
|
94
96
|
_type = type
|
|
95
97
|
|
|
96
98
|
|
|
99
|
+
@ta.overload
|
|
100
|
+
def get_object_metadata(
|
|
101
|
+
obj: ta.Any,
|
|
102
|
+
*,
|
|
103
|
+
strict: bool = False,
|
|
104
|
+
type: ta.Type[ObjectMetadataT], # noqa
|
|
105
|
+
) -> ta.Sequence[ObjectMetadataT]:
|
|
106
|
+
...
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@ta.overload
|
|
97
110
|
def get_object_metadata(
|
|
98
111
|
obj: ta.Any,
|
|
99
112
|
*,
|
|
100
113
|
strict: bool = False,
|
|
101
114
|
type: ta.Type | tuple[ta.Type, ...] | None = None, # noqa
|
|
102
|
-
) -> ta.Sequence[
|
|
115
|
+
) -> ta.Sequence[ta.Any]:
|
|
116
|
+
...
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def get_object_metadata(
|
|
120
|
+
obj,
|
|
121
|
+
*,
|
|
122
|
+
strict=False,
|
|
123
|
+
type=None, # noqa
|
|
124
|
+
):
|
|
103
125
|
try:
|
|
104
126
|
tgt = _unwrap_object_metadata_target(obj)
|
|
105
127
|
except ObjectMetadataTargetTypeError:
|
|
@@ -7,13 +7,13 @@ import typing as ta
|
|
|
7
7
|
import sqlalchemy as sa
|
|
8
8
|
import sqlalchemy.sql.schema
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from ..tabledefs import TableDef
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
##
|
|
14
14
|
|
|
15
15
|
|
|
16
|
-
def
|
|
16
|
+
def build_td_table(
|
|
17
17
|
td: TableDef,
|
|
18
18
|
*,
|
|
19
19
|
metadata: sa.MetaData | None = None,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: omlish
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev449
|
|
4
4
|
Summary: omlish
|
|
5
5
|
Author: wrmsr
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -15,7 +15,7 @@ Requires-Python: >=3.13
|
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
17
|
Provides-Extra: all
|
|
18
|
-
Requires-Dist: anyio~=4.
|
|
18
|
+
Requires-Dist: anyio~=4.11; extra == "all"
|
|
19
19
|
Requires-Dist: sniffio~=1.3; extra == "all"
|
|
20
20
|
Requires-Dist: greenlet~=3.2; extra == "all"
|
|
21
21
|
Requires-Dist: trio~=0.31; extra == "all"
|
|
@@ -47,7 +47,7 @@ Requires-Dist: duckdb~=1.4; extra == "all"
|
|
|
47
47
|
Requires-Dist: markupsafe~=3.0; extra == "all"
|
|
48
48
|
Requires-Dist: jinja2~=3.1; extra == "all"
|
|
49
49
|
Requires-Dist: pytest~=8.4; extra == "all"
|
|
50
|
-
Requires-Dist: anyio~=4.
|
|
50
|
+
Requires-Dist: anyio~=4.11; extra == "all"
|
|
51
51
|
Requires-Dist: sniffio~=1.3; extra == "all"
|
|
52
52
|
Requires-Dist: asttokens~=3.0; extra == "all"
|
|
53
53
|
Requires-Dist: executing~=2.2; extra == "all"
|
|
@@ -55,7 +55,7 @@ Requires-Dist: orjson~=3.11; extra == "all"
|
|
|
55
55
|
Requires-Dist: pyyaml~=6.0; extra == "all"
|
|
56
56
|
Requires-Dist: wrapt~=1.17; extra == "all"
|
|
57
57
|
Provides-Extra: async
|
|
58
|
-
Requires-Dist: anyio~=4.
|
|
58
|
+
Requires-Dist: anyio~=4.11; extra == "async"
|
|
59
59
|
Requires-Dist: sniffio~=1.3; extra == "async"
|
|
60
60
|
Requires-Dist: greenlet~=3.2; extra == "async"
|
|
61
61
|
Requires-Dist: trio~=0.31; extra == "async"
|
|
@@ -98,7 +98,7 @@ Requires-Dist: jinja2~=3.1; extra == "templates"
|
|
|
98
98
|
Provides-Extra: testing
|
|
99
99
|
Requires-Dist: pytest~=8.4; extra == "testing"
|
|
100
100
|
Provides-Extra: plus
|
|
101
|
-
Requires-Dist: anyio~=4.
|
|
101
|
+
Requires-Dist: anyio~=4.11; extra == "plus"
|
|
102
102
|
Requires-Dist: sniffio~=1.3; extra == "plus"
|
|
103
103
|
Requires-Dist: asttokens~=3.0; extra == "plus"
|
|
104
104
|
Requires-Dist: executing~=2.2; extra == "plus"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
|
|
2
|
-
omlish/__about__.py,sha256=
|
|
2
|
+
omlish/__about__.py,sha256=imEFdhZ1oFLg4ROvAtmgSayohMctG7MAuAFYTQFvscc,3613
|
|
3
3
|
omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
|
|
4
4
|
omlish/c3.py,sha256=ZNIMl1kwg3qdei4DiUrJPQe5M81S1e76N-GuNSwLBAE,8683
|
|
5
5
|
omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
|
|
6
6
|
omlish/check.py,sha256=DDNZnLxNoY2Y7N0Hz7nMR1q912ZzRLoBgOJVLcsXVws,6575
|
|
7
7
|
omlish/datetimes.py,sha256=7dh4aiVRWXWECH3JLF8kkRbgJ1qyGlAlQVp1vCXdTBE,2168
|
|
8
8
|
omlish/libc.py,sha256=mNY2FWZ2BjSucOx5TEW8IP_B5n84tVZWuVPL3Z3sUH8,15644
|
|
9
|
-
omlish/metadata.py,sha256=
|
|
9
|
+
omlish/metadata.py,sha256=lTh3NYVyjHtLTyAGiZxXJMjZrSPQ1E8zXvnJCgKSESA,4179
|
|
10
10
|
omlish/runmodule.py,sha256=vQ9VZN_c3sQX9rj036dW9lXuMWTjGOfWnwDcWTSWnn0,705
|
|
11
11
|
omlish/shlex.py,sha256=rlbgHWxjwpkCBRphOPqSIN_KD6qWJMLldNJUILulKT0,253
|
|
12
12
|
omlish/sync.py,sha256=bmhoaapdt1WhbL8_BWP9WhCy-u6VeZKnv2k9fzRZDds,3551
|
|
@@ -71,7 +71,7 @@ omlish/collections/coerce.py,sha256=tAls15v_7p5bUN33R7Zbko87KW5toWHl9fRialCqyNY,
|
|
|
71
71
|
omlish/collections/frozen.py,sha256=drarjcMFpwKhBM01b1Gh6XDcaRaUgpyuxEiqppaKRkU,4220
|
|
72
72
|
omlish/collections/hasheq.py,sha256=uHypfZlHhicQPvx9OOlpT9MSLwfc_mFil-WaxF9dTOo,3732
|
|
73
73
|
omlish/collections/identity.py,sha256=00UAYIjCRhyj73Es0jVNvOloXjRxHcjRxGQeWo75OEo,4834
|
|
74
|
-
omlish/collections/mappings.py,sha256=
|
|
74
|
+
omlish/collections/mappings.py,sha256=FWDErWR63y3xcjBfxXH58M1yOAqCdMyFWwzBjGAE7UQ,3346
|
|
75
75
|
omlish/collections/multimaps.py,sha256=azuif-PeLGvLpCE9_XX5zYx7XtVbsulWq0owvEKNy_g,3897
|
|
76
76
|
omlish/collections/ordered.py,sha256=jBSj5CamdKJAezXM8GlRd7jjaRDk6BHIeOhlxcC9lJI,2468
|
|
77
77
|
omlish/collections/ranked.py,sha256=McB8C2UQfUvrbmxGTpBz1-EZuyCLkBFtktzncMdt8_Y,2287
|
|
@@ -409,19 +409,19 @@ omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,4
|
|
|
409
409
|
omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
|
|
410
410
|
omlish/iterators/transforms.py,sha256=YHVdD9nBkS1k4kogi4Ba0UOTU_pKkuX9jGw1Tqj3UMw,3598
|
|
411
411
|
omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
|
|
412
|
-
omlish/lang/__init__.py,sha256=
|
|
412
|
+
omlish/lang/__init__.py,sha256=O-W0CaUsWeFjCuIdED2wiLhfVicEpPbS_DQQB-t0DpE,10702
|
|
413
413
|
omlish/lang/asyncs.py,sha256=iIHJp7nvgJVj7zS0Ji7NsVSzz54vkzrj0Snc83dxe9g,1965
|
|
414
414
|
omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
|
|
415
415
|
omlish/lang/casing.py,sha256=3_c7cxQOc4z_YezaU2B4NCTAsPh_kDL4wUTK5kZU6kg,4675
|
|
416
416
|
omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
|
|
417
417
|
omlish/lang/collections.py,sha256=kVMp1JJ6ycvKzuiOmf2ZF5Eg2mm3vJGPjkUcV_IACMk,2528
|
|
418
418
|
omlish/lang/comparison.py,sha256=MOwEG0Yny-jBPHO9kQto9FSRyeNpQW24UABsghkrHxY,1356
|
|
419
|
-
omlish/lang/contextmanagers.py,sha256=
|
|
419
|
+
omlish/lang/contextmanagers.py,sha256=JhldLt3avWXYR9WgqgeWbOgGTv4ptP-wQZUlAK28P3k,10032
|
|
420
420
|
omlish/lang/datetimes.py,sha256=01tg21QOx-PWDlm-CSFTalym3vpqF0EKzeinmtcVNoU,379
|
|
421
421
|
omlish/lang/descriptors.py,sha256=sVJ1Pr4ihp26Tu9UCvDSyfSf-DhBnFGnbpYIFF32c7g,6877
|
|
422
422
|
omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
|
|
423
423
|
omlish/lang/errors.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
|
|
424
|
-
omlish/lang/functions.py,sha256=
|
|
424
|
+
omlish/lang/functions.py,sha256=f7K2SC-09veno_lsUGu0DkZks2gL8VpsmyQMB4Q_i6Q,5663
|
|
425
425
|
omlish/lang/generators.py,sha256=nJiSmDpsfPiypGzJ8qlOO7-BUnCsrAeDow9mhtGgBio,5196
|
|
426
426
|
omlish/lang/iterables.py,sha256=o_s8ouaJrdUqEVl2_bzJk5CVdabmrywXY0gPn7xss3w,3371
|
|
427
427
|
omlish/lang/lazyglobals.py,sha256=YfPtWgNEa0ULtbIiQIQ12pbafUwd6INQRw_PFcAabjo,2282
|
|
@@ -705,6 +705,7 @@ omlish/sql/alchemy/duckdb.py,sha256=BM9Z-YK7dI5UZtJbmmIKbocoV-a5X9_5GnSlAEqYEOM,
|
|
|
705
705
|
omlish/sql/alchemy/exprs.py,sha256=-GhV9b_atIJlpn-aXmOMb2zDqRoML6NoqbU8cDvsWUs,328
|
|
706
706
|
omlish/sql/alchemy/secrets.py,sha256=0_T9djpO7ScmmyjdUBrZ6QGFAvsG6NyHXA88O0Apasg,186
|
|
707
707
|
omlish/sql/alchemy/sqlean.py,sha256=w6x2_mDOPWVLkgwHiOEUOJ217nakLwlI015gP670PSs,408
|
|
708
|
+
omlish/sql/alchemy/tabledefs.py,sha256=q5kVTPVoVArOXbpIv78eX0DcT2aY-V3uKoMvHiFSp2w,491
|
|
708
709
|
omlish/sql/api/__init__.py,sha256=Lqia7OvW2CEMFXoyRyKZIYZneYv_vjnZVAvsvv08HV0,1036
|
|
709
710
|
omlish/sql/api/_queries.py,sha256=FqIrtU6JdzQD4S4zv9tdDuzCLHSgJjK8WSfT7Ag4umI,530
|
|
710
711
|
omlish/sql/api/asquery.py,sha256=8eBoJyyu0kHW3k3yytEcT-B6UAI_slKB0QtSK_WQS7g,1203
|
|
@@ -736,7 +737,6 @@ omlish/sql/queries/unary.py,sha256=MEYBDZn_H0bexmUrJeONOv5-gIpYowUaXOsEHeQM4ks,1
|
|
|
736
737
|
omlish/sql/queries/unions.py,sha256=w9lKrQ38nMme_gyDPciZNqyCBhwFkLusc9fjmBDu48U,438
|
|
737
738
|
omlish/sql/tabledefs/__init__.py,sha256=eFaO_QQaEv4Z9CLxFSzZgmXqxPI7xKTpDI6outo1VPk,150
|
|
738
739
|
omlish/sql/tabledefs/_marshal.py,sha256=5Z7K433SzfN7-z8Yd7FJRzOV9tJv-ErRMA6inZ2iBCE,475
|
|
739
|
-
omlish/sql/tabledefs/alchemy.py,sha256=fK00S_AdqadH2sG8SEATaFd7UnQS-vp1ECTYCnTSDuE,490
|
|
740
740
|
omlish/sql/tabledefs/dtypes.py,sha256=X0N6Y1c2bQ4HC0WA-Yv_jZPvGlSqO7hMIV-towDw3MU,367
|
|
741
741
|
omlish/sql/tabledefs/elements.py,sha256=lP_Ch19hKmiGYPQVeC8HpFaKdTYnXi2FfpfwKMxZOck,1674
|
|
742
742
|
omlish/sql/tabledefs/lower.py,sha256=i4_QkVlVH5U99O6pqokrB661AudNVJ9Q-OwtkKOBleU,1410
|
|
@@ -822,9 +822,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
|
822
822
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
|
823
823
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
|
824
824
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
|
825
|
-
omlish-0.0.0.
|
|
826
|
-
omlish-0.0.0.
|
|
827
|
-
omlish-0.0.0.
|
|
828
|
-
omlish-0.0.0.
|
|
829
|
-
omlish-0.0.0.
|
|
830
|
-
omlish-0.0.0.
|
|
825
|
+
omlish-0.0.0.dev449.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
826
|
+
omlish-0.0.0.dev449.dist-info/METADATA,sha256=9xOu6exn_aBuSDxrxDGxBO8JOpogC2J7w7DULnc6dbM,19003
|
|
827
|
+
omlish-0.0.0.dev449.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
828
|
+
omlish-0.0.0.dev449.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
|
829
|
+
omlish-0.0.0.dev449.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
|
830
|
+
omlish-0.0.0.dev449.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|