omdev 0.0.0.dev440__py3-none-any.whl → 0.0.0.dev495__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 omdev might be problematic. Click here for more details.

Files changed (148) hide show
  1. omdev/.omlish-manifests.json +18 -30
  2. omdev/README.md +51 -0
  3. omdev/__about__.py +11 -7
  4. omdev/amalg/gen/gen.py +49 -6
  5. omdev/amalg/gen/imports.py +1 -1
  6. omdev/amalg/gen/manifests.py +1 -1
  7. omdev/amalg/gen/resources.py +1 -1
  8. omdev/amalg/gen/srcfiles.py +13 -3
  9. omdev/amalg/gen/strip.py +1 -1
  10. omdev/amalg/gen/types.py +1 -1
  11. omdev/amalg/gen/typing.py +1 -1
  12. omdev/amalg/info.py +32 -0
  13. omdev/cache/data/actions.py +1 -1
  14. omdev/cache/data/specs.py +1 -1
  15. omdev/cexts/_boilerplate.cc +2 -3
  16. omdev/cexts/cmake.py +4 -1
  17. omdev/ci/cli.py +2 -3
  18. omdev/cli/clicli.py +37 -7
  19. omdev/cmdlog/cli.py +1 -2
  20. omdev/dataclasses/_dumping.py +1960 -0
  21. omdev/dataclasses/_template.py +22 -0
  22. omdev/dataclasses/cli.py +7 -2
  23. omdev/dataclasses/codegen.py +340 -60
  24. omdev/dataclasses/dumping.py +200 -0
  25. omdev/interp/cli.py +1 -1
  26. omdev/interp/types.py +3 -2
  27. omdev/interp/uv/provider.py +37 -0
  28. omdev/interp/venvs.py +1 -0
  29. omdev/irc/messages/base.py +50 -0
  30. omdev/irc/messages/formats.py +92 -0
  31. omdev/irc/messages/messages.py +775 -0
  32. omdev/irc/messages/parsing.py +99 -0
  33. omdev/irc/numerics/__init__.py +0 -0
  34. omdev/irc/numerics/formats.py +97 -0
  35. omdev/irc/numerics/numerics.py +865 -0
  36. omdev/irc/numerics/types.py +59 -0
  37. omdev/irc/protocol/LICENSE +11 -0
  38. omdev/irc/protocol/__init__.py +61 -0
  39. omdev/irc/protocol/consts.py +6 -0
  40. omdev/irc/protocol/errors.py +30 -0
  41. omdev/irc/protocol/message.py +21 -0
  42. omdev/irc/protocol/nuh.py +55 -0
  43. omdev/irc/protocol/parsing.py +158 -0
  44. omdev/irc/protocol/rendering.py +153 -0
  45. omdev/irc/protocol/tags.py +102 -0
  46. omdev/irc/protocol/utils.py +30 -0
  47. omdev/manifests/_dumping.py +125 -25
  48. omdev/manifests/main.py +1 -1
  49. omdev/markdown/__init__.py +0 -0
  50. omdev/markdown/incparse.py +116 -0
  51. omdev/markdown/tokens.py +51 -0
  52. omdev/packaging/marshal.py +8 -8
  53. omdev/packaging/requires.py +6 -6
  54. omdev/packaging/revisions.py +1 -1
  55. omdev/packaging/specifiers.py +2 -1
  56. omdev/packaging/versions.py +4 -4
  57. omdev/packaging/wheelfile.py +2 -0
  58. omdev/precheck/blanklines.py +66 -0
  59. omdev/precheck/caches.py +1 -1
  60. omdev/precheck/imports.py +14 -1
  61. omdev/precheck/main.py +4 -3
  62. omdev/precheck/unicode.py +39 -15
  63. omdev/py/asts/__init__.py +0 -0
  64. omdev/py/asts/parents.py +28 -0
  65. omdev/py/asts/toplevel.py +123 -0
  66. omdev/py/asts/visitors.py +18 -0
  67. omdev/py/attrdocs.py +1 -1
  68. omdev/py/bracepy.py +12 -4
  69. omdev/py/reprs.py +32 -0
  70. omdev/py/srcheaders.py +1 -1
  71. omdev/py/tokens/__init__.py +0 -0
  72. omdev/py/tools/mkrelimp.py +1 -1
  73. omdev/py/tools/pipdepup.py +686 -0
  74. omdev/pyproject/cli.py +1 -1
  75. omdev/pyproject/pkg.py +190 -45
  76. omdev/pyproject/reqs.py +31 -9
  77. omdev/pyproject/tools/__init__.py +0 -0
  78. omdev/pyproject/tools/aboutdeps.py +60 -0
  79. omdev/pyproject/venvs.py +8 -1
  80. omdev/rs/__init__.py +0 -0
  81. omdev/scripts/ci.py +752 -98
  82. omdev/scripts/interp.py +232 -39
  83. omdev/scripts/lib/inject.py +74 -27
  84. omdev/scripts/lib/logs.py +187 -43
  85. omdev/scripts/lib/marshal.py +67 -25
  86. omdev/scripts/pyproject.py +1369 -143
  87. omdev/tools/git/cli.py +10 -0
  88. omdev/tools/json/formats.py +2 -0
  89. omdev/tools/json/processing.py +5 -2
  90. omdev/tools/jsonview/cli.py +49 -65
  91. omdev/tools/jsonview/resources/jsonview.html.j2 +43 -0
  92. omdev/tools/pawk/README.md +195 -0
  93. omdev/tools/pawk/pawk.py +2 -2
  94. omdev/tools/pip.py +8 -0
  95. omdev/tui/__init__.py +0 -0
  96. omdev/tui/apps/__init__.py +0 -0
  97. omdev/tui/apps/edit/__init__.py +0 -0
  98. omdev/tui/apps/edit/main.py +167 -0
  99. omdev/tui/apps/irc/__init__.py +0 -0
  100. omdev/tui/apps/irc/__main__.py +4 -0
  101. omdev/tui/apps/irc/app.py +286 -0
  102. omdev/tui/apps/irc/client.py +187 -0
  103. omdev/tui/apps/irc/commands.py +175 -0
  104. omdev/tui/apps/irc/main.py +26 -0
  105. omdev/tui/apps/markdown/__init__.py +0 -0
  106. omdev/tui/apps/markdown/__main__.py +11 -0
  107. omdev/{ptk → tui/apps}/markdown/cli.py +5 -7
  108. omdev/tui/rich/__init__.py +46 -0
  109. omdev/tui/rich/console2.py +20 -0
  110. omdev/tui/rich/markdown2.py +186 -0
  111. omdev/tui/textual/__init__.py +265 -0
  112. omdev/tui/textual/app2.py +16 -0
  113. omdev/tui/textual/autocomplete/LICENSE +21 -0
  114. omdev/tui/textual/autocomplete/__init__.py +33 -0
  115. omdev/tui/textual/autocomplete/matching.py +226 -0
  116. omdev/tui/textual/autocomplete/paths.py +202 -0
  117. omdev/tui/textual/autocomplete/widget.py +612 -0
  118. omdev/tui/textual/debug/__init__.py +10 -0
  119. omdev/tui/textual/debug/dominfo.py +151 -0
  120. omdev/tui/textual/debug/screen.py +24 -0
  121. omdev/tui/textual/devtools.py +187 -0
  122. omdev/tui/textual/drivers2.py +55 -0
  123. omdev/tui/textual/logging2.py +20 -0
  124. omdev/tui/textual/types.py +45 -0
  125. {omdev-0.0.0.dev440.dist-info → omdev-0.0.0.dev495.dist-info}/METADATA +15 -9
  126. {omdev-0.0.0.dev440.dist-info → omdev-0.0.0.dev495.dist-info}/RECORD +135 -80
  127. omdev/ptk/__init__.py +0 -103
  128. omdev/ptk/apps/ncdu.py +0 -167
  129. omdev/ptk/confirm.py +0 -60
  130. omdev/ptk/markdown/LICENSE +0 -22
  131. omdev/ptk/markdown/__init__.py +0 -10
  132. omdev/ptk/markdown/__main__.py +0 -11
  133. omdev/ptk/markdown/border.py +0 -94
  134. omdev/ptk/markdown/markdown.py +0 -390
  135. omdev/ptk/markdown/parser.py +0 -42
  136. omdev/ptk/markdown/styles.py +0 -29
  137. omdev/ptk/markdown/tags.py +0 -299
  138. omdev/ptk/markdown/utils.py +0 -366
  139. omdev/pyproject/cexts.py +0 -110
  140. /omdev/{ptk/apps → irc}/__init__.py +0 -0
  141. /omdev/{tokens → irc/messages}/__init__.py +0 -0
  142. /omdev/{tokens → py/tokens}/all.py +0 -0
  143. /omdev/{tokens → py/tokens}/tokenizert.py +0 -0
  144. /omdev/{tokens → py/tokens}/utils.py +0 -0
  145. {omdev-0.0.0.dev440.dist-info → omdev-0.0.0.dev495.dist-info}/WHEEL +0 -0
  146. {omdev-0.0.0.dev440.dist-info → omdev-0.0.0.dev495.dist-info}/entry_points.txt +0 -0
  147. {omdev-0.0.0.dev440.dist-info → omdev-0.0.0.dev495.dist-info}/licenses/LICENSE +0 -0
  148. {omdev-0.0.0.dev440.dist-info → omdev-0.0.0.dev495.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,6 @@
1
- omdev/.omlish-manifests.json,sha256=1y1Oga4pChBqK88YVfRZ2BjIMF197w5_fEVELMsekk0,11909
2
- omdev/__about__.py,sha256=jGBKcjGKlquwFQNwnAR0Yoglh8h8UZ0Nh7h46HIXTTQ,1202
1
+ omdev/.omlish-manifests.json,sha256=v-w4De6oXGrwxviG20OgLm2GOoUNQFvxGFq2OqTCMf8,11671
2
+ omdev/README.md,sha256=IxhRiW6wAsK4XKR9lmOlpkTbX8vcNcQwqal8HelK0yU,3326
3
+ omdev/__about__.py,sha256=hKuHcFW17FFP2s5CblD3G1oeJ-xeTuPUjnUqeTuR2qM,1323
3
4
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
5
  omdev/cmake.py,sha256=gu49t10_syXh_TUJs4POsxeFs8we8Y3XTOOPgIXmGvg,4608
5
6
  omdev/imgur.py,sha256=oqei705LhSnLWQTOMHMHwRecRXcpSEP90Sg4SVINPQ0,3133
@@ -7,18 +8,19 @@ omdev/pip.py,sha256=PqzAWDO_CbiZvXzJAZcCkFqWynUDls1jIgBWlrswQyA,2012
7
8
  omdev/tagstrings.py,sha256=cBmAc9-TtOBupvGQ9G4T1jjjtzijx4ihQCBu6FezzV0,5490
8
9
  omdev/amalg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
10
  omdev/amalg/__main__.py,sha256=nGxQ4PLd2u7zf6dH4TDWZg6yrVe3FxIVn9sGT5w8O-o,174
11
+ omdev/amalg/info.py,sha256=OF6Mygplqj1UuYqbFE-HC4Hy1X_QC5Y0lkHmJt1K8JU,579
10
12
  omdev/amalg/sources.py,sha256=wxPxPFnxRhPSRhQoWn9bpTYopXW-tanJQLvVQkf2K_A,1379
11
13
  omdev/amalg/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
14
  omdev/amalg/cli/main.py,sha256=uoPQo_7pevBd5dX_3-wHrXWN-Mr6eUeHy70OCNE0Bss,4314
13
15
  omdev/amalg/gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- omdev/amalg/gen/gen.py,sha256=95iQT0At_NsMf4IEg702ZOmmyEdhCZJGcSCFypm1BTk,6194
15
- omdev/amalg/gen/imports.py,sha256=Bv3xNgej1Nsuv5R_y-9wd9b8cPtWljZsxjMh9bolJWc,2074
16
- omdev/amalg/gen/manifests.py,sha256=SN4wvPZ8iNTcQIdpSZ6d64cL32pSlT_ak_GwctTPn_Y,903
17
- omdev/amalg/gen/resources.py,sha256=wxqrudGbHzru2KWu-a_4LDmOf7tRRCd8NM0BXx_ZU9I,2693
18
- omdev/amalg/gen/srcfiles.py,sha256=50HAAzsrJi-mV2r2Q1eQUJNgoSSP8qqe1xcaUN1GTRA,3506
19
- omdev/amalg/gen/strip.py,sha256=GW76ZWJNdwH8dxLDG7gVHFi_CnS958fWvSfroD0HCaw,1446
20
- omdev/amalg/gen/types.py,sha256=DvxUmEenqCeXycRHi4brxAkSjztq800qT1XlT94bXAY,90
21
- omdev/amalg/gen/typing.py,sha256=VWw4_iZXqM_29ElSVUlLTO6-KLUCQPdieQDvG_q1YsI,2301
16
+ omdev/amalg/gen/gen.py,sha256=3p1wso_MubIJiL3u6A_5qzy8t8dA310OQS6UcVZZilQ,7476
17
+ omdev/amalg/gen/imports.py,sha256=6c2NPkB4oGfFfBMrnAleD-abdMNM2uEiFOE1WpZtHRQ,2077
18
+ omdev/amalg/gen/manifests.py,sha256=zr90JijfueCdB6hF5lecQOSDw-PUsTLDzd8KdJyj-IE,906
19
+ omdev/amalg/gen/resources.py,sha256=gpj8gZc6YndnnyvwdDOdn48f_l4CCf1KTCauLWv1m1U,2696
20
+ omdev/amalg/gen/srcfiles.py,sha256=rEmecbd9QQn3U6kV_r01Q7fYML43HuVdHVpHVLAjRvo,3759
21
+ omdev/amalg/gen/strip.py,sha256=MzQd_W7qsD45-zHEKTluqyhV5sBY5hDsMKWLODWSnJY,1449
22
+ omdev/amalg/gen/types.py,sha256=pEore1Zj2_NOzRM48G9uyCSpM0Yh8_KQWzEEfJlDMcE,93
23
+ omdev/amalg/gen/typing.py,sha256=AGEqosUb4465T1M5sAvMhM2HEjHAV5t6XStigzshUtk,2304
22
24
  omdev/cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
25
  omdev/cache/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
26
  omdev/cache/compute/cache.py,sha256=7cJmxiHwbnitMZaLZEZVjEq0v1JJN7HKBK-BH_EtVY4,3628
@@ -29,12 +31,12 @@ omdev/cache/compute/resolvers.py,sha256=e-SjF4a5r0gsTcbYnpxN_Fc1bstI2JLckisJXXeO
29
31
  omdev/cache/compute/storage.py,sha256=3oHJGhIO3gilEyOIDR2UiB8yPKcw9xwWWvoQ0_ZjxZw,977
30
32
  omdev/cache/compute/types.py,sha256=pF5htSH7oXyky2mxCqGhb_xhOc_GKnjnBAu6lzxaeM8,2645
31
33
  omdev/cache/data/__init__.py,sha256=SQXtugLceRif463rcoklpQ33pxYLgEIm0xiI6NvOI6M,301
32
- omdev/cache/data/actions.py,sha256=Mv7eXeZuohCjQLpmLyvqvGjjBacXIvTYzIRMVpEh-zM,1037
34
+ omdev/cache/data/actions.py,sha256=1mBDibRVhUKh0DXS3Wt3kvP0fQoPhyC-xrRRT4UQTkg,1036
33
35
  omdev/cache/data/cache.py,sha256=h5xQUxiye2exsMUWh1pDeMz_t3LEC75kvloIDg57xMI,7660
34
36
  omdev/cache/data/consts.py,sha256=d6W_aeMqgah6PmPYi9RA8Be54oQ4BcNCy8kDQ7FlB_Q,26
35
37
  omdev/cache/data/defaults.py,sha256=NL_mT7kaSLm2Mk9VO5wdSu-DIcHTR1KgcihJqdSd4TY,312
36
38
  omdev/cache/data/manifests.py,sha256=NweXxbkuLMBG1DiUFliOSYeXBrLPMIY4GA_gOZzHwho,949
37
- omdev/cache/data/specs.py,sha256=P50VSvMf2Jp3VHjhHy4i1-PwYwEGD4MMXEpxIg0CQis,2468
39
+ omdev/cache/data/specs.py,sha256=HdOkg-WCtanJMX-uysLuKfHACX_MW7hrCV5sReXgRJM,2467
38
40
  omdev/capi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
41
  omdev/capi/darwin/__init__.py,sha256=iAlc3ReV3LJOv5X9zGME1FKeZ2yf0auUuj1I3sGSo4E,86
40
42
  omdev/capi/darwin/aps.py,sha256=_DAGaOZYk9T1VoO22H5ZiV8F1qeTIQDO7UkYSj5UisE,1278
@@ -50,9 +52,9 @@ omdev/cc/cdeps.toml,sha256=MqZ1OQHQ2JPvQpHRL32GpRgQWQRtzjPI2EWl4EqSm-I,1004
50
52
  omdev/cc/cli.py,sha256=WkA39T1sG2NOXDxImapE4BU7Bg_ZijjErk7HvTfV-6E,6427
51
53
  omdev/cc/srclangs.py,sha256=3u_APHgknuc-BPRQSDISwSzouluKsnLlBxodp-XCl_E,728
52
54
  omdev/cexts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- omdev/cexts/_boilerplate.cc,sha256=sbpXEgdFrkdzZXgaNWFFNN27fL9TZu6VrwvMY4-nnFM,1726
55
+ omdev/cexts/_boilerplate.cc,sha256=tUTFKyMpammFj-7bF8DbN6jv67Vn7qrwCFDoAgarof8,1753
54
56
  omdev/cexts/build.py,sha256=JxEuqSpspnY6kWn8eB89FjcSjF4bpNgVYNeIvwmWehY,2659
55
- omdev/cexts/cmake.py,sha256=7CSL9AsWaJnad94dw9QxbZLirtxdlg7Au7EQ1g7H74g,10050
57
+ omdev/cexts/cmake.py,sha256=rwsUVjOMjNR9nBCMgK-oWLl0aD5WWUYzVQEYcZ5BZGs,10185
56
58
  omdev/cexts/importhook.py,sha256=GZ04bE6tMQ8uQUUzGr22Rt9cwyI6kkoK4t7xpLP2Lrs,3562
57
59
  omdev/cexts/magic.py,sha256=DglhjCXEiL28pFTN4lrmUW6ZLn6HaumR13ptyaFOez4,131
58
60
  omdev/cexts/scan.py,sha256=94UqVgxBrAHn_VyW_ZA3-hB_R6pWIJRWqvtSBEg_O4U,1673
@@ -76,7 +78,7 @@ omdev/ci/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
76
78
  omdev/ci/__main__.py,sha256=Jsrv3P7LX2Cg08W7ByZfZ1JQT4lgLDPW1qNAmShFuMk,75
77
79
  omdev/ci/cache.py,sha256=aKsNvl7fTJfjpFhUrWgKCNEwgoSfTZpEcn0NUY9BOCM,8456
78
80
  omdev/ci/ci.py,sha256=ZCBQuX5fiyzgBLFndxh1To2J-KrjoPlw4EvEruDIdjg,7923
79
- omdev/ci/cli.py,sha256=jmvG-xTm97pRtoqtaF6qru4Cros-3e4r6q3h_V0XNoY,7256
81
+ omdev/ci/cli.py,sha256=bqOyaPcCKIlqyUE7DMA2Yzf4SpHBqQxY2ISybrMQO-M,7257
80
82
  omdev/ci/compose.py,sha256=SXjWuHuLN9NQttvnJ440A88VI7JPU0sSaQhfWe_-IKs,4518
81
83
  omdev/ci/consts.py,sha256=HkSYz-_hHilcHPBvRs-SwcUxW7vMNlHXZ8OyIKnVQbQ,21
82
84
  omdev/ci/inject.py,sha256=Yk7bT7sRC76PUN9qQ07MiveAuQmi1LZBKxah7VKOB5Q,1930
@@ -114,7 +116,7 @@ omdev/ci/github/api/v2/client.py,sha256=XuEAR46tNFZpGRPIPFgdpwTA10mC89wwj-X035Qi
114
116
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
115
117
  omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
116
118
  omdev/cli/_pathhack.py,sha256=ABWxtuMY29WBOPqC-4LAZK9S9PwGY3zn5aK6HavFPh0,2125
117
- omdev/cli/clicli.py,sha256=TZnQYHyyh97B6N_pVYYduYgt03s8Yp5mrJ7wblXWSWY,6308
119
+ omdev/cli/clicli.py,sha256=eD0YNvprg1_Kgeu_r8DiGb3yVOOeYGymXE2d5h-0z4I,7422
118
120
  omdev/cli/install.py,sha256=oB34AOwu07sqEztW_z5mgorAFoP_Tw556XiTPj2WSM0,4904
119
121
  omdev/cli/main.py,sha256=JIyQjaoVkXpkanNYpJbQnauzvpMtzn9-nXGKu57dVls,6947
120
122
  omdev/cli/managers.py,sha256=BV98_n30Jj63OJrFgRoVZRfICxMLXEZKoEn4rMj9LV4,1160
@@ -126,12 +128,15 @@ omdev/clipboard/linux_x11.py,sha256=o_T-iYqoqozUrJ-F1xU-QSeoNCk3_ZAh6rs9quhxzhg,
126
128
  omdev/cmdlog/__init__.py,sha256=026o1leEXU5bsNZPpEOeLf_Ml1wQXzbiFDmlcKHX-Nw,95
127
129
  omdev/cmdlog/__main__.py,sha256=m31h6AcI9rjRNVeBGoLcR-5pWp-yS8LXCorf4iBhX9w,162
128
130
  omdev/cmdlog/_cmdlog.py,sha256=9VSuUKXBMBHAH3OfBCeqp16YPddPT9Man2zDHgzzCtI,1507
129
- omdev/cmdlog/cli.py,sha256=9AJC3xeQA-2pdmTnsjo__9WRAML1jpEJUJMn6qQQpJA,1427
131
+ omdev/cmdlog/cli.py,sha256=BvHle_PAzZmELlwRCfs3V3o3X7BZ71u1jPGNrALmukA,1424
130
132
  omdev/cmdlog/cmdlog.py,sha256=MJqfCG7sVWjSK_i1shD7cgWpFZXZkPvGhGEh-yd6iwM,1982
131
133
  omdev/dataclasses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
134
  omdev/dataclasses/__main__.py,sha256=N-a0Lf_s7D0VajuZCCY_dt8R4rSpeck9inbCsoIvciQ,175
133
- omdev/dataclasses/cli.py,sha256=j5GfpJQSkA_jmV94XTVb3amCFYjgrasMs-bp_zJEkqE,445
134
- omdev/dataclasses/codegen.py,sha256=kPCKttb0gQgV2ChkARFSUPA96DbrvFZV-GyOaO_yQto,3021
135
+ omdev/dataclasses/_dumping.py,sha256=36xWx43BGYHADYoPOhNIAbhlBPHWiHulBdCyicXHWMQ,54823
136
+ omdev/dataclasses/_template.py,sha256=DI0L4YL-YnrIgaEA9e4bvpV4lHQWDDcvr3-tjQ-kHBc,250
137
+ omdev/dataclasses/cli.py,sha256=IyZkEcrk5Pv553q70a8-EA4YOPnCL0BlIUrY-xSiszM,549
138
+ omdev/dataclasses/codegen.py,sha256=SOCe8EzwPKLh7CcXFJ7xihJuDFDADoYZyQNzCgNQ4eI,10578
139
+ omdev/dataclasses/dumping.py,sha256=5v9U1F0LLizNWxi7STivrYP4cHYCx-q_ZWhNSqzRTB0,5570
135
140
  omdev/dataserver/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
136
141
  omdev/dataserver/handlers.py,sha256=q-kw-yiiRxJFmlPRdtqllsg7sv5Jz_ySsNl2xCoM7i4,5490
137
142
  omdev/dataserver/http.py,sha256=SMS6w-GVevG58FypqmPytcEqW8aUWpd2_F6JlBDIuBc,1730
@@ -153,13 +158,13 @@ omdev/intellij/ides.py,sha256=5YSJZ0Sbe6UPExn6atOlZd7j3WK1hptHh4RDxSh6CkI,1639
153
158
  omdev/intellij/open.py,sha256=3HlbJsGkwZ28UBi1P7dVJMRDMLbJyOGQs9QMQqgYVus,2679
154
159
  omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
155
160
  omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
156
- omdev/interp/cli.py,sha256=xYZHts_tYuWPenTTLQIQ-I1JWHao6XolsH0R73AufDY,2380
161
+ omdev/interp/cli.py,sha256=x7CYOY6SBf57dnSrAXwgL50KNjKtqCEN_xeM6KiTY9A,2384
157
162
  omdev/interp/default.py,sha256=1jxTsCeCkmYX1QDgr-bPcfSTFdbkYCNKrdfdVf4_P8M,290
158
163
  omdev/interp/inject.py,sha256=MOppFILGFCp2f4-2uwmH5fN-7erHI3RyMQJaG0kw0Gc,1569
159
164
  omdev/interp/inspect.py,sha256=GLjqRkmNr3H0CZsiFqizM_2yfUL7hSD-BGYysNcVi_Q,3018
160
165
  omdev/interp/resolvers.py,sha256=9ExwP0wcQ4mzyTLNurSG4Dg1AQ_IqLfR2ZyqR4VRANE,2590
161
- omdev/interp/types.py,sha256=Pr0wrVpNasoCw-ThEvKC5LG30Civ7YJ4EONwrwBLpy0,2516
162
- omdev/interp/venvs.py,sha256=a9lL0C84kNQoofSc7qa59Kgr_KMuyR9hUruKXbu1p98,3306
166
+ omdev/interp/types.py,sha256=B5m522tu5xi4sWjxlmZgeHtcnPW5xuMPKvMbcarmfwY,2548
167
+ omdev/interp/venvs.py,sha256=KAnkHGP8jV8KmiarRl2wuMbya-CEgyN6hEM68irGOxs,3362
163
168
  omdev/interp/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
169
  omdev/interp/providers/base.py,sha256=zMtzMJIDvaI0q1gtsZTCvFiTc7qdhGbUcXRs6LCBmgo,1333
165
170
  omdev/interp/providers/inject.py,sha256=NSDFBQVD3ZR9Mf162XB9_VvTUAXGCRhPcrjVlYcFDJk,857
@@ -173,8 +178,28 @@ omdev/interp/pyenv/provider.py,sha256=YvlTqG3GET8uW03d21ba0vNOzF6aPC4IbpbiGbErGO
173
178
  omdev/interp/pyenv/pyenv.py,sha256=Kf1K80v0zcw1BmBQPLczH4dz770_js_ma4Sj4_XOEcU,2654
174
179
  omdev/interp/uv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
180
  omdev/interp/uv/inject.py,sha256=nNCfjD-nrErM8wM__Z51rxqZjV3Cn0kE25jFAbkrPag,595
176
- omdev/interp/uv/provider.py,sha256=rMrlNRrV0FxFJV0ldJJCkrUzKr--WSbUGFdMwKpFV9c,1045
181
+ omdev/interp/uv/provider.py,sha256=dnQAH2cDwVqRKDejftcZnfFZvQeNxwnOH4KC1J9l9f4,1867
177
182
  omdev/interp/uv/uv.py,sha256=NaVQOzgbcrx6LkpXPmcmR9iVknFHgnslMlbBHf8VTTc,1810
183
+ omdev/irc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
+ omdev/irc/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
+ omdev/irc/messages/base.py,sha256=7tHICphzOievcjs39tzeooTL0Z6iL4nvVHxgRKK54LY,1248
186
+ omdev/irc/messages/formats.py,sha256=8Cz2mmlx0--Vnp4VvUYSndYc1Dnq97Mls5ol4zgdG2Q,2370
187
+ omdev/irc/messages/messages.py,sha256=QaNktXScvtKCWD6KbHIx_5XvXmsJlbkoVR_zXjLdyiA,14079
188
+ omdev/irc/messages/parsing.py,sha256=nennTwdNbaWYx-BzMe9qKhdFdTlBeEuOVrBlhMNBYf0,2225
189
+ omdev/irc/numerics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
+ omdev/irc/numerics/formats.py,sha256=NI5DKyePCEnOeE66R1qVgu2rUt56id_n52wzx_9w8uw,2261
191
+ omdev/irc/numerics/numerics.py,sha256=iOEG9PqfGUiDh6gDgdiNUqVY6WAbMBIwEPPIma34JNo,18215
192
+ omdev/irc/numerics/types.py,sha256=myjN4K29QzwE3XvKeyW7QYhPW-H13jCR2gvv59_g0Pc,1289
193
+ omdev/irc/protocol/LICENSE,sha256=1CT5_XkDMJ9HDZh0tX4TIsm7LfrSdljRX5EirPBhDYM,778
194
+ omdev/irc/protocol/__init__.py,sha256=0OFSLrMS5jYFJCqH1LKv0UfTrp5faPQhlhYKBQyCZeA,1701
195
+ omdev/irc/protocol/consts.py,sha256=iDCsJIyDE5-UnkIQpwCLzdbf3DUFWRmqkuVd0cZtujw,185
196
+ omdev/irc/protocol/errors.py,sha256=cRP8c--kRts5Uwqn1xl1J97OI74hicG4UbkJs_EOSDg,334
197
+ omdev/irc/protocol/message.py,sha256=i1-iZj17_mrmX5WaIcBuVD-dZP6g-bP6I_zH-0gVLzU,403
198
+ omdev/irc/protocol/nuh.py,sha256=6DamgLNVaZRZdvpGqOn-cFsnru-a_kYmJIrb_Epu8_o,1287
199
+ omdev/irc/protocol/parsing.py,sha256=yL9LRLw4GqtmiXmrH_AcIzu5x2riP6QDMEWESZVJ3jc,4058
200
+ omdev/irc/protocol/rendering.py,sha256=-V7_Yr9m_izcUrwkOeD3L4aCNTT4iLi22QH5J0Upd5g,4914
201
+ omdev/irc/protocol/tags.py,sha256=M89vR2GgDNroEsiH2QNchVX2LmT6sMIXY7huTEv7rIM,2784
202
+ omdev/irc/protocol/utils.py,sha256=tUbkShJov8oCsbg1KZE1EC5pCThXJTdXFcw0HBM5ApQ,692
178
203
  omdev/magic/__init__.py,sha256=CBzRB71RLyylkrj8dph6JUEddA8KSMJvDgriHqFfJGU,478
179
204
  omdev/magic/__main__.py,sha256=1_BAKDtA6Rn5hswyl4S5J78BPRbynX4is_wQsD0U7jI,161
180
205
  omdev/magic/cli.py,sha256=DL4V34hSh0yVEtPyl6C7RSYd_td9FOT9Zn7kkyQZhvU,1190
@@ -184,10 +209,13 @@ omdev/magic/prepare.py,sha256=SEOK-bl4zDxq0aphYXsEI-hCjbkV908VNnJt-dk0kL4,594
184
209
  omdev/magic/styles.py,sha256=6LAL7XR3fkkH2rh-8nwUvdCYVHBkQxCfP0oEuPuw1Bg,670
185
210
  omdev/manifests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
211
  omdev/manifests/__main__.py,sha256=JqyVDyV7_jo-NZ3wSs5clDU_xCMlxzJv-XFohoZWQ7E,174
187
- omdev/manifests/_dumping.py,sha256=H0nFCPDg8ooiDFKv435XcW3iz-j9sd2hz-klt9K_DeA,52553
212
+ omdev/manifests/_dumping.py,sha256=DRaiapOrM7pmSShcnGcMjxGBdXClntSokHCLBjKflS0,56124
188
213
  omdev/manifests/building.py,sha256=M3IHQljk0ca0J32-xNTOcFVvW07s_7fHQ7sGsCJeurU,13908
189
214
  omdev/manifests/dumping.py,sha256=WUIZDvOyO25AhnCPn5Nxj2OkMcZa1LRjGuCnpyx8AL8,4506
190
- omdev/manifests/main.py,sha256=mYb8iM5bdwaO8jSd9_hIBSoYLf2h7e0iLb9aCCbgJ6c,2175
215
+ omdev/manifests/main.py,sha256=Gch-ZmvzXyfQRZp_h56RL_hn1T_qG5ZhGCJYp57Hzro,2179
216
+ omdev/markdown/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
+ omdev/markdown/incparse.py,sha256=zldzPESdrgaoIjBLL9ZPZY11riXCY_3Ti4YDeLtz24Y,3824
218
+ omdev/markdown/tokens.py,sha256=YwFUhxaun4_BiKYXrrX3CBka4ruqdh8Ogl7G8hGvlLA,1483
191
219
  omdev/mypy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
220
  omdev/mypy/debug.py,sha256=VskRcr9trNhyPG2ErZZ7IX_v1DLKTLBOjp34o-fEWaM,3294
193
221
  omdev/mypy/report.py,sha256=faX1GmbX_irmZptsOZN2HJnmHxxnrqxScmPdl7B3BI4,1570
@@ -206,44 +234,36 @@ omdev/oci/pack/packing.py,sha256=zsvQN-VD-7MaMjiylUpg_jXicp1YDbtyUktrR7ek6Ug,541
206
234
  omdev/oci/pack/repositories.py,sha256=Ogh4Wj2ySvIMnuDFb2OeBc67hHtc0WWkAfBxOkNE5aA,4954
207
235
  omdev/oci/pack/unpacking.py,sha256=tVYw8REKuYd4ciGXwMmXxlp4CRLHdET_gB9ShYh1d_M,6003
208
236
  omdev/packaging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
- omdev/packaging/marshal.py,sha256=nr7wN-Pi3FGAuh3HaladzDgOgyQl1-vtmxJ_AUOo4d8,2355
237
+ omdev/packaging/marshal.py,sha256=OPNqH6Ghjw5EQQsp0z2QAwThjIOE6vJ5VAoQca4aqHI,2376
210
238
  omdev/packaging/names.py,sha256=-orp16m20gSFeKRiGkRNyqFVV4S1y_Djvjdq_5hNwpY,2533
211
- omdev/packaging/requires.py,sha256=rgEeJh8shqnFCPBtG_3Tu0vASXsvwK26ikJauFcrz0I,15691
212
- omdev/packaging/revisions.py,sha256=tLNDVtPiygB8mSxwp-kDxeEHhpBzD0jayndjsgUOfkM,5055
213
- omdev/packaging/specifiers.py,sha256=t6UhvSlmwHmSvqqPb4XnCq9H41HiqeAqRvCUy2DF_P8,17487
214
- omdev/packaging/versions.py,sha256=SBh4LYfBYVi8SXMoWcOWY-Y3llOF-6cxayVaIM1NXMs,12371
215
- omdev/packaging/wheelfile.py,sha256=xv-VpLwhgj1UKounbawAOtkJENRvkJJaHSjD4_zZz_o,10016
239
+ omdev/packaging/requires.py,sha256=nn4ff8mlgfsdZooKzQjhASFS7mMVUCCmcb-150F0Lcg,15739
240
+ omdev/packaging/revisions.py,sha256=9fqAANSRhTkfONjfsulu8veJP5gYr23c3MSh4JDvXcE,5059
241
+ omdev/packaging/specifiers.py,sha256=7SzsdHVtI-ilLMlvDXNgMLSoqx5JW_ePDrbtTOrx5tw,17472
242
+ omdev/packaging/versions.py,sha256=Bgzh6B_t-IRh-9H1CGJdoQ-j7DlpwJzT1WS813W6XdU,12307
243
+ omdev/packaging/wheelfile.py,sha256=lFykff73tqqJl_0HwYZCTlAOUnRMTg_ZWiOSTsG5V5U,10018
216
244
  omdev/precheck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
245
  omdev/precheck/__main__.py,sha256=UEuS4z5-heIrwTtB-ONe1KeXJdqj8tYXMqWMpuO10so,165
218
246
  omdev/precheck/base.py,sha256=fKdrfakq2u1UU1_JZFnl-non9bIAZMsSkVY1SMYn8xQ,662
219
- omdev/precheck/caches.py,sha256=OZKP20DIj6OpUzdNwrjCufv1GzndEbsc7tLD-qHNv9g,1736
247
+ omdev/precheck/blanklines.py,sha256=VG06NTcFoJjUBn46OXlx4qf5u3vx5l02XiNANBeuQBY,1882
248
+ omdev/precheck/caches.py,sha256=En0H1_CJbxggJ729pre_CCqqt7yvo3H9cCqVKKTEmB4,1739
220
249
  omdev/precheck/git.py,sha256=O8rNQZ_vlHec0pOFbK6LOkbly5ZIUYT_HXRMqQX8GaI,774
221
- omdev/precheck/imports.py,sha256=3loQxHMrpI0ce4-le77NCSxutLac_5vDW4UDX7KWWg8,2565
250
+ omdev/precheck/imports.py,sha256=KXNFCqDqBRUzRs1LFvKVSNDhoVWtNibFbmcqGPrqx9c,3016
222
251
  omdev/precheck/lite.py,sha256=sseaKHMZgMhIEuifZvPJm0-wuRqRUrnyySJfHBMItOM,4737
223
- omdev/precheck/main.py,sha256=nbTXR7d2vVMOyrXBVKFyQfmTm1H5tpk7Pe2Zphk-LqI,4365
252
+ omdev/precheck/main.py,sha256=k8Visuqc6f29fmq98nVRxYe6PbodzOcAH-j27EeF3iI,4436
224
253
  omdev/precheck/manifests.py,sha256=dxl7GSJHKjQrR6mbwvj6j92XDGHOpxxEEQ6smJkBEe4,810
225
254
  omdev/precheck/scripts.py,sha256=6nb_lDgyX7u9kdF_BU6ubY01q_jGk96VH9q9gpOieng,1753
226
- omdev/precheck/unicode.py,sha256=VUNDCrlfUas_U8ugV_q0eFUXuBgKjS8YdCFm0FXREXo,2583
227
- omdev/ptk/__init__.py,sha256=dpX3wJhkkamPutosBwy90C0E9WHv-sE48FE09_FaDQw,5196
228
- omdev/ptk/confirm.py,sha256=98KHM00G1iU78BweFfVGFSZWWmB7MKH8-8fUKPmttRM,1591
229
- omdev/ptk/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
- omdev/ptk/apps/ncdu.py,sha256=KTbAgwhzcROOvq20VGN92UwMWcgkMMVOeFfpjZAsKUk,4561
231
- omdev/ptk/markdown/LICENSE,sha256=oSmc9j-n23wTJUO0TbY8sIHrf9pFZUovFWfDL7D53IA,1489
232
- omdev/ptk/markdown/__init__.py,sha256=Mj0KTyzdGVhkp79QoUiS6iJjnDz8c9chygcbVIgm1do,222
233
- omdev/ptk/markdown/__main__.py,sha256=zaZuKy3-llEztkpoIAIzvspOyCsTJQI33ZuadvSHJKM,181
234
- omdev/ptk/markdown/border.py,sha256=4gWpwTimurgJ_MjE-UKMCDMb4DnVcgFPfXutObQWOxk,1726
235
- omdev/ptk/markdown/cli.py,sha256=FlV12qpyVWgpfeOzyFg9DlgLkss3rgCet_Jebs6_Xqo,537
236
- omdev/ptk/markdown/markdown.py,sha256=wRxCWSV2u71NP_MTi8A8vVLjZ1TmmaWUZMnvW468Ejc,12368
237
- omdev/ptk/markdown/parser.py,sha256=UppwouvAYh3qzQMKL-BjcyqBIl2KHcocXlWiKFZ7cBA,990
238
- omdev/ptk/markdown/styles.py,sha256=lc17zooXhff5_2tkqLsCmdq2b_rfSAehmHVR-8Lo2qk,777
239
- omdev/ptk/markdown/tags.py,sha256=6wF9lbqbpf_WCxEJ_tJP_QtaDCcQKCKYS1CMzHTQg2U,7020
240
- omdev/ptk/markdown/utils.py,sha256=lApIIK_n9dgLaC9mHKJf8O8VPrYRHO9qjFON_mqXv1Y,10513
255
+ omdev/precheck/unicode.py,sha256=vMxGb4Kqg1NhFlw1kbgsPtXOnswjREH0ZPZExrrTwCU,3260
241
256
  omdev/py/__init__.py,sha256=u7tLEfRTnPVtWPmKK_ZIvnFkZwTe1q44UQ53cvsix3k,41
242
- omdev/py/attrdocs.py,sha256=kIVgOD8Apsw9hgaqAk6nsMsFD30cCMRAPRTG8qMPmR4,5174
243
- omdev/py/bracepy.py,sha256=tcZaljRkSsFYMewb1FULHet5HxV6GGqgbmLhlIGqdCw,2742
257
+ omdev/py/attrdocs.py,sha256=33VS4ym4_TKBuLUU4LfOyRTGr3KIcY5mPaibb1WTqJo,5173
258
+ omdev/py/bracepy.py,sha256=KQJZAMEUxj_qg538U1CwM0hV2UP0TEnu-MEL-Cva2t0,3008
244
259
  omdev/py/classdot.py,sha256=7WVaVio1Q2B92bvVbXVNAubSkce8Zm-UbleBvXhc0IM,1655
245
260
  omdev/py/findimports.py,sha256=UPnBzPUwGrmakZ0RhaJdO3TNBQVk7IUREEqmIvsSxb0,4235
246
- omdev/py/srcheaders.py,sha256=m6DDMWoUqhzVyWdvd1g5ier24VbOLmOyAmVxHUQGSGY,1982
261
+ omdev/py/reprs.py,sha256=S2g18dPx-GOSTOdvxee4F7Yq2TroXvs6svkV2Kebg_U,1012
262
+ omdev/py/srcheaders.py,sha256=bttZeL0_klqjPhG71UxFV1GmIayotJNf98TRMl9UOHM,1981
263
+ omdev/py/asts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
+ omdev/py/asts/parents.py,sha256=2vxme1OfQt9uu7OOnGxTFNx5D1tAMVh0YFC2vbk8EwM,645
265
+ omdev/py/asts/toplevel.py,sha256=zoLjaoOtfZFftdrNhVO8fm0fhwgJ0k-yLk8CAIM32SU,3070
266
+ omdev/py/asts/visitors.py,sha256=_beFE5M1NuFxlB-4Q5-TfdDob8dSvS6tTTBaYPVxqKk,362
247
267
  omdev/py/docstrings/LICENSE,sha256=xcpUBjP2UnH0P7dk-v45ilWGJr0Ydn0vgMvGReKMTVA,1084
248
268
  omdev/py/docstrings/__init__.py,sha256=HFzqco1oj6M7KQ80i48W9gYABVJU8oM_1wpl9ndBNAA,413
249
269
  omdev/py/docstrings/attrdoc.py,sha256=xo-AFqEPfz1XppsCMJS80pG1Vdd2TiBsoxZ7YP6ZHC4,4269
@@ -257,35 +277,38 @@ omdev/py/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
257
277
  omdev/py/scripts/bumpversion.py,sha256=UDMtTd_wfkqsmrtHqTKDilWVzUBigzZAOCVND7t9jyw,1124
258
278
  omdev/py/scripts/execstat.py,sha256=iJD48Mn8lF4V7hNvOrChfBRjmItWJTAQzWwHM0wSTBk,4792
259
279
  omdev/py/scripts/importtrace.py,sha256=OOf9GvB6PWP2uVzogSYsM5JGUAoSfMx1IKfYUXB8ABc,14245
280
+ omdev/py/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
+ omdev/py/tokens/all.py,sha256=Zz7miOWeBDYfOEgKyeIGHooLvr9r31HlI04eqYWBUpU,806
282
+ omdev/py/tokens/tokenizert.py,sha256=BvDjXjaeM3_sMq9i-oojuKcAuGzSkbCso-Yt-gNKxeQ,7910
283
+ omdev/py/tokens/utils.py,sha256=_dlXx-_npiGeZkMZVbXaXQDGts9yY8UnEJcT_bwPj0A,2084
260
284
  omdev/py/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
285
  omdev/py/tools/importscan.py,sha256=OYPZBg__u6On416tcmYfRTMkjr1ZlFcOAy9AafJ8iuo,4648
262
- omdev/py/tools/mkrelimp.py,sha256=40gE1p_w-f_oWptUiS8TqODhso6ow46UCEptw4VbH0c,4040
286
+ omdev/py/tools/mkrelimp.py,sha256=kQAADYW1f1Y2WbIuqWOFNWJl96oT7nqW38XPCkLIyjQ,4039
287
+ omdev/py/tools/pipdepup.py,sha256=3s3rTlj0KcVriEw_x3wLuoqQnRjdPCydDWW7fhliUl4,20082
263
288
  omdev/pyproject/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
264
289
  omdev/pyproject/__main__.py,sha256=gn3Rl1aYPYdiTtEqa9ifi0t-e4ZwPY0vhJ4UXvYdJDY,165
265
- omdev/pyproject/cexts.py,sha256=GLD4fe61M_fHhdMcKlcQNUoCb7MeVXY6Fw-grKH4hTU,4264
266
- omdev/pyproject/cli.py,sha256=Umsu2bcJUYeeVXICaZFhKckUBT6VWuYDL4htgCGGQIs,8749
290
+ omdev/pyproject/cli.py,sha256=qrFlVI_s_viIWE_vmccNNVuQaQP9-cArLJDP2ClqwTM,8753
267
291
  omdev/pyproject/configs.py,sha256=baNRwHtUW8S8DKCxuKlMbV3Gduujd1PyNURxQ48Nnxk,2813
268
292
  omdev/pyproject/inject.py,sha256=Von8_8ofkITLoCEwDHNRAwY0AEdFQg7r2ILS8kcTMuY,325
269
- omdev/pyproject/pkg.py,sha256=CcWBhsOgim8MYe5ryKDGB8ClRIyiCX6YmYUHRbQ5q_Y,14964
270
- omdev/pyproject/reqs.py,sha256=LrGr393-yqKbd2K_D-NePrvUIhMDjPG_1cEyQ3qesAM,2480
271
- omdev/pyproject/venvs.py,sha256=4JIAlNGWNHm4U9OgqG2f1fNwbqEJgQc34bhp9_46MT0,1980
293
+ omdev/pyproject/pkg.py,sha256=HE7MhF93qIBqfdsvJCzIOMWlbAPt0s7qU04FGEwasFs,19449
294
+ omdev/pyproject/reqs.py,sha256=DU7NBNpFTjU06VgqRYZj5jZRQxpIWbzL9q9Vm13_o0o,3317
295
+ omdev/pyproject/venvs.py,sha256=PNgfVrGlw9NFKJgUyzyWH5H5nAIzUDPTHRVUNBM0bKs,2187
272
296
  omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
297
  omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
274
298
  omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
299
+ omdev/pyproject/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
300
+ omdev/pyproject/tools/aboutdeps.py,sha256=XmvSKsn3kdY0K2Llh-jhNskm4sK46Y8fWnUlPXBrI34,1592
301
+ omdev/rs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
275
302
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
276
- omdev/scripts/ci.py,sha256=HEUtidJSab083K7rlHArWgRDhura6Vc1rOBKxlcF1x0,423618
277
- omdev/scripts/interp.py,sha256=-mZ0RUnDiq-798F_HDt1OQG8k0hiWbSmaR8iepuwfyo,166643
278
- omdev/scripts/pyproject.py,sha256=YAM8FbJ6dV0gAGFchRajPqmL0gpQc1S8uKxdQjaIay8,330699
303
+ omdev/scripts/ci.py,sha256=YhYd0S2osBCOvgdZu_BHD8-qS6PBmFnlBgjK81jQaMg,448272
304
+ omdev/scripts/interp.py,sha256=CvrxfmIuZ6xsL8PcebgKaqCiVm-WT5Z5I8ByhWIstt4,174830
305
+ omdev/scripts/pyproject.py,sha256=3XvqP_XmSQ_ySFP-TzpP97Ze7cA58FVO3u23mno-WFU,371110
279
306
  omdev/scripts/slowcat.py,sha256=PwdT-pg62imEEb6kcOozl9_YUi-4KopvjvzWT1OmGb0,2717
280
307
  omdev/scripts/tmpexec.py,sha256=t0nErDRALjTk7H0X8ADjZUIDFjlPNzOOokmjCjBHdzs,1431
281
308
  omdev/scripts/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
282
- omdev/scripts/lib/inject.py,sha256=W-9w85457SPmhzUKRZqLIkULh3arMNto-mdzk5PFlkY,53703
283
- omdev/scripts/lib/logs.py,sha256=zRZYc-P9B0-uSETpIXNkNmb874jVvTfKtmUSJ47yZFw,63073
284
- omdev/scripts/lib/marshal.py,sha256=DOsUKJ1U3mwsNN1Et20cqJUBlzZZcmAv1m-zxMKHYEQ,46835
285
- omdev/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
286
- omdev/tokens/all.py,sha256=Zz7miOWeBDYfOEgKyeIGHooLvr9r31HlI04eqYWBUpU,806
287
- omdev/tokens/tokenizert.py,sha256=BvDjXjaeM3_sMq9i-oojuKcAuGzSkbCso-Yt-gNKxeQ,7910
288
- omdev/tokens/utils.py,sha256=_dlXx-_npiGeZkMZVbXaXQDGts9yY8UnEJcT_bwPj0A,2084
309
+ omdev/scripts/lib/inject.py,sha256=oygdsbyucoy6f4giWw-H-bYSmHvhywX2gaTrOuf5L_I,55188
310
+ omdev/scripts/lib/logs.py,sha256=NHUFy2I4--mm1S2XefH0V9w4HDKCqxHtE1gCVT5WP2w,67003
311
+ omdev/scripts/lib/marshal.py,sha256=m6lZYAebgyiXz-yO9NQ1doo2Ths2dvQJH4Gu79hA7dg,48289
289
312
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
290
313
  omdev/tools/cloc.py,sha256=BiIf2PnnoRH6ByH4mnua69Vv-ZDPHsSAPUds7giRolI,6013
291
314
  omdev/tools/diff.py,sha256=S6ddB7pBeMtzKh2hiHfzQ93pj6mclKt1UZQMKy4Bt5M,520
@@ -294,7 +317,7 @@ omdev/tools/docker.py,sha256=Ipia1OKIf7EQyS4HnTYjTzfeOKodLMAQRVYsEAWDHwk,7793
294
317
  omdev/tools/linehisto.py,sha256=0ZNm34EuiZBE9Q2YC6KNLNNydNT8QPSOwvYzXiU9S2Q,8881
295
318
  omdev/tools/mkenv.py,sha256=nqUcQgVznF0UKYd5toXCb0WIGVBkduh5Cd31q1zou3o,2289
296
319
  omdev/tools/notebook.py,sha256=MGi2JEwyIPR1n7gakaaYZL1HHbSVmDKGQROqH56ppgU,3499
297
- omdev/tools/pip.py,sha256=HF5ILsNcU1IGn9bRthwjp4XicafZWR7zdp6rOhqSMiw,3464
320
+ omdev/tools/pip.py,sha256=zVIIo0CWSHrDP5_FcBK6OEGbZxdTYcoMDBjHdo5Vn5s,3644
298
321
  omdev/tools/prof.py,sha256=-nei6BgAQpaSfVi5cqeRXPc9zIAW-DgMJxnKoD520Zg,3560
299
322
  omdev/tools/qr.py,sha256=1p4tMJmImDa4YTQQNPwQPkM8FnhGRYj6J79BJR-MNHo,1742
300
323
  omdev/tools/shadow.py,sha256=4E2ilxa16liIvQxvgU37ITkOMrP6ufShRQfeW7wwtRc,1697
@@ -302,30 +325,62 @@ omdev/tools/shell.py,sha256=5hF_8DCtB3XrzJSfmQDsr7X3Fi9KRV4M70q9qp0KREA,2341
302
325
  omdev/tools/sqlrepl.py,sha256=TcLJlElzfXqYUkfIOwhJHtXiQjXOg4xBTwSoSRDpNkg,5758
303
326
  omdev/tools/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
304
327
  omdev/tools/git/__main__.py,sha256=gI87SBUgTkKUcUM-RtZWnei-UUDDqzbr5aPztb-gvbE,168
305
- omdev/tools/git/cli.py,sha256=pgq9EP1io9uu6N1CVfRrwNkRQsH33IF17tpmuk6t8Gk,16857
328
+ omdev/tools/git/cli.py,sha256=AeAqr6ugkvUXt1vp9ywfG2GMg61AQjB2VowCG4ondX0,17119
306
329
  omdev/tools/git/cloning.py,sha256=CNGBBMoWaTBJW4SZTf1VvhDFSm0yg7qDfNwZun_PFbU,891
307
330
  omdev/tools/git/consts.py,sha256=JuXivUNDkNhM4pe97icjRVAKM8cNRbrODquHINNKqOE,40
308
331
  omdev/tools/git/messages.py,sha256=R39pXfXt8394eC99rpTdRlbcMrAdLxwsgTR4pwRRa-o,2321
309
332
  omdev/tools/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
310
333
  omdev/tools/json/__main__.py,sha256=wqpkN_NsQyNwKW4qjVj8ADJ4_C98KhrFBtE-Z1UamfU,168
311
334
  omdev/tools/json/cli.py,sha256=d7i5aPsFGIfHirY1U845t7gARpy3mu1YtvYa-qBkQF4,10142
312
- omdev/tools/json/formats.py,sha256=1qGYb8Kq_yFpLMaecBg-XE3yWSvqRiRbBX8SAElpS9s,2643
335
+ omdev/tools/json/formats.py,sha256=dhIvWkB7HjvxSBUgk3psTiXLzQ8tksrOK5jKNUbUgx8,2677
313
336
  omdev/tools/json/io.py,sha256=sfj2hJS9Hy3aUR8a_lLzOrYcmL9fSKyvOHiofdUASsI,1427
314
337
  omdev/tools/json/parsing.py,sha256=R7h-UkwFm3Q0L8oHTk-aLtQN6x32-vkDXwLUxExL0tI,2000
315
- omdev/tools/json/processing.py,sha256=jMSkTmIccdVkT_Q6Jf8Q4AG4BQecQfrp8G2bEtsklg8,2387
338
+ omdev/tools/json/processing.py,sha256=sSfL6iMB7Znp5ntAFeXYCog0GLA49dPfvoXRoG0D_AY,2525
316
339
  omdev/tools/json/rendering.py,sha256=dsZki-47lPuYP_-x7gFFl57IZnCJUXHS-NBGpQZjvk0,2628
317
340
  omdev/tools/jsonview/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
318
341
  omdev/tools/jsonview/__main__.py,sha256=BF-MVWpPJJeQYUqJA48G395kxw0lEJnV-hRLV_F9G2A,173
319
- omdev/tools/jsonview/cli.py,sha256=8pHULS_xxDV00kM8bO5dLH7i-zqQIoNjXTKFwhxSZ_A,4245
342
+ omdev/tools/jsonview/cli.py,sha256=KhnR_DavUUkCll5xXdpwG_ChUu7VQBm6OCvzOJfeLnk,4040
320
343
  omdev/tools/jsonview/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
321
344
  omdev/tools/jsonview/resources/jsonview.css,sha256=RqQMm98EnQkbVM-8BgjNduzUfsVDMzgNC_NjjwG0bqI,579
345
+ omdev/tools/jsonview/resources/jsonview.html.j2,sha256=SmrVKW6OQONmQ8Y7i_kYs1BCGxEW3Zl4BpGLI64NQxM,1016
322
346
  omdev/tools/jsonview/resources/jsonview.js,sha256=faDvXDOXKvEvjOuIlz4D3F2ReQXb_buXDU27hKuuqAw,1648
347
+ omdev/tools/pawk/README.md,sha256=wso8RBdIKv7mbu40hFA-mdzMjT2Dj8gMMknVk98Pemg,6065
323
348
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
324
349
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
325
- omdev/tools/pawk/pawk.py,sha256=ao5mdrpiSU4AZ8mBozoEaV3UVlmVTnRG9wD9XP70MZE,11429
326
- omdev-0.0.0.dev440.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
327
- omdev-0.0.0.dev440.dist-info/METADATA,sha256=iSk_Y92ViTLXb1ii15UV_optF83PC_Khd0wWaub0dGM,5100
328
- omdev-0.0.0.dev440.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
329
- omdev-0.0.0.dev440.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
330
- omdev-0.0.0.dev440.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
331
- omdev-0.0.0.dev440.dist-info/RECORD,,
350
+ omdev/tools/pawk/pawk.py,sha256=HZIkXOXCH5NdIFsMF2upf5n-TePuRABoZg4_l1A9jrM,11465
351
+ omdev/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
352
+ omdev/tui/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
353
+ omdev/tui/apps/edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
354
+ omdev/tui/apps/edit/main.py,sha256=38JwC_lOdSC4ZpwHBa2CZrT7XH9YFJsXyhF8cTNxn8U,4464
355
+ omdev/tui/apps/irc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
356
+ omdev/tui/apps/irc/__main__.py,sha256=d23loR_cKfTYZwYiqpt_CmKI7dd5WcYFgIYzqMep75E,68
357
+ omdev/tui/apps/irc/app.py,sha256=y7i9-fcFRG4zDZJVRecadoNEHXtEQ9FUV6mXFuj4CLs,9238
358
+ omdev/tui/apps/irc/client.py,sha256=H4oO-TO_2XTMWMMezqCurj46n6ARO25gCEaCCCkQgc8,5869
359
+ omdev/tui/apps/irc/commands.py,sha256=vWxsquwE4GP-LgPxzWq4a10Zj2DTEFf6kHc_uwFqiDk,5648
360
+ omdev/tui/apps/irc/main.py,sha256=ptsSjKE3LDmPERCExivcjTN7SOfYY7WVnIlDXSL_XQA,510
361
+ omdev/tui/apps/markdown/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
362
+ omdev/tui/apps/markdown/__main__.py,sha256=Xy-G2-8Ymx8QMBbRzA4LoiAMZqvtC944mMjFEWd69CA,182
363
+ omdev/tui/apps/markdown/cli.py,sha256=K1vH7f3ZqLv4xTPluhJBEZH8nx8n42_vXIALEV07Q50,469
364
+ omdev/tui/rich/__init__.py,sha256=2WPxYFGWqwxxLdFBqWpU2nS2DmT7LLFUWXHOrqbqjnQ,1331
365
+ omdev/tui/rich/console2.py,sha256=BYYLbbD65If9TvfPI6qUcMQKUWJbuWwykEzPplvkf6A,342
366
+ omdev/tui/rich/markdown2.py,sha256=fBcjG_34XzUf4WclBL_MxvBj5NUwvLCANhHCx3R0akw,6139
367
+ omdev/tui/textual/__init__.py,sha256=U1TSKwGgLU_P--9q9iNylFxkNbOef6ZAcGlU9elPmfo,11722
368
+ omdev/tui/textual/app2.py,sha256=j_Naee14VqvJo3ujxiafva6ILkhHBYYYet066vM5WdY,294
369
+ omdev/tui/textual/devtools.py,sha256=iGs4zQo-o2ncspRk4IYyuvYKGC2ZVkYyPy8ugy7wvf4,5137
370
+ omdev/tui/textual/drivers2.py,sha256=ZVxI9n6cyczjrdjqKOAjE51pF0yppACJOVmqLaWuJuM,1402
371
+ omdev/tui/textual/logging2.py,sha256=At6TUBfR0ixFXmS6G2tEqtjcR3AmCwoiid70NDleg-8,576
372
+ omdev/tui/textual/types.py,sha256=jOUGL10Ie29uCZODlloulPINL0VwN8kj5vjWRkgzHEI,782
373
+ omdev/tui/textual/autocomplete/LICENSE,sha256=E4XIgwSRB-UmqQi5b3HvRUfmpR9vfi99rvxGjnkS6BI,1069
374
+ omdev/tui/textual/autocomplete/__init__.py,sha256=m0EGewct7SoATrTcsCSmeRQyPucP5Sqew5qZOIQUgKI,1442
375
+ omdev/tui/textual/autocomplete/matching.py,sha256=joxUxF4jfs47E4JK0DAo_l0lwoNe9mU6iJzxI2FlVYI,6801
376
+ omdev/tui/textual/autocomplete/paths.py,sha256=Z3ZlTkPZezKBaFgB23d6IFJXanJc8OueBm-S0kExdRM,7242
377
+ omdev/tui/textual/autocomplete/widget.py,sha256=1UgWqDT0d9wD6w7MNaZBjgj0o9FohYXydifocPErdks,22629
378
+ omdev/tui/textual/debug/__init__.py,sha256=RW9-Toj5_JnXBJCnRiXpXLpRA__MxG01xW1h_iNuUTY,189
379
+ omdev/tui/textual/debug/dominfo.py,sha256=1iH1xbZY-zUoIyfmdvSzVNjGqeeOnBcjeDI2V1Xn3rg,4401
380
+ omdev/tui/textual/debug/screen.py,sha256=w4cbRJWemcu5jBomGDmVtgtjiaWOS1Wkw1Mc6mu-5Zc,594
381
+ omdev-0.0.0.dev495.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
382
+ omdev-0.0.0.dev495.dist-info/METADATA,sha256=nXIVensE2gMlnOGXjOBaTBXLs8rHiDXyL7yEewxfJyw,5376
383
+ omdev-0.0.0.dev495.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
384
+ omdev-0.0.0.dev495.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
385
+ omdev-0.0.0.dev495.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
386
+ omdev-0.0.0.dev495.dist-info/RECORD,,
omdev/ptk/__init__.py DELETED
@@ -1,103 +0,0 @@
1
- # ruff: noqa: F401
2
- # flake8: noqa: F401
3
-
4
- from prompt_toolkit.application import Application
5
- from prompt_toolkit.application import get_app
6
- from prompt_toolkit.application import get_app_session
7
- from prompt_toolkit.application import run_in_terminal
8
- from prompt_toolkit.buffer import Buffer
9
- from prompt_toolkit.completion import CompleteEvent
10
- from prompt_toolkit.completion import Completer
11
- from prompt_toolkit.completion import Completion
12
- from prompt_toolkit.completion import PathCompleter
13
- from prompt_toolkit.completion import WordCompleter
14
- from prompt_toolkit.document import Document
15
- from prompt_toolkit.enums import EditingMode
16
- from prompt_toolkit.eventloop.utils import call_soon_threadsafe
17
- from prompt_toolkit.filters import Condition
18
- from prompt_toolkit.filters import has_arg
19
- from prompt_toolkit.filters import has_focus
20
- from prompt_toolkit.filters import is_searching
21
- from prompt_toolkit.filters import to_filter
22
- from prompt_toolkit.filters import vi_insert_mode
23
- from prompt_toolkit.filters import vi_navigation_mode
24
- from prompt_toolkit.formatted_text import ANSI
25
- from prompt_toolkit.formatted_text import HTML
26
- from prompt_toolkit.formatted_text import AnyFormattedText
27
- from prompt_toolkit.formatted_text import FormattedText
28
- from prompt_toolkit.formatted_text import OneStyleAndTextTuple
29
- from prompt_toolkit.formatted_text import StyleAndTextTuples
30
- from prompt_toolkit.formatted_text import fragment_list_to_text
31
- from prompt_toolkit.formatted_text import fragment_list_width
32
- from prompt_toolkit.formatted_text import split_lines
33
- from prompt_toolkit.formatted_text import to_formatted_text
34
- from prompt_toolkit.formatted_text import to_plain_text
35
- from prompt_toolkit.history import FileHistory
36
- from prompt_toolkit.input import DummyInput
37
- from prompt_toolkit.input import Input
38
- from prompt_toolkit.input import create_input
39
- from prompt_toolkit.key_binding import KeyBindings
40
- from prompt_toolkit.key_binding import KeyPress
41
- from prompt_toolkit.key_binding import KeyPressEvent
42
- from prompt_toolkit.key_binding import vi_state
43
- from prompt_toolkit.keys import Keys
44
- from prompt_toolkit.layout import Container
45
- from prompt_toolkit.layout.containers import ColorColumn
46
- from prompt_toolkit.layout.containers import ConditionalContainer
47
- from prompt_toolkit.layout.containers import Float
48
- from prompt_toolkit.layout.containers import FloatContainer
49
- from prompt_toolkit.layout.containers import HSplit
50
- from prompt_toolkit.layout.containers import ScrollOffsets
51
- from prompt_toolkit.layout.containers import VSplit
52
- from prompt_toolkit.layout.containers import Window
53
- from prompt_toolkit.layout.containers import WindowAlign
54
- from prompt_toolkit.layout.controls import BufferControl
55
- from prompt_toolkit.layout.controls import FormattedTextControl
56
- from prompt_toolkit.layout.dimension import D
57
- from prompt_toolkit.layout.dimension import Dimension
58
- from prompt_toolkit.layout.layout import Layout
59
- from prompt_toolkit.layout.margins import ConditionalMargin
60
- from prompt_toolkit.layout.margins import NumberedMargin
61
- from prompt_toolkit.layout.menus import CompletionsMenu
62
- from prompt_toolkit.layout.processors import BeforeInput
63
- from prompt_toolkit.layout.processors import ConditionalProcessor
64
- from prompt_toolkit.layout.processors import DisplayMultipleCursors
65
- from prompt_toolkit.layout.processors import HighlightIncrementalSearchProcessor
66
- from prompt_toolkit.layout.processors import HighlightMatchingBracketProcessor
67
- from prompt_toolkit.layout.processors import HighlightSearchProcessor
68
- from prompt_toolkit.layout.processors import HighlightSelectionProcessor
69
- from prompt_toolkit.layout.processors import Processor
70
- from prompt_toolkit.layout.processors import ShowTrailingWhiteSpaceProcessor
71
- from prompt_toolkit.layout.processors import TabsProcessor
72
- from prompt_toolkit.layout.processors import Transformation
73
- from prompt_toolkit.layout.utils import explode_text_fragments
74
- from prompt_toolkit.lexers import Lexer
75
- from prompt_toolkit.lexers import PygmentsLexer
76
- from prompt_toolkit.lexers import SimpleLexer
77
- from prompt_toolkit.mouse_events import MouseEventType
78
- from prompt_toolkit.output import DummyOutput
79
- from prompt_toolkit.output import Output
80
- from prompt_toolkit.search import SearchDirection
81
- from prompt_toolkit.selection import SelectionType
82
- from prompt_toolkit.shortcuts import confirm
83
- from prompt_toolkit.shortcuts import print_formatted_text
84
- from prompt_toolkit.shortcuts import prompt
85
- from prompt_toolkit.styles import BaseStyle
86
- from prompt_toolkit.styles import DynamicStyle
87
- from prompt_toolkit.styles import Style
88
- from prompt_toolkit.styles import merge_styles
89
- from prompt_toolkit.styles import style_from_pygments_cls
90
- from prompt_toolkit.utils import get_cwidth
91
- from prompt_toolkit.widgets import Frame
92
- from prompt_toolkit.widgets import Label
93
- from prompt_toolkit.widgets import TextArea
94
- from prompt_toolkit.widgets.toolbars import CompletionsToolbar
95
- from prompt_toolkit.widgets.toolbars import FormattedTextToolbar
96
- from prompt_toolkit.widgets.toolbars import SearchToolbar
97
- from prompt_toolkit.widgets.toolbars import SystemToolbar
98
- from prompt_toolkit.widgets.toolbars import ValidationToolbar
99
-
100
- from .confirm import create_strict_confirm_session
101
-
102
- #
103
- from .confirm import strict_confirm
omdev/ptk/apps/ncdu.py DELETED
@@ -1,167 +0,0 @@
1
- """
2
- TODO:
3
- - reuse dir sizes lol
4
- """
5
- import dataclasses as dc
6
- import os
7
- import typing as ta
8
-
9
- from omlish.lite.strings import format_num_bytes
10
-
11
- from ... import ptk
12
- from ...cli import CliModule
13
-
14
-
15
- ##
16
-
17
-
18
- def get_directory_size(path: str) -> int:
19
- total_size = 0
20
- for dirpath, _, filenames in os.walk(path):
21
- for f in filenames:
22
- fp = os.path.join(dirpath, f)
23
- try:
24
- total_size += os.path.getsize(fp) # noqa
25
- except OSError:
26
- pass
27
- return total_size
28
-
29
-
30
- @dc.dataclass(frozen=True)
31
- class Entry:
32
- name: str
33
- size: int
34
- type: ta.Literal['dir', 'file']
35
-
36
-
37
- def scan_directory(path: str) -> list[Entry]:
38
- entries: list[Entry] = []
39
-
40
- with os.scandir(path) as it:
41
- for entry in it:
42
- if entry.is_dir(follow_symlinks=False):
43
- size = get_directory_size(entry.path)
44
- entries.append(Entry(entry.name + '/', size, 'dir'))
45
-
46
- elif entry.is_file(follow_symlinks=False):
47
- size = entry.stat().st_size
48
- entries.append(Entry(entry.name, size, 'file'))
49
-
50
- entries.sort(key=lambda x: x.size, reverse=True)
51
- return entries
52
-
53
-
54
- class NcduApp:
55
- def __init__(self, root_path: str) -> None:
56
- super().__init__()
57
-
58
- self._root_path = root_path
59
- self._current_path = root_path
60
-
61
- self._entries_by_path: dict[str, list[Entry]] = {}
62
- self._entries = self._get_entries(root_path)
63
-
64
- self._cursor = 0
65
-
66
- self._text_area = ptk.TextArea(
67
- read_only=True,
68
- )
69
- self._text_area.window.always_hide_cursor = ptk.to_filter(True)
70
-
71
- self.update_display()
72
-
73
- self._kb = ptk.KeyBindings()
74
- self._kb.add('q')(self.exit_app)
75
- for k in ['up', 'p']:
76
- self._kb.add(k)(self.move_up)
77
- for k in ['down', 'n']:
78
- self._kb.add(k)(self.move_down)
79
- for k in ['right', 'enter']:
80
- self._kb.add(k)(self.enter_directory)
81
- for k in ['left', 'backspace']:
82
- self._kb.add(k)(self.go_back)
83
-
84
- self._layout = ptk.Layout(ptk.Frame(self._text_area))
85
-
86
- self._style = ptk.Style.from_dict({
87
- 'frame': 'bg:#008800 bold',
88
- 'text-area': 'bg:#000000 fg:#ffffff',
89
- })
90
-
91
- self._app: ptk.Application = ptk.Application(
92
- layout=self._layout,
93
- key_bindings=self._kb,
94
- style=self._style,
95
- full_screen=True,
96
- )
97
-
98
- def _get_entries(self, path: str) -> list[Entry]:
99
- try:
100
- return self._entries_by_path[path]
101
- except KeyError:
102
- pass
103
- entries = self._entries_by_path[path] = scan_directory(path)
104
- return entries
105
-
106
- #
107
-
108
- def update_display(self) -> None:
109
- display_text = f'Current Directory: {self._current_path}\n\n'
110
- for i, e in enumerate(self._entries):
111
- indicator = '>' if i == self._cursor else ' '
112
- display_text += f'{indicator} {e.name:<40} {format_num_bytes(e.size):>10}\n'
113
- self._text_area.text = display_text
114
-
115
- #
116
-
117
- def move_up(self, event: ptk.KeyPressEvent) -> None:
118
- if self._cursor > 0:
119
- self._cursor -= 1
120
- self.update_display()
121
-
122
- def move_down(self, event: ptk.KeyPressEvent) -> None:
123
- if self._cursor < len(self._entries) - 1:
124
- self._cursor += 1
125
- self.update_display()
126
-
127
- def enter_directory(self, event: ptk.KeyPressEvent) -> None:
128
- selected_entry = self._entries[self._cursor]
129
- if selected_entry.type == 'dir':
130
- self._current_path = os.path.join(self._current_path, selected_entry.name[:-1])
131
- self._entries = self._get_entries(self._current_path)
132
- self._cursor = 0
133
- self.update_display()
134
-
135
- def go_back(self, event: ptk.KeyPressEvent) -> None:
136
- if self._current_path != self._root_path:
137
- self._current_path = os.path.dirname(self._current_path)
138
- self._entries = self._get_entries(self._current_path)
139
- self._cursor = 0
140
- self.update_display()
141
-
142
- def exit_app(self, event: ptk.KeyPressEvent) -> None:
143
- event.app.exit()
144
-
145
- #
146
-
147
- def run(self) -> None:
148
- self._app.run()
149
-
150
-
151
- def _main() -> None:
152
- import argparse
153
-
154
- parser = argparse.ArgumentParser()
155
- parser.add_argument('dir', default='.', nargs='?')
156
- args = parser.parse_args()
157
-
158
- ncdu_app = NcduApp(args.dir)
159
- ncdu_app.run()
160
-
161
-
162
- # @omlish-manifest
163
- _CLI_MODULE = CliModule('ptk/ncdu', __name__)
164
-
165
-
166
- if __name__ == '__main__':
167
- _main()