omlish 0.0.0.dev447__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/cexts/__init__.py +0 -0
- omlish/cexts/include/omlish/omlish.hh +1 -0
- 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/lang/imports/capture.py +2 -0
- omlish/metadata.py +23 -1
- omlish/sql/{tabledefs/alchemy.py → alchemy/tabledefs.py} +2 -2
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev449.dist-info}/METADATA +5 -5
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev449.dist-info}/RECORD +16 -14
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev449.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev449.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev447.dist-info → omlish-0.0.0.dev449.dist-info}/licenses/LICENSE +0 -0
- {omlish-0.0.0.dev447.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/cexts/__init__.py
ADDED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#pragma once
|
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/lang/imports/capture.py
CHANGED
|
@@ -9,6 +9,8 @@ Insufficient alt impls:
|
|
|
9
9
|
|
|
10
10
|
Possible alt impls:
|
|
11
11
|
- aot static analysis, codegen, compare, if valid skip ctxmgr body and inject proxies, otherwise warn and run
|
|
12
|
+
- or just gen code inline, if ta.TYPE_CHECKING: .... else: # @omlish-generate-auto-proxy-import/init
|
|
13
|
+
- generate classic `foo = _lang.proxy_import('.foo', __package__)` blocks
|
|
12
14
|
"""
|
|
13
15
|
import builtins
|
|
14
16
|
import contextlib
|
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
|
|
@@ -54,6 +54,8 @@ omlish/bootstrap/diag.py,sha256=nTHKrZBdyEYoTpctwOpwzSMbQ2dROGkxpdzWfoe2xZg,5353
|
|
|
54
54
|
omlish/bootstrap/harness.py,sha256=qPYW7CXUdLi-a3BK6GvbdAPb91j5IiRlBPcXCjRGzZo,1995
|
|
55
55
|
omlish/bootstrap/main.py,sha256=RQAQVb_Cbk_Lnu-hSGMAo-aVQVIJ-E_TW7ZLsPO-ECk,5909
|
|
56
56
|
omlish/bootstrap/sys.py,sha256=r06ZroT2Rv0CBHiEweqDV6oWaMGNhFc4u0XBMBv3nnY,8793
|
|
57
|
+
omlish/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
+
omlish/cexts/include/omlish/omlish.hh,sha256=s63xBtlbiTT2kJQ_KSEwi5C-W3ZsTIuiUMeS3lZAAgE,13
|
|
57
59
|
omlish/codecs/__init__.py,sha256=-FDwRJFGagg-fZyQ8wup4GPuR6gHpmaChzthlykn-kY,876
|
|
58
60
|
omlish/codecs/base.py,sha256=nKAQKF0985xosHIP0mAkUZnr8lfHFj66ShnxL0OfdQE,2193
|
|
59
61
|
omlish/codecs/bytes.py,sha256=3DxyQQCvFcP3mQ5G93f_mygXEb-7I8buM8EyzUcx2Is,2155
|
|
@@ -69,7 +71,7 @@ omlish/collections/coerce.py,sha256=tAls15v_7p5bUN33R7Zbko87KW5toWHl9fRialCqyNY,
|
|
|
69
71
|
omlish/collections/frozen.py,sha256=drarjcMFpwKhBM01b1Gh6XDcaRaUgpyuxEiqppaKRkU,4220
|
|
70
72
|
omlish/collections/hasheq.py,sha256=uHypfZlHhicQPvx9OOlpT9MSLwfc_mFil-WaxF9dTOo,3732
|
|
71
73
|
omlish/collections/identity.py,sha256=00UAYIjCRhyj73Es0jVNvOloXjRxHcjRxGQeWo75OEo,4834
|
|
72
|
-
omlish/collections/mappings.py,sha256=
|
|
74
|
+
omlish/collections/mappings.py,sha256=FWDErWR63y3xcjBfxXH58M1yOAqCdMyFWwzBjGAE7UQ,3346
|
|
73
75
|
omlish/collections/multimaps.py,sha256=azuif-PeLGvLpCE9_XX5zYx7XtVbsulWq0owvEKNy_g,3897
|
|
74
76
|
omlish/collections/ordered.py,sha256=jBSj5CamdKJAezXM8GlRd7jjaRDk6BHIeOhlxcC9lJI,2468
|
|
75
77
|
omlish/collections/ranked.py,sha256=McB8C2UQfUvrbmxGTpBz1-EZuyCLkBFtktzncMdt8_Y,2287
|
|
@@ -407,19 +409,19 @@ omlish/iterators/recipes.py,sha256=wOwOZg-zWG9Zc3wcAxJFSe2rtavVBYwZOfG09qYEx_4,4
|
|
|
407
409
|
omlish/iterators/tools.py,sha256=M16LXrJhMdsz5ea2qH0vws30ZvhQuQSCVFSLpRf_gTg,2096
|
|
408
410
|
omlish/iterators/transforms.py,sha256=YHVdD9nBkS1k4kogi4Ba0UOTU_pKkuX9jGw1Tqj3UMw,3598
|
|
409
411
|
omlish/iterators/unique.py,sha256=BSE-eanva8byFCJi09Nt2zzTsVr8LnTqY1PIInGYRs0,1396
|
|
410
|
-
omlish/lang/__init__.py,sha256=
|
|
412
|
+
omlish/lang/__init__.py,sha256=O-W0CaUsWeFjCuIdED2wiLhfVicEpPbS_DQQB-t0DpE,10702
|
|
411
413
|
omlish/lang/asyncs.py,sha256=iIHJp7nvgJVj7zS0Ji7NsVSzz54vkzrj0Snc83dxe9g,1965
|
|
412
414
|
omlish/lang/attrstorage.py,sha256=UUnoENCMQF3twBfxBcIKa5mpXsAxWnNYDayhU8xgmpU,5224
|
|
413
415
|
omlish/lang/casing.py,sha256=3_c7cxQOc4z_YezaU2B4NCTAsPh_kDL4wUTK5kZU6kg,4675
|
|
414
416
|
omlish/lang/clsdct.py,sha256=HAGIvBSbCefzRjXriwYSBLO7QHKRv2UsE78jixOb-fA,1828
|
|
415
417
|
omlish/lang/collections.py,sha256=kVMp1JJ6ycvKzuiOmf2ZF5Eg2mm3vJGPjkUcV_IACMk,2528
|
|
416
418
|
omlish/lang/comparison.py,sha256=MOwEG0Yny-jBPHO9kQto9FSRyeNpQW24UABsghkrHxY,1356
|
|
417
|
-
omlish/lang/contextmanagers.py,sha256=
|
|
419
|
+
omlish/lang/contextmanagers.py,sha256=JhldLt3avWXYR9WgqgeWbOgGTv4ptP-wQZUlAK28P3k,10032
|
|
418
420
|
omlish/lang/datetimes.py,sha256=01tg21QOx-PWDlm-CSFTalym3vpqF0EKzeinmtcVNoU,379
|
|
419
421
|
omlish/lang/descriptors.py,sha256=sVJ1Pr4ihp26Tu9UCvDSyfSf-DhBnFGnbpYIFF32c7g,6877
|
|
420
422
|
omlish/lang/enums.py,sha256=F9tflHfaAoV2MpyuhZzpfX9-H55M3zNa9hCszsngEo8,111
|
|
421
423
|
omlish/lang/errors.py,sha256=shcS-NCnEUudF8qC_SmO2TQyjivKlS4TDjaz_faqQ0c,44
|
|
422
|
-
omlish/lang/functions.py,sha256=
|
|
424
|
+
omlish/lang/functions.py,sha256=f7K2SC-09veno_lsUGu0DkZks2gL8VpsmyQMB4Q_i6Q,5663
|
|
423
425
|
omlish/lang/generators.py,sha256=nJiSmDpsfPiypGzJ8qlOO7-BUnCsrAeDow9mhtGgBio,5196
|
|
424
426
|
omlish/lang/iterables.py,sha256=o_s8ouaJrdUqEVl2_bzJk5CVdabmrywXY0gPn7xss3w,3371
|
|
425
427
|
omlish/lang/lazyglobals.py,sha256=YfPtWgNEa0ULtbIiQIQ12pbafUwd6INQRw_PFcAabjo,2282
|
|
@@ -448,7 +450,7 @@ omlish/lang/classes/simple.py,sha256=3AJSs-plVg2flq4SC6I39LxP0nBaB241puv3D5YCP5I
|
|
|
448
450
|
omlish/lang/classes/virtual.py,sha256=J4y-uiv1RaP2rfFeptXqQ1a4MRek0TMlAFFraO_lzhs,3397
|
|
449
451
|
omlish/lang/imports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
450
452
|
omlish/lang/imports/_capture.cc,sha256=jAKW9pOV3ER4Vzd-aywmAeOxbv-b_jNdaxAaVdxfueg,2261
|
|
451
|
-
omlish/lang/imports/capture.py,sha256=
|
|
453
|
+
omlish/lang/imports/capture.py,sha256=wjWuXDUYYHUZ78t_OxVzi27PshBOlhpSoglg7H67zXA,21890
|
|
452
454
|
omlish/lang/imports/conditional.py,sha256=R-E47QD95mMonPImWlrde3rnJrFKCCkYz71c94W05sc,1006
|
|
453
455
|
omlish/lang/imports/lazy.py,sha256=Eefs9hkj5surMdwgxX_Q3BOqPcox10v0sKT5rKIQknc,808
|
|
454
456
|
omlish/lang/imports/proxy.py,sha256=wlXJrl1GiXQ-t5cO_aJLqp1mr_Erl4oMk4uySkkK7bg,6516
|
|
@@ -703,6 +705,7 @@ omlish/sql/alchemy/duckdb.py,sha256=BM9Z-YK7dI5UZtJbmmIKbocoV-a5X9_5GnSlAEqYEOM,
|
|
|
703
705
|
omlish/sql/alchemy/exprs.py,sha256=-GhV9b_atIJlpn-aXmOMb2zDqRoML6NoqbU8cDvsWUs,328
|
|
704
706
|
omlish/sql/alchemy/secrets.py,sha256=0_T9djpO7ScmmyjdUBrZ6QGFAvsG6NyHXA88O0Apasg,186
|
|
705
707
|
omlish/sql/alchemy/sqlean.py,sha256=w6x2_mDOPWVLkgwHiOEUOJ217nakLwlI015gP670PSs,408
|
|
708
|
+
omlish/sql/alchemy/tabledefs.py,sha256=q5kVTPVoVArOXbpIv78eX0DcT2aY-V3uKoMvHiFSp2w,491
|
|
706
709
|
omlish/sql/api/__init__.py,sha256=Lqia7OvW2CEMFXoyRyKZIYZneYv_vjnZVAvsvv08HV0,1036
|
|
707
710
|
omlish/sql/api/_queries.py,sha256=FqIrtU6JdzQD4S4zv9tdDuzCLHSgJjK8WSfT7Ag4umI,530
|
|
708
711
|
omlish/sql/api/asquery.py,sha256=8eBoJyyu0kHW3k3yytEcT-B6UAI_slKB0QtSK_WQS7g,1203
|
|
@@ -734,7 +737,6 @@ omlish/sql/queries/unary.py,sha256=MEYBDZn_H0bexmUrJeONOv5-gIpYowUaXOsEHeQM4ks,1
|
|
|
734
737
|
omlish/sql/queries/unions.py,sha256=w9lKrQ38nMme_gyDPciZNqyCBhwFkLusc9fjmBDu48U,438
|
|
735
738
|
omlish/sql/tabledefs/__init__.py,sha256=eFaO_QQaEv4Z9CLxFSzZgmXqxPI7xKTpDI6outo1VPk,150
|
|
736
739
|
omlish/sql/tabledefs/_marshal.py,sha256=5Z7K433SzfN7-z8Yd7FJRzOV9tJv-ErRMA6inZ2iBCE,475
|
|
737
|
-
omlish/sql/tabledefs/alchemy.py,sha256=fK00S_AdqadH2sG8SEATaFd7UnQS-vp1ECTYCnTSDuE,490
|
|
738
740
|
omlish/sql/tabledefs/dtypes.py,sha256=X0N6Y1c2bQ4HC0WA-Yv_jZPvGlSqO7hMIV-towDw3MU,367
|
|
739
741
|
omlish/sql/tabledefs/elements.py,sha256=lP_Ch19hKmiGYPQVeC8HpFaKdTYnXi2FfpfwKMxZOck,1674
|
|
740
742
|
omlish/sql/tabledefs/lower.py,sha256=i4_QkVlVH5U99O6pqokrB661AudNVJ9Q-OwtkKOBleU,1410
|
|
@@ -820,9 +822,9 @@ omlish/typedvalues/marshal.py,sha256=AtBz7Jq-BfW8vwM7HSxSpR85JAXmxK2T0xDblmm1HI0
|
|
|
820
822
|
omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
|
|
821
823
|
omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
|
|
822
824
|
omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
|
|
823
|
-
omlish-0.0.0.
|
|
824
|
-
omlish-0.0.0.
|
|
825
|
-
omlish-0.0.0.
|
|
826
|
-
omlish-0.0.0.
|
|
827
|
-
omlish-0.0.0.
|
|
828
|
-
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
|