def ensure_imagenet_manual_download(source_dir, split, devkit=False):
    """Ensures that the ImageNet archive(s) for the requested split have been
    manually downloaded to the required locations.

    Args:
        source_dir: the dataset directory
        split: the split of interest. Supported values are
            ``("train", "validation")``
        devkit (False): whether to ensure that the devkit archive is present

    Raises:
        OSError: if the required files are not present
    """
    if split == "train":
        archive_name = _TRAIN_IMAGES_TAR
    elif split == "validation":
        archive_name = _VAL_IMAGES_DIR
    else:
        raise ValueError(
            "Unsupported split '%s'; Supported values are "
            "('train', 'validation')"
        )

    _ensure_archive(archive_name, source_dir)

    if devkit:
        devkit_name = _DEVKIT_TAR
        _ensure_archive(devkit_name, source_dir)
Ensures that the ImageNet archive(s) for the requested split have been
    manually downloaded to the required locations.

    Args:
        source_dir: the dataset directory
        split: the split of interest. Supported values are
            ``("train", "validation")``
        devkit (False): whether to ensure that the devkit archive is present

    Raises:
        OSError: if the required files are not present
    
fiftyone/utils/imagenet.py