11import os
22import re
33
4+ pattern = r"(?P<FILESTEM_PREFIX>.*?)(?P<FRAMEID_STR>[-._]\d+)?(?P<EXTENSION>\.\w{3,4})"
5+ compiled_pattern = re .compile (pattern )
6+ compiled_frameId = re .compile (r"(\D+)?(?P<FRAMEID>\d+$)" )
7+
48def getFileElements (inputFilePath : str ):
59
610 filename = os .path .basename (inputFilePath )
7- pattern = r"(?P<FILESTEM>.*?)(?P<FRAME_ID>[-._]\d+)?(?P<EXTENSION>\.\w{3,4})"
8- match = re .search (pattern , filename )
9- frameId = match .group ("FRAME_ID" )
11+ match = compiled_pattern .search (filename )
12+ frameId_str = match .group ("FRAMEID_STR" )
1013
1114 fileElements = {}
1215 if match :
1316 fileElements = {
1417 "<PATH>" : inputFilePath ,
1518 "<FILENAME>" : filename ,
16- "<FILESTEM>" : match .group ("FILESTEM " ),
17- "<FILESTEM_PREFIX>" : match .group ("FILESTEM " ),
19+ "<FILESTEM>" : match .group ("FILESTEM_PREFIX " ),
20+ "<FILESTEM_PREFIX>" : match .group ("FILESTEM_PREFIX " ),
1821 "<EXTENSION>" : match .group ("EXTENSION" ),
1922 }
20- if frameId is not None :
21- fileElements ["<FRAMEID>" ] = frameId
22- fileElements ["<FILESTEM>" ] += frameId
23+ if frameId_str is not None :
24+ fileElements ["<FRAMEID_STR>" ] = frameId_str
25+ fileElements ["<FILESTEM>" ] += frameId_str
26+ match_frameId = compiled_frameId .search (frameId_str )
27+ fileElements ["<FRAMEID>" ] = match_frameId .group ("FRAMEID" )
2328
2429 return fileElements
2530
@@ -43,8 +48,10 @@ def replacePatterns(input, pattern, replacements):
4348 def replaceMatch (match ):
4449 key = match .group ()
4550 return replacements .get (key , "" )
46- return re .sub (pattern , replaceMatch , input )
51+ return pattern .sub (replaceMatch , input )
52+
4753
54+ compiled_element = re .compile (r"<\w*>" )
4855
4956def resolvePath (input , outputTemplate : str ) -> str :
5057
@@ -53,7 +60,7 @@ def resolvePath(input, outputTemplate: str) -> str:
5360 else :
5461 replacements = getViewElements (input )
5562
56- resolved = replacePatterns (outputTemplate , r"<\w*>" , replacements )
63+ resolved = replacePatterns (outputTemplate , compiled_element , replacements )
5764
5865 return resolved
5966
0 commit comments