omdev 0.0.0.dev62__py3-none-any.whl → 0.0.0.dev64__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 +1 -1
- omdev/cli/main.py +25 -13
- omdev/cli/managers.py +2 -43
- omdev/cli/pathhack.py +43 -0
- omdev/pycharm/__init__.py +0 -0
- omdev/pycharm/runhack.py +1338 -0
- omdev/scripts/pyproject.py +21 -20
- omdev/tools/dockertools.py +54 -1
- {omdev-0.0.0.dev62.dist-info → omdev-0.0.0.dev64.dist-info}/METADATA +2 -2
- {omdev-0.0.0.dev62.dist-info → omdev-0.0.0.dev64.dist-info}/RECORD +14 -11
- {omdev-0.0.0.dev62.dist-info → omdev-0.0.0.dev64.dist-info}/LICENSE +0 -0
- {omdev-0.0.0.dev62.dist-info → omdev-0.0.0.dev64.dist-info}/WHEEL +0 -0
- {omdev-0.0.0.dev62.dist-info → omdev-0.0.0.dev64.dist-info}/entry_points.txt +0 -0
- {omdev-0.0.0.dev62.dist-info → omdev-0.0.0.dev64.dist-info}/top_level.txt +0 -0
omdev/scripts/pyproject.py
CHANGED
|
@@ -3033,29 +3033,30 @@ def register_opj_marshaler(ty: ta.Any, m: ObjMarshaler) -> None:
|
|
|
3033
3033
|
|
|
3034
3034
|
|
|
3035
3035
|
def _make_obj_marshaler(ty: ta.Any) -> ObjMarshaler:
|
|
3036
|
-
if isinstance(ty, type)
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3036
|
+
if isinstance(ty, type):
|
|
3037
|
+
if abc.ABC in ty.__bases__:
|
|
3038
|
+
impls = [ # type: ignore
|
|
3039
|
+
PolymorphicObjMarshaler.Impl(
|
|
3040
|
+
ity,
|
|
3041
|
+
ity.__qualname__,
|
|
3042
|
+
get_obj_marshaler(ity),
|
|
3043
|
+
)
|
|
3044
|
+
for ity in deep_subclasses(ty)
|
|
3045
|
+
if abc.ABC not in ity.__bases__
|
|
3046
|
+
]
|
|
3047
|
+
return PolymorphicObjMarshaler(
|
|
3048
|
+
{i.ty: i for i in impls},
|
|
3049
|
+
{i.tag: i for i in impls},
|
|
3042
3050
|
)
|
|
3043
|
-
for ity in deep_subclasses(ty)
|
|
3044
|
-
if abc.ABC not in ity.__bases__
|
|
3045
|
-
]
|
|
3046
|
-
return PolymorphicObjMarshaler(
|
|
3047
|
-
{i.ty: i for i in impls},
|
|
3048
|
-
{i.tag: i for i in impls},
|
|
3049
|
-
)
|
|
3050
3051
|
|
|
3051
|
-
|
|
3052
|
-
|
|
3052
|
+
if issubclass(ty, enum.Enum):
|
|
3053
|
+
return EnumObjMarshaler(ty)
|
|
3053
3054
|
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3055
|
+
if dc.is_dataclass(ty):
|
|
3056
|
+
return DataclassObjMarshaler(
|
|
3057
|
+
ty,
|
|
3058
|
+
{f.name: get_obj_marshaler(f.type) for f in dc.fields(ty)},
|
|
3059
|
+
)
|
|
3059
3060
|
|
|
3060
3061
|
if is_generic_alias(ty):
|
|
3061
3062
|
try:
|
omdev/tools/dockertools.py
CHANGED
|
@@ -10,8 +10,11 @@ import typing as ta
|
|
|
10
10
|
|
|
11
11
|
from omlish import argparse as ap
|
|
12
12
|
from omlish import check
|
|
13
|
+
from omlish import docker as dck
|
|
13
14
|
from omlish import lang
|
|
14
15
|
from omlish import logs
|
|
16
|
+
from omlish import marshal as msh
|
|
17
|
+
from omlish.formats import json
|
|
15
18
|
from omlish.formats import yaml
|
|
16
19
|
|
|
17
20
|
from ..cli import CliModule
|
|
@@ -179,6 +182,56 @@ class Cli(ap.Cli):
|
|
|
179
182
|
with open(yml_file, 'w') as f:
|
|
180
183
|
f.write(new_src)
|
|
181
184
|
|
|
185
|
+
@ap.command(
|
|
186
|
+
ap.arg('repo'),
|
|
187
|
+
ap.arg('tags', nargs='*'),
|
|
188
|
+
)
|
|
189
|
+
def repo_info(self) -> int:
|
|
190
|
+
if (info := dck.get_hub_repo_info(self.args.repo, tags=self.args.tags or None)) is None:
|
|
191
|
+
return 1
|
|
192
|
+
print(json.dumps_pretty(msh.marshal(info)))
|
|
193
|
+
return 0
|
|
194
|
+
|
|
195
|
+
@ap.command(
|
|
196
|
+
ap.arg('image'),
|
|
197
|
+
)
|
|
198
|
+
def repo_latest_image(self) -> int:
|
|
199
|
+
if ':' in self.args.image:
|
|
200
|
+
repo, _, base = self.args.image.partition(':')
|
|
201
|
+
else:
|
|
202
|
+
repo, base = self.args.image, None
|
|
203
|
+
if (info := dck.get_hub_repo_info(repo)) is None:
|
|
204
|
+
return 1
|
|
205
|
+
print(dck.select_latest_tag(info.tags, base=base))
|
|
206
|
+
return 0
|
|
207
|
+
|
|
208
|
+
@ap.command(
|
|
209
|
+
ap.arg('-f', '--file'),
|
|
210
|
+
)
|
|
211
|
+
def compose_image_updates(self) -> None:
|
|
212
|
+
if self.args.file:
|
|
213
|
+
yml_file = self.args.file
|
|
214
|
+
else:
|
|
215
|
+
yml_file = os.path.join('docker', 'compose.yml')
|
|
216
|
+
|
|
217
|
+
with open(yml_file) as f:
|
|
218
|
+
yml_src = f.read()
|
|
219
|
+
|
|
220
|
+
cfg_dct = yaml.safe_load(yml_src)
|
|
221
|
+
for svc_name, svc_dct in cfg_dct.get('services', {}).items():
|
|
222
|
+
if not (img := svc_dct.get('image')):
|
|
223
|
+
continue
|
|
224
|
+
|
|
225
|
+
repo, _, base = img.partition(':')
|
|
226
|
+
if (info := dck.get_hub_repo_info(repo)) is None:
|
|
227
|
+
continue
|
|
228
|
+
|
|
229
|
+
lt = dck.select_latest_tag(info.tags, base=base)
|
|
230
|
+
if f'{repo}:{lt}' == img:
|
|
231
|
+
continue
|
|
232
|
+
|
|
233
|
+
print(f'{svc_name}: {lt}')
|
|
234
|
+
|
|
182
235
|
|
|
183
236
|
# @omlish-manifest
|
|
184
237
|
_CLI_MODULE = CliModule('docker', __name__)
|
|
@@ -186,4 +239,4 @@ _CLI_MODULE = CliModule('docker', __name__)
|
|
|
186
239
|
|
|
187
240
|
if __name__ == '__main__':
|
|
188
241
|
logs.configure_standard_logging('INFO')
|
|
189
|
-
Cli()()
|
|
242
|
+
Cli().call_and_exit()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: omdev
|
|
3
|
-
Version: 0.0.0.
|
|
3
|
+
Version: 0.0.0.dev64
|
|
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.
|
|
15
|
+
Requires-Dist: omlish ==0.0.0.dev64
|
|
16
16
|
Provides-Extra: all
|
|
17
17
|
Requires-Dist: pycparser ~=2.22 ; extra == 'all'
|
|
18
18
|
Requires-Dist: cffi ~=1.17 ; extra == 'all'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
omdev/.manifests.json,sha256
|
|
1
|
+
omdev/.manifests.json,sha256=-soVkIwt6YB1DbsxaHqGNe4N46stWaTqT6Z18vb-CiU,4476
|
|
2
2
|
omdev/__about__.py,sha256=LqSNNFFcT84xW3W8fIOJ78kPYJKFLIXZyDX-AJREvN0,1005
|
|
3
3
|
omdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
omdev/bracepy.py,sha256=HwBK5XmlOsF_juTel25fRLJK9vHSJCWXuCc-OZlevRQ,2619
|
|
@@ -61,8 +61,9 @@ omdev/cli/__init__.py,sha256=V_l6VP1SZMlJbO-8CJwSuO9TThOy2S_oaPepNYgIrbE,37
|
|
|
61
61
|
omdev/cli/__main__.py,sha256=mOJpgc07o0r5luQ1DlX4tk2PqZkgmbwPbdzJ3KmtjgQ,138
|
|
62
62
|
omdev/cli/clicli.py,sha256=rQ9-F9XI3BevnfIVALHVKrrHNQPdYhkQ-IKESTNB5RA,2447
|
|
63
63
|
omdev/cli/install.py,sha256=C-W171YlIHt4Cfok-nWSMbHwWhqF_PFqq2HixFttYx8,4460
|
|
64
|
-
omdev/cli/main.py,sha256=
|
|
65
|
-
omdev/cli/managers.py,sha256=
|
|
64
|
+
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
67
|
omdev/cli/types.py,sha256=bqKw9SbtBtAip2vF9v4khh0CqKG6LBr6n9VzWBz7AJE,474
|
|
67
68
|
omdev/interp/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
68
69
|
omdev/interp/__main__.py,sha256=GMCqeGYltgt5dlJzHxY9gqisa8cRkrPfmZYuZnjg4WI,162
|
|
@@ -92,6 +93,8 @@ omdev/precheck/git.py,sha256=APC5Ln7x0zDrQiGPRWPsBcVJK3vWhbU-brqR5M63JQA,849
|
|
|
92
93
|
omdev/precheck/lite.py,sha256=MLeDZP2UexNZzYTcSx4-LrhA97kCKn8tXrGkhsJb6I0,3649
|
|
93
94
|
omdev/precheck/precheck.py,sha256=Boe3zbK0RXCGzw9H_OsyqJ4yMETuyrwy8P4UFAZQcTY,2477
|
|
94
95
|
omdev/precheck/scripts.py,sha256=qq6MXkxgrYngPg5pWnXH4uRSuRkP3mFqbeml1UmvGBc,1265
|
|
96
|
+
omdev/pycharm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
|
+
omdev/pycharm/runhack.py,sha256=LfqxlRS3L8vObsmo_C4sG0ONMEqr1RgAojP2OMQFzlA,31777
|
|
95
98
|
omdev/pyproject/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
96
99
|
omdev/pyproject/__main__.py,sha256=gn3Rl1aYPYdiTtEqa9ifi0t-e4ZwPY0vhJ4UXvYdJDY,165
|
|
97
100
|
omdev/pyproject/cexts.py,sha256=x13piOOnNrYbA17qZLDVuR0p1sqhgEwpk4FtImX-klM,4281
|
|
@@ -105,12 +108,12 @@ omdev/scripts/execrss.py,sha256=d6purJqU99OkMcNxCS1kG2CMfSsw7wjnvBQW7SjyJ70,448
|
|
|
105
108
|
omdev/scripts/exectime.py,sha256=LRVIJsnvGYUqH-zfCdFnrQCZv1KLXJPtWBWplXMDwhI,407
|
|
106
109
|
omdev/scripts/importtrace.py,sha256=4ozdphT4VuP8L0kE0HmGMyWaWHnXg1KEukbET4pFgJU,14064
|
|
107
110
|
omdev/scripts/interp.py,sha256=7xeihsrt3DI_s1fZqNweivBUUwuGkS5C5cWw4QY6q30,70999
|
|
108
|
-
omdev/scripts/pyproject.py,sha256=
|
|
111
|
+
omdev/scripts/pyproject.py,sha256=_B5LB4YcF1SKiZ7J0udpoaL1dI0IGFdS_1ZLIyNT2ac,157556
|
|
109
112
|
omdev/toml/__init__.py,sha256=Y3l4WY4JRi2uLG6kgbGp93fuGfkxkKwZDvhsa0Rwgtk,15
|
|
110
113
|
omdev/toml/parser.py,sha256=84bn09uhYHwQGyfww6Rw6y1RxPAE_HDltODOSakcqDM,29186
|
|
111
114
|
omdev/toml/writer.py,sha256=lk3on3YXVbWuLJa-xsOzOhs1bBAT1vXqw4mBbluZl_w,3040
|
|
112
115
|
omdev/tools/__init__.py,sha256=iVJAOQ0viGTQOm0DLX4uZLro-9jOioYJGLg9s0kDx1A,78
|
|
113
|
-
omdev/tools/dockertools.py,sha256=
|
|
116
|
+
omdev/tools/dockertools.py,sha256=fkiIAzV-67b4knoF68P19shk94Vec_7xX8MwFGzvPlc,6907
|
|
114
117
|
omdev/tools/gittools.py,sha256=SMuKeonZP16lYBecmKB7sn_VZ-ljQnJJF6TGX0isVwA,2031
|
|
115
118
|
omdev/tools/importscan.py,sha256=vxOMdAABShqt5-G3n6DGHopCZ5uGgciThY0MCa5W0mA,4066
|
|
116
119
|
omdev/tools/mkrelimp.py,sha256=fwt4GWzenuLNVtzdK2uaJJTSuJbUVJZquF5adwAwlPg,4051
|
|
@@ -119,9 +122,9 @@ omdev/tools/piptools.py,sha256=-jR5q3w4sHqntxCLExFCBNIARB788FUsAbJ62PK2sBU,2774
|
|
|
119
122
|
omdev/tools/proftools.py,sha256=xKSm_yPoCnfsvS3iT9MblDqFMuZmGfI3_koGj8amMyU,145
|
|
120
123
|
omdev/tools/rst.py,sha256=6dWk8QZHoGiLSuBw3TKsXZjjFK6wWBEtPi9krdCLKKg,977
|
|
121
124
|
omdev/tools/sqlrepl.py,sha256=tmFZh80-xsGM62dyQ7_UGLebChrj7IHbIPYBWDJMgVk,5741
|
|
122
|
-
omdev-0.0.0.
|
|
123
|
-
omdev-0.0.0.
|
|
124
|
-
omdev-0.0.0.
|
|
125
|
-
omdev-0.0.0.
|
|
126
|
-
omdev-0.0.0.
|
|
127
|
-
omdev-0.0.0.
|
|
125
|
+
omdev-0.0.0.dev64.dist-info/LICENSE,sha256=B_hVtavaA8zCYDW99DYdcpDLKz1n3BBRjZrcbv8uG8c,1451
|
|
126
|
+
omdev-0.0.0.dev64.dist-info/METADATA,sha256=4QNyEbgJ8PEIAKERK8Si6wUJ8ak1ICF4bXAYks2COJo,1252
|
|
127
|
+
omdev-0.0.0.dev64.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
|
128
|
+
omdev-0.0.0.dev64.dist-info/entry_points.txt,sha256=dHLXFmq5D9B8qUyhRtFqTGWGxlbx3t5ejedjrnXNYLU,33
|
|
129
|
+
omdev-0.0.0.dev64.dist-info/top_level.txt,sha256=1nr7j30fEWgLYHW3lGR9pkdHkb7knv1U1ES1XRNVQ6k,6
|
|
130
|
+
omdev-0.0.0.dev64.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|