dekshell 0.2.22__py3-none-any.whl → 0.2.24__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.
@@ -126,6 +126,11 @@ def _eval_lines(expression, default=_eval_default):
126
126
  return default
127
127
 
128
128
 
129
+ def _defined(name):
130
+ default = object()
131
+ return _eval_mixin(name, default=default) is not default
132
+
133
+
129
134
  def _install(name):
130
135
  def posix(exe):
131
136
  s = f"{exe} install -y {name}"
@@ -214,6 +219,7 @@ path_common_methods = {
214
219
  }
215
220
 
216
221
  default_methods = {
222
+ 'defined': _defined,
217
223
  'io': _io,
218
224
  'reduce': reduce,
219
225
  'chain': chain,
@@ -26,7 +26,8 @@ def generate_markers(*args, **kwargs):
26
26
  ErrorEchoMarker, EchoNoWrapMarker, EchoMarker,
27
27
  InputMarker, InputOnceMarker,
28
28
  DelVarMarker,
29
- ExecLinesUpdateMarker, ExecLinesMarker, ExecMarker, ExecCmdcallSimpleLinesMarker, ExecCmdcallLinesMarker,
29
+ ExecLinesUpdateMarker, ExecLinesMarker, ExecTranslatorMarker, ExecMarker, ExecCmdcallSimpleLinesMarker,
30
+ ExecCmdcallLinesMarker,
30
31
  ExecCmdcallMarker, ExecCmdcallChainMarker,
31
32
  EnvShellMarker, EnvMarker,
32
33
  IfMarker, IfElifMarker, IfElseMarker,
@@ -46,7 +47,7 @@ def generate_markers(*args, **kwargs):
46
47
  IgnoreMarker,
47
48
  IgnoreErrorShellMarker, PrefixShellMarker,
48
49
  AssignCallMarker, AssignInvokerMarker, AssignGotoMarker, AssignTimeoutMarker, AssignRetryMarker,
49
- AssignExecMarker, AssignEvalMarker, AssignCmdcallMarker, AssignCmdcallChainMarker,
50
+ AssignExecMarker, AssignTranslatorEvalMarker, AssignEvalMarker, AssignCmdcallMarker, AssignCmdcallChainMarker,
50
51
  AssignMultiLineRawStrMarker, AssignMultiLineStrMarker, AssignRawStrMarker, AssignStrMarker,
51
52
  EmptyMarker, # must be at the tail
52
53
  ]
@@ -11,6 +11,7 @@ cmd_call_prefix_simple = '>'
11
11
  cmd_call_prefix = cmd_call_prefix_simple * 2
12
12
  cmd_call_prefix_chain = '*'
13
13
  cmd_call_eval_prefix = '='
14
+ cmd_call_eval_trans_prefix = cmd_call_eval_prefix + ':'
14
15
  cmd_call_eval_escape = '\\'
15
16
 
16
17
 
@@ -268,7 +269,10 @@ class MarkerBase:
268
269
  value = f(*value)
269
270
  return value
270
271
  else:
271
- if expression.startswith(cmd_call_eval_prefix):
272
+ if expression.startswith(cmd_call_eval_trans_prefix):
273
+ expression = expression[len(cmd_call_eval_trans_prefix):]
274
+ expression = cls.translate_case(context, expression, True)
275
+ elif expression.startswith(cmd_call_eval_prefix):
272
276
  expression = expression[len(cmd_call_eval_prefix):]
273
277
  return cls.eval(context, expression)
274
278
 
@@ -1,10 +1,19 @@
1
1
  from .base import MarkerBase, MarkerWithEnd, MarkerNoTranslator, cmd_call_prefix_simple, \
2
- cmd_call_prefix_chain
2
+ cmd_call_prefix_chain, cmd_call_eval_prefix, cmd_call_eval_trans_prefix
3
3
  from .empty import EmptyMarker
4
4
 
5
5
 
6
6
  class ExecMarker(MarkerNoTranslator):
7
- tag_head = '='
7
+ tag_head = cmd_call_eval_prefix
8
+
9
+ def execute(self, context, command, marker_node, marker_set):
10
+ args = self.split_raw(command, 1, self.tag_head)
11
+ if args[1]:
12
+ self.eval(context, args[1])
13
+
14
+
15
+ class ExecTranslatorMarker(MarkerBase):
16
+ tag_head = cmd_call_eval_trans_prefix
8
17
 
9
18
  def execute(self, context, command, marker_node, marker_set):
10
19
  args = self.split_raw(command, 1, self.tag_head)
@@ -61,6 +61,13 @@ class AssignEvalMarker(MarkerAssignValueBase, MarkerNoTranslator):
61
61
  return self.eval(context, expression)
62
62
 
63
63
 
64
+ class AssignTranslatorEvalMarker(MarkerAssignValueBase):
65
+ tag_head_re_args = '=:'
66
+
67
+ def get_value(self, context, marker_node, marker_set, expression):
68
+ return self.eval(context, expression)
69
+
70
+
64
71
  class AssignExecMarker(MarkerAssignBase, MarkerWithEnd, MarkerNoTranslator):
65
72
  tag_head_re_args = '=='
66
73
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dekshell
3
- Version: 0.2.22
3
+ Version: 0.2.24
4
4
  Author-Email: sanzenwin <sanzenwin@gmail.com>
5
5
  License: MIT
6
6
  Requires-Python: >=3.8
@@ -1,15 +1,15 @@
1
- dekshell-0.2.22.dist-info/METADATA,sha256=hcdopnmJAgC5TP6poIc9yTy4ETlQeFMJ-al3Z0kAD6g,573
2
- dekshell-0.2.22.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
- dekshell-0.2.22.dist-info/entry_points.txt,sha256=d-kbfULiUTZWIBBsrQF3J_-wESncF-4K2rwHT08grlI,75
1
+ dekshell-0.2.24.dist-info/METADATA,sha256=f-mIEj9boAs1HVZhe7DCujOQ6Kjst9S8Hz0pESrZR7Q,573
2
+ dekshell-0.2.24.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ dekshell-0.2.24.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=rFzB_exzPQaIcbbms5PdHAU3NGdl2MBaYbq9v7g7BOI,1870
7
7
  dekshell/core/__init__.py,sha256=w-IeR-tO61Mv4ubZyw9LvyagudyD8SXH0YD3yKApNXk,5405
8
8
  dekshell/core/contexts/__init__.py,sha256=ynsfv37azOKfI2UKd0iPl2M6iBW-k5cb1BqSLOWuJpI,482
9
- dekshell/core/contexts/methods.py,sha256=J1xYu469PCDiCHcktBzERn_ankONavPmJVYerFBVjzQ,9499
9
+ dekshell/core/contexts/methods.py,sha256=-wyKam6IZIjk2269D8rXf85psOzFTMpCjfO_ZMd81yI,9630
10
10
  dekshell/core/contexts/properties.py,sha256=esr51c6wDTDsuFXF2uj7WfyIGSq9H0dzqDqWzeMTNQE,2382
11
- dekshell/core/markers/__init__.py,sha256=yAZJEIK7eeaZvlIDwTFe2d3yKZiTUVGJQbHOnhNFOMQ,1891
12
- dekshell/core/markers/base/__init__.py,sha256=Rcc77ToE4cFlJvGwezRez4nAcfbdzgAhDRHaew5wvk0,13456
11
+ dekshell/core/markers/__init__.py,sha256=_HJsxjjsyYbL7Pj6jhoeJ1WJI92qwCbdl-BKvQcGHlA,1949
12
+ dekshell/core/markers/base/__init__.py,sha256=DDYlAIiVwmXCv4PiH042FRTwxn6Wxdnt0PsV_BSbYaY,13729
13
13
  dekshell/core/markers/base/core.py,sha256=ztB28fDPeqUkXCHchxjU2JO7R1klp_iUj2d6e8IlGCA,11567
14
14
  dekshell/core/markers/base/shell.py,sha256=DhaekMMTuABYP4GyZA05eejFfgxb1lQBwI88dlFv90E,479
15
15
  dekshell/core/markers/commands.py,sha256=mDRj4dSfKbDaZ_ts4lPXd6wftvGFI4VKkRoIzxV7otA,1696
@@ -18,7 +18,7 @@ dekshell/core/markers/define.py,sha256=LpMSfz9ziXq2aFJ6oMpUFFo93TpBx7GxKYNzCeht4
18
18
  dekshell/core/markers/echo.py,sha256=1H61qQbY9tZnrKsdTI_shTmDY5ZaSGipDuBSRptAuZw,660
19
19
  dekshell/core/markers/empty.py,sha256=pWKsHlrp6uXWU6blqOs0IgN_3kYm1OmDQiKGPERabAo,79
20
20
  dekshell/core/markers/env.py,sha256=6ZtiMNdKFbGR_DBjG6C7A8L_lJsiymN5Y5AbnTzyMrE,1158
21
- dekshell/core/markers/exec.py,sha256=3vQc-jH7toU_89rNFTipowr0ZrNn79pqmNbYuHxCPDI,2370
21
+ dekshell/core/markers/exec.py,sha256=4_7FRUEgbAtt0_9r8TmOar_Zi6VXxe6E7p3RL6sVgQg,2705
22
22
  dekshell/core/markers/for_.py,sha256=uNOEwyDsjffttEBtUYasdlj7FP_sGnQzWuTV5d5esHY,2142
23
23
  dekshell/core/markers/function.py,sha256=RPh56_rYbWXCTkNPiJu8zNEj-OE6txKgEw7Im9fBM3c,3592
24
24
  dekshell/core/markers/if_.py,sha256=bBG1fDCZd5alE5FSm0QhgHl6ZJn5awiqZAXnPnO-thc,1112
@@ -27,7 +27,7 @@ dekshell/core/markers/invoke.py,sha256=To_U_FscoCbf7osvjC5MQTk2gjH5Mu_-06Kb22YQP
27
27
  dekshell/core/markers/pip_.py,sha256=mxXa_oqcrk4Qz-HvhlkMoirsl-SbM9Fz610leNqP1o0,832
28
28
  dekshell/core/markers/redirect.py,sha256=3vfkRQ2tnQ6rSGGn7csgUlpDi0s2ep5X7JU7NVvo0eI,1984
29
29
  dekshell/core/markers/shell.py,sha256=43BDAAzMdmgZmemkW5buh_w4LL1GDGw-s9fNZo6vhag,1929
30
- dekshell/core/markers/var.py,sha256=O-lpWhnLOkKMwF1jR0rVwyHLa8YUWwacCs80wFzwfdQ,4838
30
+ dekshell/core/markers/var.py,sha256=_7Z4gMxm63Q0eVgg71hFSy1nGUz7Tf5Kp02ek16c3Cc,5043
31
31
  dekshell/core/markers/while_.py,sha256=e7lI5jsIM-qxNHMY_wUyCMvvesdXQibR5Ez2jNO9csc,1195
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
@@ -37,4 +37,4 @@ dekshell/utils/cmd.py,sha256=FfWNRRRdiiTs3xoXvaAyZ-3OzsWFRnd3m5k6sIexrhc,1209
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.22.dist-info/RECORD,,
40
+ dekshell-0.2.24.dist-info/RECORD,,