diff options
-rw-r--r-- | docs/markdown/Fs-module.md | 10 | ||||
-rw-r--r-- | mesonbuild/modules/fs.py | 5 |
2 files changed, 14 insertions, 1 deletions
diff --git a/docs/markdown/Fs-module.md b/docs/markdown/Fs-module.md index 274788c..e5941a9 100644 --- a/docs/markdown/Fs-module.md +++ b/docs/markdown/Fs-module.md @@ -42,6 +42,8 @@ by the string is a symbolic link. ### is_absolute +*since 0.54.0* + Return a boolean indicating if the path string specified is absolute, WITHOUT expanding `~`. Examples: @@ -104,18 +106,22 @@ The files need not actually exist yet for these path string manipulation methods ### expanduser +*since 0.54.0* + A path string with a leading `~` is expanded to the user home directory Examples: ```meson -fs.expanduser('~') # home directory +fs.expanduser('~') # user home directory fs.expanduser('~/foo') # <homedir>/foo ``` ### as_posix +*since 0.54.0* + `fs.as_posix(path)` assumes a Windows path, even if on a Unix-like system. Thus, all `'\'` or `'\\'` are turned to '/', even if you meant to escape a character. @@ -180,6 +186,8 @@ fs.name('foo/bar/baz.dll.a') # baz.dll.a ### stem +*since 0.54.0* + Returns the last component of the path, dropping the last part of the suffix ```meson diff --git a/mesonbuild/modules/fs.py b/mesonbuild/modules/fs.py index f4fe06f..d483111 100644 --- a/mesonbuild/modules/fs.py +++ b/mesonbuild/modules/fs.py @@ -20,6 +20,7 @@ from .. import mlog from . import ExtensionModule from . import ModuleReturnValue from ..mesonlib import MesonException +from ..interpreterbase import FeatureNew from ..interpreterbase import stringArgs, noKwargs if T.TYPE_CHECKING: @@ -62,6 +63,7 @@ class FSModule(ExtensionModule): @stringArgs @noKwargs + @FeatureNew('fs.expanduser', '0.54.0') def expanduser(self, state: 'ModuleState', args: T.Sequence[str], kwargs: dict) -> ModuleReturnValue: if len(args) != 1: raise MesonException('fs.expanduser takes exactly one argument.') @@ -69,6 +71,7 @@ class FSModule(ExtensionModule): @stringArgs @noKwargs + @FeatureNew('fs.is_absolute', '0.54.0') def is_absolute(self, state: 'ModuleState', args: T.Sequence[str], kwargs: dict) -> ModuleReturnValue: if len(args) != 1: raise MesonException('fs.is_absolute takes exactly one argument.') @@ -76,6 +79,7 @@ class FSModule(ExtensionModule): @stringArgs @noKwargs + @FeatureNew('fs.as_posix', '0.54.0') def as_posix(self, state: 'ModuleState', args: T.Sequence[str], kwargs: dict) -> ModuleReturnValue: """ this function assumes you are passing a Windows path, even if on a Unix-like system @@ -181,6 +185,7 @@ class FSModule(ExtensionModule): @stringArgs @noKwargs + @FeatureNew('fs.stem', '0.54.0') def stem(self, state: 'ModuleState', args: T.Sequence[str], kwargs: dict) -> ModuleReturnValue: if len(args) != 1: raise MesonException('fs.stem takes exactly one argument.') |