omdev 0.0.0.dev438__py3-none-any.whl → 0.0.0.dev440__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/tokens/utils.py CHANGED
@@ -27,6 +27,7 @@ def is_ws(tok: Token) -> bool:
27
27
  def ignore_ws(
28
28
  toks: ta.Iterable[Token],
29
29
  *,
30
+ drop_nl: bool = False,
30
31
  keep: ta.Container[str] = (),
31
32
  ) -> ta.Iterable[Token]:
32
33
  if isinstance(keep, str):
@@ -34,7 +35,7 @@ def ignore_ws(
34
35
  return (
35
36
  t
36
37
  for t in toks
37
- if t.name in keep or t.name not in WS_NAMES
38
+ if t.name in keep or (t.name not in WS_NAMES and not (drop_nl and t.name == 'NL'))
38
39
  )
39
40
 
40
41
 
omdev/tools/git/cli.py CHANGED
@@ -315,6 +315,7 @@ class Cli(ap.Cli):
315
315
  ap.arg('-g', '--message-generator', nargs='?'),
316
316
  ap.arg('--dry-run', action='store_true'),
317
317
  ap.arg('-y', '--no-confirmation', action='store_true'),
318
+ ap.arg('-r', '--repository'),
318
319
  ap.arg('dir', nargs='*'),
319
320
  aliases=['acp'],
320
321
  )
@@ -354,7 +355,7 @@ class Cli(ap.Cli):
354
355
 
355
356
  check_call('git', 'commit', '-m', msg)
356
357
 
357
- check_call('git', 'push')
358
+ check_call('git', 'push', *([self.args.repository] if self.args.repository is not None else []))
358
359
 
359
360
  if not self.args.dir:
360
361
  run(None)
omdev/tools/json/cli.py CHANGED
@@ -195,7 +195,7 @@ def _main() -> None:
195
195
  else:
196
196
  in_file = es.enter_context(open(args.file, 'rb'))
197
197
 
198
- def yield_input() -> ta.Generator[bytes]:
198
+ def yield_input() -> ta.Iterator[bytes]:
199
199
  fd = check.isinstance(in_file.fileno(), int)
200
200
 
201
201
  while True:
@@ -240,7 +240,7 @@ def _main() -> None:
240
240
  def flush_output(
241
241
  fn: ta.Callable[[T], ta.Iterable[U]],
242
242
  i: T,
243
- ) -> ta.Generator[U]:
243
+ ) -> ta.Iterator[U]:
244
244
  n = 0
245
245
  for o in fn(i):
246
246
  yield o
@@ -259,7 +259,7 @@ def _main() -> None:
259
259
  def append_newlines(
260
260
  fn: ta.Callable[[T], ta.Iterable[str]],
261
261
  i: T,
262
- ) -> ta.Generator[str]:
262
+ ) -> ta.Iterator[str]:
263
263
  yield from fn(i)
264
264
  yield '\n'
265
265
 
@@ -267,15 +267,15 @@ def _main() -> None:
267
267
  pipeline = fp.bind(append_newlines, pipeline) # Any -> [str]
268
268
  pipeline = fp.bind(lang.flatmap, pipeline) # [Any] -> [str]
269
269
  pipeline = fp.pipe(fp.bind(lang.flatmap, processor.process), pipeline) # [Any] -> [str]
270
- pipeline = fp.pipe(fp.bind(lang.flatmap, builder.build), pipeline) # [JsonStreamParserEvent] -> [str] # noqa
270
+ pipeline = fp.pipe(fp.bind(lang.flatmap, builder.build), pipeline) # [Event] -> [str] # noqa
271
271
  pipeline = fp.pipe(parser.parse, pipeline) # bytes -> [str]
272
272
 
273
273
  else:
274
274
  renderer = StreamRenderer(cfg.rendering)
275
275
  trailing_newline = True
276
276
 
277
- pipeline = renderer.render # JsonStreamParserEvent -> [str]
278
- pipeline = fp.bind(lang.flatmap, pipeline) # [JsonStreamParserEvent] -> [str]
277
+ pipeline = renderer.render # Event -> [str]
278
+ pipeline = fp.bind(lang.flatmap, pipeline) # [Event] -> [str]
279
279
  pipeline = fp.pipe(parser.parse, pipeline) # bytes -> [str]
280
280
 
281
281
  pipeline = fp.bind(flush_output, pipeline) # bytes -> [str]
@@ -6,8 +6,8 @@ from omlish import check
6
6
  from omlish import lang
7
7
  from omlish.formats.json.stream.building import JsonValueBuilder
8
8
  from omlish.formats.json.stream.lexing import JsonStreamLexer
9
+ from omlish.formats.json.stream.parsing import Event
9
10
  from omlish.formats.json.stream.parsing import JsonStreamParser
10
- from omlish.formats.json.stream.parsing import JsonStreamParserEvent
11
11
  from omlish.io.buffers import DelimitingBuffer
12
12
 
13
13
  from .formats import Format
@@ -22,7 +22,7 @@ class EagerParser:
22
22
 
23
23
  self._fmt = fmt
24
24
 
25
- def parse(self, f: ta.TextIO) -> ta.Generator[ta.Any]:
25
+ def parse(self, f: ta.TextIO) -> ta.Iterator[ta.Any]:
26
26
  return self._fmt.load(f)
27
27
 
28
28
 
@@ -42,7 +42,7 @@ class DelimitingParser:
42
42
 
43
43
  self._db = DelimitingBuffer(delimiters)
44
44
 
45
- def parse(self, b: bytes) -> ta.Generator[ta.Any]:
45
+ def parse(self, b: bytes) -> ta.Iterator[ta.Any]:
46
46
  for chunk in self._db.feed(b):
47
47
  s = check.isinstance(chunk, bytes).decode('utf-8')
48
48
  v = self._fmt.load(io.StringIO(s))
@@ -58,7 +58,7 @@ class StreamBuilder(lang.ExitStacked):
58
58
  def _enter_contexts(self) -> None:
59
59
  self._builder = self._enter_context(JsonValueBuilder())
60
60
 
61
- def build(self, e: JsonStreamParserEvent) -> ta.Generator[ta.Any]:
61
+ def build(self, e: Event) -> ta.Iterator[ta.Any]:
62
62
  yield from check.not_none(self._builder)(e)
63
63
 
64
64
 
@@ -72,7 +72,7 @@ class StreamParser(lang.ExitStacked):
72
72
  self._lex = self._enter_context(JsonStreamLexer())
73
73
  self._parse = self._enter_context(JsonStreamParser())
74
74
 
75
- def parse(self, b: bytes) -> ta.Generator[JsonStreamParserEvent]:
75
+ def parse(self, b: bytes) -> ta.Iterator[Event]:
76
76
  for s in self._decoder.decode(b, not b):
77
77
  for c in s:
78
78
  for t in self._lex(c):
@@ -4,7 +4,7 @@ import typing as ta
4
4
 
5
5
  from omlish import lang
6
6
  from omlish.formats.json.rendering import JsonRenderer
7
- from omlish.formats.json.stream.parsing import JsonStreamParserEvent
7
+ from omlish.formats.json.stream.parsing import Event
8
8
  from omlish.formats.json.stream.rendering import StreamJsonRenderer
9
9
  from omlish.formats.json5.rendering import Json5Renderer
10
10
  from omlish.term import codes as tc
@@ -101,5 +101,5 @@ class StreamRenderer(Renderer):
101
101
  **self._kw,
102
102
  )
103
103
 
104
- def render(self, e: JsonStreamParserEvent) -> ta.Generator[str]:
104
+ def render(self, e: Event) -> ta.Iterator[str]:
105
105
  return self._renderer.render((e,))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omdev
3
- Version: 0.0.0.dev438
3
+ Version: 0.0.0.dev440
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.dev438
17
+ Requires-Dist: omlish==0.0.0.dev440
18
18
  Provides-Extra: all
19
19
  Requires-Dist: black~=25.1; extra == "all"
20
20
  Requires-Dist: pycparser~=2.23; extra == "all"
@@ -23,7 +23,7 @@ Requires-Dist: docutils~=0.22; extra == "all"
23
23
  Requires-Dist: markdown-it-py~=4.0; extra == "all"
24
24
  Requires-Dist: mdit-py-plugins~=0.5; extra == "all"
25
25
  Requires-Dist: pygments~=2.19; extra == "all"
26
- Requires-Dist: mypy~=1.17; extra == "all"
26
+ Requires-Dist: mypy~=1.18; extra == "all"
27
27
  Requires-Dist: gprof2dot~=2025.4; extra == "all"
28
28
  Requires-Dist: prompt-toolkit~=3.0; extra == "all"
29
29
  Requires-Dist: segno~=1.6; extra == "all"
@@ -38,7 +38,7 @@ Requires-Dist: markdown-it-py~=4.0; extra == "doc"
38
38
  Requires-Dist: mdit-py-plugins~=0.5; extra == "doc"
39
39
  Requires-Dist: pygments~=2.19; extra == "doc"
40
40
  Provides-Extra: mypy
41
- Requires-Dist: mypy~=1.17; extra == "mypy"
41
+ Requires-Dist: mypy~=1.18; extra == "mypy"
42
42
  Provides-Extra: prof
43
43
  Requires-Dist: gprof2dot~=2025.4; extra == "prof"
44
44
  Provides-Extra: ptk
@@ -1,5 +1,5 @@
1
- omdev/.omlish-manifests.json,sha256=YvmHgYPueZ-uG4KeZAk0bOtw3GaDfld_nYnSng2Pz_I,11909
2
- omdev/__about__.py,sha256=x-dVL4rAhU7f3I8Y98CN8oHwxcqwEF3-W9KA4dBmdTc,1202
1
+ omdev/.omlish-manifests.json,sha256=1y1Oga4pChBqK88YVfRZ2BjIMF197w5_fEVELMsekk0,11909
2
+ omdev/__about__.py,sha256=jGBKcjGKlquwFQNwnAR0Yoglh8h8UZ0Nh7h46HIXTTQ,1202
3
3
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omdev/cmake.py,sha256=gu49t10_syXh_TUJs4POsxeFs8we8Y3XTOOPgIXmGvg,4608
5
5
  omdev/imgur.py,sha256=oqei705LhSnLWQTOMHMHwRecRXcpSEP90Sg4SVINPQ0,3133
@@ -15,7 +15,7 @@ omdev/amalg/gen/gen.py,sha256=95iQT0At_NsMf4IEg702ZOmmyEdhCZJGcSCFypm1BTk,6194
15
15
  omdev/amalg/gen/imports.py,sha256=Bv3xNgej1Nsuv5R_y-9wd9b8cPtWljZsxjMh9bolJWc,2074
16
16
  omdev/amalg/gen/manifests.py,sha256=SN4wvPZ8iNTcQIdpSZ6d64cL32pSlT_ak_GwctTPn_Y,903
17
17
  omdev/amalg/gen/resources.py,sha256=wxqrudGbHzru2KWu-a_4LDmOf7tRRCd8NM0BXx_ZU9I,2693
18
- omdev/amalg/gen/srcfiles.py,sha256=UUAW2XtzaMv6-ACr364gyAxa-W3bAawRIwTiXE3-ndQ,3080
18
+ omdev/amalg/gen/srcfiles.py,sha256=50HAAzsrJi-mV2r2Q1eQUJNgoSSP8qqe1xcaUN1GTRA,3506
19
19
  omdev/amalg/gen/strip.py,sha256=GW76ZWJNdwH8dxLDG7gVHFi_CnS958fWvSfroD0HCaw,1446
20
20
  omdev/amalg/gen/types.py,sha256=DvxUmEenqCeXycRHi4brxAkSjztq800qT1XlT94bXAY,90
21
21
  omdev/amalg/gen/typing.py,sha256=VWw4_iZXqM_29ElSVUlLTO6-KLUCQPdieQDvG_q1YsI,2301
@@ -108,7 +108,7 @@ omdev/ci/github/api/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
108
108
  omdev/ci/github/api/v1/api.py,sha256=KPmPAiCKEGwz4busb9Ig1n2f_CIqqWb7E-9CZANxtSc,3199
109
109
  omdev/ci/github/api/v1/client.py,sha256=sc_xj3H_Nuh4CluZlQNLctdfFMa0EEck681VZBXo7Zg,5045
110
110
  omdev/ci/github/api/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
- omdev/ci/github/api/v2/api.py,sha256=k7yn1ln1oBxFA9XC72bYUc_zZUIx4tSSF4-HZv9iK5g,3969
111
+ omdev/ci/github/api/v2/api.py,sha256=opU4W7bf5vkXhTD8d9fjTa8r8KdL86305jQQosl8-XY,4051
112
112
  omdev/ci/github/api/v2/azure.py,sha256=Dp0HzCXgaHQzWKPIctXKT_8mvBUnhLUG5nyebVVuFZI,5530
113
113
  omdev/ci/github/api/v2/client.py,sha256=XuEAR46tNFZpGRPIPFgdpwTA10mC89wwj-X035Qi508,6416
114
114
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
@@ -239,7 +239,7 @@ omdev/ptk/markdown/styles.py,sha256=lc17zooXhff5_2tkqLsCmdq2b_rfSAehmHVR-8Lo2qk,
239
239
  omdev/ptk/markdown/tags.py,sha256=6wF9lbqbpf_WCxEJ_tJP_QtaDCcQKCKYS1CMzHTQg2U,7020
240
240
  omdev/ptk/markdown/utils.py,sha256=lApIIK_n9dgLaC9mHKJf8O8VPrYRHO9qjFON_mqXv1Y,10513
241
241
  omdev/py/__init__.py,sha256=u7tLEfRTnPVtWPmKK_ZIvnFkZwTe1q44UQ53cvsix3k,41
242
- omdev/py/attrdocs.py,sha256=Vp9TVMoINTQ_yIM3HB0hcu7owIm2xOztN0WewI4tlrQ,5170
242
+ omdev/py/attrdocs.py,sha256=kIVgOD8Apsw9hgaqAk6nsMsFD30cCMRAPRTG8qMPmR4,5174
243
243
  omdev/py/bracepy.py,sha256=tcZaljRkSsFYMewb1FULHet5HxV6GGqgbmLhlIGqdCw,2742
244
244
  omdev/py/classdot.py,sha256=7WVaVio1Q2B92bvVbXVNAubSkce8Zm-UbleBvXhc0IM,1655
245
245
  omdev/py/findimports.py,sha256=UPnBzPUwGrmakZ0RhaJdO3TNBQVk7IUREEqmIvsSxb0,4235
@@ -273,15 +273,19 @@ omdev/pyproject/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
273
273
  omdev/pyproject/resources/docker-dev.sh,sha256=DHkz5D18jok_oDolfg2mqrvGRWFoCe9GQo04dR1czcc,838
274
274
  omdev/pyproject/resources/python.sh,sha256=rFaN4SiJ9hdLDXXsDTwugI6zsw6EPkgYMmtacZeTbvw,749
275
275
  omdev/scripts/__init__.py,sha256=MKCvUAEQwsIvwLixwtPlpBqmkMXLCnjjXyAXvVpDwVk,91
276
- omdev/scripts/ci.py,sha256=53xZyiwiMQpi8dh4I5Fs_HjIgF_QcOGkKLmI7goPrF4,423536
276
+ omdev/scripts/ci.py,sha256=HEUtidJSab083K7rlHArWgRDhura6Vc1rOBKxlcF1x0,423618
277
277
  omdev/scripts/interp.py,sha256=-mZ0RUnDiq-798F_HDt1OQG8k0hiWbSmaR8iepuwfyo,166643
278
278
  omdev/scripts/pyproject.py,sha256=YAM8FbJ6dV0gAGFchRajPqmL0gpQc1S8uKxdQjaIay8,330699
279
279
  omdev/scripts/slowcat.py,sha256=PwdT-pg62imEEb6kcOozl9_YUi-4KopvjvzWT1OmGb0,2717
280
280
  omdev/scripts/tmpexec.py,sha256=t0nErDRALjTk7H0X8ADjZUIDFjlPNzOOokmjCjBHdzs,1431
281
+ 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
281
285
  omdev/tokens/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
282
286
  omdev/tokens/all.py,sha256=Zz7miOWeBDYfOEgKyeIGHooLvr9r31HlI04eqYWBUpU,806
283
287
  omdev/tokens/tokenizert.py,sha256=BvDjXjaeM3_sMq9i-oojuKcAuGzSkbCso-Yt-gNKxeQ,7910
284
- omdev/tokens/utils.py,sha256=6dey8Oh78cIWqhGh7zfW3cmZjnBZPRpR8FQ8ntwAz9A,2014
288
+ omdev/tokens/utils.py,sha256=_dlXx-_npiGeZkMZVbXaXQDGts9yY8UnEJcT_bwPj0A,2084
285
289
  omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
286
290
  omdev/tools/cloc.py,sha256=BiIf2PnnoRH6ByH4mnua69Vv-ZDPHsSAPUds7giRolI,6013
287
291
  omdev/tools/diff.py,sha256=S6ddB7pBeMtzKh2hiHfzQ93pj6mclKt1UZQMKy4Bt5M,520
@@ -298,18 +302,18 @@ omdev/tools/shell.py,sha256=5hF_8DCtB3XrzJSfmQDsr7X3Fi9KRV4M70q9qp0KREA,2341
298
302
  omdev/tools/sqlrepl.py,sha256=TcLJlElzfXqYUkfIOwhJHtXiQjXOg4xBTwSoSRDpNkg,5758
299
303
  omdev/tools/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
300
304
  omdev/tools/git/__main__.py,sha256=gI87SBUgTkKUcUM-RtZWnei-UUDDqzbr5aPztb-gvbE,168
301
- omdev/tools/git/cli.py,sha256=6E-k-eiDn1gKyaRH_j5Ci_dgTmAl2pAbLtGmG3xgPAA,16748
305
+ omdev/tools/git/cli.py,sha256=pgq9EP1io9uu6N1CVfRrwNkRQsH33IF17tpmuk6t8Gk,16857
302
306
  omdev/tools/git/cloning.py,sha256=CNGBBMoWaTBJW4SZTf1VvhDFSm0yg7qDfNwZun_PFbU,891
303
307
  omdev/tools/git/consts.py,sha256=JuXivUNDkNhM4pe97icjRVAKM8cNRbrODquHINNKqOE,40
304
308
  omdev/tools/git/messages.py,sha256=R39pXfXt8394eC99rpTdRlbcMrAdLxwsgTR4pwRRa-o,2321
305
309
  omdev/tools/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
310
  omdev/tools/json/__main__.py,sha256=wqpkN_NsQyNwKW4qjVj8ADJ4_C98KhrFBtE-Z1UamfU,168
307
- omdev/tools/json/cli.py,sha256=8aXX3ijU3lvPZamkIyUOz-vlBmyIdaX7dCQq5rN7adE,10193
311
+ omdev/tools/json/cli.py,sha256=d7i5aPsFGIfHirY1U845t7gARpy3mu1YtvYa-qBkQF4,10142
308
312
  omdev/tools/json/formats.py,sha256=1qGYb8Kq_yFpLMaecBg-XE3yWSvqRiRbBX8SAElpS9s,2643
309
313
  omdev/tools/json/io.py,sha256=sfj2hJS9Hy3aUR8a_lLzOrYcmL9fSKyvOHiofdUASsI,1427
310
- omdev/tools/json/parsing.py,sha256=xZiOH3jSVErNGKI8AysFf0zzyhivXvRakTQe7rWxhKQ,2052
314
+ omdev/tools/json/parsing.py,sha256=R7h-UkwFm3Q0L8oHTk-aLtQN6x32-vkDXwLUxExL0tI,2000
311
315
  omdev/tools/json/processing.py,sha256=jMSkTmIccdVkT_Q6Jf8Q4AG4BQecQfrp8G2bEtsklg8,2387
312
- omdev/tools/json/rendering.py,sha256=TXNP8KBWN-zT2nx0_LArdd6Wmff550hw-RyuB4Ydcjc,2661
316
+ omdev/tools/json/rendering.py,sha256=dsZki-47lPuYP_-x7gFFl57IZnCJUXHS-NBGpQZjvk0,2628
313
317
  omdev/tools/jsonview/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
314
318
  omdev/tools/jsonview/__main__.py,sha256=BF-MVWpPJJeQYUqJA48G395kxw0lEJnV-hRLV_F9G2A,173
315
319
  omdev/tools/jsonview/cli.py,sha256=8pHULS_xxDV00kM8bO5dLH7i-zqQIoNjXTKFwhxSZ_A,4245
@@ -319,9 +323,9 @@ omdev/tools/jsonview/resources/jsonview.js,sha256=faDvXDOXKvEvjOuIlz4D3F2ReQXb_b
319
323
  omdev/tools/pawk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
320
324
  omdev/tools/pawk/__main__.py,sha256=VCqeRVnqT1RPEoIrqHFSu4PXVMg4YEgF4qCQm90-eRI,66
321
325
  omdev/tools/pawk/pawk.py,sha256=ao5mdrpiSU4AZ8mBozoEaV3UVlmVTnRG9wD9XP70MZE,11429
322
- omdev-0.0.0.dev438.dist-info/licenses/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
323
- omdev-0.0.0.dev438.dist-info/METADATA,sha256=2eVH24yBOJALi20wAIqt8hZRAJt7md-KkFPqwcKQwG0,5100
324
- omdev-0.0.0.dev438.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
325
- omdev-0.0.0.dev438.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
326
- omdev-0.0.0.dev438.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
327
- omdev-0.0.0.dev438.dist-info/RECORD,,
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,,