dekshell 0.2.14__py3-none-any.whl → 0.2.16__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/__init__.py CHANGED
@@ -7,7 +7,7 @@ from collections import OrderedDict
7
7
  from dektools.time import get_tz
8
8
  from dektools.format import format_duration
9
9
  from dektools.shell import shell_command, shell_wrapper
10
- from dektools.file import normal_path
10
+ from dektools.file import normal_path, seek_py_module_path
11
11
  from dektools.escape import str_escape_wrap
12
12
  from .contexts import get_all_context
13
13
  from .markers import generate_markers, CommentConfigMarker
@@ -40,6 +40,7 @@ def shell_command_file(filepath, **kwargs):
40
40
  kwargs['context'] = (kwargs.get('context') or {}) | dict(
41
41
  fp=filepath,
42
42
  fpp=os.path.dirname(filepath),
43
+ fpy=seek_py_module_path(filepath),
43
44
  )
44
45
  return shell_command_batch(f.read(), **kwargs)
45
46
 
@@ -3,13 +3,14 @@ import shutil
3
3
  import sys
4
4
  import tempfile
5
5
  import getpass
6
+ from importlib import import_module
6
7
  from functools import reduce
7
8
  from itertools import chain
8
9
  from pathlib import Path
9
10
  from io import BytesIO, StringIO
10
11
  from dektools.file import sure_dir, write_file, read_text, remove_path, sure_parent_dir, normal_path, \
11
12
  format_path_desc, read_file, split_ext, path_ext, clear_dir, copy_recurse_ignore, path_is_empty, \
12
- read_lines, \
13
+ read_lines, seek_py_module_path, \
13
14
  split_file, combine_split_files, remove_split_files, meta_split_file, tree, iglob, \
14
15
  where, where_list, which, which_list
15
16
  from dektools.hash import hash_file
@@ -146,6 +147,21 @@ def _cd(path=None):
146
147
  return path
147
148
 
148
149
 
150
+ def _pym(name):
151
+ try:
152
+ m = import_module(name)
153
+ return m.__file__
154
+ except ImportError:
155
+ return None
156
+
157
+
158
+ def _pymd(name):
159
+ r = _pym(name)
160
+ if r:
161
+ return os.path.dirname(r)
162
+ return None
163
+
164
+
149
165
  path_common_methods = {
150
166
  'cd': _cd,
151
167
  'cwd': lambda: os.getcwd(),
@@ -154,6 +170,9 @@ path_common_methods = {
154
170
  'which_list': which_list,
155
171
  'where_list': where_list,
156
172
  'pybin': lambda x, p=None: search_bin_by_path_tree(p or os.getcwd(), x, False),
173
+ 'pym': _pym,
174
+ 'pymd': _pymd,
175
+ 'pyms': seek_py_module_path,
157
176
  }
158
177
 
159
178
  default_methods = {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dekshell
3
- Version: 0.2.14
3
+ Version: 0.2.16
4
4
  Author-Email: sanzenwin <sanzenwin@gmail.com>
5
5
  License: MIT
6
6
  Requires-Python: >=3.8
@@ -1,12 +1,12 @@
1
- dekshell-0.2.14.dist-info/METADATA,sha256=KbwS5beG1vwVigN6NAPZPd02FptF9cN3bx5859QzCec,573
2
- dekshell-0.2.14.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
- dekshell-0.2.14.dist-info/entry_points.txt,sha256=d-kbfULiUTZWIBBsrQF3J_-wESncF-4K2rwHT08grlI,75
1
+ dekshell-0.2.16.dist-info/METADATA,sha256=6wccsyunxeGU-oyJtB4O8tbpjwSZwVyY7QRb8eCnXfI,573
2
+ dekshell-0.2.16.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ dekshell-0.2.16.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
- dekshell/core/__init__.py,sha256=ZAJtMPFCVClHCPkoP5rmTq1vVLLMQRa8MP-QJXLBgNM,5337
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=oF_PLQrWkjqXkf32KLVdgKzQTJM2U7Bj270gWfD915Y,7749
9
+ dekshell/core/contexts/methods.py,sha256=lXHrCs41S0B-CDq7OAfNphqHR8Ct9W_Qhw7zydwsG7A,8102
10
10
  dekshell/core/contexts/properties.py,sha256=esr51c6wDTDsuFXF2uj7WfyIGSq9H0dzqDqWzeMTNQE,2382
11
11
  dekshell/core/markers/__init__.py,sha256=FyVfsvt1c8hFWoTgHuMriSJvrJg1XulK636Kt1TczjQ,1867
12
12
  dekshell/core/markers/base/__init__.py,sha256=To25RVX3h1MluV3OmktVMw2bigex79GjWHUPWtIlczI,13433
@@ -36,4 +36,4 @@ dekshell/utils/cmd.py,sha256=FfWNRRRdiiTs3xoXvaAyZ-3OzsWFRnd3m5k6sIexrhc,1209
36
36
  dekshell/utils/pkg.py,sha256=TgYqRqawoJfjkxt6UAHnp9ttmpjuHiWRFbqxADOS1VE,1337
37
37
  dekshell/utils/serializer.py,sha256=aIdF2Wzo-qHmIshv46jn1XD0X66vQ1JFdU-g3ZFbH2w,386
38
38
  dekshell/utils/shell.py,sha256=0NoA2-SOOMinbmZZipwzL-npBbzPOdWEfdPVYqq5G5g,92
39
- dekshell-0.2.14.dist-info/RECORD,,
39
+ dekshell-0.2.16.dist-info/RECORD,,