myelectricaldatapy 2.4.2__tar.gz → 2.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/PKG-INFO +1 -1
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/api.py +6 -6
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/auth.py +1 -1
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/mypdl.py +4 -3
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/PKG-INFO +1 -1
- myelectricaldatapy-2.4.3/myelectricaldatapy.egg-info/scm_version.json +8 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/test_load_data.py +12 -0
- myelectricaldatapy-2.4.2/myelectricaldatapy.egg-info/scm_version.json +0 -8
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.devcontainer/devcontainer-lock.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.devcontainer/devcontainer.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.github/dependabot.yml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.github/workflows/auto-approve.yml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.github/workflows/python-lint.yml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.github/workflows/python-publish.yml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.github/workflows/release.yml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.gitignore +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.pre-commit-config.yaml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/.vscode/settings.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/LICENSE +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/README.md +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/_secrets.yaml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/example.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/__init__.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/analytics.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/const.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/exceptions.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/py.typed +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/types.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy/tz.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/SOURCES.txt +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/dependency_links.txt +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/requires.txt +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/scm_file_list.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/top_level.txt +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/pyproject.toml +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/setup.cfg +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/__init__.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/conftest.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/consts.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/access.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/address.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/contract.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/daily.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/detail.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/ecowatt.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/identity.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/invalid_access.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/fixtures/tempo.json +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/tests/test_analytics.py +0 -0
- {myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/uv.lock +0 -0
|
@@ -58,7 +58,7 @@ class Enedis:
|
|
|
58
58
|
session = session or ClientSession()
|
|
59
59
|
self.auth = EnedisAuth(session, token, timeout)
|
|
60
60
|
self.async_request = self.auth.async_request
|
|
61
|
-
self.offpeaks: list[str] = []
|
|
61
|
+
self.offpeaks: list[tuple[str, str]] = []
|
|
62
62
|
self.last_access: date | None = None
|
|
63
63
|
|
|
64
64
|
async def async_fetch_datas(
|
|
@@ -72,7 +72,7 @@ class Enedis:
|
|
|
72
72
|
start_date = start.strftime("%Y-%m-%d")
|
|
73
73
|
end_date = end.strftime("%Y-%m-%d")
|
|
74
74
|
path_range = f"/start/{start_date}/end/{end_date}"
|
|
75
|
-
path = f"{service}/{pdl}{path_range}"
|
|
75
|
+
path = f"/{service}/{pdl}{path_range}"
|
|
76
76
|
return await self.async_request(path=path)
|
|
77
77
|
|
|
78
78
|
async def async_valid_access(self, pdl: str) -> AccessResponse:
|
|
@@ -132,7 +132,7 @@ class Enedis:
|
|
|
132
132
|
if end
|
|
133
133
|
else (local_now() + timedelta(days=1)).strftime("%Y-%m-%d")
|
|
134
134
|
)
|
|
135
|
-
raw = await self.auth.async_request(path=f"rte/tempo/{str_start}/{str_end}")
|
|
135
|
+
raw = await self.auth.async_request(path=f"/rte/tempo/{str_start}/{str_end}")
|
|
136
136
|
try:
|
|
137
137
|
return TempoResponse.validate_python(raw)
|
|
138
138
|
except ValidationError as error:
|
|
@@ -141,7 +141,7 @@ class Enedis:
|
|
|
141
141
|
|
|
142
142
|
async def async_get_tempo_days(self) -> TempoDays | None:
|
|
143
143
|
"""Summary Tempo days before the end of year."""
|
|
144
|
-
raw = await self.auth.async_request(path="edf/tempo/days")
|
|
144
|
+
raw = await self.auth.async_request(path="/edf/tempo/days")
|
|
145
145
|
try:
|
|
146
146
|
return TempoDays.model_validate(raw)
|
|
147
147
|
except ValidationError as error:
|
|
@@ -150,7 +150,7 @@ class Enedis:
|
|
|
150
150
|
|
|
151
151
|
async def async_get_tempo_prices(self) -> Prices | None:
|
|
152
152
|
"""Return Tempo prices as a :class:`Prices` model, one value per colour."""
|
|
153
|
-
raw = await self.auth.async_request(path="edf/tempo/price")
|
|
153
|
+
raw = await self.auth.async_request(path="/edf/tempo/price")
|
|
154
154
|
try:
|
|
155
155
|
return Prices(
|
|
156
156
|
standard=TempoPrice(
|
|
@@ -180,7 +180,7 @@ class Enedis:
|
|
|
180
180
|
if end
|
|
181
181
|
else (local_now() + timedelta(days=1)).strftime("%Y-%m-%d")
|
|
182
182
|
)
|
|
183
|
-
raw = await self.async_request(path=f"rte/ecowatt/{str_start}/{str_end}")
|
|
183
|
+
raw = await self.async_request(path=f"/rte/ecowatt/{str_start}/{str_end}")
|
|
184
184
|
try:
|
|
185
185
|
return EcowattResponse.validate_python(raw)
|
|
186
186
|
except ValidationError as error:
|
|
@@ -41,7 +41,7 @@ class EnedisAuth:
|
|
|
41
41
|
try:
|
|
42
42
|
async with asyncio.timeout(self.timeout):
|
|
43
43
|
_LOGGER.debug("Request: %s (%s) - %s", path, method, kwargs.get("json"))
|
|
44
|
-
response = await self.session.request(method, f"{URL}
|
|
44
|
+
response = await self.session.request(method, f"{URL}{path}", **kwargs)
|
|
45
45
|
contents = await response.read()
|
|
46
46
|
response.raise_for_status()
|
|
47
47
|
except (TimeoutError, asyncio.CancelledError) as error:
|
|
@@ -103,7 +103,7 @@ class EnedisByPDL:
|
|
|
103
103
|
self.ecowatt: EcowattMapping | None = None
|
|
104
104
|
self.has_collected: bool = False
|
|
105
105
|
self.has_parameters: bool = False
|
|
106
|
-
self.
|
|
106
|
+
self.offpeak_intervals: list[tuple[str, str]] = []
|
|
107
107
|
self.last_access: dt = local_now()
|
|
108
108
|
self._update_lock = asyncio.Lock()
|
|
109
109
|
self.last_refresh: date | None = None
|
|
@@ -123,7 +123,7 @@ class EnedisByPDL:
|
|
|
123
123
|
@property
|
|
124
124
|
def has_intervals(self) -> bool:
|
|
125
125
|
"""Intervals exist."""
|
|
126
|
-
return len(self.
|
|
126
|
+
return len(self.offpeak_intervals) > 0
|
|
127
127
|
|
|
128
128
|
@property
|
|
129
129
|
def has_tempo_subscription(self) -> bool:
|
|
@@ -239,6 +239,7 @@ class EnedisByPDL:
|
|
|
239
239
|
if self.contract is None and self.has_collected is False:
|
|
240
240
|
try:
|
|
241
241
|
self.contract = await self._api.async_get_contract(self.pdl)
|
|
242
|
+
self.offpeak_intervals = self._api.offpeaks
|
|
242
243
|
except EnedisException as error:
|
|
243
244
|
_LOGGER.warning(error)
|
|
244
245
|
|
|
@@ -282,7 +283,7 @@ class EnedisByPDL:
|
|
|
282
283
|
def _set_intervals(self, mode: Mode, intervals: list[tuple[str, str]]) -> None:
|
|
283
284
|
"""Set intervals."""
|
|
284
285
|
if isinstance(intervals, list):
|
|
285
|
-
self.
|
|
286
|
+
self.offpeak_intervals = intervals
|
|
286
287
|
self._params[mode].update({ATTR_INTERVALS: intervals})
|
|
287
288
|
|
|
288
289
|
def _set_prices(self, mode: Mode, prices: Prices | Mapping[str, Any]) -> None:
|
|
@@ -51,6 +51,18 @@ async def test_contract(mock_enedis: Mock, session) -> None:
|
|
|
51
51
|
assert api.contract.segment == "C5"
|
|
52
52
|
|
|
53
53
|
|
|
54
|
+
@freeze_time("2023-01-23")
|
|
55
|
+
async def test_offpeak_intervals(mock_enedis: Mock, session) -> None:
|
|
56
|
+
"""Test subscription compute."""
|
|
57
|
+
api = Enedis(token=TOKEN, session=session)
|
|
58
|
+
await api.async_get_contract(PDL)
|
|
59
|
+
assert isinstance(api.offpeaks[0], tuple)
|
|
60
|
+
|
|
61
|
+
api = EnedisByPDL(pdl=PDL, token=TOKEN, session=session)
|
|
62
|
+
await api.async_update()
|
|
63
|
+
assert isinstance(api.offpeak_intervals[0], tuple)
|
|
64
|
+
|
|
65
|
+
|
|
54
66
|
@freeze_time("2023-01-23")
|
|
55
67
|
async def test_ecowatt(mock_enedis: Mock, session) -> None:
|
|
56
68
|
"""Test get ecowatt."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/requires.txt
RENAMED
|
File without changes
|
{myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{myelectricaldatapy-2.4.2 → myelectricaldatapy-2.4.3}/myelectricaldatapy.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|