Read about our upcoming Code of Conduct on this issue

Commit 20122283 authored by Manuel Jacob's avatar Manuel Jacob
Browse files

demandimport: ignore `lzma` module for demandimport

This makes importing the module fail if the `_lzma` module is not present.

This makes e.g. tarfile correctly recognize if LZMA support is not present. It
changes the exception

    File "/usr/lib/python3.6/tarfile.py", line 1694, in xzopen
      fileobj = lzma.LZMAFile(fileobj or name, mode, preset=preset)
  AttributeError: module 'lzma' has no attribute 'LZMAFile'

to the more correct exception

    File "/usr/lib/python3.6/tarfile.py", line 1692, in xzopen
      raise CompressionError("lzma module is not available")
  tarfile.CompressionError: lzma module is not available

Also, it prevents that the error "abort: No module named '_lzma'!" is shown when
a development warning is to be shown. The reason why that happened is that for
showing the warning, we get information about the stack frames from the inspect
module, which accesses the `__file__` attribute of all modules in `sys.modules`
to build some cache, causing all modules (including `lzma`) to be imported.

--HG--
branch : stable
parent b1a1702262c9
......@@ -56,6 +56,7 @@ IGNORES = {
'__builtin__',
'builtins',
'urwid.command_map', # for pudb
'lzma',
}
_pypy = '__pypy__' in sys.builtin_module_names
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment