Skip to content

Commit 82747e0

Browse files
committed
Use PEP604 syntax for optional type annotations
1 parent 8c79691 commit 82747e0

File tree

3 files changed

+26
-19
lines changed

3 files changed

+26
-19
lines changed

labellines/core.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
from __future__ import annotations
2+
3+
from typing import TYPE_CHECKING
4+
15
import warnings
2-
from typing import Optional, Union
36
from datetime import timedelta
47
import matplotlib.pyplot as plt
58
import numpy as np
@@ -17,21 +20,24 @@
1720
from .line_label import LineLabel
1821
from .utils import maximum_bipartite_matching, normalize_xydata
1922

23+
if TYPE_CHECKING:
24+
from line_label import Position
25+
2026

2127
# Label line with line2D label data
2228
def labelLine(
2329
line: Line2D,
24-
x,
25-
label: Optional[str] = None,
26-
align: Optional[bool] = None,
30+
x: Position,
31+
label: str | None = None,
32+
align: bool | None = None,
2733
drop_label: bool = False,
2834
xoffset: float = 0,
2935
xoffset_logspace: bool = False,
3036
yoffset: float = 0,
3137
yoffset_logspace: bool = False,
3238
outline_color: str = "auto",
3339
outline_width: float = 8,
34-
rotation: Optional[float] = None,
40+
rotation: float | None = None,
3541
**kwargs,
3642
):
3743
"""
@@ -107,16 +113,16 @@ def labelLine(
107113

108114

109115
def labelLines(
110-
lines: Optional[list[Line2D]] = None,
111-
align: Optional[bool] = None,
112-
xvals: Optional[Union[tuple[float, float], list[float]]] = None,
116+
lines: list[Line2D] | None = None,
117+
align: bool | None = None,
118+
xvals: tuple[Position, Position] | list[Position] | None = None,
113119
drop_label: bool = False,
114120
shrink_factor: float = 0.05,
115-
xoffsets: Union[float, list[float]] = 0,
116-
yoffsets: Union[float, list[float]] = 0,
121+
xoffsets: float | list[float] = 0,
122+
yoffsets: float | list[float] = 0,
117123
outline_color: str = "auto",
118124
outline_width: float = 5,
119-
rotation: Optional[bool] = None,
125+
rotation: bool | None = None,
120126
**kwargs,
121127
):
122128
"""Label all lines with their respective legends.
@@ -266,8 +272,9 @@ def labelLines(
266272
if not (xmin <= xv <= xmax):
267273
warnings.warn(
268274
(
269-
f"The value at position {i} in `xvals` is outside the range of its "
270-
f"associated line ({xmin=}, {xmax=}, xval={xv}). "
275+
f"The value at position {i} in `xvals` is outside the "
276+
"range of its associated line "
277+
f"({xmin=}, {xmax=}, xval={xv}). "
271278
"Clipping it into the allowed range."
272279
),
273280
UserWarning,

labellines/line_label.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
if TYPE_CHECKING:
1414
from datetime import datetime
15-
from typing import Any, Literal, Optional, Union
15+
from typing import Any, Literal, Union
1616

1717
from matplotlib.axes import Axes
1818
from matplotlib.lines import Line2D
@@ -62,15 +62,15 @@ def __init__(
6262
self,
6363
line: Line2D,
6464
x: Position,
65-
label: Optional[str] = None,
66-
align: Optional[bool] = None,
65+
label: str | None = None,
66+
align: bool | None = None,
6767
xoffset: float = 0,
6868
xoffset_logspace: bool = False,
6969
yoffset: float = 0,
7070
yoffset_logspace: bool = False,
71-
outline_color: Optional[Union[AutoLiteral, ColorLike]] = "auto",
71+
outline_color: AutoLiteral | ColorLike | None = "auto",
7272
outline_width: float = 8,
73-
rotation: Optional[float] = None,
73+
rotation: float | None = None,
7474
**kwargs,
7575
) -> None:
7676
"""

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ filterwarnings = [
5858
]
5959

6060
[tool.ruff.lint]
61-
ignore = ["N802", "N806", "C901", "UP007"]
61+
ignore = ["N802", "N806", "C901"]
6262
select = ["E", "C", "F", "UP", "B", "A", "YTT", "S", "N"]
6363

6464

0 commit comments

Comments
 (0)