omlish 0.0.0.dev470__py3-none-any.whl → 0.0.0.dev471__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.
@@ -0,0 +1,67 @@
1
+ import dataclasses as dc
2
+ import termios
3
+
4
+
5
+ ##
6
+
7
+
8
+ @dc.dataclass()
9
+ class TermState:
10
+ iflag: int
11
+ oflag: int
12
+ cflag: int
13
+ lflag: int
14
+ ispeed: int
15
+ ospeed: int
16
+ cc: list[bytes]
17
+
18
+ #
19
+
20
+ def copy(self) -> 'TermState':
21
+ return TermState(*self.as_list()) # type: ignore[arg-type]
22
+
23
+ def as_list(self) -> list[int | list[bytes]]:
24
+ return [
25
+ self.iflag,
26
+ self.oflag,
27
+ self.cflag,
28
+ self.lflag,
29
+ self.ispeed,
30
+ self.ospeed,
31
+ self.cc[:],
32
+ ]
33
+
34
+
35
+ def get_term_state(fd: int) -> TermState:
36
+ return TermState(*termios.tcgetattr(fd))
37
+
38
+
39
+ def set_term_state(fd: int, attrs: TermState, when: int = termios.TCSANOW) -> None:
40
+ termios.tcsetattr(fd, when, attrs.as_list())
41
+
42
+
43
+ ##
44
+
45
+
46
+ class TermStateStack:
47
+ def __init__(self, fd: int = 0) -> None: # noqa
48
+ super().__init__()
49
+
50
+ self._fd = fd
51
+ self._stack: list[TermState] = []
52
+
53
+ #
54
+
55
+ def get(self) -> TermState:
56
+ return get_term_state(self._fd)
57
+
58
+ def set(self, attrs: TermState, when: int = termios.TCSANOW) -> None:
59
+ set_term_state(self._fd, attrs, when)
60
+
61
+ #
62
+
63
+ def save(self) -> None:
64
+ self._stack.append(self.get())
65
+
66
+ def restore(self) -> None:
67
+ self.set(self._stack.pop())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omlish
3
- Version: 0.0.0.dev470
3
+ Version: 0.0.0.dev471
4
4
  Summary: omlish
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -1,5 +1,5 @@
1
1
  omlish/.omlish-manifests.json,sha256=FLw7xkPiSXuImZgqSP8BwrEib2R1doSzUPLUkc-QUIA,8410
2
- omlish/__about__.py,sha256=V5Z8mEnP0BsV3oc2j2lgsvc5cs3Qd0cHG_3kv3gAQwI,3611
2
+ omlish/__about__.py,sha256=4sQEInuSehuSq7HJGythCXkRTNTxwCyeWLUL8WDLMKU,3611
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
@@ -348,26 +348,26 @@ omlish/http/coro/server/fdio.py,sha256=wd4ShtoX0Ag2xf9PiiQcZR1XLmqHukb_anp0TipNG
348
348
  omlish/http/coro/server/server.py,sha256=pB-QV70koRtFwmKmyjnriZDJtErhE6dNqTVvF7s4BVg,18433
349
349
  omlish/http/coro/server/simple.py,sha256=j1RZ3niKrgGM2qFnjdYWn_eniZzay5j49Ca4L3u8vO4,3296
350
350
  omlish/http/coro/server/sockets.py,sha256=kFZYbcTGYftvm7zpOhkZGtyX2qYdem-Gk018GVBOzeg,2285
351
- omlish/inject/__init__.py,sha256=oiHZj4WSEyTAeCk6upegNO6EwezhrNf3gvoHXZ3B1jU,3204
351
+ omlish/inject/__init__.py,sha256=Lk7QjS05T5Zi_zRx3pEUpUhQ9Q2XxLCAgZi0iHhuzpA,3259
352
352
  omlish/inject/binder.py,sha256=ET0BC-tCYVhlQK5-7KKwgRGcFFkzscPgY107TnFu7oQ,4361
353
353
  omlish/inject/bindings.py,sha256=PlvOnUREjvc6F8nOJdzl1k9SAf80icRB4qWFqDop87M,536
354
354
  omlish/inject/eagers.py,sha256=JBY7PcjXt-Rg9scQ1ol9xpcoTLXkXC_Ie9uwTWdzUkA,340
355
- omlish/inject/elements.py,sha256=I6_Jdqk265T7KegrChVTRnYrhXFE80tCr7nMxqV9xkE,1670
355
+ omlish/inject/elements.py,sha256=CYlMsRlO0nAF14f8xecPPS1SizRvBa0wt4S2Z13bGhI,2005
356
356
  omlish/inject/errors.py,sha256=_wkN2tF55gQzmMOMKJC_9jYHBZzaBiCDcyqI9Sf2UZs,626
357
- omlish/inject/injector.py,sha256=Lw8RLPdJYCHx2zYckttcZnAXBg_UYHe6KAeBilpz-SY,1177
357
+ omlish/inject/injector.py,sha256=EN9MP-jGPPFADo-jkgXFKskSHUXkxaDhw7VsXt-u_wY,1832
358
358
  omlish/inject/inspect.py,sha256=d1IOpgPV1UCUm0uqLRa8PW-jGdfrhzaV1qLitANfCDY,1420
359
359
  omlish/inject/keys.py,sha256=7jnI2cw7cvLlzZAfe5SC50O3oPOpOB6iGZGTigyfQvs,682
360
360
  omlish/inject/listeners.py,sha256=bav7-uzfpajFAmH_snM0PW2oCfMavmhbE6R4-gjOmJ8,620
361
361
  omlish/inject/lite.py,sha256=AFOCj_SznDCPjkiVSKdFXL2hH1q2o4kaDnzkxRWDpsI,2615
362
362
  omlish/inject/managed.py,sha256=jaZiiLqHHhL5aHtryou7M15QgHvZ8rSIHveG7ka9sAw,3087
363
- omlish/inject/maysync.py,sha256=I_gV1efDgqi-A-wJVHAmeswzIxAI0WW_U416E7LnSBs,491
363
+ omlish/inject/maysync.py,sha256=VeKD2Ke-MMAP63qGNrbrEqtr5NDIWaRxkREaGZ-61L8,443
364
364
  omlish/inject/multis.py,sha256=NNiHConMRmKVqs-FNrSQWIQtXVgTy2cQR59R1p_55kQ,3504
365
365
  omlish/inject/origins.py,sha256=-qXa18rIIkNwBdTrvASRDjgPYnoY6n6OPC222jJDrXg,551
366
366
  omlish/inject/overrides.py,sha256=3fMHSfX4Xym2NBHP5_vTZTq2Q47SfGhoC5WnTdYOLx0,550
367
367
  omlish/inject/privates.py,sha256=46ODWz3PQh6GyH2Rqd-Y7Ye1WBGr9RjSbZ4U12zAolY,680
368
368
  omlish/inject/providers.py,sha256=OroBtCBvd0YqfdkLsQLGKmL3cbPngUWFfHqQYo4rYGo,1053
369
369
  omlish/inject/scopes.py,sha256=9atVF24QEn073kvoCw_4yLrkdIEzSAqqI0cSXAg4G1A,2722
370
- omlish/inject/sync.py,sha256=ovVoMY7X9hxe1xverBEec4la3j_041HKjNSlarGsfuA,1051
370
+ omlish/inject/sync.py,sha256=IunlObxI_iiMOex4JvPX-YQsbdxUkU2bdnBai1TkPKY,1008
371
371
  omlish/inject/types.py,sha256=Z-ZEdgtCpHBNrbxxKaMVvfeD7hYXdL4rC7A9_VGxZ6g,256
372
372
  omlish/inject/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
373
373
  omlish/inject/helpers/constfn.py,sha256=Q7yfaGtxEb3L9izvwWSHh8udvR111qOtUYItw6OiyXo,416
@@ -376,18 +376,18 @@ omlish/inject/helpers/multis.py,sha256=4V85CdxxuYANAEn44IQbXHDYjPbBQ9jLrEP5XpzV2
376
376
  omlish/inject/helpers/wrappers.py,sha256=f3mulTNuItvmXnn7E4JHk9UESjsf-ponvlDfIpAHbk4,1319
377
377
  omlish/inject/impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
378
378
  omlish/inject/impl/bindings.py,sha256=xSvUcoDz8NH-aNHPwBPEZsFg73K2WcF_A63npVbGt_k,420
379
- omlish/inject/impl/elements.py,sha256=qR06KaAjZMaQgdMBE6_tdrT7cWP1Ft0CFq71bnyp224,6265
380
- omlish/inject/impl/injector.py,sha256=tcPyq_747L12G3CT_rA9KU4l_gWlesX0uCDv3GJOZGY,8366
379
+ omlish/inject/impl/elements.py,sha256=9s5UmUKUvEvS3SkCrhaMbPEDEeOj3bOOdH1ekRdejGQ,6712
380
+ omlish/inject/impl/injector.py,sha256=S4nQ_Yb23ZSkBDPcM8l93HHBj8Ij-yPw0bejulCQbvg,8234
381
381
  omlish/inject/impl/inspect.py,sha256=6emiBEyaVmH2m1U5Zv5VX7-f8Gor0VOQSUEqhlcT6VU,3366
382
- omlish/inject/impl/maysync.py,sha256=7GWjrvJStOx85BCvk8IJAmmkoGkChFAAi2h7j2pe6Qs,1207
382
+ omlish/inject/impl/maysync.py,sha256=k0fiUF9GG5kQ2nP6nNNwCoqSHzgmiqR6EXiezANO374,1166
383
383
  omlish/inject/impl/multis.py,sha256=5aKXnmSocwqu7y6WicvYX1-QGTz9iHubxRq9j0enlgk,2174
384
384
  omlish/inject/impl/origins.py,sha256=dgGdkoMN6I4DZrWjlpZYijeFsrF6Up1WPq_QSAgTtuQ,1676
385
385
  omlish/inject/impl/privates.py,sha256=uxMAl0MOPu-MeLd-q1DySu7J5FcdRVL1B0XgC4dnB6I,2667
386
386
  omlish/inject/impl/providers.py,sha256=qqPUF9qZZ-CGTTc7ZPskjexM2aK8xdY0gLPMshB5VKw,2127
387
- omlish/inject/impl/providers2.py,sha256=NOIbX_sTAL8uXf-lMoOiFTFZQMe6ywLU7nIghgF_ISw,1326
387
+ omlish/inject/impl/providersmap.py,sha256=NOIbX_sTAL8uXf-lMoOiFTFZQMe6ywLU7nIghgF_ISw,1326
388
388
  omlish/inject/impl/proxy.py,sha256=S1qNn-5pbsAj9hhasQZ9nnFSCX8SuAYCcBOZ6BtKxlk,1641
389
389
  omlish/inject/impl/scopes.py,sha256=sqtjHe6g0pAEOHqIARXGiIE9mKmGmlqh1FDpskV4TIw,5923
390
- omlish/inject/impl/sync.py,sha256=v0FrcMfEFIT358AmAuERvzJ3o19r6DLZj6_0hjuW5Dk,1090
390
+ omlish/inject/impl/sync.py,sha256=_aLaC-uVNHOePcfE1as61Ni7fuyHZpjEafIWBc7FvC0,1049
391
391
  omlish/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
392
392
  omlish/io/abc.py,sha256=M40QB2udYpCEqmlxCcHv6FlJYJY6ymmJQBlaklYv0U8,1256
393
393
  omlish/io/buffers.py,sha256=GuddTeEeaNU4Ep2NWEeS-8ZO05JF8guPCGeTBNQ3mek,7351
@@ -467,7 +467,7 @@ omlish/lang/imports/_capture.cc,sha256=_jm7RuA8lB2RfQJOO6GhT8aq5zYlw36nKW4ndVBLd
467
467
  omlish/lang/imports/capture.py,sha256=pyON5qUw9IuzzOcIHh4QNjlzAEjIGb9DwI7Z8yLDUfw,27265
468
468
  omlish/lang/imports/conditional.py,sha256=R-E47QD95mMonPImWlrde3rnJrFKCCkYz71c94W05sc,1006
469
469
  omlish/lang/imports/lazy.py,sha256=Eefs9hkj5surMdwgxX_Q3BOqPcox10v0sKT5rKIQknc,808
470
- omlish/lang/imports/proxy.py,sha256=hATzpaZFmPO7oNOQOeFdxAC_uCFhxy3FyfDYn-SvpUQ,16051
470
+ omlish/lang/imports/proxy.py,sha256=hn5jhBubr1Hfb51X5L6oR2h9yYya_Lmzb_xxE-s18jU,16171
471
471
  omlish/lang/imports/resolving.py,sha256=DeRarn35Fryg5JhVhy8wbiC9lvr58AnllI9B_reswUE,2085
472
472
  omlish/lang/imports/traversal.py,sha256=pbFQIa880NGjSfcLsno2vE_G41_CLwDHb-7gWg2J3BI,2855
473
473
  omlish/lifecycles/__init__.py,sha256=zOuvV4pErPwxcKUSgshmME2Duw9GrjwckpNmW3FPKng,810
@@ -772,7 +772,10 @@ omlish/term/alt.py,sha256=To7EfFnqssnMfbrkWzjT_iTGP73P1vbhrHXnCp8_uco,966
772
772
  omlish/term/codes.py,sha256=6_g4wwXP4z9koC9oEW3jSEuw27mQRf43ngD5RA-Qu2s,6390
773
773
  omlish/term/coloring.py,sha256=5lV7E2fyFDixAfm4tM5MFV9vreW5RM94AgUHB9hKaVE,2598
774
774
  omlish/term/confirm.py,sha256=0Qoo-MFBWw26khMMHv92tFXFHNB9GOubfdPLi48KkkY,1054
775
+ omlish/term/pager.py,sha256=dXAXnS0UcsOwwzmP_zEAflyT9YY5RItRn8A95jqPl24,6810
775
776
  omlish/term/progressbar.py,sha256=nCnTX1dUNCGle9FzzeTBuoxQaellErOQkyBsKVrGG1I,3679
777
+ omlish/term/terminfo.py,sha256=bFaoyv6HfHzciOe9w6XkC-O9tbSaWKys8_OSTVxffHo,22718
778
+ omlish/term/termstate.py,sha256=mqbYzWwSuSd3VW7bX-O1f0pPqtw6w9c4aAu_NTChOz0,1293
776
779
  omlish/term/vt100/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
777
780
  omlish/term/vt100/c.py,sha256=93HARU6Dd1rVF-n8cAyXqkEqleYLcofuLgSUNd6-GbU,3537
778
781
  omlish/term/vt100/states.py,sha256=OxPUxfFTcfz56MhtDgIigEApChOtN6XO1g6R2H08mu4,8303
@@ -839,9 +842,9 @@ omlish/typedvalues/marshal.py,sha256=2xqX6JllhtGpmeYkU7C-qzgU__0x-vd6CzYbAsocQlc
839
842
  omlish/typedvalues/of_.py,sha256=UXkxSj504WI2UrFlqdZJbu2hyDwBhL7XVrc2qdR02GQ,1309
840
843
  omlish/typedvalues/reflect.py,sha256=PAvKW6T4cW7u--iX80w3HWwZUS3SmIZ2_lQjT65uAyk,1026
841
844
  omlish/typedvalues/values.py,sha256=ym46I-q2QJ_6l4UlERqv3yj87R-kp8nCKMRph0xQ3UA,1307
842
- omlish-0.0.0.dev470.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
843
- omlish-0.0.0.dev470.dist-info/METADATA,sha256=Peyq-X7o-fd7UGpjw1lWUeSRESH7QHk1xpR_bXoYscw,18999
844
- omlish-0.0.0.dev470.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
845
- omlish-0.0.0.dev470.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
846
- omlish-0.0.0.dev470.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
847
- omlish-0.0.0.dev470.dist-info/RECORD,,
845
+ omlish-0.0.0.dev471.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
846
+ omlish-0.0.0.dev471.dist-info/METADATA,sha256=fgEVi5OFTSDL77Dkou_6_-zoRUUSFSxYotqYsemGQhc,18999
847
+ omlish-0.0.0.dev471.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
848
+ omlish-0.0.0.dev471.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
849
+ omlish-0.0.0.dev471.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
850
+ omlish-0.0.0.dev471.dist-info/RECORD,,
File without changes