26 ms·
Some of Python linters enforce such style. If you enable pylint or black I think they do that by default.
by skocznymroczny 6y ago
Some of Python linters enforce such style. If you enable pylint or black I think they do that by default.
- diarrhea 6y agoblack sorts alphabetically, with standard lib first, then 3rd party imports, and user/local imports last. Blocks are separated by a blank line. `from ..` imports come after `import ..`. Especially the alphabetic ordering is important in my view. Makes parsing/reading and spotting duplicates much easier. It is also PEP8 style [0]. For all these reasons, I think the pyramid style is awful in comparison. 0: https://www.python.org/dev/peps/pep-0008/#imports https://www.python.org/dev/peps/pep-0008/#imports
- StavrosK 6y agoBlack doesn't sort imports at all.
- spappal 6y agoAnd PEP 8 doesn't mention sorting the imports. There are even counterexamples which aren't alphabetically sorted. It does mention grouping though. Since Python imports can have side effects, the order can matter. But to the extent that it doesn't break anything, alphabetically sorted groups seems deterministic and readable. I think this might be the most popular implementation for auto-sorting: https://pypi.org/project/isort/ https://pypi.org/project/isort/
- StavrosK 6y agoisort is the most popular, but this is the best by far: https://github.com/asottile/reorder_python_imports https://github.com/asottile/reorder_python_imports