omlish 0.0.0.dev67__py3-none-any.whl → 0.0.0.dev68__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- omlish/__about__.py +2 -2
- omlish/diag/__init__.py +28 -0
- omlish/diag/_pycharm/runhack.py +25 -59
- {omlish-0.0.0.dev67.dist-info → omlish-0.0.0.dev68.dist-info}/METADATA +1 -1
- {omlish-0.0.0.dev67.dist-info → omlish-0.0.0.dev68.dist-info}/RECORD +9 -9
- {omlish-0.0.0.dev67.dist-info → omlish-0.0.0.dev68.dist-info}/LICENSE +0 -0
- {omlish-0.0.0.dev67.dist-info → omlish-0.0.0.dev68.dist-info}/WHEEL +0 -0
- {omlish-0.0.0.dev67.dist-info → omlish-0.0.0.dev68.dist-info}/entry_points.txt +0 -0
- {omlish-0.0.0.dev67.dist-info → omlish-0.0.0.dev68.dist-info}/top_level.txt +0 -0
omlish/__about__.py
CHANGED
omlish/diag/__init__.py
CHANGED
@@ -1,4 +1,32 @@
|
|
1
1
|
"""
|
2
2
|
TODO:
|
3
3
|
- https://github.com/aristocratos/btop/blob/00c90884c328eb3e44a0ab094e833161092aae9c/src/linux/btop_collect.cpp#L443
|
4
|
+
|
5
|
+
==
|
6
|
+
|
7
|
+
Repls
|
8
|
+
- python - https://docs.python.org/3/tutorial/interpreter.html
|
9
|
+
- ipython - https://github.com/ipython/ipython/
|
10
|
+
- ptpython - https://github.com/prompt-toolkit/ptpython
|
11
|
+
- bpython - https://github.com/bpython/bpython
|
12
|
+
|
13
|
+
Debuggers
|
14
|
+
- pdb - https://docs.python.org/3/library/pdb.html
|
15
|
+
- ipdb - https://github.com/gotcha/ipdb
|
16
|
+
- pdub - https://github.com/inducer/pudb/
|
17
|
+
|
18
|
+
CPU Profilers
|
19
|
+
- cProfile - https://docs.python.org/3/library/profile.html
|
20
|
+
- pyinstrument - https://github.com/joerick/pyinstrument
|
21
|
+
- py-pspy - https://github.com/benfred/py-spy
|
22
|
+
- austin-dist - https://github.com/P403n1x87/austin
|
23
|
+
- yappi - https://github.com/sumerc/yappi
|
24
|
+
|
25
|
+
Memory Profilers
|
26
|
+
- tracemalloc - https://docs.python.org/3/library/tracemalloc.html
|
27
|
+
- guppy3 - https://github.com/zhuyifei1999/guppy3/
|
28
|
+
- objgraph - https://github.com/mgedmin/objgraph
|
29
|
+
- memory-profiler - https://github.com/pythonprofilers/memory_profiler
|
30
|
+
- memray - https://github.com/bloomberg/memray
|
31
|
+
- pympler - https://github.com/pympler/pympler
|
4
32
|
"""
|
omlish/diag/_pycharm/runhack.py
CHANGED
@@ -100,12 +100,17 @@ def _get_env_path_list(k): # type: (str) -> list[str]
|
|
100
100
|
##
|
101
101
|
|
102
102
|
|
103
|
-
class
|
104
|
-
|
105
|
-
|
103
|
+
class AttrsClass:
|
104
|
+
__attrs__ = () # type: tuple[str, ...]
|
105
|
+
|
106
|
+
def __repr__(self) -> str:
|
107
|
+
return _attr_repr(self, *self.__attrs__)
|
108
|
+
|
109
|
+
def attrs_dict(self): # type: () -> dict[str, object]
|
110
|
+
return {a: getattr(self, a) for a in self.__attrs__}
|
106
111
|
|
107
112
|
def replace(self, **kwargs):
|
108
|
-
return self.__class__(**{**self.
|
113
|
+
return self.__class__(**{**self.attrs_dict(), **kwargs})
|
109
114
|
|
110
115
|
|
111
116
|
class AsJson:
|
@@ -116,7 +121,7 @@ class AsJson:
|
|
116
121
|
##
|
117
122
|
|
118
123
|
|
119
|
-
class RunEnv(AsJson):
|
124
|
+
class RunEnv(AttrsClass, AsJson):
|
120
125
|
def __init__(
|
121
126
|
self,
|
122
127
|
*,
|
@@ -171,7 +176,7 @@ class RunEnv(AsJson):
|
|
171
176
|
sys_path = list(sys.path)
|
172
177
|
self._sys_path = sys_path
|
173
178
|
|
174
|
-
|
179
|
+
__attrs__ = (
|
175
180
|
'argv',
|
176
181
|
'orig_argv',
|
177
182
|
|
@@ -186,12 +191,6 @@ class RunEnv(AsJson):
|
|
186
191
|
'sys_path',
|
187
192
|
)
|
188
193
|
|
189
|
-
def as_json(self): # type: () -> dict[str, object]
|
190
|
-
return {a: getattr(self, a) for a in self._ATTRS}
|
191
|
-
|
192
|
-
def __repr__(self) -> str:
|
193
|
-
return _attr_repr(self, *self._ATTRS)
|
194
|
-
|
195
194
|
@property
|
196
195
|
def argv(self): # type: () -> list[str]
|
197
196
|
return self._argv
|
@@ -228,6 +227,9 @@ class RunEnv(AsJson):
|
|
228
227
|
def sys_path(self): # type: () -> list[str]
|
229
228
|
return self._sys_path
|
230
229
|
|
230
|
+
def as_json(self): # type: () -> dict[str, object]
|
231
|
+
return self.attrs_dict()
|
232
|
+
|
231
233
|
|
232
234
|
##
|
233
235
|
|
@@ -495,7 +497,7 @@ def render_args(args): # type: (list[Arg]) -> list[str]
|
|
495
497
|
##
|
496
498
|
|
497
499
|
|
498
|
-
class Target(
|
500
|
+
class Target(AttrsClass, AsJson):
|
499
501
|
pass
|
500
502
|
|
501
503
|
|
@@ -530,16 +532,10 @@ class FileTarget(UserTarget):
|
|
530
532
|
def file(self) -> str:
|
531
533
|
return self._file
|
532
534
|
|
533
|
-
|
534
|
-
|
535
|
-
def __repr__(self) -> str:
|
536
|
-
return _attr_repr(self, *self._ATTRS)
|
537
|
-
|
538
|
-
def as_dict(self): # type: () -> dict[str, object]
|
539
|
-
return _attr_dict(self, *self._ATTRS)
|
535
|
+
__attrs__ = ('file', 'argv')
|
540
536
|
|
541
537
|
def as_json(self): # type: () -> dict[str, object]
|
542
|
-
return self.
|
538
|
+
return self.attrs_dict()
|
543
539
|
|
544
540
|
|
545
541
|
class ModuleTarget(UserTarget):
|
@@ -556,16 +552,10 @@ class ModuleTarget(UserTarget):
|
|
556
552
|
def module(self) -> str:
|
557
553
|
return self._module
|
558
554
|
|
559
|
-
|
560
|
-
|
561
|
-
def __repr__(self) -> str:
|
562
|
-
return _attr_repr(self, *self._ATTRS)
|
563
|
-
|
564
|
-
def as_dict(self): # type: () -> dict[str, object]
|
565
|
-
return _attr_dict(self, *self._ATTRS)
|
555
|
+
__attrs__ = ('module', 'argv')
|
566
556
|
|
567
557
|
def as_json(self): # type: () -> dict[str, object]
|
568
|
-
return self.
|
558
|
+
return self.attrs_dict()
|
569
559
|
|
570
560
|
|
571
561
|
#
|
@@ -604,13 +594,7 @@ class DebuggerTarget(PycharmTarget):
|
|
604
594
|
def target(self) -> Target:
|
605
595
|
return self._target
|
606
596
|
|
607
|
-
|
608
|
-
|
609
|
-
def __repr__(self) -> str:
|
610
|
-
return _attr_repr(self, *self._ATTRS)
|
611
|
-
|
612
|
-
def as_dict(self): # type: () -> dict[str, object]
|
613
|
-
return _attr_dict(self, *self._ATTRS)
|
597
|
+
__attrs__ = ('file', 'args', 'target')
|
614
598
|
|
615
599
|
def as_json(self): # type: () -> dict[str, object]
|
616
600
|
return {
|
@@ -662,13 +646,7 @@ class TestRunnerTarget(PycharmTarget):
|
|
662
646
|
def tests(self): # type: () -> list[Test]
|
663
647
|
return self._tests
|
664
648
|
|
665
|
-
|
666
|
-
|
667
|
-
def __repr__(self) -> str:
|
668
|
-
return _attr_repr(self, *self._ATTRS)
|
669
|
-
|
670
|
-
def as_dict(self): # type: () -> dict[str, object]
|
671
|
-
return _attr_dict(self, *self._ATTRS)
|
649
|
+
__attrs__ = ('file', 'args', 'tests')
|
672
650
|
|
673
651
|
def as_json(self): # type: () -> dict[str, object]
|
674
652
|
return {
|
@@ -884,7 +862,7 @@ def render_target_args(tgt): # type: (Target) -> list[str]
|
|
884
862
|
##
|
885
863
|
|
886
864
|
|
887
|
-
class Exec(
|
865
|
+
class Exec(AttrsClass, AsJson):
|
888
866
|
def __init__(
|
889
867
|
self,
|
890
868
|
exe: str,
|
@@ -909,13 +887,7 @@ class Exec(AsDict, AsJson):
|
|
909
887
|
def target(self) -> Target:
|
910
888
|
return self._target
|
911
889
|
|
912
|
-
|
913
|
-
|
914
|
-
def __repr__(self) -> str:
|
915
|
-
return _attr_repr(self, *self._ATTRS)
|
916
|
-
|
917
|
-
def as_dict(self): # type: () -> dict[str, object]
|
918
|
-
return _attr_dict(self, *self._ATTRS)
|
890
|
+
__attrs__ = ('exe', 'exe_args', 'target')
|
919
891
|
|
920
892
|
def as_json(self): # type: () -> dict[str, object]
|
921
893
|
return {
|
@@ -979,7 +951,7 @@ def render_exec_args(exe): # type: (Exec) -> list[str]
|
|
979
951
|
##
|
980
952
|
|
981
953
|
|
982
|
-
class ExecDecision(
|
954
|
+
class ExecDecision(AttrsClass, AsJson):
|
983
955
|
def __init__(
|
984
956
|
self,
|
985
957
|
target: Target,
|
@@ -1020,7 +992,7 @@ class ExecDecision(AsDict, AsJson):
|
|
1020
992
|
def os_exec(self) -> bool:
|
1021
993
|
return self._os_exec
|
1022
994
|
|
1023
|
-
|
995
|
+
__attrs__ = (
|
1024
996
|
'target',
|
1025
997
|
'cwd',
|
1026
998
|
'python_path',
|
@@ -1028,12 +1000,6 @@ class ExecDecision(AsDict, AsJson):
|
|
1028
1000
|
'os_exec',
|
1029
1001
|
)
|
1030
1002
|
|
1031
|
-
def __repr__(self) -> str:
|
1032
|
-
return _attr_repr(self, *self._ATTRS)
|
1033
|
-
|
1034
|
-
def as_dict(self): # type: () -> dict[str, object]
|
1035
|
-
return _attr_dict(self, *self._ATTRS)
|
1036
|
-
|
1037
1003
|
def as_json(self): # type: () -> dict[str, object]
|
1038
1004
|
return {
|
1039
1005
|
'target': self._target.as_json(),
|
@@ -1,5 +1,5 @@
|
|
1
1
|
omlish/.manifests.json,sha256=TXvFdkAU0Zr2FKdo7fyvt9nr3UjCtrnAZ0diZXSAteE,1430
|
2
|
-
omlish/__about__.py,sha256=
|
2
|
+
omlish/__about__.py,sha256=Lo42shN4zusm7eF0NYiY81TzhZ8cDCXTIRZnGyGtd-Q,3420
|
3
3
|
omlish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
omlish/argparse.py,sha256=Dc73G8lyoQBLvXhMYUbzQUh4SJu_OTvKUXjSUxq_ang,7499
|
5
5
|
omlish/c3.py,sha256=4vogWgwPb8TbNS2KkZxpoWbwjj7MuHG2lQG-hdtkvjI,8062
|
@@ -149,7 +149,7 @@ omlish/dataclasses/impl/repr.py,sha256=oLXBTxqp88NKmz82HrJeGiTEiwK4l5LlXQT9Q0-tX
|
|
149
149
|
omlish/dataclasses/impl/simple.py,sha256=EovA-GpmQYtB_svItO2byTAWqbKGF4njz0MdQts3QBU,3157
|
150
150
|
omlish/dataclasses/impl/slots.py,sha256=_sm-x9v1tPnXEHBHNUMTHZocgVyhZaPdvamIPPBUVyk,2635
|
151
151
|
omlish/dataclasses/impl/utils.py,sha256=aER2iL3UAtgS1BdLuEvTr9Tr2wC28wk1kiOeO-jIymw,6138
|
152
|
-
omlish/diag/__init__.py,sha256=
|
152
|
+
omlish/diag/__init__.py,sha256=4S8v0myJM4Zld6_FV6cPe_nSv0aJb6kXftEit0HkiGE,1141
|
153
153
|
omlish/diag/asts.py,sha256=BveUUNUcaAm4Hg55f4ZxGSI313E4L8cCZ5XjHpEkKVI,3325
|
154
154
|
omlish/diag/debug.py,sha256=YPzQXiBAJMYHYpBKzx0QhlLMZokjR5kkAVLodA3yddQ,424
|
155
155
|
omlish/diag/procfs.py,sha256=vBovaMvAUKdl7FbtFq3TNsSmdhs8DaYfhoEsKeWYta8,9704
|
@@ -158,7 +158,7 @@ omlish/diag/ps.py,sha256=1JWxZen3fVG-20R6ZZ8BtO_gpzw_5bhHZiKdoHkgxoU,1004
|
|
158
158
|
omlish/diag/pydevd.py,sha256=Fsx9rfCOnwLD6RLBqH0uAdtq75rbNeBAQfiDvIBd3e0,7295
|
159
159
|
omlish/diag/threads.py,sha256=1-x02VCDZ407gfbtXm1pWK-ubqhqfePm9PMqkHCVoqk,3642
|
160
160
|
omlish/diag/_pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
161
|
-
omlish/diag/_pycharm/runhack.py,sha256=
|
161
|
+
omlish/diag/_pycharm/runhack.py,sha256=LFxuv7WibkC6Q7JmcKtPdytzinYFMZWqjane7YjPiVI,34463
|
162
162
|
omlish/diag/pycharm/__init__.py,sha256=sT-ub7flKeCCbM_i32z9-eGV8hgGJ45hwdcqtGDkVRY,153
|
163
163
|
omlish/diag/pycharm/cli.py,sha256=7SRh6yj8S5YGda4bq9BD4Kzwtgg4_Wa-K202ReZN2iI,1011
|
164
164
|
omlish/diag/pycharm/pycharm.py,sha256=g-IfF8FBH93o6k_KDrLy8kIiFSLe3n39I2URipfFy0Q,3115
|
@@ -412,9 +412,9 @@ omlish/text/delimit.py,sha256=ubPXcXQmtbOVrUsNh5gH1mDq5H-n1y2R4cPL5_DQf68,4928
|
|
412
412
|
omlish/text/glyphsplit.py,sha256=Ug-dPRO7x-OrNNr8g1y6DotSZ2KH0S-VcOmUobwa4B0,3296
|
413
413
|
omlish/text/indent.py,sha256=6Jj6TFY9unaPa4xPzrnZemJ-fHsV53IamP93XGjSUHs,1274
|
414
414
|
omlish/text/parts.py,sha256=7vPF1aTZdvLVYJ4EwBZVzRSy8XB3YqPd7JwEnNGGAOo,6495
|
415
|
-
omlish-0.0.0.
|
416
|
-
omlish-0.0.0.
|
417
|
-
omlish-0.0.0.
|
418
|
-
omlish-0.0.0.
|
419
|
-
omlish-0.0.0.
|
420
|
-
omlish-0.0.0.
|
415
|
+
omlish-0.0.0.dev68.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
416
|
+
omlish-0.0.0.dev68.dist-info/METADATA,sha256=dB7UaEa5BlDr9UDJLwPaobs83TJrglLK7JxNHdDYlAI,4167
|
417
|
+
omlish-0.0.0.dev68.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
418
|
+
omlish-0.0.0.dev68.dist-info/entry_points.txt,sha256=Lt84WvRZJskWCAS7xnQGZIeVWksprtUHj0llrvVmod8,35
|
419
|
+
omlish-0.0.0.dev68.dist-info/top_level.txt,sha256=pePsKdLu7DvtUiecdYXJ78iO80uDNmBlqe-8hOzOmfs,7
|
420
|
+
omlish-0.0.0.dev68.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|