From 061ff796f646f76a600610937d0758653f384cbb Mon Sep 17 00:00:00 2001 From: seth Date: Mon, 7 Jun 2021 00:46:39 -0500 Subject: [PATCH] Fix compatibility with python < 3.8 by switching from typing.Final to typing_extensions.Final --- bemani/common/card.py | 3 ++- bemani/common/constants.py | 2 +- bemani/common/time.py | 3 ++- bemani/format/afp/types/ap2.py | 3 ++- bemani/format/afp/types/expression.py | 3 ++- bemani/format/afp/types/statement.py | 3 ++- bemani/protocol/binary.py | 3 ++- bemani/protocol/lz77.py | 3 ++- bemani/protocol/node.py | 4 ++-- bemani/protocol/protocol.py | 3 ++- bemani/protocol/xml.py | 3 ++- 11 files changed, 21 insertions(+), 12 deletions(-) diff --git a/bemani/common/card.py b/bemani/common/card.py index c2e2c59..7a7033e 100644 --- a/bemani/common/card.py +++ b/bemani/common/card.py @@ -1,4 +1,5 @@ -from typing import Dict, Final, List +from typing import Dict, List +from typing_extensions import Final class CardCipherException(Exception): diff --git a/bemani/common/constants.py b/bemani/common/constants.py index 4c05799..31bca04 100644 --- a/bemani/common/constants.py +++ b/bemani/common/constants.py @@ -1,4 +1,4 @@ -from typing import Final +from typing_extensions import Final class GameConstants: diff --git a/bemani/common/time.py b/bemani/common/time.py index ed9f983..5c3d857 100644 --- a/bemani/common/time.py +++ b/bemani/common/time.py @@ -2,7 +2,8 @@ import calendar import datetime from dateutil import tz -from typing import List, Final, Optional +from typing import List, Optional +from typing_extensions import Final class Time: diff --git a/bemani/format/afp/types/ap2.py b/bemani/format/afp/types/ap2.py index 8094d22..da6347d 100644 --- a/bemani/format/afp/types/ap2.py +++ b/bemani/format/afp/types/ap2.py @@ -1,5 +1,6 @@ import os -from typing import TYPE_CHECKING, Any, Dict, Final, List, Set, Optional +from typing import TYPE_CHECKING, Any, Dict, List, Set, Optional +from typing_extensions import Final from .expression import Register diff --git a/bemani/format/afp/types/expression.py b/bemani/format/afp/types/expression.py index 618266a..03a2c73 100644 --- a/bemani/format/afp/types/expression.py +++ b/bemani/format/afp/types/expression.py @@ -1,5 +1,6 @@ import os -from typing import TYPE_CHECKING, Any, Dict, Final, List, Tuple, Optional, Union +from typing import TYPE_CHECKING, Any, Dict, List, Tuple, Optional, Union +from typing_extensions import Final if TYPE_CHECKING: # Circular import otherwise diff --git a/bemani/format/afp/types/statement.py b/bemani/format/afp/types/statement.py index fdf6209..54aa1c2 100644 --- a/bemani/format/afp/types/statement.py +++ b/bemani/format/afp/types/statement.py @@ -1,5 +1,6 @@ import os -from typing import Any, Final, List, Sequence, Union +from typing import Any, List, Sequence, Union +from typing_extensions import Final from .expression import ( Expression, diff --git a/bemani/protocol/binary.py b/bemani/protocol/binary.py index 2866ae9..5b2d25e 100644 --- a/bemani/protocol/binary.py +++ b/bemani/protocol/binary.py @@ -1,5 +1,6 @@ import struct -from typing import Optional, Final, List, Dict, Any +from typing import Optional, List, Dict, Any +from typing_extensions import Final from bemani.protocol.stream import InputStream, OutputStream from bemani.protocol.node import Node diff --git a/bemani/protocol/lz77.py b/bemani/protocol/lz77.py index 6fbd9b4..cd1be36 100644 --- a/bemani/protocol/lz77.py +++ b/bemani/protocol/lz77.py @@ -1,7 +1,8 @@ import ctypes import os from collections import defaultdict -from typing import Generator, Final, List, MutableMapping, Optional, Set, Tuple +from typing import Generator, List, MutableMapping, Optional, Set, Tuple +from typing_extensions import Final from .. import package_root diff --git a/bemani/protocol/node.py b/bemani/protocol/node.py index e3bf13a..dbbc381 100644 --- a/bemani/protocol/node.py +++ b/bemani/protocol/node.py @@ -1,7 +1,7 @@ import copy import struct -from typing import Any, Dict, Final, List, Optional, Union - +from typing import Any, Dict, List, Optional, Union +from typing_extensions import Final # Hack to get around mypy's lack of scoping on types. _renamed_float = float diff --git a/bemani/protocol/protocol.py b/bemani/protocol/protocol.py index 7ef36aa..f302abd 100644 --- a/bemani/protocol/protocol.py +++ b/bemani/protocol/protocol.py @@ -1,6 +1,7 @@ import binascii import hashlib -from typing import Final, Optional +from typing import Optional +from typing_extensions import Final from bemani.protocol.lz77 import Lz77 from bemani.protocol.binary import BinaryEncoding diff --git a/bemani/protocol/xml.py b/bemani/protocol/xml.py index d4878cc..f47bcb1 100644 --- a/bemani/protocol/xml.py +++ b/bemani/protocol/xml.py @@ -1,6 +1,7 @@ import copy import struct -from typing import Any, Dict, Final, Iterator, List, Optional, Tuple +from typing import Any, Dict, Iterator, List, Optional, Tuple +from typing_extensions import Final from bemani.protocol.stream import InputStream from bemani.protocol.node import Node