diff options
author | Martin Dørum <dorum@noisolation.com> | 2023-06-19 16:55:16 +0200 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2023-06-20 08:28:47 -0400 |
commit | e869a09bc2e0fbd988fdc19014b8b0ad7e4b97c9 (patch) | |
tree | 88f235010db650cef6d475225acf7e7d157c6c2c /mesonbuild | |
parent | 8c766f5b5bd33c93deabff41e2152d7f7e368492 (diff) | |
download | meson-e869a09bc2e0fbd988fdc19014b8b0ad7e4b97c9.zip meson-e869a09bc2e0fbd988fdc19014b8b0ad7e4b97c9.tar.gz meson-e869a09bc2e0fbd988fdc19014b8b0ad7e4b97c9.tar.bz2 |
add str.splitlines method
The new splitlines method on str is intended to replace usage of
fs.read('whatever').strip().split('\n').
The problem with the .strip().split() approach is that it doesn't have a
way to represent empty lists (an empty string becomes a list with one
empty string, not an empty list), and it doesn't handle Windows-style
line endings.
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/interpreter/primitives/string.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/primitives/string.py b/mesonbuild/interpreter/primitives/string.py index d9f6a06..d4daab9 100644 --- a/mesonbuild/interpreter/primitives/string.py +++ b/mesonbuild/interpreter/primitives/string.py @@ -38,6 +38,7 @@ class StringHolder(ObjectHolder[str]): 'join': self.join_method, 'replace': self.replace_method, 'split': self.split_method, + 'splitlines': self.splitlines_method, 'strip': self.strip_method, 'substring': self.substring_method, 'to_int': self.to_int_method, @@ -105,6 +106,12 @@ class StringHolder(ObjectHolder[str]): return re.sub(r'@(\d+)@', arg_replace, self.held_object) @noKwargs + @noPosargs + @FeatureNew('str.splitlines', '1.2.0') + def splitlines_method(self, args: T.List[TYPE_var], kwargs: TYPE_kwargs) -> T.List[str]: + return self.held_object.splitlines() + + @noKwargs @typed_pos_args('str.join', varargs=str) def join_method(self, args: T.Tuple[T.List[str]], kwargs: TYPE_kwargs) -> str: return self.held_object.join(args[0]) |