omlish 0.0.0.dev24__py3-none-any.whl → 0.0.0.dev26__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.
Files changed (54) hide show
  1. omlish/__about__.py +20 -4
  2. omlish/_manifests.json +1 -0
  3. omlish/bootstrap/diag.py +25 -0
  4. omlish/bootstrap/harness.py +3 -2
  5. omlish/check.py +1 -1
  6. omlish/collections/__init__.py +1 -0
  7. omlish/collections/utils.py +7 -2
  8. omlish/dataclasses/__init__.py +4 -4
  9. omlish/dataclasses/impl/LICENSE +279 -0
  10. omlish/dataclasses/impl/api.py +5 -3
  11. omlish/dataclasses/impl/exceptions.py +2 -2
  12. omlish/dataclasses/impl/fields.py +7 -4
  13. omlish/dataclasses/impl/init.py +8 -8
  14. omlish/dataclasses/impl/metadata.py +3 -3
  15. omlish/dataclasses/impl/params.py +4 -3
  16. omlish/diag/replserver/server.py +17 -2
  17. omlish/docker.py +74 -6
  18. omlish/formats/yaml.py +10 -0
  19. omlish/graphs/dot/__init__.py +31 -19
  20. omlish/graphs/dot/make.py +16 -0
  21. omlish/graphs/dot/rendering.py +9 -8
  22. omlish/http/cookies.py +2 -1
  23. omlish/inject/impl/scopes.py +2 -0
  24. omlish/inject/keys.py +1 -1
  25. omlish/inject/multis.py +4 -4
  26. omlish/inject/providers.py +1 -1
  27. omlish/lang/__init__.py +9 -0
  28. omlish/lang/classes/__init__.py +3 -0
  29. omlish/lang/classes/restrict.py +25 -4
  30. omlish/lang/classes/simple.py +0 -4
  31. omlish/lang/classes/virtual.py +6 -4
  32. omlish/lang/datetimes.py +9 -0
  33. omlish/lang/typing.py +32 -0
  34. omlish/lite/logs.py +30 -25
  35. omlish/lite/secrets.py +3 -1
  36. omlish/logs/configs.py +2 -2
  37. omlish/marshal/dataclasses.py +1 -1
  38. omlish/secrets/secrets.py +1 -1
  39. omlish/specs/jsonschema/schemas/draft202012/metaschema.json +58 -0
  40. omlish/specs/jsonschema/schemas/draft202012/vocabularies/applicator.json +48 -0
  41. omlish/specs/jsonschema/schemas/draft202012/vocabularies/content.json +17 -0
  42. omlish/specs/jsonschema/schemas/draft202012/vocabularies/core.json +51 -0
  43. omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-annotation.json +14 -0
  44. omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-assertion.json +14 -0
  45. omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json +14 -0
  46. omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json +37 -0
  47. omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json +15 -0
  48. omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json +98 -0
  49. omlish/stats.py +1 -1
  50. {omlish-0.0.0.dev24.dist-info → omlish-0.0.0.dev26.dist-info}/METADATA +1 -1
  51. {omlish-0.0.0.dev24.dist-info → omlish-0.0.0.dev26.dist-info}/RECORD +54 -40
  52. {omlish-0.0.0.dev24.dist-info → omlish-0.0.0.dev26.dist-info}/WHEEL +1 -1
  53. {omlish-0.0.0.dev24.dist-info → omlish-0.0.0.dev26.dist-info}/LICENSE +0 -0
  54. {omlish-0.0.0.dev24.dist-info → omlish-0.0.0.dev26.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,58 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/schema",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/core": true,
6
+ "https://json-schema.org/draft/2020-12/vocab/applicator": true,
7
+ "https://json-schema.org/draft/2020-12/vocab/unevaluated": true,
8
+ "https://json-schema.org/draft/2020-12/vocab/validation": true,
9
+ "https://json-schema.org/draft/2020-12/vocab/meta-data": true,
10
+ "https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
11
+ "https://json-schema.org/draft/2020-12/vocab/content": true
12
+ },
13
+ "$dynamicAnchor": "meta",
14
+
15
+ "title": "Core and Validation specifications meta-schema",
16
+ "allOf": [
17
+ {"$ref": "meta/core"},
18
+ {"$ref": "meta/applicator"},
19
+ {"$ref": "meta/unevaluated"},
20
+ {"$ref": "meta/validation"},
21
+ {"$ref": "meta/meta-data"},
22
+ {"$ref": "meta/format-annotation"},
23
+ {"$ref": "meta/content"}
24
+ ],
25
+ "type": ["object", "boolean"],
26
+ "$comment": "This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.",
27
+ "properties": {
28
+ "definitions": {
29
+ "$comment": "\"definitions\" has been replaced by \"$defs\".",
30
+ "type": "object",
31
+ "additionalProperties": { "$dynamicRef": "#meta" },
32
+ "deprecated": true,
33
+ "default": {}
34
+ },
35
+ "dependencies": {
36
+ "$comment": "\"dependencies\" has been split and replaced by \"dependentSchemas\" and \"dependentRequired\" in order to serve their differing semantics.",
37
+ "type": "object",
38
+ "additionalProperties": {
39
+ "anyOf": [
40
+ { "$dynamicRef": "#meta" },
41
+ { "$ref": "meta/validation#/$defs/stringArray" }
42
+ ]
43
+ },
44
+ "deprecated": true,
45
+ "default": {}
46
+ },
47
+ "$recursiveAnchor": {
48
+ "$comment": "\"$recursiveAnchor\" has been replaced by \"$dynamicAnchor\".",
49
+ "$ref": "meta/core#/$defs/anchorString",
50
+ "deprecated": true
51
+ },
52
+ "$recursiveRef": {
53
+ "$comment": "\"$recursiveRef\" has been replaced by \"$dynamicRef\".",
54
+ "$ref": "meta/core#/$defs/uriReferenceString",
55
+ "deprecated": true
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/applicator",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/applicator": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Applicator vocabulary meta-schema",
10
+ "type": ["object", "boolean"],
11
+ "properties": {
12
+ "prefixItems": { "$ref": "#/$defs/schemaArray" },
13
+ "items": { "$dynamicRef": "#meta" },
14
+ "contains": { "$dynamicRef": "#meta" },
15
+ "additionalProperties": { "$dynamicRef": "#meta" },
16
+ "properties": {
17
+ "type": "object",
18
+ "additionalProperties": { "$dynamicRef": "#meta" },
19
+ "default": {}
20
+ },
21
+ "patternProperties": {
22
+ "type": "object",
23
+ "additionalProperties": { "$dynamicRef": "#meta" },
24
+ "propertyNames": { "format": "regex" },
25
+ "default": {}
26
+ },
27
+ "dependentSchemas": {
28
+ "type": "object",
29
+ "additionalProperties": { "$dynamicRef": "#meta" },
30
+ "default": {}
31
+ },
32
+ "propertyNames": { "$dynamicRef": "#meta" },
33
+ "if": { "$dynamicRef": "#meta" },
34
+ "then": { "$dynamicRef": "#meta" },
35
+ "else": { "$dynamicRef": "#meta" },
36
+ "allOf": { "$ref": "#/$defs/schemaArray" },
37
+ "anyOf": { "$ref": "#/$defs/schemaArray" },
38
+ "oneOf": { "$ref": "#/$defs/schemaArray" },
39
+ "not": { "$dynamicRef": "#meta" }
40
+ },
41
+ "$defs": {
42
+ "schemaArray": {
43
+ "type": "array",
44
+ "minItems": 1,
45
+ "items": { "$dynamicRef": "#meta" }
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/content",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/content": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Content vocabulary meta-schema",
10
+
11
+ "type": ["object", "boolean"],
12
+ "properties": {
13
+ "contentEncoding": { "type": "string" },
14
+ "contentMediaType": { "type": "string" },
15
+ "contentSchema": { "$dynamicRef": "#meta" }
16
+ }
17
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/core",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/core": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Core vocabulary meta-schema",
10
+ "type": ["object", "boolean"],
11
+ "properties": {
12
+ "$id": {
13
+ "$ref": "#/$defs/uriReferenceString",
14
+ "$comment": "Non-empty fragments not allowed.",
15
+ "pattern": "^[^#]*#?$"
16
+ },
17
+ "$schema": { "$ref": "#/$defs/uriString" },
18
+ "$ref": { "$ref": "#/$defs/uriReferenceString" },
19
+ "$anchor": { "$ref": "#/$defs/anchorString" },
20
+ "$dynamicRef": { "$ref": "#/$defs/uriReferenceString" },
21
+ "$dynamicAnchor": { "$ref": "#/$defs/anchorString" },
22
+ "$vocabulary": {
23
+ "type": "object",
24
+ "propertyNames": { "$ref": "#/$defs/uriString" },
25
+ "additionalProperties": {
26
+ "type": "boolean"
27
+ }
28
+ },
29
+ "$comment": {
30
+ "type": "string"
31
+ },
32
+ "$defs": {
33
+ "type": "object",
34
+ "additionalProperties": { "$dynamicRef": "#meta" }
35
+ }
36
+ },
37
+ "$defs": {
38
+ "anchorString": {
39
+ "type": "string",
40
+ "pattern": "^[A-Za-z_][-A-Za-z0-9._]*$"
41
+ },
42
+ "uriString": {
43
+ "type": "string",
44
+ "format": "uri"
45
+ },
46
+ "uriReferenceString": {
47
+ "type": "string",
48
+ "format": "uri-reference"
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/format-annotation",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/format-annotation": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Format vocabulary meta-schema for annotation results",
10
+ "type": ["object", "boolean"],
11
+ "properties": {
12
+ "format": { "type": "string" }
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/format-assertion",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/format-assertion": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Format vocabulary meta-schema for assertion results",
10
+ "type": ["object", "boolean"],
11
+ "properties": {
12
+ "format": { "type": "string" }
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
3
+ "$id": "https://json-schema.org/draft/2019-09/meta/format",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2019-09/vocab/format": true
6
+ },
7
+ "$recursiveAnchor": true,
8
+
9
+ "title": "Format vocabulary meta-schema",
10
+ "type": ["object", "boolean"],
11
+ "properties": {
12
+ "format": { "type": "string" }
13
+ }
14
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/meta-data",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/meta-data": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Meta-data vocabulary meta-schema",
10
+
11
+ "type": ["object", "boolean"],
12
+ "properties": {
13
+ "title": {
14
+ "type": "string"
15
+ },
16
+ "description": {
17
+ "type": "string"
18
+ },
19
+ "default": true,
20
+ "deprecated": {
21
+ "type": "boolean",
22
+ "default": false
23
+ },
24
+ "readOnly": {
25
+ "type": "boolean",
26
+ "default": false
27
+ },
28
+ "writeOnly": {
29
+ "type": "boolean",
30
+ "default": false
31
+ },
32
+ "examples": {
33
+ "type": "array",
34
+ "items": true
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/unevaluated",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/unevaluated": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Unevaluated applicator vocabulary meta-schema",
10
+ "type": ["object", "boolean"],
11
+ "properties": {
12
+ "unevaluatedItems": { "$dynamicRef": "#meta" },
13
+ "unevaluatedProperties": { "$dynamicRef": "#meta" }
14
+ }
15
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://json-schema.org/draft/2020-12/meta/validation",
4
+ "$vocabulary": {
5
+ "https://json-schema.org/draft/2020-12/vocab/validation": true
6
+ },
7
+ "$dynamicAnchor": "meta",
8
+
9
+ "title": "Validation vocabulary meta-schema",
10
+ "type": ["object", "boolean"],
11
+ "properties": {
12
+ "type": {
13
+ "anyOf": [
14
+ { "$ref": "#/$defs/simpleTypes" },
15
+ {
16
+ "type": "array",
17
+ "items": { "$ref": "#/$defs/simpleTypes" },
18
+ "minItems": 1,
19
+ "uniqueItems": true
20
+ }
21
+ ]
22
+ },
23
+ "const": true,
24
+ "enum": {
25
+ "type": "array",
26
+ "items": true
27
+ },
28
+ "multipleOf": {
29
+ "type": "number",
30
+ "exclusiveMinimum": 0
31
+ },
32
+ "maximum": {
33
+ "type": "number"
34
+ },
35
+ "exclusiveMaximum": {
36
+ "type": "number"
37
+ },
38
+ "minimum": {
39
+ "type": "number"
40
+ },
41
+ "exclusiveMinimum": {
42
+ "type": "number"
43
+ },
44
+ "maxLength": { "$ref": "#/$defs/nonNegativeInteger" },
45
+ "minLength": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
46
+ "pattern": {
47
+ "type": "string",
48
+ "format": "regex"
49
+ },
50
+ "maxItems": { "$ref": "#/$defs/nonNegativeInteger" },
51
+ "minItems": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
52
+ "uniqueItems": {
53
+ "type": "boolean",
54
+ "default": false
55
+ },
56
+ "maxContains": { "$ref": "#/$defs/nonNegativeInteger" },
57
+ "minContains": {
58
+ "$ref": "#/$defs/nonNegativeInteger",
59
+ "default": 1
60
+ },
61
+ "maxProperties": { "$ref": "#/$defs/nonNegativeInteger" },
62
+ "minProperties": { "$ref": "#/$defs/nonNegativeIntegerDefault0" },
63
+ "required": { "$ref": "#/$defs/stringArray" },
64
+ "dependentRequired": {
65
+ "type": "object",
66
+ "additionalProperties": {
67
+ "$ref": "#/$defs/stringArray"
68
+ }
69
+ }
70
+ },
71
+ "$defs": {
72
+ "nonNegativeInteger": {
73
+ "type": "integer",
74
+ "minimum": 0
75
+ },
76
+ "nonNegativeIntegerDefault0": {
77
+ "$ref": "#/$defs/nonNegativeInteger",
78
+ "default": 0
79
+ },
80
+ "simpleTypes": {
81
+ "enum": [
82
+ "array",
83
+ "boolean",
84
+ "integer",
85
+ "null",
86
+ "number",
87
+ "object",
88
+ "string"
89
+ ]
90
+ },
91
+ "stringArray": {
92
+ "type": "array",
93
+ "items": { "type": "string" },
94
+ "uniqueItems": true,
95
+ "default": []
96
+ }
97
+ }
98
+ }
omlish/stats.py CHANGED
@@ -2,7 +2,7 @@
2
2
  TODO:
3
3
  - reservoir
4
4
  - dep tdigest?
5
- - struct-of-arrays backed SamplingHistogram
5
+ - struct-of-arrays - array.array('f', ...) - backed SamplingHistogram
6
6
  """
7
7
  import bisect
8
8
  import collections
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omlish
3
- Version: 0.0.0.dev24
3
+ Version: 0.0.0.dev26
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,12 +1,13 @@
1
- omlish/__about__.py,sha256=3YVY6_J91yM9p46BWyoZoyvw_PJRu24kSDpVBlrmUN0,2532
1
+ omlish/__about__.py,sha256=ItiHbRodt34cICvvQxV6BpYmCzBfKRGd46tuo5JLO-o,2714
2
2
  omlish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ omlish/_manifests.json,sha256=N1F-Xz3GaBn2H1p7uKzhkhKCQV8QVR0t76XD6wmFtXA,3
3
4
  omlish/argparse.py,sha256=QRQmX9G0-L_nATkFtGHvpd4qrpYzKATdjuFLbBqzJPM,6224
4
5
  omlish/c3.py,sha256=W5EwYx9Por3rWYLkKUitJ6OoRMLLgVTfLTyroOz41Y0,8047
5
6
  omlish/cached.py,sha256=UAizxlH4eMWHPzQtmItmyE6FEpFEUFzIkxaO2BHWZ5s,196
6
- omlish/check.py,sha256=-SY9SvZEobAXShAQA7mv3vrt4YYPWHBW5brlg8ZOO5A,10083
7
+ omlish/check.py,sha256=3qp1_W8uRp23I26nWvG_c7YFxdTwJAZEFxmY8Bfw50Y,10078
7
8
  omlish/datetimes.py,sha256=HajeM1kBvwlTa-uR1TTZHmZ3zTPnnUr1uGGQhiO1XQ0,2152
8
9
  omlish/defs.py,sha256=T3bq_7h_tO3nDB5RAFBn7DkdeQgqheXzkFColbOHZko,4890
9
- omlish/docker.py,sha256=R1YrjFSNrZ7Ls9iaUu6nsTrCiKmjUmh3wKPxriGsc0I,4865
10
+ omlish/docker.py,sha256=GyzrHUTdD3rHeDBPGOI_mBzysVDtv5YAo1XN-HnMeo8,6231
10
11
  omlish/dynamic.py,sha256=35C_cCX_Vq2HrHzGk5T-zbrMvmUdiIiwDzDNixczoDo,6541
11
12
  omlish/fnpairs.py,sha256=hVuLqQFdRNNze3FYH2cAQO3GC7nK5yQP_GWPUSbL7nE,10601
12
13
  omlish/genmachine.py,sha256=LCMiqvK32dAWtrlB6lKw9tXdQFiXC8rRdk4TMQYIroU,1603
@@ -17,7 +18,7 @@ omlish/math.py,sha256=AVqp5Y8yxKA-wO0BgrzaxA0Ga3PZiCXnYcwivMneC-0,3804
17
18
  omlish/multiprocessing.py,sha256=QZT4C7I-uThCAjaEY3xgUYb-5GagUlnE4etN01LDyU4,5186
18
19
  omlish/os.py,sha256=cz4nL2ujaxH_-XRq3JUD8af8mSe1JXGPIoXP9XAEd0M,2607
19
20
  omlish/runmodule.py,sha256=PWvuAaJ9wQQn6bx9ftEL3_d04DyotNn8dR_twm2pgw0,700
20
- omlish/stats.py,sha256=AbrdepKPLAzPCgI2MTFSgJhzuxjzOHfG6I87EIuKOvg,9972
21
+ omlish/stats.py,sha256=vJOJgYIW6DGDEgNm5AGWIp08GiLk61Cjld71fnC29fY,9998
21
22
  omlish/sync.py,sha256=AqwIfIuCMVHLwlJUa7dmaSjfA4sM5AYPCD5-nsz3XVQ,1516
22
23
  omlish/term.py,sha256=NEmxqAhicyInGtmFamZAizI2xdu819MzFYPEp0Fx97M,6111
23
24
  omlish/asyncs/__init__.py,sha256=uUz9ziKh4_QrgmdhKFMgq6j7mFbiZd3LiogguDCQsGI,587
@@ -31,12 +32,12 @@ omlish/asyncs/trio_asyncio.py,sha256=oqdOHy0slj9PjVxaDf3gJkq9AAgg7wYZbB469jOftVw
31
32
  omlish/bootstrap/__init__.py,sha256=-Rtsg7uPQNhh1dIT9nqrz96XlqizwoLnWf-FwOEstJI,730
32
33
  omlish/bootstrap/__main__.py,sha256=d23loR_cKfTYZwYiqpt_CmKI7dd5WcYFgIYzqMep75E,68
33
34
  omlish/bootstrap/base.py,sha256=koELbK6UmsZaRj-6Bng5_zPVmEBqDpFCduEdR5BddOs,1077
34
- omlish/bootstrap/diag.py,sha256=KrrRtDy92HNJpFBVyiGfv6vf5idr2yNI26ByKcFO11Y,4384
35
- omlish/bootstrap/harness.py,sha256=vQCIhCQY_N0NHWvDh8rG6Lo57U1qHkQf2egifbXzN-8,2027
35
+ omlish/bootstrap/diag.py,sha256=x_BKS_uhfW8QFk1NeH_VIocHif-A6FVTZ37262qCgZ0,5052
36
+ omlish/bootstrap/harness.py,sha256=pIeSXKfMsF7-3ZkU0gGpde-PtLAKKcVrWaxcin7Xzy0,2041
36
37
  omlish/bootstrap/main.py,sha256=9ZbgXaRNZwt_hXdg8W4YjpP0v0Si_qqlfu86jfgRz04,5215
37
38
  omlish/bootstrap/marshal.py,sha256=qKewGVs-3i2p5W9nywkXSo1pcbVxmOAlTvfLjyo0xpo,554
38
39
  omlish/bootstrap/sys.py,sha256=U0MFxO9tLFV3cdN5Y-Zrink6_45sFvzPUYQXyBk7-ns,8741
39
- omlish/collections/__init__.py,sha256=Y4F43NeFdRHkkUUvFUsqqY6pln0MaRxHKjyRpwFtiDk,1656
40
+ omlish/collections/__init__.py,sha256=tGUzvS_ZjiqALsLRy7JX3h4KZRQX2CmtdAfTRD7UwMk,1677
40
41
  omlish/collections/_abc.py,sha256=sP7BpTVhx6s6C59mTFeosBi4rHOWC6tbFBYbxdZmvh0,2365
41
42
  omlish/collections/_io_abc.py,sha256=Cxs8KB1B_69rxpUYxI-MTsilAmNooJJn3w07DKqYKkE,1255
42
43
  omlish/collections/coerce.py,sha256=o11AMrUiyoadd8WkdqeKPIpXf2xd0LyylzNCyJivCLU,7036
@@ -52,7 +53,7 @@ omlish/collections/sorted.py,sha256=E5ZOdNn7Jju1EcQ7CX2Ltk9StIXsBOzqvh7EsT3ZA2U,
52
53
  omlish/collections/treap.py,sha256=wq9L5hvxq4QgPvIpHmueZMF8t7UrvX5vmlNN4BOqY4g,7720
53
54
  omlish/collections/treapmap.py,sha256=TxOM-ZRF5PK2xe5wRIhESNt7DGh9b_MeZfE7HLkCOs4,5804
54
55
  omlish/collections/unmodifiable.py,sha256=QmUEi9IBXqiM_KGgH2rqg15VmkHJo1MZ6kwq2twEMho,4750
55
- omlish/collections/utils.py,sha256=oNdMkJYLmqq4Fm08vA99UWQ2RMO7FRu9zQruj-squ-c,4239
56
+ omlish/collections/utils.py,sha256=9o9STwzAn5YjZRZ9ns1kuo7NgLXLaoVPFu6AJd-3JT8,4336
56
57
  omlish/collections/cache/__init__.py,sha256=Cv8RX-Ehit3um0QLDq7uRDqJUCcdqTKoAB9T0pM_5hg,392
57
58
  omlish/collections/cache/descriptor.py,sha256=t-1Gh4DTABDuNmeDJlpoW4LV3gi_uSlBd9ZfBINfYCM,5023
58
59
  omlish/collections/cache/impl.py,sha256=nQox5kChhns9h2a5gnX-ayQGBQJ5-B1aZkLQ2Aej19g,15137
@@ -65,24 +66,25 @@ omlish/configs/__init__.py,sha256=3uh09ezodTwkMI0nRmAMP0eEuJ_0VdF-LYyNmPjHiCE,77
65
66
  omlish/configs/classes.py,sha256=GLbB8xKjHjjoUQRCUQm3nEjM8z1qNTx9gPV7ODSt5dg,1317
66
67
  omlish/configs/flattening.py,sha256=AOlRpBHm449MxwMp3CiIRGunStOC1DUNs1f3CLou0wc,4731
67
68
  omlish/configs/strings.py,sha256=0brx1duL85r1GpfbNvbHcSvH4jWzutwuvMFXda9NeI0,2651
68
- omlish/dataclasses/__init__.py,sha256=RYS0xUvtPzREV2Y8IhsenU5v3F91P7E9oObdxOCKGUg,1321
69
+ omlish/dataclasses/__init__.py,sha256=L2kRMvsWgsennXVw7VgZdczCtdLsQzyPcMFit2rBpbA,1337
69
70
  omlish/dataclasses/utils.py,sha256=qBKHyW2LSjnJYfPSAExEsVZ5EdmDBfp4napAhfWkZFs,3221
71
+ omlish/dataclasses/impl/LICENSE,sha256=Oy-B_iHRgcSZxZolbI4ZaEVdZonSaaqFNzv7avQdo78,13936
70
72
  omlish/dataclasses/impl/__init__.py,sha256=rQJRcE9fVsGEvRUOZ18r4DE0xiLbSRjspyJRXgbLS3I,348
71
- omlish/dataclasses/impl/api.py,sha256=NOuw5dlwztG5AA_gwdF2PJAqvouMdbUf1Si80G26qAY,6244
73
+ omlish/dataclasses/impl/api.py,sha256=PyBMuoamkp77r3OS7TIWKv27cy7laqN2iviq5JoihuE,6339
72
74
  omlish/dataclasses/impl/as_.py,sha256=CD-t7hkC1EP2F_jvZKIA_cVoDuwZ-Ln_xC4fJumPYX0,2598
73
75
  omlish/dataclasses/impl/copy.py,sha256=Tn8_n6Vohs-w4otbGdubBEvhd3TsSTaM3EfNGdS2LYo,591
74
76
  omlish/dataclasses/impl/descriptors.py,sha256=rEYE1Len99agTQCC25hSPMnM19BgPr0ZChABGi58Fdk,2476
75
- omlish/dataclasses/impl/exceptions.py,sha256=WD0Tr1TnjUN4OR3f3rs8CgqtP2KBA1tKjPIbZO8Tzm0,178
76
- omlish/dataclasses/impl/fields.py,sha256=6Ry-fTntJEPigSHBtaegssxeOi0L4hffLSL4SMtqjSE,5908
77
+ omlish/dataclasses/impl/exceptions.py,sha256=DeiM6rcjgncudn-XVuph9TDbVDEwBtyYb1bcbO3FFcA,193
78
+ omlish/dataclasses/impl/fields.py,sha256=yh2mwXVZW-eOhPesY-BG9sVMWSdn0VqzXNHkbs4Jmok,5987
77
79
  omlish/dataclasses/impl/frozen.py,sha256=x87DSM8FIMZ3c_BIUE8NooCkExFjPsabeqIueEP5qKs,2988
78
80
  omlish/dataclasses/impl/hashing.py,sha256=FKnHuXCg9ylrzK2TLGqO5yfRN4HX3F415CSLlVYXtYE,3190
79
- omlish/dataclasses/impl/init.py,sha256=Znn2ggfA5Wkk84OhDykjI2b7UDxEiQvnphUAmlwySRs,6117
81
+ omlish/dataclasses/impl/init.py,sha256=IgxO9nwHaHF8jGrUAk-Y5xke9uV2OwzfEe-88McE1Wg,6161
80
82
  omlish/dataclasses/impl/internals.py,sha256=LTCqGT8AhyGTWwioGrBpTJzDzPvAtizQKb0NBNKcNs0,2989
81
83
  omlish/dataclasses/impl/main.py,sha256=Ti0PKbFKraKvfmoPuR-G7nLVNzRC8mvEuXhCuC-M2kc,2574
82
84
  omlish/dataclasses/impl/metaclass.py,sha256=dlQEIN9MHBirll7Nx3StpzxYxXjrqxJ-QsorMcCNt7w,2828
83
- omlish/dataclasses/impl/metadata.py,sha256=UNI452ljUO87cZFXiPwdcC25vFZ1wnVH_i1o81tmTf4,1392
85
+ omlish/dataclasses/impl/metadata.py,sha256=4veWwTr-aA0KP-Y1cPEeOcXHup9EKJTYNJ0ozIxtzD4,1401
84
86
  omlish/dataclasses/impl/order.py,sha256=zWvWDkSTym8cc7vO1cLHqcBhhjOlucHOCUVJcdh4jt0,1369
85
- omlish/dataclasses/impl/params.py,sha256=M-xg9IeFftVy795oqlp7Yw8jE-7wG2K4vaFhXHKmL1k,2538
87
+ omlish/dataclasses/impl/params.py,sha256=1kvL75eptGll9NXqBv66HN94ACwv_tucBRb1cDAvglM,2620
86
88
  omlish/dataclasses/impl/processing.py,sha256=DFxyFjL_h3awRyF_5eyTnB8QkuApx7Zc4QFnVoltlao,459
87
89
  omlish/dataclasses/impl/reflect.py,sha256=a19BbNxrmjNTbXzWuAl_794RCIQSMYyVqQ2Bf-DnNnM,5305
88
90
  omlish/dataclasses/impl/replace.py,sha256=wS9GHX4fIwaPv1JBJzIewdBfXyK3X3V7_t55Da87dYo,1217
@@ -101,7 +103,7 @@ omlish/diag/threads.py,sha256=1-x02VCDZ407gfbtXm1pWK-ubqhqfePm9PMqkHCVoqk,3642
101
103
  omlish/diag/replserver/__init__.py,sha256=uLo6V2aQ29v9z3IMELlPDSlG3_2iOT4-_X8VniF-EgE,235
102
104
  omlish/diag/replserver/__main__.py,sha256=LmU41lQ58bm1h4Mx7S8zhE_uEBSC6kPcp9mn5JRpulA,32
103
105
  omlish/diag/replserver/console.py,sha256=XzBDVhYlr8FY6ym4OwoaIHuFOHnGK3dTYlMDIOMUUlA,7410
104
- omlish/diag/replserver/server.py,sha256=MBLMouRuJ7eMXBHVsMQS8KGHwZuDThPoNkiJb32UVI0,4896
106
+ omlish/diag/replserver/server.py,sha256=To2rLS-FHc0Ny8iFJaeEsU8ZZdkcWpk9bi1FYS7YNPA,5348
105
107
  omlish/dispatch/__init__.py,sha256=GsiGJ91NKiQptSROtnCSkrZExBkvfDwYvdoTu5dBqF0,117
106
108
  omlish/dispatch/_dispatch2.py,sha256=v3tCNyxGpOwY8qTwdp54TlM8mG6OVwtQoUZfYJ_griU,1756
107
109
  omlish/dispatch/_dispatch3.py,sha256=Vnu5DfoPWFJLodudBqoZBXGTi2wYk-Az56MXJgdQvwc,2608
@@ -112,20 +114,21 @@ omlish/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
114
  omlish/formats/dotenv.py,sha256=UjZl3gac-0U24sDjCCGMcCqO1UCWG2Zs8PZ4JdAg2YE,17348
113
115
  omlish/formats/json.py,sha256=61XG6rveb3SSXmYrKvUmRdaVDyMD6C-7yVqXBBMu8t8,1017
114
116
  omlish/formats/props.py,sha256=diYjZDsG1s50ImJhkpeinMwjr8952nIVI-0gYhBIvCY,18897
115
- omlish/formats/yaml.py,sha256=5gvH-e9fVn6C-xpcagnrtM0bSLOsuk3sAQT-aaE4PD4,6653
117
+ omlish/formats/yaml.py,sha256=R3NTkjomsIfjsUNmSf_bOaCUIID3JTyHJHsliQDSYQo,6688
116
118
  omlish/graphs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
119
  omlish/graphs/dags.py,sha256=JpTGxt5rsK7hy5EUy9rNUlIeDStT9ri86m8xEKiHQLE,3063
118
120
  omlish/graphs/domination.py,sha256=45iTyn7mZWPJ1ANrqD96aPXqzEeyFpybMvvcVxo9XvQ,7592
119
121
  omlish/graphs/trees.py,sha256=t9kzLy33ynYV0TowVkyDvkkRBQV5x--1vtNBSB4Auus,8156
120
- omlish/graphs/dot/__init__.py,sha256=6-LAx7ytHFQvfLrnxVQG1s8xmApgblERJJCTB2knOHk,642
122
+ omlish/graphs/dot/__init__.py,sha256=Y1MZRQBZkcYyG1Tn7K2FhL8aYbm4v4tk6f5g9AqEkUw,359
121
123
  omlish/graphs/dot/items.py,sha256=OWPf0-hjBgS1uyy2QgAEn4IgFHJcEg7sHVWeTx1ghZc,4083
122
- omlish/graphs/dot/rendering.py,sha256=hUSJ5HvSvxnTIC9ynSxxP8IJnVH6quEeDbLzNlUnmuk,3626
124
+ omlish/graphs/dot/make.py,sha256=RN30gHfJPiXx5Q51kbDdhVJYf59Fr84Lz9J-mXRt9sI,360
125
+ omlish/graphs/dot/rendering.py,sha256=2UgXvMRN4Z9cfIqLlC7Iu_8bWbwUDEL4opHHkFfSqTw,3630
123
126
  omlish/graphs/dot/utils.py,sha256=_FMwn77WfiiAfLsRTOKWm4IYbNv5kQN22YJ5psw6CWg,801
124
127
  omlish/http/__init__.py,sha256=v2f9Hh6bTgcz0MkG9T2JQarzeIgHlDxDT2cbINbpyw8,367
125
128
  omlish/http/asgi.py,sha256=wXhBZ21bEl32Kv9yBrRwUR_7pHEgVtHP8ZZwbasQ6-4,3307
126
129
  omlish/http/collections.py,sha256=s8w5s4Gewgxxhe2Ai0R45PgJYYifrLgTbU3VXVflHj4,260
127
130
  omlish/http/consts.py,sha256=-O0F6qiVWGGT18j8TMP7UNfHCECg1MmByx05oc7Ae9Q,1985
128
- omlish/http/cookies.py,sha256=x56AvYtwNyQKFzVD1zSGIsfg9oiArd6ICTMEdugP008,6356
131
+ omlish/http/cookies.py,sha256=uuOYlHR6e2SC3GM41V0aozK10nef9tYg83Scqpn5-HM,6351
129
132
  omlish/http/dates.py,sha256=Otgp8wRxPgNGyzx8LFowu1vC4EKJYARCiAwLFncpfHM,2875
130
133
  omlish/http/encodings.py,sha256=w2WoKajpaZnQH8j-IBvk5ZFL2O2pAU_iBvZnkocaTlw,164
131
134
  omlish/http/json.py,sha256=9XwAsl4966Mxrv-1ytyCqhcE6lbBJw-0_tFZzGszgHE,7440
@@ -139,14 +142,14 @@ omlish/inject/elements.py,sha256=BzTnkNS-3iAMI47LMC2543u6A8Tfk3aJXn3CO191ez4,154
139
142
  omlish/inject/exceptions.py,sha256=_wkN2tF55gQzmMOMKJC_9jYHBZzaBiCDcyqI9Sf2UZs,626
140
143
  omlish/inject/injector.py,sha256=CoCUeMm1Oot4sG4Ti1sKCWrhlvtJ5QAeAI22AFWu2RQ,1066
141
144
  omlish/inject/inspect.py,sha256=tw49r1RJVHrEHmT8WWA3_Bl9Z0L3lEGRqlLhbM5OmAM,592
142
- omlish/inject/keys.py,sha256=05KePew5_Cn_zWgBpIcXsa5orxm6xn4YL_IWXEvrSr8,651
145
+ omlish/inject/keys.py,sha256=BczsGcNvoziQYggGKX3_XpRZQ3b0F_pYWSDLBg5lRvE,654
143
146
  omlish/inject/listeners.py,sha256=AIWUs4OTUPeURU1tS2CXeEbJwC1bZiuya9K6I2ElMns,581
144
147
  omlish/inject/managed.py,sha256=Ls54Ah5KDrLHYWmso64xipvCLWPcgl1sUOn2n1tuWag,2107
145
- omlish/inject/multis.py,sha256=PQcIZbKpTJEOca_4pCp__3jLWLb9n90jZLbDe-xx8dQ,3351
148
+ omlish/inject/multis.py,sha256=a3DparPZjLdkAYFuEFTI6kM3BhNpJbtjeAMRdbeJx0c,3363
146
149
  omlish/inject/origins.py,sha256=OVQkiuRxx6ZtE8ZliufdndtFexcfpj-wZSDkUeGUCYM,534
147
150
  omlish/inject/overrides.py,sha256=hrm243slCw_DDRbn3dK5QK1jfHezVokG-WYO2JaQOV8,535
148
151
  omlish/inject/privates.py,sha256=hZOa_keY3KlXAzyiZ-sfN697UKXpkfXXNUIEmGT5TAA,641
149
- omlish/inject/providers.py,sha256=MAla7uDQR63zj9oB9XqN8rK3DGGLSzUKZ4rUU_5dM40,751
152
+ omlish/inject/providers.py,sha256=Z6UzNCwRhKHHR0L5CyBMo4F-1M_xElLkPA6EKQWcqlw,754
150
153
  omlish/inject/scopes.py,sha256=0b8Y0VidkpEk7tyxKSbv_1fE-2LomKTYlhFeoEemkwg,1979
151
154
  omlish/inject/types.py,sha256=11WVEPkZ-_8cv1BeTDRU-soIYxB_6x7dyWtsa2Iej9U,251
152
155
  omlish/inject/utils.py,sha256=_UOZqA8IcLWPqf4Mcg9iIusQ5yxP_6Txg6PWtUYl23o,408
@@ -160,12 +163,13 @@ omlish/inject/impl/origins.py,sha256=-cdcwz3BWb5LuC9Yn5ynYOwyPsKH06-kCc-3U0PxZ5w
160
163
  omlish/inject/impl/privates.py,sha256=alpCYyk5VJ9lJknbRH2nLVNFYVvFhkj-VC1Vco3zCFQ,2613
161
164
  omlish/inject/impl/providers.py,sha256=QnwhsujJFIHC0JTgd2Wlo1kP53i3CWTrj1nKU2DNxwg,2375
162
165
  omlish/inject/impl/proxy.py,sha256=1ko0VaKqzu9UG8bIldp9xtUrAVUOFTKWKTjOCqIGr4s,1636
163
- omlish/inject/impl/scopes.py,sha256=M_RO_pGUr5mX84YyYmkr6CsMhkkV189_gOUsaYmYes4,5768
164
- omlish/lang/__init__.py,sha256=RO0yN1YDUnnzn4ZXqbx9OZrQZItfYjEesdYVU_0TJFQ,3357
166
+ omlish/inject/impl/scopes.py,sha256=ASfULXgP_ETlsAqFJfrZmyEaZt64Zr8tNn5ScA-EoXk,5900
167
+ omlish/lang/__init__.py,sha256=WF4vYG4awiOAXezL4gwCjzYu4JpzqU57U-w3c6rzoLw,3500
165
168
  omlish/lang/cached.py,sha256=LwsgWQjQ5op618rBvI8vbASOEGWDTt_SKq6Tc1vlgZM,7680
166
169
  omlish/lang/clsdct.py,sha256=AjtIWLlx2E6D5rC97zQ3Lwq2SOMkbg08pdO_AxpzEHI,1744
167
170
  omlish/lang/cmp.py,sha256=5vbzWWbqdzDmNKAGL19z6ZfUKe5Ci49e-Oegf9f4BsE,1346
168
171
  omlish/lang/contextmanagers.py,sha256=rzMSwJU7ObFXl46r6pGDbD45Zi_qZ9NHxDPnLNuux9o,9732
172
+ omlish/lang/datetimes.py,sha256=ehI_DhQRM-bDxAavnp470XcekbbXc4Gdw9y1KpHDJT0,223
169
173
  omlish/lang/descriptors.py,sha256=tZzDyXSp3wMNzTytt9BScFFriBwMRpt0EeYP3CRKPX8,6602
170
174
  omlish/lang/exceptions.py,sha256=qJBo3NU1mOWWm-NhQUHCY5feYXR3arZVyEHinLsmRH4,47
171
175
  omlish/lang/functions.py,sha256=yJxWwqlXEAT2gied4uTwiz5x1qXeuVubOSXyn9zy5aI,3624
@@ -178,12 +182,12 @@ omlish/lang/resources.py,sha256=ZOJVauqeNSuX-IzePr_PmzCheX1e0vTfLAw-832cgrI,1673
178
182
  omlish/lang/strings.py,sha256=ykeoou4JK7CEZXzrUJfqVOalEDvE--j0uhHt_SrsrUs,2834
179
183
  omlish/lang/sys.py,sha256=UoZz_PJYVKLQAKqYxxn-LHz1okK_38I__maZgnXMcxU,406
180
184
  omlish/lang/timeouts.py,sha256=vECdWYhc_IZgcal1Ng1Y42wf2FV3KAx-i8As-MgGHIQ,1186
181
- omlish/lang/typing.py,sha256=pKDBHTYzoQtFCUxtlDDTpnKixZBxeE5Pblvv1nJbRYE,3236
182
- omlish/lang/classes/__init__.py,sha256=j1p0_uuMznKrY2EhMoj20uv6vx4LXljMzp7AaKe0mmU,530
185
+ omlish/lang/typing.py,sha256=lJ2NGe4Pmb61I0Tx4A_rOqXNFTws1XHOzafg2knRUio,4155
186
+ omlish/lang/classes/__init__.py,sha256=h9QXrvAKD17_pIog0uF-7BCqZbSpJZYxL7kzVzvljp0,583
183
187
  omlish/lang/classes/abstract.py,sha256=goIV14oY24EOs88eVe6E6NyrSPOOLMOcWTXTMuYKiqc,2304
184
- omlish/lang/classes/restrict.py,sha256=n_B-XqafVyO1caZzfbsv7tPxDJOBLl1BzQkoDSse0A4,3353
185
- omlish/lang/classes/simple.py,sha256=_OE6-eph3-pllGck83FcGZE8fDMUqPdWP9OeSDCSgww,3071
186
- omlish/lang/classes/virtual.py,sha256=54D4qOpDWHpP28Oc6bbBjdxquLvdvqMqLXj2XOnAeaQ,3323
188
+ omlish/lang/classes/restrict.py,sha256=pSK7ZT_kpwqS6lWRrxwuEe-tt07F0-uZVazgGh-HDco,3921
189
+ omlish/lang/classes/simple.py,sha256=JkWYrRWnSKil6kVMgXgRMJeCxkFHXQIKIzYtG1jK2Pk,3067
190
+ omlish/lang/classes/virtual.py,sha256=W-QJuKsDehOcrydwg6eMN0bFPTYbk3Tz84TSH3blb44,3367
187
191
  omlish/lifecycles/__init__.py,sha256=1FjYceXs-4fc-S-C9zFYmc2axHs4znnQHcJVHdY7a6E,578
188
192
  omlish/lifecycles/abstract.py,sha256=70CQyZy-c9a2o0ZJxPeUT7eYjWZTBrp2HpUBnrHdAOM,1109
189
193
  omlish/lifecycles/base.py,sha256=ceXrNSzuv7iiTlX96UI1fvsQ70OgOmZl-UisDPyA3NA,1394
@@ -197,16 +201,16 @@ omlish/lite/cached.py,sha256=dUm647FbIsoxWT23XUFM51F7i-C2Buxr5b5zzgbCtQI,546
197
201
  omlish/lite/check.py,sha256=DR3Zj-7o4Y7pNheln68nN_BdX9zaotGQ2y8v97GDiWQ,535
198
202
  omlish/lite/contextmanagers.py,sha256=HnQJiyrOmSvTL22XRJrFl5CLpCyHD9fsntEUAr9G-60,427
199
203
  omlish/lite/json.py,sha256=7-02Ny4fq-6YAu5ynvqoijhuYXWpLmfCI19GUeZnb1c,740
200
- omlish/lite/logs.py,sha256=Vxux6l6ZlnM8tIutwCQftwZD-ZegXHEMyKI-K0Fksx8,5330
204
+ omlish/lite/logs.py,sha256=PeJZUJWd1K-UFErVs0wtD0zRMFW5-olUNFVVZAj_ScY,5549
201
205
  omlish/lite/marshal.py,sha256=u6jYUN_AndvI6__HJBvSw5ElHWC0CfHqgiDS28Vpqjg,8593
202
206
  omlish/lite/reflect.py,sha256=9QYJwdINraq1JNMEgvoqeSlVvRRgOXpxAkpgX8EgRXc,1307
203
207
  omlish/lite/runtime.py,sha256=VUhmNQvwf8QzkWSKj4Q0ReieJA_PzHaJNRBivfTseow,452
204
- omlish/lite/secrets.py,sha256=FEc47dcU9M1CyMTnrihAAVwKf0ySZLahf83djOEDWXw,488
208
+ omlish/lite/secrets.py,sha256=KZvGG7bFrjzIeLwohxsJ0Ctzpi42C-3A1PEMCIszJJs,521
205
209
  omlish/lite/strings.py,sha256=9dO_A6EkhcTZ2xmOUGSOMT-mx9BnoOzYu1-ocSrDJaA,670
206
210
  omlish/lite/subprocesses.py,sha256=KuGV3ImehMjCUK0JoV3pUtG_7o5wei1lRDn9HxzByAg,3063
207
211
  omlish/logs/__init__.py,sha256=FbOyAW-lGH8gyBlSVArwljdYAU6RnwZLI5LwAfuNnrk,438
208
212
  omlish/logs/_abc.py,sha256=UgrCUQVUi_PvT3p1CEkb3P74CFrFcZq2AFby3GEUv9M,5974
209
- omlish/logs/configs.py,sha256=uSf1DGHSzCz1I6Sy7o0LAaVcRd_jAqYmPSd9trYh-Aw,1292
213
+ omlish/logs/configs.py,sha256=EE0jlNaXJbGnM7V-y4xS5VwyTBSTzFzc0BYaVjg0JmA,1283
210
214
  omlish/logs/formatters.py,sha256=q79nMnR2mRIStPyGrydQHpYTXgC5HHptt8lH3W2Wwbs,671
211
215
  omlish/logs/handlers.py,sha256=nyuFgmO05By_Xwq7es58ClzS51-F53lJL7gD0x5IqAg,228
212
216
  omlish/logs/noisy.py,sha256=8JORjI1dH38yU2MddM54OB6qt32Xozfocdb88vY4wro,335
@@ -215,7 +219,7 @@ omlish/marshal/__init__.py,sha256=8r5nY0DMVT_kT4hARuTDsa8GOdshko40VEzOq0qNdS8,16
215
219
  omlish/marshal/any.py,sha256=e82OyYK3Emm1P1ClnsnxP7fIWC2iNVyW0H5nK4mLmWM,779
216
220
  omlish/marshal/base.py,sha256=EIgrqsQ1OQ4mVUMuDH5zRBCwJpn8ijVS98Nmoka_Mrs,6025
217
221
  omlish/marshal/base64.py,sha256=F-3ogJdcFCtWINRgJgWT0rErqgx6f4qahhcg8OrkqhE,1089
218
- omlish/marshal/dataclasses.py,sha256=cqHfzkQe7T-A_eAx-xZm6AIOZLnqE-alMUXMtRTYxuI,3910
222
+ omlish/marshal/dataclasses.py,sha256=g1y5b1UO86oPTbL18l9T_cPnsMJnirmCIbJYh_i7CB0,3905
219
223
  omlish/marshal/datetimes.py,sha256=0ffg8cEvx9SMKIXZGD9b7MqpLfmgw0uKKdn6YTfoqok,3714
220
224
  omlish/marshal/enums.py,sha256=-0fKutBbyz8ygEaA0_P_8IOJrI9jMGigmnPbutV9Bg4,1464
221
225
  omlish/marshal/exceptions.py,sha256=jwQWn4LcPnadT2KRI_1JJCOSkwWh0yHnYK9BmSkNN4U,302
@@ -248,7 +252,7 @@ omlish/secrets/crypto.py,sha256=6CsLy0UEqCrBK8Xx_3-iFF6SKtu2GlEqUQ8-MliY3tk,3709
248
252
  omlish/secrets/marshal.py,sha256=nVzsvQH5w3T2oMP7DCc1SLKxyR5e66psM57VOQoL0QA,2086
249
253
  omlish/secrets/openssl.py,sha256=wxA_wIlxtuOUy71ABxAJgavh-UI_taOfm-A0dVlmSwM,6219
250
254
  omlish/secrets/passwords.py,sha256=3r-vEK6Gp6aq4L5Csnd06QnrjO9xfzHJP-g_7I9W_ao,4101
251
- omlish/secrets/secrets.py,sha256=hFN82uYiBVx8YSE86leWNxb4IRp3qdwZPOi4w04h8u0,6855
255
+ omlish/secrets/secrets.py,sha256=ClD7t_mkmWkseVk4ahLzYLuLXeTxiwwPiidYm42vLh4,6871
252
256
  omlish/secrets/subprocesses.py,sha256=EcnKlHHtnUMHGrBWXDfu8tv28wlgZx4P4GOiuPW9Vo8,1105
253
257
  omlish/specs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
258
  omlish/specs/jsonschema/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -262,7 +266,17 @@ omlish/specs/jsonschema/keywords/render.py,sha256=enGkw1S8Zxfn1IBkKqZTK81yG21MVK
262
266
  omlish/specs/jsonschema/keywords/validation.py,sha256=ghewVUSG5qPYnmexy1Ylc-XouiQXobsXLYvkaGgZLqg,1322
263
267
  omlish/specs/jsonschema/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
268
  omlish/specs/jsonschema/schemas/draft202012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
269
+ omlish/specs/jsonschema/schemas/draft202012/metaschema.json,sha256=Qdp29a-3zgYtJI92JGOpL3ykfk4PkFsiS6av7vkd7Q8,2452
265
270
  omlish/specs/jsonschema/schemas/draft202012/vocabularies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/applicator.json,sha256=xKbkFHuR_vf-ptwFjLG_k0AvdBS3ZXiosWqvHa1qrO8,1659
272
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/content.json,sha256=CDQ3R3ZOSlgUJieTz01lIFenkThjxZUNQyl-jh_axbY,519
273
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/core.json,sha256=wtEqjk3RHTNt_IOj9mOqTGnwtJs76wlP_rJbUxb0gD0,1564
274
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-annotation.json,sha256=q8d1rf79idIjWBcNm_k_Tr0jSVY7u-3WDwK-98gSvMA,448
275
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/format-assertion.json,sha256=xSJCuaG7eGsmw-gset1CjDH5yW5XXc6Z5W6l_qptogw,445
276
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/format.json,sha256=UOu_55BhGoSbjMQAoJwdDg-2q1wNQ6DyIgH9NiUFa_Q,403
277
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/meta-data.json,sha256=j3bW4U9Bubku-TO3CM3FFEyLUmhlGtEZGEhfsXVPHHY,892
278
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/unevaluated.json,sha256=Lb-8tzmUtnCwl2SSre4f_7RsIWgnhNL1pMpWH54tDLQ,506
279
+ omlish/specs/jsonschema/schemas/draft202012/vocabularies/validation.json,sha256=cBCjHlQfMtK-ch4t40jfdcmzaHaj7TBId_wKvaHTelg,2834
266
280
  omlish/sql/__init__.py,sha256=QHKkiM0rvSDWKUYrvTSynOni5fB46QQ2gOw_TcMBQ2o,398
267
281
  omlish/sql/_abc.py,sha256=HLhnnLZ7l0r_N99I-RCqJe6VHth-9iluU7cR-7-5jfs,1519
268
282
  omlish/sql/asyncs.py,sha256=Wye3dwh7oZEGYz2Y4DZQSHtW4xjI2AH5qjW-BSS2IfU,3688
@@ -296,8 +310,8 @@ omlish/text/delimit.py,sha256=ubPXcXQmtbOVrUsNh5gH1mDq5H-n1y2R4cPL5_DQf68,4928
296
310
  omlish/text/glyphsplit.py,sha256=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,3296
297
311
  omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
298
312
  omlish/text/parts.py,sha256=KGgo0wHOIMVMZtDso-rhSWKAcAkYAH2IGpg9tULabu8,6505
299
- omlish-0.0.0.dev24.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
300
- omlish-0.0.0.dev24.dist-info/METADATA,sha256=6k8t1dt1YyZsVElP7iC7Wf-n4HGQzOb46TllWe_xNHw,3666
301
- omlish-0.0.0.dev24.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
302
- omlish-0.0.0.dev24.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
303
- omlish-0.0.0.dev24.dist-info/RECORD,,
313
+ omlish-0.0.0.dev26.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
314
+ omlish-0.0.0.dev26.dist-info/METADATA,sha256=0sGW6ZHnoftJe1kQm2MsivDjv2_mfWT81njFwRslZmA,3666
315
+ omlish-0.0.0.dev26.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
316
+ omlish-0.0.0.dev26.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
317
+ omlish-0.0.0.dev26.dist-info/RECORD,,