summaryrefslogtreecommitdiff
path: root/isort/pylama_isort.py
blob: 6fa235f9cbdbee8f1feca67eca12bf70be283dc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import os
import sys

from pylama.lint import Linter as BaseLinter

from .isort import SortImports


class Linter(BaseLinter):

    def allow(self, path):
        """Determine if this path should be linted."""
        return path.endswith('.py')

    def run(self, path, **meta):
        """Lint the file. Return an array of error dicts if appropriate."""
        with open(os.devnull, 'w') as devnull:
            # Suppress isort messages
            sys.stdout = devnull

            if SortImports(path, check=True).incorrectly_sorted:
                return [{
                    'lnum': 0,
                    'col': 0,
                    'text': 'Incorrectly sorted imports.',
                    'type': 'ISORT'
                }]
            else:
                return []