diff --git a/git/compat.py b/git/compat/__init__.py similarity index 100% rename from git/compat.py rename to git/compat/__init__.py diff --git a/git/compat/typing.py b/git/compat/typing.py new file mode 100644 index 000000000..925c5ba2e --- /dev/null +++ b/git/compat/typing.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# config.py +# Copyright (C) 2021 Michael Trier (mtrier@gmail.com) and contributors +# +# This module is part of GitPython and is released under +# the BSD License: http://www.opensource.org/licenses/bsd-license.php + +import sys + +if sys.version_info[:2] >= (3, 8): + from typing import Final, Literal # noqa: F401 +else: + from typing_extensions import Final, Literal # noqa: F401 diff --git a/git/config.py b/git/config.py index 1cb80475c..0c8d975db 100644 --- a/git/config.py +++ b/git/config.py @@ -16,14 +16,13 @@ import fnmatch from collections import OrderedDict -from typing_extensions import Literal - from git.compat import ( defenc, force_text, with_metaclass, is_win, ) +from git.compat.typing import Literal from git.util import LockFile import os.path as osp diff --git a/git/diff.py b/git/diff.py index deedb635c..943916ea8 100644 --- a/git/diff.py +++ b/git/diff.py @@ -16,7 +16,7 @@ # typing ------------------------------------------------------------------ from typing import Any, Iterator, List, Match, Optional, Tuple, Type, Union, TYPE_CHECKING -from typing_extensions import Final, Literal +from git.compat.typing import Final, Literal from git.types import TBD if TYPE_CHECKING: diff --git a/git/repo/base.py b/git/repo/base.py index b1d0cdbc6..ed0a810e4 100644 --- a/git/repo/base.py +++ b/git/repo/base.py @@ -34,8 +34,8 @@ # typing ------------------------------------------------------ +from git.compat.typing import Literal from git.types import TBD, PathLike -from typing_extensions import Literal from typing import (Any, BinaryIO, Callable, Dict, Iterator, List, Mapping, Optional, TextIO, Tuple, Type, Union, diff --git a/requirements.txt b/requirements.txt index 626a916a9..d980f6682 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ gitdb>=4.0.1,<5 -typing-extensions>=3.7.4.0 +typing-extensions>=3.7.4.0;python_version<"3.8" diff --git a/test-requirements.txt b/test-requirements.txt index 0734820f7..e06d2be14 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -5,4 +5,4 @@ tox virtualenv nose gitdb>=4.0.1,<5 -typing-extensions>=3.7.4.0 +typing-extensions>=3.7.4.0;python_version<"3.8"