omdev 0.0.0.dev554__py3-none-any.whl → 0.0.0.dev556__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.
omdev/intellij/ides.py CHANGED
@@ -3,6 +3,7 @@ TODO:
3
3
  - read .idea/ for inference?
4
4
  """
5
5
  import enum
6
+ import fnmatch
6
7
  import os.path
7
8
  import typing as ta
8
9
 
@@ -18,12 +19,13 @@ class Ide(enum.Enum):
18
19
  CLION = enum.auto()
19
20
  WEBSTORM = enum.auto()
20
21
  GOLAND = enum.auto()
22
+ RIDER = enum.auto()
21
23
 
22
24
 
23
25
  ##
24
26
 
25
27
 
26
- _INFER_FILE_NAME_SETS_BY_IDE: ta.Mapping[Ide, ta.AbstractSet[str]] = {
28
+ _INFER_DIR_CONTENT_SETS_BY_IDE: ta.Mapping[Ide, ta.AbstractSet[str]] = {
27
29
 
28
30
  Ide.PYCHARM: frozenset([
29
31
  'setup.py',
@@ -68,6 +70,11 @@ _INFER_FILE_NAME_SETS_BY_IDE: ta.Mapping[Ide, ta.AbstractSet[str]] = {
68
70
  'go.sum',
69
71
  ]),
70
72
 
73
+ Ide.RIDER: frozenset([
74
+ '*.slnx',
75
+ 'NuGet.Config',
76
+ ]),
77
+
71
78
  }
72
79
 
73
80
 
@@ -75,9 +82,11 @@ def infer_directory_ide(cwd: str | None) -> Ide | None:
75
82
  if cwd is None:
76
83
  cwd = os.getcwd()
77
84
 
78
- for i, fs in _INFER_FILE_NAME_SETS_BY_IDE.items():
79
- for f in fs:
80
- if os.path.exists(os.path.join(cwd, f)):
85
+ dir_contents = os.listdir(cwd)
86
+
87
+ for i, pats in _INFER_DIR_CONTENT_SETS_BY_IDE.items():
88
+ for pat in pats:
89
+ if any(fnmatch.fnmatch(n, pat) for n in dir_contents):
81
90
  return i
82
91
 
83
92
  return None
omdev/intellij/open.py CHANGED
@@ -19,6 +19,7 @@ _DARWIN_OPEN_SCRIPT_APP_BY_IDE: ta.Mapping[Ide, str] = {
19
19
  Ide.IDEA: 'IntelliJ IDEA',
20
20
  Ide.WEBSTORM: 'WebStorm',
21
21
  Ide.GOLAND: 'GoLand',
22
+ Ide.RIDER: 'Rider',
22
23
  }
23
24
 
24
25
  _DARWIN_OPEN_SCRIPT = """
@@ -39,6 +40,7 @@ _LINUX_WM_CLASS_BY_IDE: ta.Mapping[Ide, str] = {
39
40
  Ide.IDEA: 'jetbrains-idea.jetbrains-idea',
40
41
  Ide.WEBSTORM: 'jetbrains-webstorm.jetbrains-webstorm',
41
42
  Ide.GOLAND: 'jetbrains-goland.jetbrains-goland',
43
+ Ide.RIDER: 'jetbrains-rider.jetbrains-rider',
42
44
  }
43
45
 
44
46
 
@@ -72,7 +72,7 @@ def __omlish_amalg__(): # noqa
72
72
  dict(path='../../logs/std/loggers.py', sha1='dbdfc66188e6accb75d03454e43221d3fba0f011'),
73
73
  dict(path='bytes/decoders.py', sha1='6f6d8bc1adc6a5277543389814bc26ef63e34561'),
74
74
  dict(path='../../logs/modules.py', sha1='dd7d5f8e63fe8829dfb49460f3929ab64b68ee14'),
75
- dict(path='drivers/asyncio.py', sha1='44e86ab5b903ea2780fc586aed267f72d501d21f'),
75
+ dict(path='drivers/asyncio.py', sha1='7690f08b43417471436b444737d8d24e3ea67d03'),
76
76
  dict(path='_amalg.py', sha1='14b67747b1e3b3c1483050a7948a29888d732ed9'),
77
77
  ],
78
78
  )
@@ -8515,7 +8515,7 @@ class AsyncioStreamIoPipelineDriver(Abstract):
8515
8515
  try:
8516
8516
  result = await msg.obj
8517
8517
 
8518
- except Exception as e: # noqa
8518
+ except BaseException as e: # noqa # TODO: whitelist?
8519
8519
  with self._pipeline.enter():
8520
8520
  msg.set_failed(e)
8521
8521
 
omdev/tools/json/cli.py CHANGED
@@ -90,6 +90,7 @@ def _build_args_parser() -> argparse.ArgumentParser:
90
90
  parser.add_argument('-F', '--flat', action='store_true')
91
91
  parser.add_argument('-e', '--prune-empty', action='store_true')
92
92
  parser.add_argument('-E', '--omit-empty', action='store_true')
93
+ parser.add_argument('-0', '--print0', action='store_true')
93
94
 
94
95
  parser.add_argument('-z', '--compact', action='store_true')
95
96
  parser.add_argument('-p', '--pretty', action='store_true')
@@ -228,6 +229,8 @@ def _main() -> None:
228
229
  else:
229
230
  out = sys.stdout
230
231
 
232
+ endl = '\0' if args.print0 else '\n'
233
+
231
234
  #
232
235
 
233
236
  parser: ta.Any
@@ -285,7 +288,7 @@ def _main() -> None:
285
288
  print(s, file=out, end='')
286
289
 
287
290
  if trailing_newline:
288
- print(file=out)
291
+ print(file=out, end=endl)
289
292
 
290
293
  elif args.lines:
291
294
  parser = DelimitingParser(cfg.format)
@@ -296,7 +299,7 @@ def _main() -> None:
296
299
  for v in parser.parse(buf):
297
300
  for e in processor.process(v):
298
301
  s = renderer.render(e)
299
- print(s, file=out)
302
+ print(s, file=out, end=endl)
300
303
 
301
304
  else:
302
305
  parser = EagerParser(cfg.format)
@@ -308,7 +311,7 @@ def _main() -> None:
308
311
 
309
312
  for e in processor.process(v):
310
313
  s = renderer.render(e)
311
- print(s, file=out)
314
+ print(s, file=out, end=endl)
312
315
 
313
316
 
314
317
  if __name__ == '__main__':
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev554
3
+ Version: 0.0.0.dev556
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License-Expression: BSD-3-Clause
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Python: >=3.13
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: omlish==0.0.0.dev554
17
+ Requires-Dist: omlish==0.0.0.dev556
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=26.3; extra == "all"
20
20
  Requires-Dist: pycparser~=3.0; extra == "all"
@@ -198,8 +198,8 @@ omdev/home/secrets.py,sha256=Bq9Pak4lzsogw5GvOeQ4zs3Yatmn7glGH0q-b0Sf6h8,2003
198
198
  omdev/home/shadow.py,sha256=C-qbf5wLjTS84IF2gTKWk6e1WexUg1XpnkdY9m4Sa0Q,735
199
199
  omdev/intellij/__init__.py,sha256=OkihYdld_LTk_gTcyzOWc9Nze_drjsIYMYpbA5DG6m4,132
200
200
  omdev/intellij/cli.py,sha256=Sds9Xj_OHgbm76j70frhwrZEzlVi-1Rd93g0ypIe6t4,2038
201
- omdev/intellij/ides.py,sha256=5YSJZ0Sbe6UPExn6atOlZd7j3WK1hptHh4RDxSh6CkI,1639
202
- omdev/intellij/open.py,sha256=3HlbJsGkwZ28UBi1P7dVJMRDMLbJyOGQs9QMQqgYVus,2679
201
+ omdev/intellij/ides.py,sha256=UrjemvAG1Z8Ha8fA466IQC1AUFzg2eFAhWopmfGkvS4,1816
202
+ omdev/intellij/open.py,sha256=spixLlaZX0EURuTmdSJw9KmXUfULHpOo6FgQnb0H0WQ,2753
203
203
  omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
204
204
  omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
205
205
  omdev/interp/cli.py,sha256=x7CYOY6SBf57dnSrAXwgL50KNjKtqCEN_xeM6KiTY9A,2384
@@ -364,7 +364,7 @@ omdev/scripts/lib/marshal.py,sha256=ThGQNOlt3yfpJdJbXnwuoes1y54ypaIIxp1VHcGs6IA,
364
364
  omdev/scripts/lib/formats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
365
365
  omdev/scripts/lib/formats/goyaml.py,sha256=WLSeXLahAFP4HaH2IOH4bVnVFxSMzTrTp2KlTCEof6s,329982
366
366
  omdev/scripts/lib/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
367
- omdev/scripts/lib/io/pipelines.py,sha256=eI8gVUNilAcSCBg4aj1a6Eh1pIMgzp3iM4GsQF-wB50,267877
367
+ omdev/scripts/lib/io/pipelines.py,sha256=IHB6xVtDMw4fimjC3R9EnAT0LyYFMS3IT_qorXxPKRI,267901
368
368
  omdev/scripts/lib/io/streams.py,sha256=cGEIhnnLw-OoburLBvW3XZCennqMF8DtldQkwnJ9JZ8,101636
369
369
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
370
370
  omdev/tools/cloc.py,sha256=BiIf2PnnoRH6ByH4mnua69Vv-ZDPHsSAPUds7giRolI,6013
@@ -388,7 +388,7 @@ omdev/tools/git/consts.py,sha256=TDZw8MHFxTrmZiWd9rzGTNko_pzdsT6z-fSS1LATvaQ,285
388
388
  omdev/tools/git/messages.py,sha256=R39pXfXt8394eC99rpTdRlbcMrAdLxwsgTR4pwRRa-o,2321
389
389
  omdev/tools/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
390
390
  omdev/tools/json/__main__.py,sha256=wqpkN_NsQyNwKW4qjVj8ADJ4_C98KhrFBtE-Z1UamfU,168
391
- omdev/tools/json/cli.py,sha256=d7i5aPsFGIfHirY1U845t7gARpy3mu1YtvYa-qBkQF4,10142
391
+ omdev/tools/json/cli.py,sha256=9TmSZcNrpI55svX2AFSSe4yYZORgb7Lyci7SksJAvqA,10281
392
392
  omdev/tools/json/formats.py,sha256=dhIvWkB7HjvxSBUgk3psTiXLzQ8tksrOK5jKNUbUgx8,2677
393
393
  omdev/tools/json/io.py,sha256=sfj2hJS9Hy3aUR8a_lLzOrYcmL9fSKyvOHiofdUASsI,1427
394
394
  omdev/tools/json/parsing.py,sha256=jiXBAqa-Rx-RERMIXo-QEGOT3qleunxbfgMRxVMQfE4,2302
@@ -459,9 +459,9 @@ omdev/tui/textual/autocomplete/widget.py,sha256=1UgWqDT0d9wD6w7MNaZBjgj0o9FohYXy
459
459
  omdev/tui/textual/debug/__init__.py,sha256=RW9-Toj5_JnXBJCnRiXpXLpRA__MxG01xW1h_iNuUTY,189
460
460
  omdev/tui/textual/debug/dominfo.py,sha256=1iH1xbZY-zUoIyfmdvSzVNjGqeeOnBcjeDI2V1Xn3rg,4401
461
461
  omdev/tui/textual/debug/screen.py,sha256=w4cbRJWemcu5jBomGDmVtgtjiaWOS1Wkw1Mc6mu-5Zc,594
462
- omdev-0.0.0.dev554.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
463
- omdev-0.0.0.dev554.dist-info/METADATA,sha256=3Q40SsyyI5rQOTBu5EuhoU3KUFWOX69sC0t1tbpC8a8,5370
464
- omdev-0.0.0.dev554.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
465
- omdev-0.0.0.dev554.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
466
- omdev-0.0.0.dev554.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
467
- omdev-0.0.0.dev554.dist-info/RECORD,,
462
+ omdev-0.0.0.dev556.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
463
+ omdev-0.0.0.dev556.dist-info/METADATA,sha256=jy5EEV-bmRVjR2Sw6xsiMAeGTONDkpeMwkPrOEcEYno,5370
464
+ omdev-0.0.0.dev556.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
465
+ omdev-0.0.0.dev556.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
466
+ omdev-0.0.0.dev556.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
467
+ omdev-0.0.0.dev556.dist-info/RECORD,,