aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorMartin Dørum <dorum@noisolation.com>2023-06-19 16:55:16 +0200
committerXavier Claessens <xclaesse@gmail.com>2023-06-20 08:28:47 -0400
commite869a09bc2e0fbd988fdc19014b8b0ad7e4b97c9 (patch)
tree88f235010db650cef6d475225acf7e7d157c6c2c /mesonbuild
parent8c766f5b5bd33c93deabff41e2152d7f7e368492 (diff)
downloadmeson-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.py7
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])