dekshell 0.2.31__py3-none-any.whl → 0.2.33__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.
- dekshell/click/__init__.py +6 -3
- dekshell/core/__init__.py +3 -3
- dekshell/core/contexts/methods.py +2 -2
- dekshell/core/contexts/properties.py +23 -1
- dekshell/core/markers/base/__init__.py +70 -11
- dekshell/core/markers/function.py +17 -8
- dekshell/core/markers/redirect.py +2 -2
- dekshell/utils/cmd.py +0 -27
- {dekshell-0.2.31.dist-info → dekshell-0.2.33.dist-info}/METADATA +1 -1
- {dekshell-0.2.31.dist-info → dekshell-0.2.33.dist-info}/RECORD +12 -12
- {dekshell-0.2.31.dist-info → dekshell-0.2.33.dist-info}/WHEEL +0 -0
- {dekshell-0.2.31.dist-info → dekshell-0.2.33.dist-info}/entry_points.txt +0 -0
dekshell/click/__init__.py
CHANGED
|
@@ -2,12 +2,13 @@ import sys
|
|
|
2
2
|
import typer
|
|
3
3
|
from dektools.file import normal_path
|
|
4
4
|
from dektools.output import pprint
|
|
5
|
-
from dektools.escape import
|
|
5
|
+
from dektools.escape import str_escape_unicode
|
|
6
6
|
from dektools.shell import associate_console_script, get_current_sys_exe
|
|
7
7
|
from dektools.typer import command_mixin, command_version
|
|
8
8
|
from dektools.plugin import iter_plugins
|
|
9
9
|
from ..core import shell_command_batch, shell_command_file, shell_command_file_cd
|
|
10
10
|
from ..core.markers.base import MarkerBase
|
|
11
|
+
from ..core.markers.base.core import MarkerContext
|
|
11
12
|
from ..core.contexts import get_all_context
|
|
12
13
|
from ..core.markers import generate_markers
|
|
13
14
|
from ..utils.serializer import serializer, SerializerException
|
|
@@ -25,7 +26,9 @@ def get_argv(index=None):
|
|
|
25
26
|
|
|
26
27
|
|
|
27
28
|
def get_kwargs(begin):
|
|
28
|
-
|
|
29
|
+
args, kwargs = MarkerBase.cmd2ak(get_argv()[begin:])
|
|
30
|
+
args, kwargs = MarkerBase.cmd_trans_batch(MarkerContext(), *args, **kwargs)
|
|
31
|
+
return pack_context_full(args, kwargs)
|
|
29
32
|
|
|
30
33
|
|
|
31
34
|
@command_mixin(app)
|
|
@@ -34,7 +37,7 @@ def rs(args):
|
|
|
34
37
|
args = serializer.load(args)
|
|
35
38
|
except SerializerException:
|
|
36
39
|
pass
|
|
37
|
-
shell_command_batch(
|
|
40
|
+
shell_command_batch(str_escape_unicode(args), context=pack_context_full())
|
|
38
41
|
|
|
39
42
|
|
|
40
43
|
@app.command(
|
dekshell/core/__init__.py
CHANGED
|
@@ -14,15 +14,15 @@ from .markers import generate_markers, CommentConfigMarker
|
|
|
14
14
|
from .markers.base.core import MarkerBase, MarkerSet
|
|
15
15
|
from ..utils.beep import sound_notify
|
|
16
16
|
from ..utils.shell import shell_bin
|
|
17
|
-
from ..utils.cmd import
|
|
17
|
+
from ..utils.cmd import pack_context_full
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
def shell_file(__placeholder__filepath, *args, **kwargs):
|
|
21
|
-
shell_wrapper(f'{shell_bin} rf "{__placeholder__filepath}" {ak2cmd(args, kwargs)}')
|
|
21
|
+
shell_wrapper(f'{shell_bin} rf "{__placeholder__filepath}" {MarkerBase.ak2cmd(args, kwargs)}')
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
def shell_file_cd(__placeholder__filepath, *args, **kwargs):
|
|
25
|
-
shell_wrapper(f'{shell_bin} rfc "{__placeholder__filepath}" {ak2cmd(args, kwargs)}')
|
|
25
|
+
shell_wrapper(f'{shell_bin} rfc "{__placeholder__filepath}" {MarkerBase.ak2cmd(args, kwargs)}')
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
def shell_command_file_cd(filepath, **kwargs):
|
|
@@ -31,7 +31,7 @@ from dektools.shell import shell_wrapper, is_user_admin, shell_timeout, shell_re
|
|
|
31
31
|
from dektools.match import GeneralMatcher, glob2re, glob_compile, glob_match
|
|
32
32
|
from dektools.cmd.git import git_clean_dir, git_apply, git_parse_modules, git_fetch_min, git_list_remotes, git_head
|
|
33
33
|
from ...utils.beep import sound_notify
|
|
34
|
-
from ...utils.cmd import
|
|
34
|
+
from ...utils.cmd import pack_context_full
|
|
35
35
|
from ..markers.base.core import MarkerBase, get_inner_vars
|
|
36
36
|
from ..markers.invoke import InvokeMarker, GotoMarker
|
|
37
37
|
from ..redirect import search_bin_by_path_tree
|
|
@@ -308,7 +308,7 @@ default_methods = {
|
|
|
308
308
|
|
|
309
309
|
'sys': {
|
|
310
310
|
'utf8': lambda: sys.stdout.reconfigure(encoding='utf-8'),
|
|
311
|
-
'ak': ak2cmd,
|
|
311
|
+
'ak': MarkerBase.ak2cmd,
|
|
312
312
|
},
|
|
313
313
|
|
|
314
314
|
'compress': compress_files,
|
|
@@ -14,6 +14,7 @@ from dektools.file import read_text
|
|
|
14
14
|
from dektools.env import is_on_cicd
|
|
15
15
|
from ...utils.serializer import serializer
|
|
16
16
|
from ..redirect import shell_name
|
|
17
|
+
from ..markers.base.core import get_inner_vars
|
|
17
18
|
|
|
18
19
|
current_shell = shutil.which(shell_name, path=get_paths()['scripts'])
|
|
19
20
|
current_os = extra_platforms_current_os()
|
|
@@ -50,6 +51,26 @@ class _Env:
|
|
|
50
51
|
return item.upper() in os.environ
|
|
51
52
|
|
|
52
53
|
|
|
54
|
+
class _EnvS:
|
|
55
|
+
def __getattr__(self, item):
|
|
56
|
+
context = get_inner_vars('__inner_context__', full=True)
|
|
57
|
+
return context.get_env(item.upper(), '')
|
|
58
|
+
|
|
59
|
+
def __getitem__(self, item):
|
|
60
|
+
context = get_inner_vars('__inner_context__', full=True)
|
|
61
|
+
default = object()
|
|
62
|
+
ret = context.get_env(item.upper(), default)
|
|
63
|
+
if ret is default:
|
|
64
|
+
raise KeyError(item)
|
|
65
|
+
return ret
|
|
66
|
+
|
|
67
|
+
def __contains__(self, item):
|
|
68
|
+
context = get_inner_vars('__inner_context__', full=True)
|
|
69
|
+
default = object()
|
|
70
|
+
ret = context.get_env(item.upper(), default)
|
|
71
|
+
return ret is not default
|
|
72
|
+
|
|
73
|
+
|
|
53
74
|
default_properties = {
|
|
54
75
|
'meta': {
|
|
55
76
|
'name': package_name,
|
|
@@ -82,5 +103,6 @@ default_properties = {
|
|
|
82
103
|
'obj': serializer,
|
|
83
104
|
'mp': ModuleProxy(),
|
|
84
105
|
'date': DateTime(),
|
|
85
|
-
'
|
|
106
|
+
'env': _Env(),
|
|
107
|
+
'envs': _EnvS(),
|
|
86
108
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import os
|
|
2
2
|
import re
|
|
3
3
|
import functools
|
|
4
|
-
from dektools.str import deep_format, split_table_line, shlex_split
|
|
4
|
+
from dektools.str import deep_format, split_table_line, shlex_split, shlex_quote
|
|
5
5
|
from dektools.common import classproperty
|
|
6
6
|
from dektools.shell import shell_output, shell_wrapper, shell_exitcode
|
|
7
|
+
from dektools.escape import str_escape_custom
|
|
7
8
|
from ....utils.serializer import serializer
|
|
8
|
-
from ....utils.cmd import cmd2ak
|
|
9
9
|
|
|
10
10
|
cmd_call_prefix_simple = '>'
|
|
11
11
|
cmd_call_prefix = cmd_call_prefix_simple * 2
|
|
@@ -13,6 +13,7 @@ cmd_call_prefix_chain = '*'
|
|
|
13
13
|
cmd_call_eval_prefix = '='
|
|
14
14
|
cmd_call_eval_trans_prefix = cmd_call_eval_prefix + ':'
|
|
15
15
|
cmd_call_eval_escape = '\\'
|
|
16
|
+
cmd_call_sep = '--'
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
class MarkerBase:
|
|
@@ -133,7 +134,7 @@ class MarkerBase:
|
|
|
133
134
|
else:
|
|
134
135
|
argv = cls.split(s)
|
|
135
136
|
args, kwargs = cls.cmd2ak(argv[1:])
|
|
136
|
-
args, kwargs = cls.
|
|
137
|
+
args, kwargs = cls.cmd_trans_batch(context, *args, **kwargs)
|
|
137
138
|
func = argv[0]
|
|
138
139
|
return func, args, kwargs
|
|
139
140
|
|
|
@@ -260,7 +261,7 @@ class MarkerBase:
|
|
|
260
261
|
else:
|
|
261
262
|
if body:
|
|
262
263
|
args, kwargs = cls.cmd2ak(cls.split(body))
|
|
263
|
-
args, kwargs = cls.
|
|
264
|
+
args, kwargs = cls.cmd_trans_batch(context, *args, **kwargs)
|
|
264
265
|
else:
|
|
265
266
|
args, kwargs = [], {}
|
|
266
267
|
value = f(*args, **kwargs)
|
|
@@ -287,21 +288,79 @@ class MarkerBase:
|
|
|
287
288
|
return locals_
|
|
288
289
|
|
|
289
290
|
@classmethod
|
|
290
|
-
def
|
|
291
|
+
def cmd_trans(cls, context, s, trans_sep):
|
|
291
292
|
if s.startswith(cmd_call_eval_prefix):
|
|
292
293
|
return cls.eval(context, s[len(cmd_call_eval_prefix):])
|
|
293
294
|
else:
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
295
|
+
def skip(c, index):
|
|
296
|
+
if trans_sep:
|
|
297
|
+
nonlocal sep_skip
|
|
298
|
+
if sep_skip:
|
|
299
|
+
return True
|
|
300
|
+
if c == cmd_call_sep:
|
|
301
|
+
if not re.fullmatch(r'[^\W\d]\w*', s[:index - len(cmd_call_eval_escape)]):
|
|
302
|
+
sep_skip = True
|
|
303
|
+
return True
|
|
304
|
+
return False
|
|
305
|
+
|
|
306
|
+
def process(mapping, index, x, y):
|
|
307
|
+
if trans_sep:
|
|
308
|
+
if x == cmd_call_sep:
|
|
309
|
+
nonlocal sep_skip
|
|
310
|
+
sep_skip = True
|
|
311
|
+
else:
|
|
312
|
+
nonlocal clear_eval
|
|
313
|
+
if not clear_eval and (x is None or x == cmd_call_eval_prefix):
|
|
314
|
+
clear_eval = True
|
|
315
|
+
mapping.pop(cmd_call_eval_prefix)
|
|
316
|
+
|
|
317
|
+
clear_eval = False
|
|
318
|
+
sep_skip = False
|
|
319
|
+
targets = [cmd_call_eval_prefix]
|
|
320
|
+
if trans_sep:
|
|
321
|
+
targets.append(cmd_call_sep)
|
|
322
|
+
return str_escape_custom(s, targets, cmd_call_eval_escape, keep=True, process=process, skip=skip)
|
|
297
323
|
|
|
298
324
|
@classmethod
|
|
299
|
-
def
|
|
300
|
-
return
|
|
325
|
+
def cmd_trans_batch(cls, context, *args, **kwargs):
|
|
326
|
+
return (
|
|
327
|
+
[cls.cmd_trans(context, x, True) for x in args],
|
|
328
|
+
{k: cls.cmd_trans(context, v, False) for k, v in kwargs.items()}
|
|
329
|
+
)
|
|
301
330
|
|
|
302
331
|
@staticmethod
|
|
303
332
|
def cmd2ak(argv):
|
|
304
|
-
|
|
333
|
+
# arg0 =arg1-eval-value \=arg2 arg3\--not-kwarg
|
|
334
|
+
# k0--v k1--=eval-value k2--\=v
|
|
335
|
+
args = []
|
|
336
|
+
kwargs = {}
|
|
337
|
+
for x in argv:
|
|
338
|
+
if re.match(r'[^\W\d]\w*' + cmd_call_sep, x):
|
|
339
|
+
k, v = x.split(cmd_call_sep, 1)
|
|
340
|
+
kwargs[k] = v
|
|
341
|
+
else:
|
|
342
|
+
args.append(x)
|
|
343
|
+
return args, kwargs
|
|
344
|
+
|
|
345
|
+
@staticmethod
|
|
346
|
+
def ak2cmd(args=None, kwargs=None):
|
|
347
|
+
result = []
|
|
348
|
+
if args:
|
|
349
|
+
for x in args:
|
|
350
|
+
if isinstance(x, str):
|
|
351
|
+
m = re.match(r'[^\W\d]\w*' + cmd_call_sep, x)
|
|
352
|
+
if m:
|
|
353
|
+
index = m.span()[-1] - len(cmd_call_sep)
|
|
354
|
+
x = x[:index] + cmd_call_eval_escape + x[index:]
|
|
355
|
+
else:
|
|
356
|
+
x = f"={repr(x)}"
|
|
357
|
+
result.append(shlex_quote(x))
|
|
358
|
+
if kwargs:
|
|
359
|
+
for k, v in kwargs.items():
|
|
360
|
+
if not isinstance(v, str):
|
|
361
|
+
v = f"={repr(v)}"
|
|
362
|
+
result.append(shlex_quote(f'{k}--{v}'))
|
|
363
|
+
return ' '.join(result)
|
|
305
364
|
|
|
306
365
|
|
|
307
366
|
class EndMarker(MarkerBase):
|
|
@@ -71,29 +71,38 @@ class RaiseMarker(MarkerBase):
|
|
|
71
71
|
self.raise_(args[1])
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
class
|
|
74
|
+
class MarkerScope(MarkerBase):
|
|
75
|
+
scope_sep = ','
|
|
76
|
+
|
|
77
|
+
def execute_core(self, command, func):
|
|
78
|
+
names = self.split_raw(command, 1)[-1]
|
|
79
|
+
for name in names.split(self.scope_sep):
|
|
80
|
+
func(name.strip())
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
class VarGlobalMarker(MarkerScope):
|
|
75
84
|
tag_head = "global"
|
|
76
85
|
|
|
77
86
|
def execute(self, context, command, marker_node, marker_set):
|
|
78
|
-
|
|
87
|
+
self.execute_core(command, context.variables.mark_global)
|
|
79
88
|
|
|
80
89
|
|
|
81
|
-
class VarNonlocalMarker(
|
|
90
|
+
class VarNonlocalMarker(MarkerScope):
|
|
82
91
|
tag_head = "nonlocal"
|
|
83
92
|
|
|
84
93
|
def execute(self, context, command, marker_node, marker_set):
|
|
85
|
-
|
|
94
|
+
self.execute_core(command, context.variables.mark_nonlocal)
|
|
86
95
|
|
|
87
96
|
|
|
88
|
-
class EnvGlobalMarker(
|
|
97
|
+
class EnvGlobalMarker(MarkerScope):
|
|
89
98
|
tag_head = "global$"
|
|
90
99
|
|
|
91
100
|
def execute(self, context, command, marker_node, marker_set):
|
|
92
|
-
|
|
101
|
+
self.execute_core(command, context.environ.mark_global)
|
|
93
102
|
|
|
94
103
|
|
|
95
|
-
class EnvNonlocalMarker(
|
|
104
|
+
class EnvNonlocalMarker(MarkerScope):
|
|
96
105
|
tag_head = "nonlocal$"
|
|
97
106
|
|
|
98
107
|
def execute(self, context, command, marker_node, marker_set):
|
|
99
|
-
|
|
108
|
+
self.execute_core(command, context.environ.mark_nonlocal)
|
|
@@ -2,7 +2,7 @@ import os
|
|
|
2
2
|
from dektools.shell import shell_wrapper
|
|
3
3
|
from dektools.attr import DeepObject
|
|
4
4
|
from ...core.redirect import redirect_shell_by_path_tree
|
|
5
|
-
from ...utils.cmd import
|
|
5
|
+
from ...utils.cmd import key_args, key_kwargs
|
|
6
6
|
from ..contexts.properties import make_shell_properties, current_shell
|
|
7
7
|
from .base import MarkerBase
|
|
8
8
|
|
|
@@ -37,7 +37,7 @@ class RedirectMarker(MarkerRedirect):
|
|
|
37
37
|
fpp = os.path.dirname(fp).replace('/', os.sep)
|
|
38
38
|
shell = shell_properties['sh']['rfc' if os.getcwd() == fpp else 'rf']
|
|
39
39
|
args, kwargs = self.eval(context, f'({key_args}, {key_kwargs})')
|
|
40
|
-
argv = ak2cmd(args, kwargs)
|
|
40
|
+
argv = self.ak2cmd(args, kwargs)
|
|
41
41
|
shell_wrapper(f'{shell} {fp} {argv}', env=context.environ_full())
|
|
42
42
|
return self.exit()
|
|
43
43
|
marker_set.check_stack_error(marker_node)
|
dekshell/utils/cmd.py
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import re
|
|
2
1
|
import sys
|
|
3
|
-
from dektools.escape.str import str_escape_one_type
|
|
4
|
-
from dektools.str import shlex_quote
|
|
5
2
|
|
|
6
3
|
key_arg = '__arg'
|
|
7
4
|
key_args = f'{key_arg}s'
|
|
@@ -9,30 +6,6 @@ key_kwargs = '__kwargs'
|
|
|
9
6
|
key_argv = f'{key_arg}v'
|
|
10
7
|
|
|
11
8
|
|
|
12
|
-
def cmd2ak(argv): # arg0 arg-\-1 k0--kwarg0 k1--kwarg1
|
|
13
|
-
args = []
|
|
14
|
-
kwargs = {}
|
|
15
|
-
for x in argv:
|
|
16
|
-
if re.match(r'[^\W\d]\w*--', x):
|
|
17
|
-
k, v = x.split('--', 1)
|
|
18
|
-
kwargs[k] = v
|
|
19
|
-
else:
|
|
20
|
-
args.append(str_escape_one_type(x, '-', '-'))
|
|
21
|
-
return args, kwargs
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def ak2cmd(args=None, kwargs=None):
|
|
25
|
-
result = []
|
|
26
|
-
if args:
|
|
27
|
-
for arg in args:
|
|
28
|
-
arg = arg.replace('--', r'-\-')
|
|
29
|
-
result.append(shlex_quote(arg))
|
|
30
|
-
if kwargs:
|
|
31
|
-
for k, v in kwargs.items():
|
|
32
|
-
result.append(shlex_quote(f'{k}--{v}'))
|
|
33
|
-
return ' '.join(result)
|
|
34
|
-
|
|
35
|
-
|
|
36
9
|
def pack_context(args, kwargs):
|
|
37
10
|
return {
|
|
38
11
|
**{f'{key_arg}{i}': arg for i, arg in enumerate(args)}, **{key_args: tuple(args), key_kwargs: kwargs}, **kwargs}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
dekshell-0.2.
|
|
2
|
-
dekshell-0.2.
|
|
3
|
-
dekshell-0.2.
|
|
1
|
+
dekshell-0.2.33.dist-info/METADATA,sha256=PJWyrsTeOz1Hd2RZ9dZto3UTG18hZBNSoJT-x0naKzs,573
|
|
2
|
+
dekshell-0.2.33.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
|
|
3
|
+
dekshell-0.2.33.dist-info/entry_points.txt,sha256=d-kbfULiUTZWIBBsrQF3J_-wESncF-4K2rwHT08grlI,75
|
|
4
4
|
dekshell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
dekshell/click/__entry__.py,sha256=CMuxUzXoEe4TcHFZwv-MNFwHnu1HSZCDpXFpqQ814uM,42
|
|
6
|
-
dekshell/click/__init__.py,sha256=
|
|
7
|
-
dekshell/core/__init__.py,sha256=
|
|
6
|
+
dekshell/click/__init__.py,sha256=r-AHdO9CEEVvTN20-8Jozr6Zh8XSv_BnktYRwrlhtrE,2046
|
|
7
|
+
dekshell/core/__init__.py,sha256=isDEKwk1odLdvTQNCILCtVNBuXp1uFVPz_uTDNihkVU,5547
|
|
8
8
|
dekshell/core/contexts/__init__.py,sha256=ynsfv37azOKfI2UKd0iPl2M6iBW-k5cb1BqSLOWuJpI,482
|
|
9
|
-
dekshell/core/contexts/methods.py,sha256=
|
|
10
|
-
dekshell/core/contexts/properties.py,sha256=
|
|
9
|
+
dekshell/core/contexts/methods.py,sha256=SukHnNNvxnRPySGB6xQNf2eXX-3FaaQBetBJFjN9Fso,10378
|
|
10
|
+
dekshell/core/contexts/properties.py,sha256=wT_gvK89JDU3NDOwiQKz4e2ukrLG6yXUhBsOk8NMQpE,3123
|
|
11
11
|
dekshell/core/markers/__init__.py,sha256=yRQazZ1dxMltFao_RQnDnawSnQcjN_4B930MjJhaZ40,1968
|
|
12
|
-
dekshell/core/markers/base/__init__.py,sha256=
|
|
12
|
+
dekshell/core/markers/base/__init__.py,sha256=W5f_Mcn9MLM8kOVqu05NUaDpn3xUNURe_NYerUoH6Js,16021
|
|
13
13
|
dekshell/core/markers/base/core.py,sha256=InsUA3md2gC6GyXQsvARfeNTrfbVD3gGOYxTM8VqqPA,11679
|
|
14
14
|
dekshell/core/markers/base/shell.py,sha256=fiFsTUDI8pSDDUCk834OI4ajri2qNWFJkLVhmUk2uAs,484
|
|
15
15
|
dekshell/core/markers/commands.py,sha256=mDRj4dSfKbDaZ_ts4lPXd6wftvGFI4VKkRoIzxV7otA,1696
|
|
@@ -20,12 +20,12 @@ dekshell/core/markers/empty.py,sha256=pWKsHlrp6uXWU6blqOs0IgN_3kYm1OmDQiKGPERabA
|
|
|
20
20
|
dekshell/core/markers/env.py,sha256=6ZtiMNdKFbGR_DBjG6C7A8L_lJsiymN5Y5AbnTzyMrE,1158
|
|
21
21
|
dekshell/core/markers/exec.py,sha256=4_7FRUEgbAtt0_9r8TmOar_Zi6VXxe6E7p3RL6sVgQg,2705
|
|
22
22
|
dekshell/core/markers/for_.py,sha256=uNOEwyDsjffttEBtUYasdlj7FP_sGnQzWuTV5d5esHY,2142
|
|
23
|
-
dekshell/core/markers/function.py,sha256=
|
|
23
|
+
dekshell/core/markers/function.py,sha256=V7WZ438RQ0a96wMu9AwWH-dtQMBO9IenaKTWyzRqDUo,3804
|
|
24
24
|
dekshell/core/markers/if_.py,sha256=bBG1fDCZd5alE5FSm0QhgHl6ZJn5awiqZAXnPnO-thc,1112
|
|
25
25
|
dekshell/core/markers/input.py,sha256=O0yvGtt1uhbpE2gOReLseAmshVpZYMW3zV-OabZt0lw,1182
|
|
26
26
|
dekshell/core/markers/invoke.py,sha256=To_U_FscoCbf7osvjC5MQTk2gjH5Mu_-06Kb22YQPTo,1441
|
|
27
27
|
dekshell/core/markers/pip_.py,sha256=mxXa_oqcrk4Qz-HvhlkMoirsl-SbM9Fz610leNqP1o0,832
|
|
28
|
-
dekshell/core/markers/redirect.py,sha256=
|
|
28
|
+
dekshell/core/markers/redirect.py,sha256=cpTQaXFAuSwprsrhUNP0xTGDmu06HGNQVcwKsETEjas,1981
|
|
29
29
|
dekshell/core/markers/shell.py,sha256=43BDAAzMdmgZmemkW5buh_w4LL1GDGw-s9fNZo6vhag,1929
|
|
30
30
|
dekshell/core/markers/var.py,sha256=CnmBDQvA5XcQlioczXFhCvIbDc8ex4RIAgDeQvFdIiY,5176
|
|
31
31
|
dekshell/core/markers/while_.py,sha256=e7lI5jsIM-qxNHMY_wUyCMvvesdXQibR5Ez2jNO9csc,1195
|
|
@@ -33,8 +33,8 @@ dekshell/core/plugin/__init__.py,sha256=jAB_KnnHJsyJR_zIfBU_HNLngyhcyyqVv05PdlNZ
|
|
|
33
33
|
dekshell/core/redirect.py,sha256=6YCJpG0TkQ4WMt7LBtDD_W1T-C-QkLtGRQw0S60qe54,1058
|
|
34
34
|
dekshell/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
35
|
dekshell/utils/beep.py,sha256=teuQgHbWDr8BD1xCJ4Pt79X6N1-eq1tTlyGunK6wBIM,120
|
|
36
|
-
dekshell/utils/cmd.py,sha256=
|
|
36
|
+
dekshell/utils/cmd.py,sha256=K9FbXgHcGFchHA58xI0_t4YK4yb8XkWbxsNoztYRx3Y,518
|
|
37
37
|
dekshell/utils/pkg.py,sha256=TgYqRqawoJfjkxt6UAHnp9ttmpjuHiWRFbqxADOS1VE,1337
|
|
38
38
|
dekshell/utils/serializer.py,sha256=aIdF2Wzo-qHmIshv46jn1XD0X66vQ1JFdU-g3ZFbH2w,386
|
|
39
39
|
dekshell/utils/shell.py,sha256=0NoA2-SOOMinbmZZipwzL-npBbzPOdWEfdPVYqq5G5g,92
|
|
40
|
-
dekshell-0.2.
|
|
40
|
+
dekshell-0.2.33.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|