Beispiel #1
0
def main(argv=None):

    # `black` suggested config:
    # https://black.readthedocs.io/en/stable/the_black_code_style.html
    options = {
            'multi_line_output': 3,
            'include_trailing_comma': True,
            'force_grid_wrap': 0,
            'use_parentheses': True,
            'line_length': 88
            }

    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help='Filenames to run')
    parser.add_argument('--silent-overwrite', action='store_true', dest='silent', default=False)
    parser.add_argument('--check-only', action='store_true', dest='check_only', default=False)
    parser.add_argument('--diff', action='store_true', dest='show_diff', default=False)
    args = parser.parse_args(argv)

    return_value = 0

    for filename in args.filenames:
        if imports_incorrect(filename, show_diff=args.show_diff, **options):
            if args.check_only:
                return_value = 1
            elif args.silent:
                isort.SortImports(filename, **options)
            else:
                return_value = 1
                isort.SortImports(filename, **options)
                print('FIXED: {0}'.format(os.path.abspath(filename)))
    return return_value
Beispiel #2
0
def main(argv=None):
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help='Filenames to run')
    
    args = parser.parse_args(argv)
    for filename in args.filenames:
        if imports_incorrect(filename):
            isort.SortImports(filename)
    return 0
def main(argv=None):

    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help='Filenames to run')
    parser.add_argument('--silent-overwrite',
                        action='store_true',
                        dest='silent',
                        default=False)
    parser.add_argument('--check-only',
                        action='store_true',
                        dest='check_only',
                        default=False)
    parser.add_argument('--diff',
                        action='store_true',
                        dest='show_diff',
                        default=False)
    parser.add_argument('--virtualenv', dest='venv_path', default=None)
    parser.add_argument('--amended-cgf-path',
                        dest='amended_cfg_path',
                        default='/tmp/amended_isort.cfg')
    args = parser.parse_args(argv)

    if args.venv_path:
        amend_config(args.venv_path, out_path=args.amended_cfg_path)
        settings_path = args.amended_cfg_path
    else:
        settings_path = None

    return_value = 0

    for filename in args.filenames:
        if imports_incorrect(filename,
                             show_diff=args.show_diff,
                             settings_path=settings_path):
            if args.check_only:
                return_value = 1
            elif args.silent:
                isort.SortImports(filename, settings_path=settings_path)
            else:
                return_value = 1
                isort.SortImports(filename, settings_path=settings_path)
                print('FIXED: {0}'.format(os.path.abspath(filename)))

    return return_value
Beispiel #4
0
def main(argv=None):

    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help='Filenames to run')
    parser.add_argument('--silent-overwrite', action='store_true', dest='silent', default=False)
    parser.add_argument('--check-only', action='store_true', dest='check_only', default=False)
    parser.add_argument('--diff', action='store_true', dest='show_diff', default=False)
    args = parser.parse_args(argv)

    return_value = 0

    for filename in args.filenames:
        if imports_incorrect(filename, show_diff=args.show_diff):
            if args.check_only:
                return_value = 1
            elif args.silent:
                isort.SortImports(filename)
            else:
                return_value = 1
                isort.SortImports(filename)
                print('FIXED: {0}'.format(os.path.abspath(filename)))
    return return_value
def main(argv=None):
    def imports_incorrect(filename):
        return isort.SortImports(filename, check=True).incorrectly_sorted

    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help='Filenames to run')
    parser.add_argument('--silent-overwrite',
                        action='store_true',
                        dest='silent')
    parser.set_defaults(silent=False)
    args = parser.parse_args(argv)

    return_value = 0

    for filename in args.filenames:
        if imports_incorrect(filename) is True:
            if args.silent is False:
                return_value = 1
                isort.SortImports(filename)
                print('FIXED: {0}'.format(os.path.abspath(filename)))
            else:
                isort.SortImports(filename)
    return return_value
Beispiel #6
0
    def __init__(self, linter):
        """Initialize the linter by loading all 'allowed' imports from package requirements"""
        super(ImportRequirementsLinter, self).__init__(linter)

        self.known_files = {}  # type: Dict[str, _DistInfo]
        self.known_modules = defaultdict(set)  # type: defaultdict[str, Set[_DistInfo]]
        self.isort_obj = isort.SortImports(file_contents="")
        all_loadable_distributions = set(
            importlib_metadata.distributions()
        )  # type: Set[Distribution]

        setup_result = run_setup("setup.py")
        self.first_party_packages = _filter_non_namespace_packages(setup_result.packages or [])
        self.allowed_distributions = {
            get_distribution(x).project_name for x in setup_result.install_requires
        }
        self.visited_distributions = set()

        for dist in all_loadable_distributions:
            dist_name = dist.metadata["Name"]
            allowed = dist_name in self.allowed_distributions
            # Get a list of files created by the distribution
            distribution_files = dist.files
            # Resolve the (relative) paths to absolute paths
            resolved_filepaths = {x.locate() for x in distribution_files}

            # in python3.4 dict.get() always returns None when passing a pathlib.Path as key
            distribution_file_info = {
                str(p): _DistInfo(dist, allowed) for p in resolved_filepaths
            }

            # Add them to the whitelist
            self.known_files.update(distribution_file_info)

            # Add source distributions to backup list
            if not dist.read_text("SOURCES.txt"):
                continue
            dist_modules_text = dist.read_text("top_level.txt") or ""
            dist_modules = dist_modules_text.split()

            for mod in dist_modules:
                self.known_modules[mod].add(_DistInfo(dist, allowed))
Beispiel #7
0
def imports_incorrect(filename, show_diff=False):
    return isort.SortImports(filename, check=True, show_diff=show_diff).incorrectly_sorted
Beispiel #8
0
def imports_incorrect(filename):
    return isort.SortImports(filename, check=True).incorrectly_sorted
def imports_incorrect(filename, show_diff=False, settings_path=None):
    return isort.SortImports(filename,
                             check=True,
                             show_diff=show_diff,
                             settings_path=settings_path).incorrectly_sorted