Skip to content

Commit 5cfe3b6

Browse files
committed
switch more functions to the new generic parsers
1 parent a62e858 commit 5cfe3b6

File tree

2 files changed

+7
-61
lines changed

2 files changed

+7
-61
lines changed

entsoe/entsoe.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,7 @@ def query_aggregate_water_reservoirs_and_hydro_storage(self, country_code: Union
14191419
self).query_aggregate_water_reservoirs_and_hydro_storage(
14201420
country_code=area, start=start, end=end)
14211421

1422-
df = parse_water_hydro(text, area.tz)
1422+
df = parse_water_hydro(text)
14231423

14241424
return df
14251425

entsoe/parsers.py

Lines changed: 6 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
import pandas as pd
99

1010
from .mappings import PSRTYPE_MAPPINGS, DOCSTATUS, BSNTYPE, Area
11-
from .series_parsers import _extract_timeseries, _resolution_to_timedelta, _parse_datetimeindex, _parse_timeseries_generic
11+
from .series_parsers import _extract_timeseries, _resolution_to_timedelta, _parse_datetimeindex, _parse_timeseries_generic,\
12+
_parse_timeseries_generic_whole
1213

1314
warnings.filterwarnings('ignore', category=XMLParsedAsHTMLWarning)
1415

@@ -223,7 +224,7 @@ def parse_installed_capacity_per_plant(xml_text):
223224
return df
224225

225226

226-
def parse_water_hydro(xml_text, tz):
227+
def parse_water_hydro(xml_text):
227228
"""
228229
Parameters
229230
----------
@@ -233,13 +234,8 @@ def parse_water_hydro(xml_text, tz):
233234
-------
234235
pd.Series
235236
"""
236-
all_series = []
237-
for soup in _extract_timeseries(xml_text):
238-
all_series.append(_parse_water_hydro_timeseries(soup, tz=tz))
239-
240-
series = pd.concat(all_series)
241237

242-
return series
238+
return _parse_timeseries_generic_whole(xml_text)
243239

244240

245241
def parse_crossborder_flows(xml_text):
@@ -683,17 +679,7 @@ def _parse_load_timeseries(soup):
683679
-------
684680
pd.Series
685681
"""
686-
positions = []
687-
prices = []
688-
for point in soup.find_all('point'):
689-
positions.append(int(point.find('position').text))
690-
prices.append(float(point.find('quantity').text))
691-
692-
series = pd.Series(index=positions, data=prices)
693-
series = series.sort_index()
694-
series.index = _parse_datetimeindex(soup)
695-
696-
return series
682+
return _parse_timeseries_generic(soup)
697683

698684
def _parse_generation_timeseries(soup, per_plant: bool = False, include_eic: bool = False) -> pd.Series:
699685
"""
@@ -708,19 +694,7 @@ def _parse_generation_timeseries(soup, per_plant: bool = False, include_eic: boo
708694
-------
709695
pd.Series
710696
"""
711-
positions = []
712-
quantities = []
713-
for point in soup.find_all('point'):
714-
positions.append(int(point.find('position').text))
715-
quantity = point.find('quantity')
716-
if quantity is None:
717-
raise LookupError(
718-
f'No quantity found in this point, it should have one: {point}')
719-
quantities.append(float(quantity.text))
720-
721-
series = pd.Series(index=positions, data=quantities)
722-
series = series.sort_index()
723-
series.index = _parse_datetimeindex(soup)
697+
series = _parse_timeseries_generic(soup)
724698

725699
# Check if there is a psrtype, if so, get it.
726700
_psrtype = soup.find('psrtype')
@@ -763,34 +737,6 @@ def _parse_generation_timeseries(soup, per_plant: bool = False, include_eic: boo
763737

764738
return series
765739

766-
def _parse_water_hydro_timeseries(soup, tz):
767-
"""
768-
Parses timeseries for water reservoirs and hydro storage plants
769-
770-
Parameters
771-
----------
772-
soup : bs4.element.tag
773-
774-
Returns
775-
-------
776-
pd.Series
777-
"""
778-
779-
positions = []
780-
quantities = []
781-
for point in soup.find_all('point'):
782-
positions.append(int(point.find('position').text))
783-
quantity = point.find('quantity')
784-
if quantity is None:
785-
raise LookupError(
786-
f'No quantity found in this point, it should have one: {point}')
787-
quantities.append(float(quantity.text))
788-
series = pd.Series(index=positions, data=quantities)
789-
series = series.sort_index()
790-
series.index = _parse_datetimeindex(soup, tz)
791-
792-
return series
793-
794740
def _parse_installed_capacity_per_plant(soup):
795741
"""
796742
Parameters

0 commit comments

Comments
 (0)