Skip to content

Commit 4ddda2f

Browse files
committed
Fix typing for date props
1 parent b711247 commit 4ddda2f

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

dash/development/_py_prop_typing.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,38 @@ def generate_plotly_figure(*_):
141141
return "typing.Union[Figure, dict]"
142142

143143

144-
special_cases = {"dash_core_components": {"Graph": {"figure": generate_plotly_figure}}}
144+
def generate_datetime_prop(component, array=False):
145+
if "import datetime" not in custom_imports["dash_core_components"][component]:
146+
custom_imports["dash_core_components"][component].append("import datetime")
147+
148+
def generator(*_):
149+
datetime_type = "typing.Union[str, datetime.datetime]"
150+
if array:
151+
datetime_type = f"typing.Sequence[{datetime_type}]"
152+
return datetime_type
153+
154+
return generator
155+
156+
157+
special_cases = {
158+
"dash_core_components": {
159+
"Graph": {"figure": generate_plotly_figure},
160+
"DatePickerRange": {
161+
"start_date": generate_datetime_prop("DatePickerRange"),
162+
"end_date": generate_datetime_prop("DatePickerRange"),
163+
"min_date_allowed": generate_datetime_prop("DatePickerRange"),
164+
"max_date_allowed": generate_datetime_prop("DatePickerRange"),
165+
"disabled_days": generate_datetime_prop("DatePickerRange", True),
166+
},
167+
"DatePickerSingle": {
168+
"date": generate_datetime_prop("DatePickerSingle"),
169+
"min_date_allowed": generate_datetime_prop("DatePickerSingle"),
170+
"max_date_allowed": generate_datetime_prop("DatePickerSingle"),
171+
"disabled_days": generate_datetime_prop("DatePickerSingle", True),
172+
"initial_visible_month": generate_datetime_prop("DatePickerSingle"),
173+
},
174+
}
175+
}
145176

146177

147178
PROP_TYPING = {

0 commit comments

Comments
 (0)