예제 #1
0
    def list_files(self,
                   file_types=[],
                   groups={},
                   use_shebang=True,
                   exclude=[]):
        # type: (List[str], Dict[str, List[str]], bool, List[str]) -> Dict[str, List[str]]
        assert file_types or groups, "Atleast one of `file_types` or `groups` must be specified."

        self.groups = groups
        if self.args.groups:
            file_types = [
                ft for group in self.args.groups for ft in groups[group]
            ]
        else:
            file_types.extend(
                {ft
                 for group in groups.values() for ft in group})

        self.by_lang = lister.list_files(
            targets=self.args.targets,
            modified_only=self.args.modified,
            ftypes=file_types,
            use_shebang=use_shebang,
            group_by_ftype=True,
            exclude=exclude,
        )
        return self.by_lang
예제 #2
0
    def list_files(
        self,
        file_types: Sequence[str] = [],
        groups: Mapping[str, Sequence[str]] = {},
        use_shebang: bool = True,
        exclude: Sequence[str] = [],
    ) -> Dict[str, List[str]]:
        assert file_types or groups, "Atleast one of `file_types` or `groups` must be specified."

        self.groups = groups
        if self.args.groups:
            file_types = [
                ft for group in self.args.groups for ft in groups[group]
            ]
        else:
            file_types = [
                *file_types,
                *{ft
                  for group in groups.values() for ft in group}
            ]

        self.by_lang = lister.list_files(
            targets=self.args.targets,
            modified_only=self.args.modified,
            ftypes=file_types,
            use_shebang=use_shebang,
            group_by_ftype=True,
            exclude=exclude,
        )
        return self.by_lang