omdev 0.0.0.dev69__py3-none-any.whl → 0.0.0.dev70__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.

omdev/.manifests.json CHANGED
@@ -194,6 +194,30 @@
194
194
  }
195
195
  }
196
196
  },
197
+ {
198
+ "module": ".tools.proftools",
199
+ "attr": "_CLI_MODULE",
200
+ "file": "omdev/tools/proftools.py",
201
+ "line": 50,
202
+ "value": {
203
+ "$.cli.types.CliModule": {
204
+ "cmd_name": "prof",
205
+ "mod_name": "omdev.tools.proftools"
206
+ }
207
+ }
208
+ },
209
+ {
210
+ "module": ".tools.rst",
211
+ "attr": "_CLI_MODULE",
212
+ "file": "omdev/tools/rst.py",
213
+ "line": 45,
214
+ "value": {
215
+ "$.cli.types.CliModule": {
216
+ "cmd_name": "rst",
217
+ "mod_name": "omdev.tools.rst"
218
+ }
219
+ }
220
+ },
197
221
  {
198
222
  "module": ".tools.sqlrepl",
199
223
  "attr": "_CLI_MODULE",
omdev/__about__.py CHANGED
@@ -30,6 +30,10 @@ class Project(ProjectBase):
30
30
  'mypy ~= 1.11',
31
31
  ],
32
32
 
33
+ 'prof': [
34
+ 'gprof2dot ~= 2024.6',
35
+ ],
36
+
33
37
  'tokens': [
34
38
  'tokenize_rt ~= 6.0',
35
39
  ],
omdev/cli/managers.py CHANGED
@@ -50,5 +50,5 @@ def setup_install_manager(cli_pkg: str) -> None:
50
50
  if detect_install_manager(cli_pkg) is None:
51
51
  return
52
52
 
53
- from .pathhack import _install_pth_file
53
+ from ._pathhack import _install_pth_file
54
54
  _install_pth_file()
omdev/tools/proftools.py CHANGED
@@ -1,4 +1,55 @@
1
- """
2
- TODO:
3
- - rm prof.pstats.pdf ; ./python -m gprof2dot -f pstats prof.pstats | dot -Tpdf -o prof.pstats.pdf && open prof.pstats.pdf
4
- """ # noqa
1
+ import os.path
2
+ import subprocess
3
+ import sys
4
+ import tempfile
5
+
6
+ from omlish import argparse as ap
7
+
8
+ from ..cli import CliModule
9
+
10
+
11
+ class Cli(ap.Cli):
12
+ @ap.command(
13
+ ap.arg('file'),
14
+ ap.arg('out-file', nargs='?'),
15
+ ap.arg('-w', '--write', action='store_true'),
16
+ ap.arg('-o', '--overwrite', action='store_true'),
17
+ ap.arg('-O', '--open', action='store_true'),
18
+ )
19
+ def pstats_pdf(self) -> None:
20
+ out_file = self.args.out_file
21
+ if out_file is None and self.args.write:
22
+ out_file = self.args.file + '.pdf'
23
+
24
+ if out_file is not None:
25
+ if os.path.exists(out_file) and not self.args.overwrite:
26
+ raise OSError(f'File exists: {out_file}')
27
+ else:
28
+ out_file = tempfile.mktemp(suffix=os.path.basename(self.args.file) + '.pdf') # noqa
29
+
30
+ dot = subprocess.check_output([
31
+ sys.executable,
32
+ '-m', 'gprof2dot',
33
+ '-f', 'pstats',
34
+ self.args.file,
35
+ ])
36
+
37
+ pdf = subprocess.check_output(
38
+ ['dot', '-Tpdf'],
39
+ input=dot,
40
+ )
41
+
42
+ with open(out_file, 'wb') as f:
43
+ f.write(pdf)
44
+ print(out_file)
45
+
46
+ if self.args.open:
47
+ subprocess.check_call(['open', out_file])
48
+
49
+
50
+ # @omlish-manifest
51
+ _CLI_MODULE = CliModule('prof', __name__)
52
+
53
+
54
+ if __name__ == '__main__':
55
+ Cli()()
omdev/tools/rst.py CHANGED
@@ -5,6 +5,8 @@ import sys
5
5
 
6
6
  import docutils.core
7
7
 
8
+ from ..cli import CliModule
9
+
8
10
 
9
11
  def rst2html(rst, report_level=None):
10
12
  kwargs = {
@@ -40,5 +42,9 @@ def _main() -> None:
40
42
  print(html)
41
43
 
42
44
 
45
+ # @omlish-manifest
46
+ _CLI_MODULE = CliModule('rst', __name__)
47
+
48
+
43
49
  if __name__ == '__main__':
44
50
  _main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omdev
3
- Version: 0.0.0.dev69
3
+ Version: 0.0.0.dev70
4
4
  Summary: omdev
5
5
  Author: wrmsr
6
6
  License: BSD-3-Clause
@@ -12,7 +12,7 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Operating System :: POSIX
13
13
  Requires-Python: ~=3.12
14
14
  License-File: LICENSE
15
- Requires-Dist: omlish ==0.0.0.dev69
15
+ Requires-Dist: omlish ==0.0.0.dev70
16
16
  Provides-Extra: all
17
17
  Requires-Dist: black ~=24.10 ; extra == 'all'
18
18
  Requires-Dist: pycparser ~=2.22 ; extra == 'all'
@@ -20,6 +20,7 @@ Requires-Dist: cffi ~=1.17 ; extra == 'all'
20
20
  Requires-Dist: pcpp ~=1.30 ; extra == 'all'
21
21
  Requires-Dist: docutils ~=0.21 ; extra == 'all'
22
22
  Requires-Dist: mypy ~=1.11 ; extra == 'all'
23
+ Requires-Dist: gprof2dot ~=2024.6 ; extra == 'all'
23
24
  Requires-Dist: tokenize-rt ~=6.0 ; extra == 'all'
24
25
  Requires-Dist: wheel ~=0.44 ; extra == 'all'
25
26
  Provides-Extra: black
@@ -32,6 +33,8 @@ Provides-Extra: docutils
32
33
  Requires-Dist: docutils ~=0.21 ; extra == 'docutils'
33
34
  Provides-Extra: mypy
34
35
  Requires-Dist: mypy ~=1.11 ; extra == 'mypy'
36
+ Provides-Extra: prof
37
+ Requires-Dist: gprof2dot ~=2024.6 ; extra == 'prof'
35
38
  Provides-Extra: tokens
36
39
  Requires-Dist: tokenize-rt ~=6.0 ; extra == 'tokens'
37
40
  Provides-Extra: wheel
@@ -1,5 +1,5 @@
1
- omdev/.manifests.json,sha256=uO7iZexM0Maf0zfoaBOG0fia5BzUfRQ3Ji9A4CSmd08,4477
2
- omdev/__about__.py,sha256=2mFs3ycC0n2aFJRsyL2yt4CVslLnIMTEYwXmubo7EeM,1066
1
+ omdev/.manifests.json,sha256=YQWR_Qqt_CO6itIyEzz4ko1XCKQ9XElkCaoDLpiAoY4,4978
2
+ omdev/__about__.py,sha256=bwCUKH9MgCgKZ4s7JedVN9_ESOv-1CziylwJJCgiaE4,1131
3
3
  omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  omdev/bracepy.py,sha256=HwBK5XmlOsF_juTel25fRLJK9vHSJCWXuCc-OZlevRQ,2619
5
5
  omdev/classdot.py,sha256=K0YMTngaC6uuEKhDb95tFzW33Re_YEdgIWBBeze4PTI,1628
@@ -59,11 +59,11 @@ omdev/cexts/_distutils/compilers/options.py,sha256=H7r5IcLvga5Fs3jjXWIT-6ap3JBdu
59
59
  omdev/cexts/_distutils/compilers/unixccompiler.py,sha256=o1h8QuyupLntv4F21_XjzAZmCiwwxJuTmOirvBSL-Qw,15419
60
60
  omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
61
61
  omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
62
+ omdev/cli/_pathhack.py,sha256=_446loyBbCI3LaP2OhYAkKjWEgf_7eJ6UZyt_hlrClA,1479
62
63
  omdev/cli/clicli.py,sha256=S2iFrFpGrhm2Ls1Z9qiteBVDEdmF4QJgP3Vv5ndnQ8o,2537
63
64
  omdev/cli/install.py,sha256=C-W171YlIHt4Cfok-nWSMbHwWhqF_PFqq2HixFttYx8,4460
64
65
  omdev/cli/main.py,sha256=fQL-KdKZDmw00d8vtgxGmUc9Pp3dnhW1BW-Pzu6JPX0,4172
65
- omdev/cli/managers.py,sha256=tC4saQQhawMwmRzXs4ErKuO3P10rm7GhY2PUUsTK2Ss,1159
66
- omdev/cli/pathhack.py,sha256=_446loyBbCI3LaP2OhYAkKjWEgf_7eJ6UZyt_hlrClA,1479
66
+ omdev/cli/managers.py,sha256=BV98_n30Jj63OJrFgRoVZRfICxMLXEZKoEn4rMj9LV4,1160
67
67
  omdev/cli/types.py,sha256=bqKw9SbtBtAip2vF9v4khh0CqKG6LBr6n9VzWBz7AJE,474
68
68
  omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
69
69
  omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
@@ -117,12 +117,12 @@ omdev/tools/importscan.py,sha256=vxOMdAABShqt5-G3n6DGHopCZ5uGgciThY0MCa5W0mA,406
117
117
  omdev/tools/mkrelimp.py,sha256=fwt4GWzenuLNVtzdK2uaJJTSuJbUVJZquF5adwAwlPg,4051
118
118
  omdev/tools/nbtools.py,sha256=5sAFXw0joeHsE1wCseiyYFHxE459UfE83S8VnHIRXiE,3395
119
119
  omdev/tools/piptools.py,sha256=-jR5q3w4sHqntxCLExFCBNIARB788FUsAbJ62PK2sBU,2774
120
- omdev/tools/proftools.py,sha256=xKSm_yPoCnfsvS3iT9MblDqFMuZmGfI3_koGj8amMyU,145
121
- omdev/tools/rst.py,sha256=6dWk8QZHoGiLSuBw3TKsXZjjFK6wWBEtPi9krdCLKKg,977
120
+ omdev/tools/proftools.py,sha256=8ZU9x_Dq8eT2ZFwU9sJpDIvxcIn9qBc8y2ELKPb5e5M,1382
121
+ omdev/tools/rst.py,sha256=fHlj9IEURCwmjTRLiGS16kqhLs4dGPk4fW3u9mWb7eA,1068
122
122
  omdev/tools/sqlrepl.py,sha256=tmFZh80-xsGM62dyQ7_UGLebChrj7IHbIPYBWDJMgVk,5741
123
- omdev-0.0.0.dev69.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
124
- omdev-0.0.0.dev69.dist-info/METADATA,sha256=iywdQ1OkwY6R1tyXqZ_19DKRmYK2uNHdW2xXLTx4VPs,1368
125
- omdev-0.0.0.dev69.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
126
- omdev-0.0.0.dev69.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
127
- omdev-0.0.0.dev69.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
128
- omdev-0.0.0.dev69.dist-info/RECORD,,
123
+ omdev-0.0.0.dev70.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
124
+ omdev-0.0.0.dev70.dist-info/METADATA,sha256=3I8je7JGmpmGQxqrAKFbkctKiB5YSLvTenLVfjP-hDs,1492
125
+ omdev-0.0.0.dev70.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
126
+ omdev-0.0.0.dev70.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
127
+ omdev-0.0.0.dev70.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
128
+ omdev-0.0.0.dev70.dist-info/RECORD,,
File without changes