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
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
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
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))
def imports_incorrect(filename, show_diff=False): return isort.SortImports(filename, check=True, show_diff=show_diff).incorrectly_sorted
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