@@ -114,6 +114,24 @@ def get_data(self) -> pd.DataFrame:
114114
115115 return df
116116
117+ def _iter_events (self ):
118+ """
119+ Iterate over this dataset's `PanEvent` objects.
120+
121+ pangaeapy changed the shape of `PanDataSet.events` between versions:
122+ older releases exposed it as a list of `PanEvent` objects, while newer
123+ releases (>=1.1) expose it as a dict of ``{eventLabel: PanEvent}``.
124+ Support both so pyleotups doesn't break on the installed version.
125+
126+ Returns
127+ -------
128+ Iterable of PanEvent
129+ """
130+ events = self ._panobj .events
131+ if isinstance (events , dict ):
132+ return events .values ()
133+ return events
134+
117135 # ------------------------------------------------------------------
118136 # Summary Metadata
119137 # ------------------------------------------------------------------
@@ -270,7 +288,7 @@ def _compute_coverage(self) -> Optional[Tuple[float, float, float, float]]:
270288 latitudes = []
271289 longitudes = []
272290
273- for ev in self ._panobj . events :
291+ for ev in self ._iter_events () :
274292 lat1 = ev .latitude
275293 lat2 = ev .latitude2 if getattr (ev , "latitude2" , None ) is not None else lat1
276294 lon1 = ev .longitude
@@ -322,7 +340,7 @@ def to_summary_dict(self) -> Dict[str, Any]:
322340 "ScienceKeywords" : getattr (ds , "keywords" , None ),
323341 "Investigators" : ", " .join (a .fullname for a in ds .authors ),
324342 "Publications" : ds .citation ,
325- "Sites" : [e .label for e in ds . events ],
343+ "Sites" : [e .label for e in self . _iter_events () ],
326344 "Funding" : [
327345 {"name" : p .name , "url" : p .URL , "award" : p .awardURI }
328346 for p in ds .projects
@@ -348,7 +366,7 @@ def get_geo(self) -> pd.DataFrame:
348366 DataFrame containing event-level geographic information.
349367 """
350368 rows = []
351- for ev in self ._panobj . events :
369+ for ev in self ._iter_events () :
352370 lat1 = ev .latitude
353371 lon1 = ev .longitude
354372 lat2 = ev .latitude2 if getattr (ev , "latitude2" , None ) is not None else lat1
0 commit comments