dekshell 0.2.43__py3-none-any.whl → 0.2.45__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/core/contexts/methods.py +45 -11
- dekshell/core/contexts/properties.py +16 -17
- dekshell/core/markers/__init__.py +4 -4
- dekshell/core/markers/base/__init__.py +29 -9
- dekshell/core/markers/base/core.py +11 -3
- dekshell/core/markers/define.py +1 -1
- dekshell/core/markers/env.py +2 -2
- dekshell/core/markers/exec.py +20 -2
- dekshell/core/markers/for_.py +1 -1
- dekshell/core/markers/function.py +2 -2
- dekshell/core/markers/if_.py +1 -1
- dekshell/core/markers/input.py +1 -1
- dekshell/core/markers/invoke.py +1 -1
- dekshell/core/markers/var.py +2 -7
- dekshell/core/markers/while_.py +1 -1
- {dekshell-0.2.43.dist-info → dekshell-0.2.45.dist-info}/METADATA +1 -1
- {dekshell-0.2.43.dist-info → dekshell-0.2.45.dist-info}/RECORD +19 -19
- {dekshell-0.2.43.dist-info → dekshell-0.2.45.dist-info}/WHEEL +0 -0
- {dekshell-0.2.43.dist-info → dekshell-0.2.45.dist-info}/entry_points.txt +0 -0
|
@@ -100,37 +100,60 @@ def _remove_path(path):
|
|
|
100
100
|
_remove_path(item)
|
|
101
101
|
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
_default_value = object()
|
|
104
104
|
|
|
105
105
|
|
|
106
|
-
def
|
|
107
|
-
context = get_inner_vars('__inner_context__'
|
|
106
|
+
def _parse_expression(expression, default=_default_value, translate=False):
|
|
107
|
+
context = get_inner_vars('__inner_context__')
|
|
108
|
+
try:
|
|
109
|
+
return MarkerBase.parse_expression(context, expression, translate)
|
|
110
|
+
except NameError:
|
|
111
|
+
if default is _default_value:
|
|
112
|
+
raise
|
|
113
|
+
else:
|
|
114
|
+
return default
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def _eval_mixin(expression, default=_default_value, translate=False):
|
|
118
|
+
context = get_inner_vars('__inner_context__')
|
|
108
119
|
try:
|
|
109
120
|
return MarkerBase.eval_mixin(context, expression, translate)
|
|
110
121
|
except NameError:
|
|
111
|
-
if default is
|
|
122
|
+
if default is _default_value:
|
|
112
123
|
raise
|
|
113
124
|
else:
|
|
114
125
|
return default
|
|
115
126
|
|
|
116
127
|
|
|
117
|
-
def _eval_lines(expression, default=
|
|
118
|
-
context = get_inner_vars('__inner_context__'
|
|
128
|
+
def _eval_lines(expression, default=_default_value):
|
|
129
|
+
context = get_inner_vars('__inner_context__')
|
|
119
130
|
try:
|
|
120
131
|
return MarkerBase.eval_lines(context, expression)
|
|
121
132
|
except NameError:
|
|
122
|
-
if default is
|
|
133
|
+
if default is _default_value:
|
|
123
134
|
raise
|
|
124
135
|
else:
|
|
125
136
|
return default
|
|
126
137
|
|
|
127
138
|
|
|
128
139
|
def _global_update(variables):
|
|
129
|
-
context = get_inner_vars('__inner_context__'
|
|
140
|
+
context = get_inner_vars('__inner_context__')
|
|
130
141
|
for k, v in variables.items():
|
|
131
142
|
MarkerBase.set_var_raw(context, k, v)
|
|
132
143
|
|
|
133
144
|
|
|
145
|
+
def _env_update(variables):
|
|
146
|
+
context = get_inner_vars('__inner_context__')
|
|
147
|
+
for k, v in variables.items():
|
|
148
|
+
context.add_env(k, v)
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def _envs_update(variables):
|
|
152
|
+
context = get_inner_vars('__inner_context__')
|
|
153
|
+
for k, v in variables.items():
|
|
154
|
+
context.environ.add_item(k, v)
|
|
155
|
+
|
|
156
|
+
|
|
134
157
|
def _defined(name):
|
|
135
158
|
default = object()
|
|
136
159
|
return _eval_mixin(name, default=default) is not default
|
|
@@ -198,7 +221,7 @@ def _time_mark(begin=True, name=None):
|
|
|
198
221
|
if name is None:
|
|
199
222
|
name = ''
|
|
200
223
|
name = str(name).strip()
|
|
201
|
-
marker_set = get_inner_vars('__inner_marker_set__'
|
|
224
|
+
marker_set = get_inner_vars('__inner_marker_set__')
|
|
202
225
|
_now = time.time_ns()
|
|
203
226
|
if begin:
|
|
204
227
|
marker_set.vars.add_item(var_prefix + name, _now)
|
|
@@ -245,10 +268,21 @@ default_methods = {
|
|
|
245
268
|
'timeout': shell_timeout,
|
|
246
269
|
'retry': shell_retry,
|
|
247
270
|
'run': shell_wrapper,
|
|
271
|
+
'env': {
|
|
272
|
+
None: lambda k, v: _env_update({k: v}),
|
|
273
|
+
'update': _env_update,
|
|
274
|
+
},
|
|
275
|
+
'envs': {
|
|
276
|
+
None: lambda k, v: _envs_update({k: v}),
|
|
277
|
+
'update': _envs_update,
|
|
278
|
+
},
|
|
279
|
+
'expr': _parse_expression,
|
|
248
280
|
'eval': _eval_mixin,
|
|
249
281
|
'exec': _eval_lines,
|
|
250
|
-
'
|
|
251
|
-
|
|
282
|
+
'var': {
|
|
283
|
+
None: lambda k, v: _global_update({k: v}),
|
|
284
|
+
'update': _global_update,
|
|
285
|
+
},
|
|
252
286
|
'invoke': lambda __placeholder__filepath, *args, **kwargs: InvokeMarker.execute_file(
|
|
253
287
|
None, __placeholder__filepath, args, kwargs),
|
|
254
288
|
'goto': lambda __placeholder__filepath, *args, **kwargs: GotoMarker.execute_file(
|
|
@@ -44,37 +44,36 @@ is_on_win = os.name == "nt"
|
|
|
44
44
|
path_root = path_home[:path_home.find(os.sep)] if is_on_win else os.sep
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
class
|
|
48
|
-
|
|
49
|
-
return os.environ.get(item.upper(), '')
|
|
50
|
-
|
|
51
|
-
def __getitem__(self, item):
|
|
52
|
-
return os.environ[item.upper()]
|
|
53
|
-
|
|
54
|
-
def __contains__(self, item):
|
|
55
|
-
return item.upper() in os.environ
|
|
47
|
+
class _EnvBase:
|
|
48
|
+
__getenv__ = None
|
|
56
49
|
|
|
57
|
-
|
|
58
|
-
class _EnvS:
|
|
59
50
|
def __getattr__(self, item):
|
|
60
|
-
context = get_inner_vars('__inner_context__'
|
|
61
|
-
return context.
|
|
51
|
+
context = get_inner_vars('__inner_context__')
|
|
52
|
+
return getattr(context, self.__getenv__)(item.upper(), '')
|
|
62
53
|
|
|
63
54
|
def __getitem__(self, item):
|
|
64
|
-
context = get_inner_vars('__inner_context__'
|
|
55
|
+
context = get_inner_vars('__inner_context__')
|
|
65
56
|
default = object()
|
|
66
|
-
ret = context.
|
|
57
|
+
ret = getattr(context, self.__getenv__)(item.upper(), default)
|
|
67
58
|
if ret is default:
|
|
68
59
|
raise KeyError(item)
|
|
69
60
|
return ret
|
|
70
61
|
|
|
71
62
|
def __contains__(self, item):
|
|
72
|
-
context = get_inner_vars('__inner_context__'
|
|
63
|
+
context = get_inner_vars('__inner_context__')
|
|
73
64
|
default = object()
|
|
74
|
-
ret = context.
|
|
65
|
+
ret = getattr(context, self.__getenv__)(item.upper(), default)
|
|
75
66
|
return ret is not default
|
|
76
67
|
|
|
77
68
|
|
|
69
|
+
class _Env(_EnvBase):
|
|
70
|
+
__getenv__ = 'get_env'
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class _EnvS(_EnvBase):
|
|
74
|
+
__getenv__ = 'get_env_full'
|
|
75
|
+
|
|
76
|
+
|
|
78
77
|
default_properties = {
|
|
79
78
|
'meta': {
|
|
80
79
|
'name': package_name,
|
|
@@ -26,9 +26,9 @@ def generate_markers(*args, **kwargs):
|
|
|
26
26
|
ErrorEchoMarker, EchoNoWrapMarker, EchoMarker,
|
|
27
27
|
InputMarker, InputOnceMarker,
|
|
28
28
|
DelVarMarker,
|
|
29
|
-
ExecLinesUpdateMarker, ExecLinesMarker, ExecTranslatorMarker, ExecMarker,
|
|
30
|
-
|
|
31
|
-
ExecCmdcallMarker, ExecCmdcallChainMarker,
|
|
29
|
+
ExecLinesUpdateMarker, ExecLinesTranslatorMarker, ExecLinesMarker, ExecTranslatorMarker, ExecMarker,
|
|
30
|
+
ExecCommandOutputChainMarker,
|
|
31
|
+
ExecCmdcallSimpleLinesMarker, ExecCmdcallLinesMarker, ExecCmdcallMarker, ExecCmdcallChainMarker,
|
|
32
32
|
EnvShellMarker, EnvMarker,
|
|
33
33
|
IfMarker, IfElifMarker, IfElseMarker,
|
|
34
34
|
WhileMarker, WhileElseMarker,
|
|
@@ -50,7 +50,7 @@ def generate_markers(*args, **kwargs):
|
|
|
50
50
|
AssignRetryMarker,
|
|
51
51
|
AssignExecMarker, AssignTranslatorEvalMarker, AssignEvalMarker,
|
|
52
52
|
AssignCommandRcSilenceMarker, AssignCommandRcMarker, AssignCommandOutputMarker,
|
|
53
|
-
|
|
53
|
+
AssignDecodeMarker, AssignEncodeMarker,
|
|
54
54
|
AssignEnvMarker, AssignEnvFullMarker, AssignCmdcallMarker, AssignCmdcallChainMarker,
|
|
55
55
|
AssignMultiLineRawStrMarker, AssignMultiLineStrMarker, AssignRawStrMarker, AssignStrMarker,
|
|
56
56
|
EmptyMarker, # must be at the tail
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import re
|
|
3
2
|
import functools
|
|
4
3
|
from dektools.str import deep_format, split_table_line, shlex_split, shlex_quote
|
|
@@ -30,7 +29,6 @@ class MarkerBase:
|
|
|
30
29
|
trans_marker_command_rc_silence = '<<<'
|
|
31
30
|
trans_marker_command_rc = '<<'
|
|
32
31
|
trans_marker_command_output = '<'
|
|
33
|
-
trans_marker_encode_str = '///'
|
|
34
32
|
trans_marker_decode = '//'
|
|
35
33
|
trans_marker_encode = '/'
|
|
36
34
|
trans_marker_env = '$$'
|
|
@@ -171,7 +169,7 @@ class MarkerBase:
|
|
|
171
169
|
change += 1
|
|
172
170
|
if change in (0, 2):
|
|
173
171
|
break
|
|
174
|
-
value = cls.parse_expression(context, expression, ignore_errors)
|
|
172
|
+
value = cls.parse_expression(context, expression, False, False, ignore_errors)
|
|
175
173
|
if as_var:
|
|
176
174
|
return context.add_variable_temp(value)
|
|
177
175
|
return value
|
|
@@ -183,10 +181,10 @@ class MarkerBase:
|
|
|
183
181
|
re.escape(cls.trans_marker__end), handler, cls.trans_marker__escape)
|
|
184
182
|
|
|
185
183
|
@classmethod
|
|
186
|
-
def parse_expression(cls, context, expression, ignore_errors=False):
|
|
184
|
+
def parse_expression(cls, context, expression, translate_eval=True, translate_others=True, ignore_errors=False):
|
|
187
185
|
def evaluate(expr, default):
|
|
188
186
|
try:
|
|
189
|
-
return cls.eval_mixin(context, expr,
|
|
187
|
+
return cls.eval_mixin(context, expr, translate_eval)
|
|
190
188
|
except NameError:
|
|
191
189
|
if ignore_errors:
|
|
192
190
|
return default
|
|
@@ -198,22 +196,29 @@ class MarkerBase:
|
|
|
198
196
|
|
|
199
197
|
if expression.startswith(cls.trans_marker_command_rc_silence):
|
|
200
198
|
expression = expression[len(cls.trans_marker_command_rc_silence):]
|
|
199
|
+
if translate_others:
|
|
200
|
+
expression = cls.translate_case(context, expression, True)
|
|
201
201
|
return shell_exitcode(expression, env=context.environ_full())
|
|
202
202
|
elif expression.startswith(cls.trans_marker_command_rc):
|
|
203
203
|
expression = expression[len(cls.trans_marker_command_rc):]
|
|
204
|
+
if translate_others:
|
|
205
|
+
expression = cls.translate_case(context, expression, True)
|
|
204
206
|
return shell_wrapper(expression, check=False, env=context.environ_full())
|
|
205
207
|
elif expression.startswith(cls.trans_marker_command_output):
|
|
206
208
|
expression = expression[len(cls.trans_marker_command_output):]
|
|
209
|
+
if translate_others:
|
|
210
|
+
expression = cls.translate_case(context, expression, True)
|
|
207
211
|
return shell_output(expression, env=context.environ_full())
|
|
208
212
|
elif expression.startswith(cls.trans_marker_env):
|
|
209
213
|
expression = expression[len(cls.trans_marker_env):]
|
|
214
|
+
if translate_others:
|
|
215
|
+
expression = cls.translate_case(context, expression, True)
|
|
210
216
|
return context.get_env(expression.strip(), default_value)
|
|
211
217
|
elif expression.startswith(cls.trans_marker_env_full):
|
|
212
218
|
expression = expression[len(cls.trans_marker_env_full):]
|
|
219
|
+
if translate_others:
|
|
220
|
+
expression = cls.translate_case(context, expression, True)
|
|
213
221
|
return context.get_env_full(expression.strip(), default_value)
|
|
214
|
-
elif expression.startswith(cls.trans_marker_encode_str):
|
|
215
|
-
expression = expression[len(cls.trans_marker_encode_str):]
|
|
216
|
-
return serializer.dump(expression)
|
|
217
222
|
elif expression.startswith(cls.trans_marker_decode):
|
|
218
223
|
expression = expression[len(cls.trans_marker_decode):]
|
|
219
224
|
value = evaluate(expression, empty_value)
|
|
@@ -435,13 +440,28 @@ class TransformerMarker(MarkerBase):
|
|
|
435
440
|
class MarkerWithEnd(MarkerBase):
|
|
436
441
|
tag_tail = EndMarker
|
|
437
442
|
|
|
438
|
-
def get_inner_content(self, context, marker_node, sep='\n', translate=None):
|
|
443
|
+
def get_inner_content(self, context, marker_node, sep='\n', translate=None, code=False):
|
|
439
444
|
def walk(node, depth):
|
|
440
445
|
if depth != 0:
|
|
441
446
|
commands.append(self.translate_case(context, node.text_content, translate))
|
|
442
447
|
|
|
443
448
|
commands = []
|
|
444
449
|
marker_node.walk(walk)
|
|
450
|
+
if code:
|
|
451
|
+
if commands:
|
|
452
|
+
c = commands[0]
|
|
453
|
+
cc = c.lstrip()
|
|
454
|
+
tabs = c[:len(c) - len(cc)]
|
|
455
|
+
result = []
|
|
456
|
+
for index, line in enumerate(commands):
|
|
457
|
+
if not line.startswith(tabs) and line.lstrip():
|
|
458
|
+
raise ValueError(
|
|
459
|
+
f'Code indent error:\n'
|
|
460
|
+
f'lineno=>{marker_node.line_number + index + 1}\n'
|
|
461
|
+
f'translated-line=>{line}'
|
|
462
|
+
)
|
|
463
|
+
result.append(line[len(tabs):])
|
|
464
|
+
commands = result
|
|
445
465
|
return sep.join(commands)
|
|
446
466
|
|
|
447
467
|
def eval_codes(self, context, code):
|
|
@@ -7,7 +7,7 @@ from dektools.typing import NoneType
|
|
|
7
7
|
from . import MarkerBase, TransformerMarker, ExitException, QuitContextException
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
def get_inner_vars(*var_name_list, full=
|
|
10
|
+
def get_inner_vars(*var_name_list, full=True):
|
|
11
11
|
def walk(attr):
|
|
12
12
|
depth = 1
|
|
13
13
|
while True:
|
|
@@ -98,6 +98,14 @@ class MarkerContext:
|
|
|
98
98
|
def get_env(name, default=None):
|
|
99
99
|
return os.environ.get(name, default)
|
|
100
100
|
|
|
101
|
+
@staticmethod
|
|
102
|
+
def add_env(key, value):
|
|
103
|
+
os.environ[key] = value
|
|
104
|
+
|
|
105
|
+
@staticmethod
|
|
106
|
+
def remove_env(key):
|
|
107
|
+
os.environ.pop(key, None)
|
|
108
|
+
|
|
101
109
|
|
|
102
110
|
class HiddenVarSet:
|
|
103
111
|
def __init__(self):
|
|
@@ -215,8 +223,8 @@ class MarkerNode:
|
|
|
215
223
|
raise
|
|
216
224
|
except Exception as e:
|
|
217
225
|
sys.stderr.write(f"Execute error {node.marker}:\n\
|
|
218
|
-
command=>
|
|
219
|
-
|
|
226
|
+
command=>{node.command if node.command_old is None else node.command_old}\n\
|
|
227
|
+
lineno=>{node.line_number}\n\
|
|
220
228
|
context=>\n\
|
|
221
229
|
{context}")
|
|
222
230
|
raise e from None
|
dekshell/core/markers/define.py
CHANGED
|
@@ -12,5 +12,5 @@ class DefineMarker(MarkerNoTranslator):
|
|
|
12
12
|
except NameError:
|
|
13
13
|
expression = self.get_item(args, 2)
|
|
14
14
|
if expression:
|
|
15
|
-
result = self.
|
|
15
|
+
result = self.parse_expression(context, expression)
|
|
16
16
|
self.set_var_raw(context, var_name, result)
|
dekshell/core/markers/env.py
CHANGED
|
@@ -24,9 +24,9 @@ class EnvMarker(MarkerEnvBase):
|
|
|
24
24
|
if key:
|
|
25
25
|
key = key.upper()
|
|
26
26
|
if value is None:
|
|
27
|
-
|
|
27
|
+
context.remove_env(key)
|
|
28
28
|
else:
|
|
29
|
-
|
|
29
|
+
context.add_env(key, value)
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
class EnvShellMarker(MarkerEnvBase):
|
dekshell/core/markers/exec.py
CHANGED
|
@@ -25,7 +25,16 @@ class ExecLinesMarker(MarkerWithEnd, MarkerNoTranslator):
|
|
|
25
25
|
tag_head = cmd_call_eval_prefix * 2
|
|
26
26
|
|
|
27
27
|
def execute(self, context, command, marker_node, marker_set):
|
|
28
|
-
code = self.get_inner_content(context, marker_node, translate=False)
|
|
28
|
+
code = self.get_inner_content(context, marker_node, translate=False, code=True)
|
|
29
|
+
self.eval_lines(context, code)
|
|
30
|
+
return []
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ExecLinesTranslatorMarker(MarkerWithEnd):
|
|
34
|
+
tag_head = cmd_call_eval_prefix + cmd_call_eval_trans_prefix
|
|
35
|
+
|
|
36
|
+
def execute(self, context, command, marker_node, marker_set):
|
|
37
|
+
code = self.get_inner_content(context, marker_node, translate=True, code=True)
|
|
29
38
|
self.eval_lines(context, code)
|
|
30
39
|
return []
|
|
31
40
|
|
|
@@ -34,7 +43,7 @@ class ExecLinesUpdateMarker(MarkerWithEnd, MarkerNoTranslator):
|
|
|
34
43
|
tag_head = cmd_call_eval_prefix * 3
|
|
35
44
|
|
|
36
45
|
def execute(self, context, command, marker_node, marker_set):
|
|
37
|
-
code = self.get_inner_content(context, marker_node, translate=False)
|
|
46
|
+
code = self.get_inner_content(context, marker_node, translate=False, code=True)
|
|
38
47
|
context.update_variables(self.eval_lines(context, code))
|
|
39
48
|
return []
|
|
40
49
|
|
|
@@ -52,6 +61,15 @@ class ExecCmdcallChainMarker(ExecCmdcallMarkerBase):
|
|
|
52
61
|
tag_head = cmd_call_prefix_chain + cmd_call_prefix_simple
|
|
53
62
|
|
|
54
63
|
|
|
64
|
+
class MarkerParseExprBase(MarkerBase):
|
|
65
|
+
def execute(self, context, command, marker_node, marker_set):
|
|
66
|
+
self.parse_expression(context, command.lstrip())
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class ExecCommandOutputChainMarker(MarkerParseExprBase):
|
|
70
|
+
tag_head = MarkerBase.trans_marker_command_output
|
|
71
|
+
|
|
72
|
+
|
|
55
73
|
class ExecCmdcallSimpleLinesMarker(MarkerWithEnd):
|
|
56
74
|
command_append_prefix = cmd_call_prefix_simple
|
|
57
75
|
tag_head = cmd_call_prefix_simple * 3
|
dekshell/core/markers/for_.py
CHANGED
|
@@ -35,7 +35,7 @@ class Function:
|
|
|
35
35
|
self.body = body
|
|
36
36
|
|
|
37
37
|
def __call__(self, *args, **kwargs):
|
|
38
|
-
context, marker_set = get_inner_vars('__inner_context__', '__inner_marker_set__'
|
|
38
|
+
context, marker_set = get_inner_vars('__inner_context__', '__inner_marker_set__')
|
|
39
39
|
context = context.derive().update_variables(self.pack_variables(context, args, kwargs))
|
|
40
40
|
return QuitContext.real(marker_set.node_cls.execute_nodes(context, marker_set, self.body[:])[0])
|
|
41
41
|
|
|
@@ -61,7 +61,7 @@ class ReturnMarker(MarkerNoTranslator):
|
|
|
61
61
|
|
|
62
62
|
def execute(self, context, command, marker_node, marker_set):
|
|
63
63
|
args = self.split_raw(command, 1, self.tag_head)
|
|
64
|
-
self.ret(self.
|
|
64
|
+
self.ret(self.parse_expression(context, args[1]))
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
class RaiseMarker(MarkerBase):
|
dekshell/core/markers/if_.py
CHANGED
|
@@ -18,7 +18,7 @@ class MarkerWithJudge(MarkerWithEnd, MarkerNoTranslator):
|
|
|
18
18
|
def get_condition_result(self, context, expression):
|
|
19
19
|
if not expression:
|
|
20
20
|
return self.empty_expected_value
|
|
21
|
-
return self.
|
|
21
|
+
return self.parse_expression(context, expression)
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class IfElseMarker(MarkerWithJudge):
|
dekshell/core/markers/input.py
CHANGED
|
@@ -9,7 +9,7 @@ class InputMarker(MarkerWithEnd, MarkerNoTranslator):
|
|
|
9
9
|
def execute(self, context, command, marker_node, marker_set):
|
|
10
10
|
command_text = self.get_inner_content(context, marker_node, sep='', translate=True).strip()
|
|
11
11
|
expression = self.split_raw(command, 1, self.tag_head)[1]
|
|
12
|
-
inputs = self.
|
|
12
|
+
inputs = self.parse_expression(context, expression)
|
|
13
13
|
rc = shell_with_input(command_text, inputs, env=context.environ_full())
|
|
14
14
|
if rc:
|
|
15
15
|
raise subprocess.CalledProcessError(rc, command_text)
|
dekshell/core/markers/invoke.py
CHANGED
|
@@ -17,7 +17,7 @@ class MarkerInvokerBase(MarkerBase):
|
|
|
17
17
|
@classmethod
|
|
18
18
|
def execute_file(cls, marker_set, filepath, args, kwargs):
|
|
19
19
|
if marker_set is None:
|
|
20
|
-
marker_set = get_inner_vars('__inner_marker_set__'
|
|
20
|
+
marker_set = get_inner_vars('__inner_marker_set__')
|
|
21
21
|
return cls._run_file(marker_set, normal_path(filepath), pack_context_full(args, kwargs))
|
|
22
22
|
|
|
23
23
|
@classmethod
|
dekshell/core/markers/var.py
CHANGED
|
@@ -75,7 +75,7 @@ class AssignExecMarker(MarkerAssignBase, MarkerWithEnd, MarkerNoTranslator):
|
|
|
75
75
|
tag_head_re_args = cmd_call_eval_prefix * 2
|
|
76
76
|
|
|
77
77
|
def execute(self, context, command, marker_node, marker_set):
|
|
78
|
-
code = self.get_inner_content(context, marker_node, translate=False)
|
|
78
|
+
code = self.get_inner_content(context, marker_node, translate=False, code=True)
|
|
79
79
|
result = self.eval_codes(context, code)
|
|
80
80
|
args = self.split_raw(command, 1, self.tag_head_re_args)
|
|
81
81
|
self.set_var(context, args, 0, result)
|
|
@@ -86,7 +86,7 @@ class MarkerAssignValueParseExprBase(MarkerAssignValueBase):
|
|
|
86
86
|
tag_head_re_args_raw = None
|
|
87
87
|
|
|
88
88
|
def get_value(self, context, marker_node, marker_set, expression):
|
|
89
|
-
return self.parse_expression(context, self.tag_head_re_args_raw + expression)
|
|
89
|
+
return self.parse_expression(context, self.tag_head_re_args_raw + expression, False)
|
|
90
90
|
|
|
91
91
|
|
|
92
92
|
class AssignCommandRcSilenceMarker(MarkerAssignValueParseExprBase):
|
|
@@ -104,11 +104,6 @@ class AssignCommandOutputMarker(MarkerAssignValueParseExprBase):
|
|
|
104
104
|
tag_head_re_args = re.escape(MarkerBase.trans_marker_command_output)
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
class AssignEncodeStrMarker(MarkerAssignValueParseExprBase):
|
|
108
|
-
tag_head_re_args_raw = MarkerBase.trans_marker_encode_str
|
|
109
|
-
tag_head_re_args = re.escape(MarkerBase.trans_marker_encode_str)
|
|
110
|
-
|
|
111
|
-
|
|
112
107
|
class AssignDecodeMarker(MarkerAssignValueParseExprBase):
|
|
113
108
|
tag_head_re_args_raw = MarkerBase.trans_marker_decode
|
|
114
109
|
tag_head_re_args = re.escape(MarkerBase.trans_marker_decode)
|
dekshell/core/markers/while_.py
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
dekshell-0.2.
|
|
2
|
-
dekshell-0.2.
|
|
3
|
-
dekshell-0.2.
|
|
1
|
+
dekshell-0.2.45.dist-info/METADATA,sha256=rY4WEtfO49dKer-stqUf8iWB7EDBntXkGVxUfmRIp-s,573
|
|
2
|
+
dekshell-0.2.45.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
|
|
3
|
+
dekshell-0.2.45.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
6
|
dekshell/click/__init__.py,sha256=r-AHdO9CEEVvTN20-8Jozr6Zh8XSv_BnktYRwrlhtrE,2046
|
|
7
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=
|
|
11
|
-
dekshell/core/markers/__init__.py,sha256=
|
|
12
|
-
dekshell/core/markers/base/__init__.py,sha256=
|
|
13
|
-
dekshell/core/markers/base/core.py,sha256=
|
|
9
|
+
dekshell/core/contexts/methods.py,sha256=3Bzfv_t8At5MqR0xD7qT8zye6KQySeXr0HpwuendrdE,11789
|
|
10
|
+
dekshell/core/contexts/properties.py,sha256=TQonN3T_K2cB2uakq_DVVB13B-IFwoM6t2ZkL_OMekw,3365
|
|
11
|
+
dekshell/core/markers/__init__.py,sha256=mK6OiZMWmUTrkAL0Bc1XqRTSb-NNhBgpHb7GLivLAlk,2235
|
|
12
|
+
dekshell/core/markers/base/__init__.py,sha256=uG2r2IWQC8L8R1b8SMVJRJUH3Bj_ACU7AjVZIsI7BWw,18039
|
|
13
|
+
dekshell/core/markers/base/core.py,sha256=SwZuCDYGyhm1HUeeBOjO_SDKRZ7IwQI9at1u6X4pmsE,12556
|
|
14
14
|
dekshell/core/markers/base/shell.py,sha256=fiFsTUDI8pSDDUCk834OI4ajri2qNWFJkLVhmUk2uAs,484
|
|
15
15
|
dekshell/core/markers/commands.py,sha256=mDRj4dSfKbDaZ_ts4lPXd6wftvGFI4VKkRoIzxV7otA,1696
|
|
16
16
|
dekshell/core/markers/comment.py,sha256=U1U3Xc4-giTqSEAPa4E_DmilZM9hs9zG-PCJ9nn4y5U,965
|
|
17
|
-
dekshell/core/markers/define.py,sha256=
|
|
17
|
+
dekshell/core/markers/define.py,sha256=Xlw_YPOWlmbopVIHhIeAKWSZhHhXmqb3gCbXxvuH4BQ,522
|
|
18
18
|
dekshell/core/markers/echo.py,sha256=1H61qQbY9tZnrKsdTI_shTmDY5ZaSGipDuBSRptAuZw,660
|
|
19
19
|
dekshell/core/markers/empty.py,sha256=pWKsHlrp6uXWU6blqOs0IgN_3kYm1OmDQiKGPERabAo,79
|
|
20
|
-
dekshell/core/markers/env.py,sha256=
|
|
21
|
-
dekshell/core/markers/exec.py,sha256=
|
|
22
|
-
dekshell/core/markers/for_.py,sha256=
|
|
23
|
-
dekshell/core/markers/function.py,sha256=
|
|
24
|
-
dekshell/core/markers/if_.py,sha256=
|
|
25
|
-
dekshell/core/markers/input.py,sha256=
|
|
26
|
-
dekshell/core/markers/invoke.py,sha256=
|
|
20
|
+
dekshell/core/markers/env.py,sha256=hU6irauFrvsUgK9j6jifosiMn0b6mt3aOf5t9oKhxS4,1160
|
|
21
|
+
dekshell/core/markers/exec.py,sha256=tcKZzTuGH17UOi6dycgHGjX3mHrvjKLj8Bnga38tE7U,3369
|
|
22
|
+
dekshell/core/markers/for_.py,sha256=wQnK3-o0dQl4A2wx8xgs6V2dzgEjEbnt4MML2fh2x8U,2148
|
|
23
|
+
dekshell/core/markers/function.py,sha256=j8Cz4ouBQi_0dT6Q6pfJie-1rfIZuSIcWzGBlsKCSd8,3850
|
|
24
|
+
dekshell/core/markers/if_.py,sha256=UqEnR0X9bKO7hEKol3MJNWXvP7fuJAGt8zwk3xlBCuk,1118
|
|
25
|
+
dekshell/core/markers/input.py,sha256=94SWaeLnwtxRdIn9Ck0IxMZL6vOXVCedUmsp5IPAwWo,1188
|
|
26
|
+
dekshell/core/markers/invoke.py,sha256=ESL2DE9DTaq33AnrXpvEudp1qtoeZFKOhLL12OQpcs0,1975
|
|
27
27
|
dekshell/core/markers/pip_.py,sha256=mxXa_oqcrk4Qz-HvhlkMoirsl-SbM9Fz610leNqP1o0,832
|
|
28
28
|
dekshell/core/markers/redirect.py,sha256=cpTQaXFAuSwprsrhUNP0xTGDmu06HGNQVcwKsETEjas,1981
|
|
29
29
|
dekshell/core/markers/shell.py,sha256=43BDAAzMdmgZmemkW5buh_w4LL1GDGw-s9fNZo6vhag,1929
|
|
30
|
-
dekshell/core/markers/var.py,sha256=
|
|
31
|
-
dekshell/core/markers/while_.py,sha256=
|
|
30
|
+
dekshell/core/markers/var.py,sha256=lGKhKP7NcKc5f_kiombR1d_d2TyRYfVDa9mcB3MJxOY,6894
|
|
31
|
+
dekshell/core/markers/while_.py,sha256=Q0SaElyXSrxg-wS_rfCcxMsmw9jf-0SgN1ICn860T4A,1201
|
|
32
32
|
dekshell/core/plugin/__init__.py,sha256=jAB_KnnHJsyJR_zIfBU_HNLngyhcyyqVv05PdlNZtF8,428
|
|
33
33
|
dekshell/core/redirect.py,sha256=6YCJpG0TkQ4WMt7LBtDD_W1T-C-QkLtGRQw0S60qe54,1058
|
|
34
34
|
dekshell/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -37,4 +37,4 @@ 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.45.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|