Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions src/datasets/load.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@
from .naming import camelcase_to_snakecase, snakecase_to_camelcase
from .packaged_modules import (
_ALL_ALLOWED_EXTENSIONS,
_ALL_METADATA_FILENAMES,
_EXTENSION_TO_MODULE,
_MODULE_TO_EXTENSIONS,
_MODULE_TO_METADATA_EXTENSIONS,
_MODULE_TO_METADATA_FILE_NAMES,
_PACKAGED_DATASETS_MODULES,
)
from .packaged_modules.folder_based_builder.folder_based_builder import FolderBasedBuilder
from .splits import Split
from .utils import _dataset_viewer
from .utils.file_utils import (
Expand Down Expand Up @@ -225,7 +225,7 @@ def infer_module_for_data_files_list(
- dict of builder kwargs
"""
extensions_counter = Counter(
("." + suffix.lower(), xbasename(filepath) in FolderBasedBuilder.METADATA_FILENAMES)
("." + suffix.lower(), xbasename(filepath) in _ALL_METADATA_FILENAMES)
for filepath in data_files_list
for suffix in xbasename(filepath).split(".")[1:]
)
Expand All @@ -234,7 +234,17 @@ def infer_module_for_data_files_list(
def sort_key(ext_count: tuple[tuple[str, bool], int]) -> tuple[int, bool]:
"""Sort by count and set ".parquet" as the favorite in case of a draw, and ignore metadata files"""
(ext, is_metadata), count = ext_count
return (not is_metadata, count, ext == ".parquet", ext == ".jsonl", ext == ".json", ext == ".csv", ext)
return (
not is_metadata,
count,
ext == ".parquet",
ext == ".lance",
ext == ".arrow",
ext == ".jsonl",
ext == ".json",
ext == ".csv",
ext,
)

for (ext, _), _ in sorted(extensions_counter.items(), key=sort_key, reverse=True):
if ext in _EXTENSION_TO_MODULE:
Expand Down
4 changes: 4 additions & 0 deletions src/datasets/packaged_modules/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ def _hash_python_lines(lines: list[str]) -> str:
_MODULE_TO_METADATA_FILE_NAMES["meshfolder"] = meshfolder.MeshFolder.METADATA_FILENAMES
_MODULE_TO_METADATA_FILE_NAMES["pdffolder"] = imagefolder.ImageFolder.METADATA_FILENAMES
_MODULE_TO_METADATA_FILE_NAMES["niftifolder"] = imagefolder.ImageFolder.METADATA_FILENAMES
_MODULE_TO_METADATA_FILE_NAMES["lance"] = lance.Lance.METADATA_FILE_NAMES

_MODULE_TO_METADATA_EXTENSIONS: Dict[str, List[str]] = {}
for _module in _MODULE_TO_EXTENSIONS:
Expand All @@ -139,3 +140,6 @@ def _hash_python_lines(lines: list[str]) -> str:
_ALL_EXTENSIONS = list(_EXTENSION_TO_MODULE.keys()) + [".zip"]
_ALL_METADATA_EXTENSIONS = sorted({_ext for _exts in _MODULE_TO_METADATA_EXTENSIONS.values() for _ext in _exts})
_ALL_ALLOWED_EXTENSIONS = _ALL_EXTENSIONS + _ALL_METADATA_EXTENSIONS
_ALL_METADATA_FILENAMES = sorted(
{file_name for file_names in _MODULE_TO_METADATA_FILE_NAMES.values() for file_name in file_names}
)
1 change: 1 addition & 0 deletions src/datasets/packaged_modules/lance/lance.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ def _fix_local_version_file(uri: str) -> str:
class Lance(datasets.ArrowBasedBuilder, datasets.builder._CountableBuilderMixin):
BUILDER_CONFIG_CLASS = LanceConfig
METADATA_EXTENSIONS = [".idx", ".txn", ".manifest"]
METADATA_FILE_NAMES = ["latest_version_hint.json"]

def _info(self):
return datasets.DatasetInfo(features=self.config.features)
Expand Down
Loading