1
1
from __future__ import annotations
2
2
3
3
import datetime as dt
4
- from typing import (
5
- TYPE_CHECKING ,
6
- Any ,
7
- cast ,
8
- )
4
+ from typing import TYPE_CHECKING
9
5
10
6
import numpy as np
11
7
import pandas as pd
12
- from typing_extensions import assert_type
8
+ from typing_extensions import (
9
+ TypeAlias ,
10
+ assert_type ,
11
+ )
13
12
14
13
from pandas ._libs .tslibs import (
15
14
BaseOffset ,
18
17
19
18
if TYPE_CHECKING :
20
19
from pandas .core .series import (
20
+ OffsetSeries ,
21
21
PeriodSeries ,
22
22
TimedeltaSeries ,
23
23
)
24
24
25
25
from pandas ._typing import np_ndarray_bool
26
26
else :
27
- PeriodSeries = TimedeltaSeries = np_ndarray_bool = Any
27
+ import numpy .typing as npt
28
+
29
+ np_ndarray_bool = npt .NDArray [np .bool_ ]
30
+ PeriodSeries : TypeAlias = pd .Series
31
+ TimedeltaSeries : TypeAlias = pd .Series
32
+ OffsetSeries : TypeAlias = pd .Series
33
+
28
34
29
35
from tests import check
30
36
@@ -100,11 +106,13 @@ def test_periof_add_subtract() -> None:
100
106
as_np_i64 = np .int64 (1 )
101
107
as_int = int (1 )
102
108
as_period_index = pd .period_range ("2012-1-1" , periods = 10 , freq = "D" )
109
+ check (assert_type (as_period_index , pd .PeriodIndex ), pd .PeriodIndex )
103
110
as_period = pd .Period ("2012-1-1" , freq = "D" )
104
111
scale = 24 * 60 * 60 * 10 ** 9
105
112
as_td_series = pd .Series (pd .timedelta_range (scale , scale , freq = "D" ))
106
113
check (assert_type (as_td_series , TimedeltaSeries ), pd .Series )
107
114
as_period_series = pd .Series (as_period_index )
115
+ check (assert_type (as_period_series , PeriodSeries ), pd .Series )
108
116
as_timedelta_idx = pd .timedelta_range (scale , scale , freq = "D" )
109
117
as_nat = pd .NaT
110
118
@@ -114,18 +122,21 @@ def test_periof_add_subtract() -> None:
114
122
check (assert_type (p + as_np_i64 , pd .Period ), pd .Period )
115
123
check (assert_type (p + as_int , pd .Period ), pd .Period )
116
124
check (assert_type (p + p .freq , pd .Period ), pd .Period )
117
- check (assert_type (p + (p - as_period_index ), pd .PeriodIndex ), pd .PeriodIndex )
125
+ # offset_index is tested below
126
+ offset_index = p - as_period_index
127
+ check (assert_type (p + offset_index , pd .PeriodIndex ), pd .PeriodIndex )
118
128
check (assert_type (p + as_td_series , PeriodSeries ), pd .Series , pd .Period )
119
129
check (assert_type (p + as_timedelta_idx , pd .PeriodIndex ), pd .PeriodIndex )
120
130
check (assert_type (p + as_nat , NaTType ), NaTType )
121
- das8 = cast (TimedeltaSeries , (as_period_series - as_period_series ))
122
- check (assert_type (p + das8 , PeriodSeries ), pd .Series , pd .Period )
131
+ offset_series = as_period_series - as_period_series
132
+ check (assert_type (offset_series , OffsetSeries ), pd .Series )
133
+ check (assert_type (p + offset_series , PeriodSeries ), pd .Series , pd .Period )
123
134
check (assert_type (p - as_pd_td , pd .Period ), pd .Period )
124
135
check (assert_type (p - as_dt_td , pd .Period ), pd .Period )
125
136
check (assert_type (p - as_np_td , pd .Period ), pd .Period )
126
137
check (assert_type (p - as_np_i64 , pd .Period ), pd .Period )
127
138
check (assert_type (p - as_int , pd .Period ), pd .Period )
128
- check (assert_type (p - as_period_index , pd .Index ), pd .Index )
139
+ check (assert_type (offset_index , pd .Index ), pd .Index )
129
140
check (assert_type (p - as_period , BaseOffset ), Day )
130
141
check (assert_type (p - as_td_series , PeriodSeries ), pd .Series , pd .Period )
131
142
check (assert_type (p - as_timedelta_idx , pd .PeriodIndex ), pd .PeriodIndex )
0 commit comments