def get_notebooks_from_args( args: List[str], exclude: List[str] = ["*.tox/*", "*.ipynb_checkpoints*"] ) -> Tuple[List[str], List[str]]: """ Extracts the absolute paths to notebooks from current director or the to the CLI passes files/folder and return the as list. Parameters ---------- args : List[str] The left over arguments that were not parsed by :attr:`option_manager` exclude : List[str], optional File-/Folderpatterns that should be excluded, by default ["*.tox/*", "*.ipynb_checkpoints*"] Returns ------- Tuple[List[str],List[str]] List of found notebooks absolute paths. """ def is_notebook(filename: str, nb_list: List, root="."): filename = os.path.abspath(os.path.join(root, filename)) if os.path.isfile(filename) and filename.endswith(".ipynb"): nb_list.append(os.path.normcase(filename)) return True nb_list: List[str] = [] if not args: args = [os.curdir] for index, arg in list(enumerate(args))[::-1]: if is_notebook(arg, nb_list): args.pop(index) for root, _, filenames in os.walk(arg): if not matches_filename( # pragma: no branch root, patterns=exclude, log_message='"%(path)s" has %(whether)sbeen excluded', logger=LOG, ): [ is_notebook(filename, nb_list, root) for filename in filenames ] return args, nb_list
def applies_to(self, filename): """Check if this StyleGuide applies to the file. :param str filename: The name of the file with violations that we're potentially applying this StyleGuide to. :returns: True if this applies, False otherwise :rtype: bool """ if self.filename is None: return True return utils.matches_filename( filename, patterns=[self.filename], log_message='{!r} does %(whether)smatch "%(path)s"'.format(self), logger=LOG, )
def is_path_excluded(self, path: str) -> bool: """Check if a path is excluded. :param str path: Path to check against the exclude patterns. :returns: True if there are exclude patterns and the path matches, otherwise False. :rtype: bool """ if path == "-": if self.options.stdin_display_name == "stdin": return False path = self.options.stdin_display_name return utils.matches_filename( path, patterns=self.exclude, log_message='"%(path)s" has %(whether)sbeen excluded', logger=LOG, )
def is_path_excluded(self, path): # type: (str) -> bool """Check if a path is excluded. :param str path: Path to check against the exclude patterns. :returns: True if there are exclude patterns and the path matches, otherwise False. :rtype: bool """ if path == "-": if self.options.stdin_display_name == "stdin": return False path = self.options.stdin_display_name return utils.matches_filename( path, patterns=self.options.exclude, log_message='"%(path)s" has %(whether)sbeen excluded', logger=LOG, )
def test_matches_filename_for_excluding_dotfiles(): """Verify that `.` and `..` are not matched by `.*`.""" logger = logging.Logger(__name__) assert not utils.matches_filename('.', ('.*', ), '', logger) assert not utils.matches_filename('..', ('.*', ), '', logger)