|
14 | 14 | from typing import Dict, List, Optional, Tuple, Type, Union
|
15 | 15 |
|
16 | 16 | import numpy as np
|
| 17 | +from iopath.common.file_io import PathManager |
17 | 18 |
|
18 | 19 | from omegaconf import DictConfig
|
19 | 20 | from pytorch3d.implicitron.dataset.dataset_map_provider import (
|
@@ -383,12 +384,11 @@ def _load_annotation_json(self, json_filename: str):
|
383 | 384 | return data
|
384 | 385 |
|
385 | 386 | def _get_available_subset_names(self):
|
386 |
| - path_manager = self.path_manager_factory.get() |
387 |
| - if path_manager is not None: |
388 |
| - dataset_root = path_manager.get_local_path(self.dataset_root) |
389 |
| - else: |
390 |
| - dataset_root = self.dataset_root |
391 |
| - return get_available_subset_names(dataset_root, self.category) |
| 387 | + return get_available_subset_names( |
| 388 | + self.dataset_root, |
| 389 | + self.category, |
| 390 | + path_manager=self.path_manager_factory.get(), |
| 391 | + ) |
392 | 392 |
|
393 | 393 | def _extend_test_data_with_known_views(
|
394 | 394 | self,
|
@@ -425,18 +425,30 @@ def _extend_test_data_with_known_views(
|
425 | 425 | return eval_batch_index_out, list(test_subset_mapping_set)
|
426 | 426 |
|
427 | 427 |
|
428 |
| -def get_available_subset_names(dataset_root: str, category: str) -> List[str]: |
| 428 | +def get_available_subset_names( |
| 429 | + dataset_root: str, |
| 430 | + category: str, |
| 431 | + path_manager: Optional[PathManager] = None, |
| 432 | +) -> List[str]: |
429 | 433 | """
|
430 | 434 | Get the available subset names for a given category folder inside a root dataset
|
431 | 435 | folder `dataset_root`.
|
432 | 436 | """
|
433 | 437 | category_dir = os.path.join(dataset_root, category)
|
434 |
| - if not os.path.isdir(category_dir): |
| 438 | + category_dir_exists = ( |
| 439 | + (path_manager is not None) and path_manager.isdir(category_dir) |
| 440 | + ) or os.path.isdir(category_dir) |
| 441 | + if not category_dir_exists: |
435 | 442 | raise ValueError(
|
436 | 443 | f"Looking for dataset files in {category_dir}. "
|
437 | 444 | + "Please specify a correct dataset_root folder."
|
438 | 445 | )
|
439 |
| - set_list_jsons = os.listdir(os.path.join(category_dir, "set_lists")) |
| 446 | + |
| 447 | + set_list_dir = os.path.join(category_dir, "set_lists") |
| 448 | + set_list_jsons = (os.listdir if path_manager is None else path_manager.ls)( |
| 449 | + set_list_dir |
| 450 | + ) |
| 451 | + |
440 | 452 | return [
|
441 | 453 | json_file.replace("set_lists_", "").replace(".json", "")
|
442 | 454 | for json_file in set_list_jsons
|
|
0 commit comments