Skip to content

Commit

Permalink
fix: Drop imp to support Python 3.12
Browse files Browse the repository at this point in the history
  • Loading branch information
fstagni committed Apr 18, 2024
1 parent e7c421f commit 2a5006c
Showing 1 changed file with 31 additions and 9 deletions.
40 changes: 31 additions & 9 deletions Pilot/pilotTools.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import fcntl
import getopt
import imp
import json
import os
import re
Expand All @@ -15,10 +14,10 @@
import subprocess
import sys
import threading
import warnings
from datetime import datetime
from functools import partial, wraps
from threading import RLock
import warnings

############################
# python 2 -> 3 "hacks"
Expand All @@ -31,6 +30,33 @@

from urllib2 import HTTPError, URLError, urlopen

try:
import importlib.util
from importlib import import_module

def load_module_from_path(module_name, path_to_module):
spec = importlib.util.spec_from_file_location(module_name, path_to_module) # pylint: disable=no-member
module = importlib.util.module_from_spec(spec) # pylint: disable=no-member
spec.loader.exec_module(module)
return module

except ImportError:
def import_module(module):
import imp

impData = imp.find_module(module)
return imp.load_module(module, *impData)


def load_module_from_path(module_name, path_to_module):
import imp
fp, pathname, description = imp.find_module(module_name, [path_to_module])
try:
return imp.load_module(module_name, fp, pathname, description)
finally:
if fp:
fp.close()

try:
from cStringIO import StringIO
except ImportError:
Expand Down Expand Up @@ -365,12 +391,9 @@ def __recurseImport(self, modName, parentModule=None, hideExceptions=False):
modName = modName.split(".")
try:
if parentModule:
impData = imp.find_module(modName[0], parentModule.__path__)
impModule = load_module_from_path(modName[0], parentModule.__path__)
else:
impData = imp.find_module(modName[0])
impModule = imp.load_module(modName[0], *impData)
if impData[0]:
impData[0].close()
impModule = import_module(modName[0])
except ImportError as excp:
if str(excp).find("No module named %s" % modName[0]) == 0:
return None, None
Expand Down Expand Up @@ -410,8 +433,7 @@ def getCommand(params, commandName):
# Look for commands in the modules in the current directory first
for module in modules:
try:
impData = imp.find_module(module)
commandModule = imp.load_module(module, *impData)
commandModule = import_module(module)
commandObject = getattr(commandModule, commandName)
except Exception:
pass
Expand Down

0 comments on commit 2a5006c

Please sign in to comment.