mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
mach: use importlib
module instead of imp
(#30645)
* mach: use `importlib` module instead of `imp` `imp` module has been deprecated since python 3.4 and has been removed in 3.12. The recommended alternative is to use the `importlib` module that was introduced in python 3.1 This is required to fix the CI failures in macos builds since GitHub runner images for macos-13 now use python 3.12 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * mach: use `importlib` module instead of `imp` `imp` module has been deprecated since python 3.4 and has been removed in 3.12. The recommended alternative is to use the `importlib` module that was introduced in python 3.1 This is required to fix the CI failures in macos builds since GitHub runner images for macos-13 now use python 3.12 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> --------- Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This commit is contained in:
parent
3fde61f2e5
commit
117cc1da6c
2 changed files with 10 additions and 14 deletions
|
@ -10,7 +10,7 @@ from __future__ import absolute_import, print_function, unicode_literals
|
||||||
import argparse
|
import argparse
|
||||||
import codecs
|
import codecs
|
||||||
import errno
|
import errno
|
||||||
import imp
|
import importlib
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
@ -253,17 +253,13 @@ To see more help for a specific command, run:
|
||||||
module name specified. If no name is specified, a random one will be
|
module name specified. If no name is specified, a random one will be
|
||||||
chosen.
|
chosen.
|
||||||
"""
|
"""
|
||||||
if module_name is None:
|
|
||||||
# Ensure parent module is present otherwise we'll (likely) get
|
|
||||||
# an error due to unknown parent.
|
|
||||||
if 'mach.commands' not in sys.modules:
|
|
||||||
mod = imp.new_module('mach.commands')
|
|
||||||
sys.modules['mach.commands'] = mod
|
|
||||||
|
|
||||||
module_name = 'mach.commands.%s' % uuid.uuid4().hex
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
imp.load_source(module_name, path)
|
if module_name is None:
|
||||||
|
module_name = 'mach.commands.%s' % uuid.uuid4().hex
|
||||||
|
spec = importlib.util.spec_from_file_location(module_name, path)
|
||||||
|
module = importlib.util.module_from_spec(spec)
|
||||||
|
sys.modules[module_name] = module
|
||||||
|
spec.loader.exec_module(module)
|
||||||
except IOError as e:
|
except IOError as e:
|
||||||
if e.errno != errno.ENOENT:
|
if e.errno != errno.ENOENT:
|
||||||
raise
|
raise
|
||||||
|
|
|
@ -140,10 +140,10 @@ def _activate_virtualenv(topdir):
|
||||||
activate_path = os.path.join(virtualenv_path, script_dir, "activate_this.py")
|
activate_path = os.path.join(virtualenv_path, script_dir, "activate_this.py")
|
||||||
need_pip_upgrade = False
|
need_pip_upgrade = False
|
||||||
if not (os.path.exists(virtualenv_path) and os.path.exists(activate_path)):
|
if not (os.path.exists(virtualenv_path) and os.path.exists(activate_path)):
|
||||||
import imp
|
import importlib
|
||||||
try:
|
try:
|
||||||
imp.find_module('virtualenv')
|
importlib.import_module('virtualenv')
|
||||||
except ImportError:
|
except ModuleNotFoundError:
|
||||||
sys.exit("Python virtualenv is not installed. Please install it prior to running mach.")
|
sys.exit("Python virtualenv is not installed. Please install it prior to running mach.")
|
||||||
|
|
||||||
_process_exec([python, "-m", "virtualenv", "-p", python, "--system-site-packages", virtualenv_path])
|
_process_exec([python, "-m", "virtualenv", "-p", python, "--system-site-packages", virtualenv_path])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue