The Gaudi Framework  master (57817a18)
Loading...
Searching...
No Matches
update_version.ReplacementRule Class Reference

Public Member Functions

 __init__ (self, str|re.Pattern pattern, str|Callable[[str, Fields], str] replace)
str __call__ (self, str line, Fields fields)

Public Attributes

 pattern = re.compile(pattern)
 replace = lambda _line, fields: replace.format(**fields.data)

Detailed Description

Helper to replace lines with patterns or applying functions.

>>> r = ReplacementRule(r"^version: ", "version: {cmake_version}")
>>> f = Fields("v1r1", datetime.date(2023, 9, 25))
>>> r("nothing to change\\n", f)
'nothing to change\\n'
>>> r("version: 1.0\\n", f)
'version: 1.1\\n'

Definition at line 89 of file update_version.py.

Constructor & Destructor Documentation

◆ __init__()

update_version.ReplacementRule.__init__ ( self,
str | re.Pattern pattern,
str | Callable[[str, Fields], str] replace )

Definition at line 101 of file update_version.py.

105 ):
106 self.pattern = re.compile(pattern)
107 if isinstance(replace, str):
108 replace = f"{replace.rstrip()}\n"
109 self.replace = lambda _line, fields: replace.format(**fields.data)
110 else:
111 self.replace = replace
112

Member Function Documentation

◆ __call__()

str update_version.ReplacementRule.__call__ ( self,
str line,
Fields fields )

Definition at line 113 of file update_version.py.

113 def __call__(self, line: str, fields: Fields) -> str:
114 if self.pattern.match(line):
115 return self.replace(line, fields)
116 return line
117
118

Member Data Documentation

◆ pattern

update_version.ReplacementRule.pattern = re.compile(pattern)

Definition at line 106 of file update_version.py.

◆ replace

update_version.ReplacementRule.replace = lambda _line, fields: replace.format(**fields.data)

Definition at line 109 of file update_version.py.


The documentation for this class was generated from the following file: