python3: Add sysconfig_path() method
This returns the value of sysconfig paths, useful for installing modules for example.
This commit is contained in:
parent
b6e06dd80b
commit
a9c30ce8b5
|
@ -52,6 +52,20 @@ class Python3Module(ExtensionModule):
|
||||||
raise mesonlib.MesonException('language_version() takes no arguments.')
|
raise mesonlib.MesonException('language_version() takes no arguments.')
|
||||||
return ModuleReturnValue(sysconfig.get_python_version(), [])
|
return ModuleReturnValue(sysconfig.get_python_version(), [])
|
||||||
|
|
||||||
|
def sysconfig_path(self, state, args, kwargs):
|
||||||
|
if len(args) != 1:
|
||||||
|
raise mesonlib.MesonException('sysconfig_path() requires passing the name of path to get.')
|
||||||
|
if kwargs:
|
||||||
|
raise mesonlib.MesonException('sysconfig_path() does not accept keywords.')
|
||||||
|
path_name = args[0]
|
||||||
|
valid_names = sysconfig.get_path_names()
|
||||||
|
if path_name not in valid_names:
|
||||||
|
raise mesonlib.MesonException('{} is not a valid path name {}.'.format(path_name, valid_names))
|
||||||
|
|
||||||
|
# Get a relative path without a prefix, e.g. lib/python3.6/site-packages
|
||||||
|
path = sysconfig.get_path(path_name, vars={'base': ''})[1:]
|
||||||
|
return ModuleReturnValue(path, [])
|
||||||
|
|
||||||
|
|
||||||
def initialize():
|
def initialize():
|
||||||
return Python3Module()
|
return Python3Module()
|
||||||
|
|
Loading…
Reference in New Issue