outsource tail-repacking of characters into string (util.tail_repack)
This commit is contained in:
parent
2ce464c48e
commit
18f9ac7d44
|
@ -408,14 +408,9 @@ class VTK:
|
||||||
Comments.
|
Comments.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if isinstance(comments,list):
|
|
||||||
i = 0
|
|
||||||
while -i < len(comments) and len(comments[i-1]) == 1: i -= 1 # repack any trailing characters
|
|
||||||
comments = comments[:i] + [''.join(comments[i:])] # that resulted from autosplitting of str to list
|
|
||||||
|
|
||||||
s = vtk.vtkStringArray()
|
s = vtk.vtkStringArray()
|
||||||
s.SetName('comments')
|
s.SetName('comments')
|
||||||
for c in [comments] if isinstance(comments,str) else comments:
|
for c in util.tail_repack(comments,self.comments):
|
||||||
s.InsertNextValue(c)
|
s.InsertNextValue(c)
|
||||||
self.vtk_data.GetFieldData().AddArray(s)
|
self.vtk_data.GetFieldData().AddArray(s)
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,8 @@ __all__=[
|
||||||
'extend_docstring', 'extended_docstring',
|
'extend_docstring', 'extended_docstring',
|
||||||
'Bravais_to_Miller', 'Miller_to_Bravais',
|
'Bravais_to_Miller', 'Miller_to_Bravais',
|
||||||
'DREAM3D_base_group', 'DREAM3D_cell_data_group',
|
'DREAM3D_base_group', 'DREAM3D_cell_data_group',
|
||||||
'dict_prune', 'dict_flatten'
|
'dict_prune', 'dict_flatten',
|
||||||
|
'tail_repack',
|
||||||
]
|
]
|
||||||
|
|
||||||
# https://svn.blender.org/svnroot/bf-blender/trunk/blender/build_files/scons/tools/bcolors.py
|
# https://svn.blender.org/svnroot/bf-blender/trunk/blender/build_files/scons/tools/bcolors.py
|
||||||
|
@ -722,6 +723,36 @@ def dict_flatten(d: Dict) -> Dict:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def tail_repack(extended: Union[str, Sequence[str]],
|
||||||
|
existing: List[str] = []) -> List[str]:
|
||||||
|
"""
|
||||||
|
Repack tailing characters into single string if all are new.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
extended : str or list of str
|
||||||
|
Extended string list with potentially autosplitted tailing string relative to `existing`.
|
||||||
|
existing : list of str
|
||||||
|
Base string list.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
repacked : list of str
|
||||||
|
Repacked version of `extended`.
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
>>> tail_repack(['a','new','e','n','t','r','y'],['a','new'])
|
||||||
|
['a','new','entry']
|
||||||
|
>>> tail_repack(['a','new','shiny','e','n','t','r','y'],['a','new'])
|
||||||
|
['a','new','shiny','e','n','t','r','y']
|
||||||
|
|
||||||
|
"""
|
||||||
|
return [extended] if isinstance(extended,str) else existing + \
|
||||||
|
([''.join(extended[len(existing):])] if np.prod([len(i) for i in extended[len(existing):]]) == 1 else
|
||||||
|
list(extended[len(existing):]))
|
||||||
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Classes
|
# Classes
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
|
|
Loading…
Reference in New Issue