Skip to content

Commit 50fae43

Browse files
authored
Use typing.TypeAlias (#367)
* Use typing.TypeAlias * Optionally install typing_extensions
1 parent adb08bd commit 50fae43

File tree

3 files changed

+28
-13
lines changed

3 files changed

+28
-13
lines changed

adaptive/learner/learner1D.py

+16-10
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
partial_function_from_dataframe,
2323
)
2424

25+
try:
26+
from typing import TypeAlias
27+
except ImportError:
28+
# Remove this when we drop support for Python 3.9
29+
from typing_extensions import TypeAlias
30+
2531
try:
2632
import pandas
2733

@@ -33,21 +39,21 @@
3339
# -- types --
3440

3541
# Commonly used types
36-
Interval = Union[Tuple[float, float], Tuple[float, float, int]]
37-
NeighborsType = Dict[float, List[Union[float, None]]]
42+
Interval: TypeAlias = Union[Tuple[float, float], Tuple[float, float, int]]
43+
NeighborsType: TypeAlias = Dict[float, List[Union[float, None]]]
3844

3945
# Types for loss_per_interval functions
40-
NoneFloat = Union[Float, None]
41-
NoneArray = Union[np.ndarray, None]
42-
XsType0 = Tuple[Float, Float]
43-
YsType0 = Union[Tuple[Float, Float], Tuple[np.ndarray, np.ndarray]]
44-
XsType1 = Tuple[NoneFloat, NoneFloat, NoneFloat, NoneFloat]
45-
YsType1 = Union[
46+
NoneFloat: TypeAlias = Union[Float, None]
47+
NoneArray: TypeAlias = Union[np.ndarray, None]
48+
XsType0: TypeAlias = Tuple[Float, Float]
49+
YsType0: TypeAlias = Union[Tuple[Float, Float], Tuple[np.ndarray, np.ndarray]]
50+
XsType1: TypeAlias = Tuple[NoneFloat, NoneFloat, NoneFloat, NoneFloat]
51+
YsType1: TypeAlias = Union[
4652
Tuple[NoneFloat, NoneFloat, NoneFloat, NoneFloat],
4753
Tuple[NoneArray, NoneArray, NoneArray, NoneArray],
4854
]
49-
XsTypeN = Tuple[NoneFloat, ...]
50-
YsTypeN = Union[Tuple[NoneFloat, ...], Tuple[NoneArray, ...]]
55+
XsTypeN: TypeAlias = Tuple[NoneFloat, ...]
56+
YsTypeN: TypeAlias = Union[Tuple[NoneFloat, ...], Tuple[NoneArray, ...]]
5157

5258

5359
__all__ = [

adaptive/types.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
import numpy as np
44

5-
Float = Union[float, np.float_]
6-
Int = Union[int, np.int_]
7-
Real = Union[Float, Int]
5+
try:
6+
from typing import TypeAlias
7+
except ImportError:
8+
# Remove this when we drop support for Python 3.9
9+
from typing_extensions import TypeAlias
10+
11+
Float: TypeAlias = Union[float, np.float_]
12+
Int: TypeAlias = Union[int, np.int_]
13+
Real: TypeAlias = Union[Float, Int]

setup.py

+3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ def get_version_and_cmdclass(package_name):
3131
"cloudpickle",
3232
"loky >= 2.9",
3333
]
34+
if sys.version_info < (3, 10):
35+
install_requires.append("typing_extensions")
3436

3537
extras_require = {
3638
"notebook": [
@@ -78,6 +80,7 @@ def get_version_and_cmdclass(package_name):
7880
"Programming Language :: Python :: 3.7",
7981
"Programming Language :: Python :: 3.8",
8082
"Programming Language :: Python :: 3.9",
83+
"Programming Language :: Python :: 3.10",
8184
],
8285
packages=find_packages("."),
8386
install_requires=install_requires,

0 commit comments

Comments
 (0)