reykit 1.1.29__py3-none-any.whl → 1.1.31__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.
reykit/rbase.py CHANGED
@@ -20,7 +20,7 @@ from traceback import format_stack, extract_stack
20
20
  from atexit import register as atexit_register
21
21
  from time import sleep as time_sleep
22
22
  from inspect import signature as inspect_signature, _ParameterKind, _empty
23
- from ast import Starred
23
+ from ast import AST, Name, Attribute, Call, Starred, keyword, dump as ast_dump
24
24
  from varname import VarnameException, argname as varname_argname
25
25
 
26
26
 
@@ -56,6 +56,7 @@ __all__ = (
56
56
  'get_stack_text',
57
57
  'get_stack_param',
58
58
  'get_arg_info',
59
+ 'get_astname',
59
60
  'get_varname',
60
61
  'block',
61
62
  'at_exit'
@@ -262,7 +263,7 @@ def throw(
262
263
  if values != ():
263
264
 
264
265
  ### Name.
265
- names = get_varname('values')
266
+ names: list[str] = get_varname('values')
266
267
 
267
268
  ### Convert.
268
269
  if exception == TypeError:
@@ -860,6 +861,39 @@ def get_arg_info(func: Callable) -> list[
860
861
  return info
861
862
 
862
863
 
864
+ def get_astname(obj: AST) -> str:
865
+ """
866
+ Get object mapping name of `ast` package.
867
+
868
+ Parameters
869
+ ----------
870
+ obj : `AST` object.
871
+
872
+ Returns
873
+ -------
874
+ Mapping name.
875
+ """
876
+
877
+ # Get.
878
+ match obj:
879
+ case Name():
880
+ name = obj.id
881
+ case Attribute():
882
+ name = obj.attr
883
+ case Call():
884
+ name = obj.func
885
+ case Starred() | keyword():
886
+ name = obj.value
887
+ case _:
888
+ name = ast_dump(obj)
889
+
890
+ # Again.
891
+ if type(name) != str:
892
+ name = get_astname(name)
893
+
894
+ return name
895
+
896
+
863
897
  def get_varname(argname: str, level: int = 1) -> str | list[str] | None:
864
898
  """
865
899
  Get variable name of function input argument, can backtrack.
@@ -883,24 +917,21 @@ def get_varname(argname: str, level: int = 1) -> str | list[str] | None:
883
917
 
884
918
  # Get.
885
919
  try:
886
- result = varname_argname(argname, frame=level)
920
+ varnames = varname_argname(argname, frame=level)
887
921
  except VarnameException:
888
922
  return
889
923
 
890
- # Convert.
891
- if type(result) != tuple:
892
- result = (result,)
893
- varnames: list[str] = [
894
- name
895
- for elem in result
896
- for name in (
897
- (elem.value.id,)
898
- if type(elem) == Starred
899
- else tuple(elem.values())
900
- if type(elem) == dict
901
- else (elem,)
902
- )
903
- ]
924
+ # Handle type AST.
925
+ if type(varnames) == tuple:
926
+ varnames = [
927
+ get_astname(varname)
928
+ if isinstance(varnames, AST)
929
+ else varname
930
+ for varname in varnames
931
+ ]
932
+ else:
933
+ if isinstance(varnames, AST):
934
+ varnames = get_astname(varnames)
904
935
 
905
936
  return varnames
906
937
 
reykit/rstdout.py CHANGED
@@ -132,7 +132,7 @@ def echo(
132
132
 
133
133
  # Handle parameter.
134
134
  if title is None:
135
- title = get_varname('data')
135
+ title: list[str] = get_varname('data')
136
136
  if ConfigStdout.force_print_ascii:
137
137
  border = 'ascii'
138
138
 
reykit/rsys.py CHANGED
@@ -257,7 +257,7 @@ def get_cmd_var(*vars: Any) -> list[Any]:
257
257
  """
258
258
 
259
259
  # Get parameter.
260
- vars_name = get_varname('vars')
260
+ vars_name: list[str] = get_varname('vars')
261
261
  vars_info = tuple(zip(vars_name, vars))
262
262
 
263
263
  # Set DOS command.
reykit/rtext.py CHANGED
@@ -471,7 +471,7 @@ def frame_data(
471
471
 
472
472
  # handle parameter.
473
473
  if title is None:
474
- title = get_varname('data')
474
+ title: list[str] = get_varname('data')
475
475
  if width is None:
476
476
  width, _ = get_terminal_size()
477
477
  if frame == 'left':
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reykit
3
- Version: 1.1.29
3
+ Version: 1.1.31
4
4
  Summary: Kit method set.
5
5
  Project-URL: homepage, https://github.com/reyxbo/reykit/
6
6
  Author-email: Rey <reyxbo@163.com>
@@ -1,6 +1,6 @@
1
1
  reykit/__init__.py,sha256=V86CHqPAAVkooVx3_QIOKpDIFVneQCTTSwfJ-uWgBno,788
2
2
  reykit/rall.py,sha256=7Hip02YOkIDm3_xkoSDjvvYV2LhdBV2r4UKzWWnIfIo,628
3
- reykit/rbase.py,sha256=30FjS8vshqOQn1O-Q55XqeUrz7sLc7ke6mB6ydAPDRE,22295
3
+ reykit/rbase.py,sha256=GY8DKTIMsot_vORlwM2y384mVM69F0VVn7yCQtnzQLc,22963
4
4
  reykit/rdata.py,sha256=COe2VVGaUV0L1MD6PB7zL8treVNehVFqJELbm7wAvs0,9471
5
5
  reykit/remail.py,sha256=s7TXbLgEWEqNoeM42c6FpPufB2LajHgQuahfZri3urQ,6706
6
6
  reykit/rimage.py,sha256=p7caatLE71yy7GUTkTKyMOaJTeBfl6pZr_7BFjcDvY8,6159
@@ -12,17 +12,17 @@ reykit/ros.py,sha256=416gOKHhy3jWur-KDq5VsHNeKQtZ87jO2HSxUeu6as4,40865
12
12
  reykit/rrand.py,sha256=9QPXCsREIu45g6WP-XN67X05kmW3cTmctn3InvqYxuY,8947
13
13
  reykit/rre.py,sha256=4DVxy28dl5zn6_II8-cgr7E2nVPH5QJIJVB4o7Vsf1A,6078
14
14
  reykit/rschedule.py,sha256=_nrfrXYxlFAKCDbM8ibTTb60zNDlHxyE310cv-A19Kw,5799
15
- reykit/rstdout.py,sha256=k_5CA8OyPjjlghw6jAgHMyFWCtPeVRS1RyZhK5TmGzM,8168
16
- reykit/rsys.py,sha256=qEkQ3CQyuVcUEumUPuaDhLVv1R7NhazalHD8YJLmD7w,24922
15
+ reykit/rstdout.py,sha256=_FL2-l-auGPWmpL00R_DNw2eFFn19mF7hCq3jCVgomI,8179
16
+ reykit/rsys.py,sha256=8Q9ZdggxRHXHMOwjMQa_kBN3gTkmpduHoXrKfa5UXqs,24933
17
17
  reykit/rtable.py,sha256=MYEkm-PvYyNgCy1cHodNF4JgJNg1pzTy6NtYfF6CHRs,12001
18
18
  reykit/rtask.py,sha256=FPRBKVIzuH5PUR9XyY3J9YF8rXDpIMWySXLc3y6zAwk,22812
19
- reykit/rtext.py,sha256=z91N40mVZ6O7mbGcWQmb4v75ooLXTIgXMRaSh20SsFs,13697
19
+ reykit/rtext.py,sha256=aMbnLLh08kRlYOT4rK55geUlaNkKWIu_lxTaGqhqCRI,13708
20
20
  reykit/rtime.py,sha256=e9I5LieY3DFQq04qzyRT_dwsxc40Dcj9CMDAEmXsGw8,16938
21
21
  reykit/rwrap.py,sha256=RK3wlc2cd-lnAvzqzvKsS21EtCmBNTA3i8HRbaolWE4,15275
22
22
  reykit/rzip.py,sha256=ABUDLwEHQIpcvZbJE_oV78H7dik6nC7kaRz660Ro9Os,3481
23
23
  reykit/rdll/__init__.py,sha256=tdKb-BOKLFn-diCvXjSLg9x71VuRKzkg2KtpOLGLTR4,679
24
24
  reykit/rdll/rdll_core.py,sha256=o6-rKcTQgxZQe0kD3GnwyNb3KL9IogzgCQNOmYLMm7A,5086
25
- reykit-1.1.29.dist-info/METADATA,sha256=KA7tdrhrqwiHC9UaLzCwy3xhAta_yTknevWdpQErafs,1913
26
- reykit-1.1.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
27
- reykit-1.1.29.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
28
- reykit-1.1.29.dist-info/RECORD,,
25
+ reykit-1.1.31.dist-info/METADATA,sha256=DSL0F6sDmid1YxFl7B1qMa-XLPiLIEs_WVQijLwrAU8,1913
26
+ reykit-1.1.31.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
27
+ reykit-1.1.31.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
28
+ reykit-1.1.31.dist-info/RECORD,,