Search code examples
pythonpython-3.xpython-importpython-2.5

How to avoid line continuations in Python imports


I have a number of classes / functions to import from a module and linters/ style checkers (pylint, flake, pep8) are complaining that the line is too long and I am forced to use line continuation which is ugly:

from my_lengthy_module import FirstClass, SecondClass, ThirdClass, \  
foo_bar_with_long_name, bar_foo_with_longer_name, \
FourthClass, bar_foo_with_longer_name, foo_bar_with_longest_name

How to do it better?


Solution

  • Python 2.5 introduced a concept of multi-line imports (PEP-328) which address this problem by extending the syntax of the import statement to include the imported names in brackets and thus avoiding line continuations:

    from my_lengthy_module import (
        FirstClass, SecondClass, ThirdClass, 
        foo_bar_with_long_name, bar_foo_with_longer_name,
        FourthClass, bar_foo_with_longer_name, foo_bar_with_longest_name
    )