Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

Add settlement period option to dersysdata #8

Merged
merged 2 commits into from
Mar 9, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion pyelexon/pyelexon.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,19 @@ def get_detsysprices(self, settlement_date: date, settlement_period: int) -> byt
self._missing_data(r, xpath="./responseBody/responseList/item/[id]")
return r.content

def get_dersysdata(self, settlement_date: date) -> bytes:
def get_dersysdata(self, settlement_date: date,
settlement_period: Optional[int] = None) -> bytes:
"""Method for fetching DERSYSDATA data for the specified settlement period"""
report = "DERSYSDATA"

params = {
"from_settlement_date": self._date_fmt(settlement_date),
"to_settlement_date": self._date_fmt(settlement_date),
}

if settlement_period is not None:
params["settlement_period"] = settlement_period

r = self._fetch_from_elexon(report, params)
self._missing_data(r, xpath="./responseBody/responseList/item/[recordType]")
return r.content
Expand Down
7 changes: 7 additions & 0 deletions tests/test_pyelexon.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,13 @@ def test_get_dersysdata(client):
assert isinstance(r, bytes)


@pytest.mark.vcr
def test_get_dersysdata_with_settlement_period(client):
r = client.get_dersysdata(settlement_date=date(2021, 1, 1),
settlement_period=1)
assert isinstance(r, bytes)


@pytest.mark.vcr
def test_get_lolpdrm(client):
r = client.get_lolpdrm(settlement_date=date(2021, 1, 1))
Expand Down