Spaces:
Running
on
L40S
Running
on
L40S
# Copyright (c) Facebook, Inc. and its affiliates. | |
from iopath.common.file_io import HTTPURLHandler, OneDrivePathHandler, PathHandler | |
from iopath.common.file_io import PathManager as PathManagerBase | |
__all__ = ["PathManager", "PathHandler"] | |
PathManager = PathManagerBase() | |
""" | |
This is a detectron2 project-specific PathManager. | |
We try to stay away from global PathManager in fvcore as it | |
introduces potential conflicts among other libraries. | |
""" | |
class Detectron2Handler(PathHandler): | |
""" | |
Resolve anything that's hosted under detectron2's namespace. | |
""" | |
PREFIX = "detectron2://" | |
S3_DETECTRON2_PREFIX = "https://dl.fbaipublicfiles.com/detectron2/" | |
def _get_supported_prefixes(self): | |
return [self.PREFIX] | |
def _get_local_path(self, path, **kwargs): | |
name = path[len(self.PREFIX) :] | |
return PathManager.get_local_path(self.S3_DETECTRON2_PREFIX + name, **kwargs) | |
def _open(self, path, mode="r", **kwargs): | |
return PathManager.open( | |
self.S3_DETECTRON2_PREFIX + path[len(self.PREFIX) :], mode, **kwargs | |
) | |
PathManager.register_handler(HTTPURLHandler()) | |
PathManager.register_handler(OneDrivePathHandler()) | |
PathManager.register_handler(Detectron2Handler()) | |