diff --git a/detectron2/utils/events.py b/detectron2/utils/events.py index c4f9dadfd8..8a470c8ab2 100644 --- a/detectron2/utils/events.py +++ b/detectron2/utils/events.py @@ -3,14 +3,19 @@ import json import logging import os +import sys import time from collections import defaultdict from contextlib import contextmanager -from functools import cached_property from typing import Optional import torch from fvcore.common.history_buffer import HistoryBuffer +if sys.version_info >= (3, 8): + from functools import cached_property +else: + from backports.cached_property import cached_property + from detectron2.utils.file_io import PathManager __all__ = [ diff --git a/docs/requirements.txt b/docs/requirements.txt index 720a1b1193..e6d5da0f85 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -21,3 +21,4 @@ omegaconf>=2.1.0.dev24 hydra-core>=1.1.0.dev5 scipy timm +backports.cached-property==1.0.2; python_version < '3.8' diff --git a/setup.py b/setup.py index b51307a625..c118b06795 100644 --- a/setup.py +++ b/setup.py @@ -190,6 +190,7 @@ def get_model_zoo_configs() -> List[str]: "hydra-core>=1.1", "black", "packaging", + "backports.cached-property==1.0.2; python_version < '3.8'", # NOTE: When adding new dependencies, if it is required at import time (in addition # to runtime), it probably needs to appear in docs/requirements.txt, or as a mock # in docs/conf.py