[PATCH] D68779: [LNT][NFC] Fix global import in function
Przemyslaw Wirkus via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 5 04:29:48 PST 2019
PrzemekWirkus added inline comments.
================
Comment at: lnt/lnttool/admin.py:8-13
+ yaml = __import__('yaml', globals(), locals())
+ sys = __import__('sys', globals(), locals())
+ requests = __import__('requests', globals(), locals())
+ json = __import__('json', globals(), locals())
+ os = __import__('os', globals(), locals())
+ httplib = __import__('httplib', globals(), locals())
----------------
thopre wrote:
> PrzemekWirkus wrote:
> > PrzemekWirkus wrote:
> > > Thomas,
> > > why are you not using importlib.import_module instead of __import__ ?
> > > Any other reason except for the Python 2 backward compatibility ?
> > s/import/__import__/
> The version available in Python 2.7 does not seem to return a value, how to bind the loaded modules to the global variables then?
Python 2.7.15+ (default, Oct 7 2019, 17:39:04)
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib
>>> x = importlib.import_module('json')
>>> print x
<module 'json' from '/usr/lib/python2.7/json/__init__.pyc'>
# Silly global assign:
>>> global json
>>> json = x
>>> dir(json)
['JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', '_default_decoder', '_default_encoder', 'decoder', 'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']
https://docs.python.org/2/library/importlib.html#importlib.import_module
"...
The specified module will be inserted into sys.modules and returned."
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68779/new/
https://reviews.llvm.org/D68779
More information about the llvm-commits
mailing list