dekshell 0.2.21__py3-none-any.whl → 0.2.23__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.
@@ -175,6 +175,14 @@ def _pymd(name):
175
175
  return None
176
176
 
177
177
 
178
+ def _pyms(path=None):
179
+ if not path:
180
+ path = _eval_mixin('fp', None)
181
+ if not path:
182
+ path = os.getcwd()
183
+ return seek_py_module_path(path)
184
+
185
+
178
186
  def _time_mark(begin=True, name=None):
179
187
  var_prefix = '__time_marker__'
180
188
  if name is None:
@@ -202,7 +210,7 @@ path_common_methods = {
202
210
  'pybin': lambda x, p=None: search_bin_by_path_tree(p or os.getcwd(), x, False),
203
211
  'pym': _pym,
204
212
  'pymd': _pymd,
205
- 'pyms': seek_py_module_path,
213
+ 'pyms': _pyms,
206
214
  }
207
215
 
208
216
  default_methods = {
@@ -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
  ]
@@ -12,6 +12,15 @@ class ExecMarker(MarkerNoTranslator):
12
12
  self.eval(context, args[1])
13
13
 
14
14
 
15
+ class ExecTranslatorMarker(MarkerBase):
16
+ tag_head = '=:'
17
+
18
+ def execute(self, context, command, marker_node, marker_set):
19
+ args = self.split_raw(command, 1, self.tag_head)
20
+ if args[1]:
21
+ self.eval(context, args[1])
22
+
23
+
15
24
  class ExecLinesMarker(MarkerWithEnd, MarkerNoTranslator):
16
25
  tag_head = '=='
17
26
 
@@ -11,13 +11,19 @@ class MarkerRedirect(MarkerBase):
11
11
  def execute(self, context, command, marker_node, marker_set):
12
12
  filepath = self.split_raw(command, 1, self.tag_head)[1]
13
13
  if not filepath:
14
- filepath = self.eval(context, 'fp')
14
+ filepath = self.get_filepath(context)
15
15
  path_shell = redirect_shell_by_path_tree(filepath)
16
16
  self.execute_core(context, marker_node, marker_set, path_shell)
17
17
 
18
18
  def execute_core(self, context, marker_node, marker_set, path_shell):
19
19
  raise NotImplementedError
20
20
 
21
+ def get_filepath(self, context):
22
+ try:
23
+ return self.eval(context, "fp")
24
+ except NameError:
25
+ return os.getcwd()
26
+
21
27
 
22
28
  class RedirectMarker(MarkerRedirect):
23
29
  tag_head = "redirect"
@@ -27,7 +33,7 @@ class RedirectMarker(MarkerRedirect):
27
33
  if path_shell:
28
34
  shell_properties = make_shell_properties(path_shell)
29
35
  if shell_properties['shell'] != current_shell:
30
- fp = self.eval(context, "fp")
36
+ fp = self.get_filepath(context)
31
37
  fpp = os.path.dirname(fp).replace('/', os.sep)
32
38
  shell = shell_properties['sh']['rfc' if os.getcwd() == fpp else 'rf']
33
39
  args, kwargs = self.eval(context, f'({key_args}, {key_kwargs})')
@@ -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.21
3
+ Version: 0.2.23
4
4
  Author-Email: sanzenwin <sanzenwin@gmail.com>
5
5
  License: MIT
6
6
  Requires-Python: >=3.8
@@ -1,14 +1,14 @@
1
- dekshell-0.2.21.dist-info/METADATA,sha256=hMyPkDtXMgxohQMAE8K0woOezydn3-JXNBHnFD9kUdg,573
2
- dekshell-0.2.21.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
- dekshell-0.2.21.dist-info/entry_points.txt,sha256=d-kbfULiUTZWIBBsrQF3J_-wESncF-4K2rwHT08grlI,75
1
+ dekshell-0.2.23.dist-info/METADATA,sha256=-yW7n04nStm4XlwzlCpJAdpY7BLC3qG0Gg2pTgJzmWs,573
2
+ dekshell-0.2.23.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ dekshell-0.2.23.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=6THhB6X6VqpHKLQIW3bOrd3J9yxHems2PRt8dR6xiT0,9344
9
+ dekshell/core/contexts/methods.py,sha256=J1xYu469PCDiCHcktBzERn_ankONavPmJVYerFBVjzQ,9499
10
10
  dekshell/core/contexts/properties.py,sha256=esr51c6wDTDsuFXF2uj7WfyIGSq9H0dzqDqWzeMTNQE,2382
11
- dekshell/core/markers/__init__.py,sha256=yAZJEIK7eeaZvlIDwTFe2d3yKZiTUVGJQbHOnhNFOMQ,1891
11
+ dekshell/core/markers/__init__.py,sha256=_HJsxjjsyYbL7Pj6jhoeJ1WJI92qwCbdl-BKvQcGHlA,1949
12
12
  dekshell/core/markers/base/__init__.py,sha256=Rcc77ToE4cFlJvGwezRez4nAcfbdzgAhDRHaew5wvk0,13456
13
13
  dekshell/core/markers/base/core.py,sha256=ztB28fDPeqUkXCHchxjU2JO7R1klp_iUj2d6e8IlGCA,11567
14
14
  dekshell/core/markers/base/shell.py,sha256=DhaekMMTuABYP4GyZA05eejFfgxb1lQBwI88dlFv90E,479
@@ -18,16 +18,16 @@ 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=CiDqcwY4T1kMFNwSXTniJZezv4Qa_rA09ieFP5VJhiA,2616
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
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=WGaWW-7efaCIOYhs3gQgtKJC4lmFsBx2AQ4bs5Bu_UQ,1828
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.21.dist-info/RECORD,,
40
+ dekshell-0.2.23.dist-info/RECORD,,