omlish 0.0.0.dev314__py3-none-any.whl → 0.0.0.dev315__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
omlish/__about__.py CHANGED
@@ -1,5 +1,5 @@
1
- __version__ = '0.0.0.dev314'
2
- __revision__ = '09a70779ef9cc803feb96bc005a44200e6368e22'
1
+ __version__ = '0.0.0.dev315'
2
+ __revision__ = '9f4bb119f0561532694288dd8bb808ce67ebb43d'
3
3
 
4
4
 
5
5
  #
@@ -2,6 +2,7 @@ from .keywords.base import ( # noqa
2
2
  Keyword,
3
3
  Keywords,
4
4
  KnownKeyword,
5
+ UnknownKeyword,
5
6
  )
6
7
 
7
8
  from .keywords.core import ( # noqa
@@ -39,10 +40,6 @@ from .keywords.render import ( # noqa
39
40
  render_keywords,
40
41
  )
41
42
 
42
- from .keywords.unknown import ( # noqa
43
- UnknownKeyword,
44
- )
45
-
46
43
  from .keywords.validation import ( # noqa
47
44
  AdditionalProperties,
48
45
  AnyOf,
@@ -49,6 +49,15 @@ class KnownKeyword(Keyword, lang.Abstract):
49
49
  ##
50
50
 
51
51
 
52
+ @dc.dataclass(frozen=True)
53
+ class UnknownKeyword(Keyword, lang.Final):
54
+ tag: str # type: ignore[misc]
55
+ value: ta.Any
56
+
57
+
58
+ ##
59
+
60
+
52
61
  @dc.dataclass(frozen=True)
53
62
  class Keywords(lang.Final):
54
63
  lst: ta.Sequence[Keyword]
@@ -56,7 +65,7 @@ class Keywords(lang.Final):
56
65
  @cached.property
57
66
  @dc.init
58
67
  def by_type(self) -> ta.Mapping[type[Keyword], Keyword]:
59
- return col.make_map_by(type, self.lst, strict=True) # noqa
68
+ return col.make_map_by(type, (k for k in self.lst if not isinstance(k, UnknownKeyword)), strict=True) # noqa
60
69
 
61
70
  @cached.property
62
71
  @dc.init
@@ -16,10 +16,10 @@ from .base import NumberKeyword
16
16
  from .base import StrKeyword
17
17
  from .base import StrOrStrArrayKeyword
18
18
  from .base import StrToKeywordsKeyword
19
+ from .base import UnknownKeyword
19
20
  from .core import CoreKeyword
20
21
  from .format import FormatKeyword
21
22
  from .metadata import MetadataKeyword
22
- from .unknown import UnknownKeyword
23
23
  from .validation import ValidationKeyword
24
24
 
25
25
 
@@ -12,7 +12,7 @@ from .base import NumberKeyword
12
12
  from .base import StrKeyword
13
13
  from .base import StrOrStrArrayKeyword
14
14
  from .base import StrToKeywordsKeyword
15
- from .unknown import UnknownKeyword
15
+ from .base import UnknownKeyword
16
16
 
17
17
 
18
18
  ##
@@ -44,8 +44,10 @@ class Closer(lang.Abstract):
44
44
 
45
45
  @ta.final
46
46
  def close(self) -> None:
47
- self.__closed = True
48
- self._close()
47
+ try:
48
+ self._close()
49
+ finally:
50
+ self.__closed = True
49
51
 
50
52
  def _close(self) -> None:
51
53
  pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev314
3
+ Version: 0.0.0.dev315
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.manifests.json,sha256=orgsRvtpHu8tdhaCvlP9v3P495OJopYYiHKjK68WtWg,8587
2
- omlish/__about__.py,sha256=KdW3YR5-xk4PrgPu9drjg1QCLSwN66eeNnfbVgzpF-c,3478
2
+ omlish/__about__.py,sha256=LDFOlaYknirgV_RjbBKwDWTdloPE5HH2GlmJgG9phI4,3478
3
3
  omlish/__init__.py,sha256=SsyiITTuK0v74XpKV8dqNaCmjOlan1JZKrHQv5rWKPA,253
4
4
  omlish/c3.py,sha256=rer-TPOFDU6fYq_AWio_AmA-ckZ8JDY5shIzQ_yXfzA,8414
5
5
  omlish/cached.py,sha256=MLap_p0rdGoDIMVhXVHm1tsbcWobJF0OanoodV03Ju8,542
@@ -625,16 +625,15 @@ omlish/specs/jsonrpc/conns.py,sha256=zvWnBHuSoGnvbGVk72Usp4IFsLscrzPozqR2hmFjnDI
625
625
  omlish/specs/jsonrpc/errors.py,sha256=-Zgmlo6bV6J8w5f8h9axQgLquIFBHDgIwcpufEH5NsE,707
626
626
  omlish/specs/jsonrpc/marshal.py,sha256=HM736piPGnBZrg8CMLDX-L5fZpegyF6l6JUjzLoSDtk,1852
627
627
  omlish/specs/jsonrpc/types.py,sha256=Se9ecG-_k-kY_Qlt9QD2t3y26oY4sXTcskp6XZfVans,3054
628
- omlish/specs/jsonschema/__init__.py,sha256=55P7Yg2MprqDyaifac2ExNzK6blTZuDP4ejrUXZWpt8,1129
628
+ omlish/specs/jsonschema/__init__.py,sha256=rdHG_0kKn64qizk0UI5S2uXV2hzf5vxnt4SXRw9yGuU,1086
629
629
  omlish/specs/jsonschema/types.py,sha256=_H7ma99hD3_Xu42BFGHOXRI5p79tY8WBX8QE36k7lbw,472
630
630
  omlish/specs/jsonschema/keywords/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
631
- omlish/specs/jsonschema/keywords/base.py,sha256=KYxKDxZtJGykLcJPTPvDMPDbbmuUw6RLOGgpCNkFcww,2830
631
+ omlish/specs/jsonschema/keywords/base.py,sha256=QjkMrKw58j99r-Ug2I4Y-SGbyKSTVho5FUP_lWDQ4wA,3010
632
632
  omlish/specs/jsonschema/keywords/core.py,sha256=3Pbi8d-eocEAxEdemNa0ldp5lrLWNmH0Tye-5rglUoU,535
633
633
  omlish/specs/jsonschema/keywords/format.py,sha256=9trrxHe38FDx47I8UfvO4PD_IygRlkEyTUJ3XlxDM6Y,244
634
634
  omlish/specs/jsonschema/keywords/metadata.py,sha256=IVWQKWT9xi0R07pXc79ErT7RBu5b6Kzg4pWYIITIRbs,336
635
- omlish/specs/jsonschema/keywords/parse.py,sha256=8lx17ZoaMF0u0NyAIVM9EmZD6gYLANlw0-zr9DN2HTA,4414
636
- omlish/specs/jsonschema/keywords/render.py,sha256=wZ9yvfscnW8fYlQTXzmJjMYTKhSTg9hjrtlAEwMRaMQ,1947
637
- omlish/specs/jsonschema/keywords/unknown.py,sha256=iYIQlBbLUqISvTvj_Kup4wVDRxcEwmnLTyAAWjlxsck,234
635
+ omlish/specs/jsonschema/keywords/parse.py,sha256=HdG-0bivCTe3YFRsrgW15o2S--Re73JOTMMaxYKFIn0,4411
636
+ omlish/specs/jsonschema/keywords/render.py,sha256=Viy3cbDcA2pCtR4z0pi4Q2oMsQDCf01vXsbMO70PlCc,1944
638
637
  omlish/specs/jsonschema/keywords/validation.py,sha256=bKu1bDOms5zxg5Xme1ki_jb7TYDFEOv_JKOzeYbxuYQ,1970
639
638
  omlish/specs/jsonschema/schemas/LICENSE,sha256=CU2AUO-rKNc9s9vngzyGxUMgaZ0Aevr8lgN2DFFFxKw,1491
640
639
  omlish/specs/jsonschema/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -684,7 +683,7 @@ omlish/sql/api/dbapi.py,sha256=bDVqmljmLMdurMhIy3vx-dJvK1KiZ7XBhZ2Zx6W9aBs,2627
684
683
  omlish/sql/api/errors.py,sha256=YtC2gz5DqRTT3uCJniUOufVH1GEnFIc5ElkYLK3BHwM,230
685
684
  omlish/sql/api/funcs.py,sha256=Raa8kL65l1JprMsJupFw-8EPO6MxxDhm0OPSwecMLOI,2045
686
685
  omlish/sql/api/queries.py,sha256=OVsVqNyXXJQVDPfV3GFE2gwnHyGEenS65rTQRTNGx1Y,735
687
- omlish/sql/api/resources.py,sha256=DTVQmKjhaLi27jHWYkF20VhwGvIazZWxyKzF0Wn9-dc,2228
686
+ omlish/sql/api/resources.py,sha256=RcjnsNoyFWG0VR8YDijwuyZtnxlGQe8jiPQVl_inzIc,2266
688
687
  omlish/sql/api/rows.py,sha256=Jo3AA_6Wt7tlwLO6-rp0arzYFqZXSxPudGPkW2xCYgQ,1346
689
688
  omlish/sql/parsing/Minisql.g4,sha256=Jw8xT-8UI6ySHAgStyCg5QX9NTCinvTenLJReWiZIJU,4578
690
689
  omlish/sql/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -854,9 +853,9 @@ omlish/typedvalues/holder.py,sha256=ZTnHiw-K38ciOBLEdwgrltr7Xp8jjEs_0Lp69DH-G-o,
854
853
  omlish/typedvalues/marshal.py,sha256=hWHRLcrGav7lvXJDtb9bNI0ickl4SKPQ6F4BbTpqw3A,4219
855
854
  omlish/typedvalues/reflect.py,sha256=Ih1YgU-srUjsvBn_P7C66f73_VCvcwqE3ffeBnZBgt4,674
856
855
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
857
- omlish-0.0.0.dev314.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
858
- omlish-0.0.0.dev314.dist-info/METADATA,sha256=H6zdgadrYc1EUQZ205dMIBmPuvZtkXHKEvVAu1kyHYY,4416
859
- omlish-0.0.0.dev314.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
860
- omlish-0.0.0.dev314.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
861
- omlish-0.0.0.dev314.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
862
- omlish-0.0.0.dev314.dist-info/RECORD,,
856
+ omlish-0.0.0.dev315.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
857
+ omlish-0.0.0.dev315.dist-info/METADATA,sha256=Ork2jAan-wlGr9Z5xsOAkIrAD3jNAWqjaz6nKg7XiUs,4416
858
+ omlish-0.0.0.dev315.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
859
+ omlish-0.0.0.dev315.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
860
+ omlish-0.0.0.dev315.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
861
+ omlish-0.0.0.dev315.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,14 +0,0 @@
1
- import typing as ta
2
-
3
- from .... import dataclasses as dc
4
- from .... import lang
5
- from .base import Keyword
6
-
7
-
8
- ##
9
-
10
-
11
- @dc.dataclass(frozen=True)
12
- class UnknownKeyword(Keyword, lang.Final):
13
- tag: str # type: ignore[misc]
14
- value: ta.Any