The Gaudi Framework  v38r1p1 (ae26267b)
update_version.ReplacementRule Class Reference

Public Member Functions

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

Public Attributes

 pattern
 
 replace
 

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 69 of file update_version.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 81 of file update_version.py.

81  def __init__(
82  self,
83  pattern: Union[str, re.Pattern],
84  replace: Union[str, Callable[[str, Fields], str]],
85  ):
86  self.pattern = re.compile(pattern)
87  if isinstance(replace, str):
88  replace = f"{replace.rstrip()}\n"
89  self.replace = lambda _line, fields: replace.format(**fields.data)
90  else:
91  self.replace = replace
92 

Member Function Documentation

◆ __call__()

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

Definition at line 93 of file update_version.py.

93  def __call__(self, line: str, fields: Fields) -> str:
94  if self.pattern.match(line):
95  return self.replace(line, fields)
96  return line
97 
98 

Member Data Documentation

◆ pattern

update_version.ReplacementRule.pattern

Definition at line 82 of file update_version.py.

◆ replace

update_version.ReplacementRule.replace

Definition at line 85 of file update_version.py.


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