MCPcopy Create free account
hub / github.com/huggingface/datasets / DataFilesPatternsList

Class DataFilesPatternsList

src/datasets/data_files.py:741–791  ·  view source on GitHub ↗

List of data files patterns (absolute local paths or URLs). For each pattern there should also be a list of allowed extensions to keep, or a None ot keep all the files for the pattern.

Source from the content-addressed store, hash-verified

739
740
741class DataFilesPatternsList(list[str]):
742 """
743 List of data files patterns (absolute local paths or URLs).
744 For each pattern there should also be a list of allowed extensions
745 to keep, or a None ot keep all the files for the pattern.
746 """
747
748 def __init__(
749 self,
750 patterns: list[str],
751 allowed_extensions: list[Optional[list[str]]],
752 ):
753 super().__init__(patterns)
754 self.allowed_extensions = allowed_extensions
755
756 def __add__(self, other):
757 return DataFilesList([*self, *other], self.allowed_extensions + other.allowed_extensions)
758
759 @classmethod
760 def from_patterns(
761 cls, patterns: list[str], allowed_extensions: Optional[list[str]] = None
762 ) -> "DataFilesPatternsList":
763 return cls(patterns, [allowed_extensions] * len(patterns))
764
765 def resolve(
766 self,
767 base_path: str,
768 download_config: Optional[DownloadConfig] = None,
769 ) -> "DataFilesList":
770 base_path = base_path if base_path is not None else Path().resolve().as_posix()
771 data_files = []
772 for pattern, allowed_extensions in zip(self, self.allowed_extensions):
773 try:
774 data_files.extend(
775 resolve_pattern(
776 pattern,
777 base_path=base_path,
778 allowed_extensions=allowed_extensions,
779 download_config=download_config,
780 )
781 )
782 except FileNotFoundError:
783 if not has_magic(pattern):
784 raise
785 origin_metadata = _get_origin_metadata(data_files, download_config=download_config)
786 return DataFilesList(data_files, origin_metadata)
787
788 def filter_extensions(self, extensions: list[str]) -> "DataFilesPatternsList":
789 return DataFilesPatternsList(
790 self, [allowed_extensions + extensions for allowed_extensions in self.allowed_extensions]
791 )
792
793
794class DataFilesPatternsDict(dict[str, DataFilesPatternsList]):

Callers 3

filter_extensionsMethod · 0.85

Calls

no outgoing calls

Tested by 2