diff --git a/folium/plugins/timeline.py b/folium/plugins/timeline.py index 19edb5394..047a8dbde 100644 --- a/folium/plugins/timeline.py +++ b/folium/plugins/timeline.py @@ -1,4 +1,4 @@ -from typing import Optional, TextIO, Union +from typing import Optional, Union import isodate import jq @@ -211,12 +211,12 @@ class Timeline(JSCSSMixin, MacroElement): def __init__( self, - data: Union[TextIO, str, dict], - duration: str = None, + data: Union[dict], + duration: Optional[str] = None, convert: bool = True, get_interval: Optional[JsCode] = None, - start: Union[str, int, float] = None, - end: Union[str, int, float] = None, + start: Optional[Union[str, int, float]] = None, + end: Optional[Union[str, int, float]] = None, add_last_point: bool = True, auto_play: bool = True, format_output: Optional[JsCode] = format_output, @@ -277,11 +277,13 @@ def _convert_to_feature_collection(obj) -> dict: return {"type": "FeatureCollection", "features": [obj]} -def _convert_from_times(obj: dict, duration: str, add_last_point: bool) -> dict: +def _convert_from_times( + obj: dict, duration: Optional[str], add_last_point: bool +) -> dict: "Converts a GeoJson from the TimeDimension format to the Timeline format" obj = _convert_to_feature_collection(obj) if duration is not None: - duration = int(isodate.parse_duration(duration).total_seconds() * 1000) + duration = str(int(isodate.parse_duration(duration).total_seconds() * 1000)) else: # if duration is none, we show until the end of times duration = (