1111import sys
1212import traceback as _traceback
1313from time import time
14+ from typing import Optional , Union
1415
1516from dateutil .relativedelta import relativedelta
1617from dateutil .tz import tzutc
@@ -59,12 +60,12 @@ def is_32bit():
5960EPOCH = datetime .datetime .fromtimestamp (0 , UTC_DT )
6061
6162# fmt: off
62- M_ALPHAS = {
63+ M_ALPHAS : dict [ str , Union [ int , str ]] = {
6364 "jan" : 1 , "feb" : 2 , "mar" : 3 , "apr" : 4 , # noqa: E241
6465 "may" : 5 , "jun" : 6 , "jul" : 7 , "aug" : 8 , # noqa: E241
6566 "sep" : 9 , "oct" : 10 , "nov" : 11 , "dec" : 12 ,
6667}
67- DOW_ALPHAS = {
68+ DOW_ALPHAS : dict [ str , Union [ int , str ]] = {
6869 "sun" : 0 , "mon" : 1 , "tue" : 2 , "wed" : 3 , "thu" : 4 , "fri" : 5 , "sat" : 6
6970}
7071
@@ -109,8 +110,8 @@ def is_32bit():
109110YEAR_CRON_LEN = len (YEAR_FIELDS )
110111# retrocompat
111112VALID_LEN_EXPRESSION = {a for a in CRON_FIELDS if isinstance (a , int )}
112- TIMESTAMP_TO_DT_CACHE = {}
113- EXPRESSIONS = {}
113+ TIMESTAMP_TO_DT_CACHE : dict [ int , datetime . datetime ] = {}
114+ EXPRESSIONS : dict [ tuple [ str , Optional [ bytes ], bool ], list [ str ]] = {}
114115MARKER = object ()
115116
116117
@@ -176,7 +177,7 @@ class croniter:
176177 (1970 , 2099 ),
177178 )
178179
179- ALPHACONV = (
180+ ALPHACONV : tuple [ dict [ str , Union [ int , str ]], ...] = (
180181 {}, # 0: min
181182 {}, # 1: hour
182183 {"l" : "l" }, # 2: dom
@@ -190,7 +191,7 @@ class croniter:
190191 {},
191192 )
192193
193- LOWMAP = (
194+ LOWMAP : tuple [ dict [ int , int ], ...] = (
194195 {},
195196 {},
196197 {0 : 1 },
0 commit comments