myelectricaldatapy 2.3.0__tar.gz → 2.3.1__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.3.0 → myelectricaldatapy-2.3.1}/PKG-INFO +1 -1
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/const.py +12 -4
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/mypdl.py +12 -10
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/PKG-INFO +1 -1
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/scm_version.json +2 -2
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.devcontainer/devcontainer-lock.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.devcontainer/devcontainer.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/dependabot.yml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/auto-approve.yml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/python-lint.yml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/python-publish.yml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/release.yml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.gitignore +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.pre-commit-config.yaml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.vscode/settings.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/LICENSE +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/README.md +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/_secrets.yaml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/example.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/__init__.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/analytics.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/api.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/auth.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/exceptions.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/py.typed +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/types.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/tz.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/SOURCES.txt +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/dependency_links.txt +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/requires.txt +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/scm_file_list.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/top_level.txt +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/pyproject.toml +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/setup.cfg +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/__init__.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/conftest.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/consts.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/access.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/address.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/contract.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/daily.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/detail.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/ecowatt.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/invalid_access.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/tempo.json +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/test_analytics.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/test_load_data.py +0 -0
- {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/uv.lock +0 -0
|
@@ -6,15 +6,20 @@ ATTR_CUM_PRICE = "cum_price"
|
|
|
6
6
|
ATTR_CUM_VALUE = "cum_value"
|
|
7
7
|
ATTR_END = "end"
|
|
8
8
|
ATTR_FN = "function"
|
|
9
|
-
ATTR_HPHC = "hphc"
|
|
9
|
+
ATTR_HPHC: Final = "hphc"
|
|
10
10
|
ATTR_INTERVALS = "intervals"
|
|
11
11
|
ATTR_OFFPEAK = "offpeak"
|
|
12
12
|
ATTR_PRICE: Final = "price"
|
|
13
13
|
ATTR_PRICES = "prices"
|
|
14
|
-
ATTR_STANDARD = "standard"
|
|
14
|
+
ATTR_STANDARD: Final = "standard"
|
|
15
15
|
ATTR_START = "start"
|
|
16
|
-
ATTR_TEMPO = "tempo"
|
|
17
|
-
|
|
16
|
+
ATTR_TEMPO: Final = "tempo"
|
|
17
|
+
ATTR_PROD: Final = "production"
|
|
18
|
+
ATTR_CONSUM: Final = "consumption"
|
|
19
|
+
TEMPO_B: Final = "blue"
|
|
20
|
+
TEMPO_W: Final = "white"
|
|
21
|
+
TEMPO_R: Final = "red"
|
|
22
|
+
TEMPO_DAYS = (TEMPO_B, TEMPO_W, TEMPO_R)
|
|
18
23
|
SUBSCRIPTIONS = (ATTR_STANDARD, ATTR_HPHC, ATTR_TEMPO)
|
|
19
24
|
DEFAULT_SUBSCRIPTION = ATTR_STANDARD
|
|
20
25
|
CONSUMPTION: Final = "consumption"
|
|
@@ -23,3 +28,6 @@ DAILY_PROD: Final = "daily_production"
|
|
|
23
28
|
DETAIL_CONSUM: Final = "consumption_load_curve"
|
|
24
29
|
DETAIL_PROD: Final = "production_load_curve"
|
|
25
30
|
PRODUCTION: Final = "production"
|
|
31
|
+
CONF_ECOWATT = "ecowatt"
|
|
32
|
+
CONF_MAXPOWER = "max_power"
|
|
33
|
+
CONF_VALUE: Final = "value"
|
|
@@ -10,6 +10,7 @@ from aiohttp import ClientSession
|
|
|
10
10
|
from .analytics import EnedisAnalytics
|
|
11
11
|
from .api import Enedis
|
|
12
12
|
from .const import (
|
|
13
|
+
ATTR_CONSUM,
|
|
13
14
|
ATTR_CUM_PRICE,
|
|
14
15
|
ATTR_CUM_VALUE,
|
|
15
16
|
ATTR_END,
|
|
@@ -19,17 +20,19 @@ from .const import (
|
|
|
19
20
|
ATTR_OFFPEAK,
|
|
20
21
|
ATTR_PRICE,
|
|
21
22
|
ATTR_PRICES,
|
|
23
|
+
ATTR_PROD,
|
|
22
24
|
ATTR_STANDARD,
|
|
23
25
|
ATTR_START,
|
|
24
26
|
ATTR_TEMPO,
|
|
25
|
-
|
|
27
|
+
CONF_VALUE,
|
|
26
28
|
DAILY_CONSUM,
|
|
27
29
|
DAILY_PROD,
|
|
28
30
|
DEFAULT_SUBSCRIPTION,
|
|
29
31
|
DETAIL_CONSUM,
|
|
30
32
|
DETAIL_PROD,
|
|
31
|
-
PRODUCTION,
|
|
32
33
|
SUBSCRIPTIONS,
|
|
34
|
+
TEMPO_B,
|
|
35
|
+
TEMPO_DAYS,
|
|
33
36
|
)
|
|
34
37
|
from .exceptions import EnedisException, LimitReached
|
|
35
38
|
from .types import Cum, EnergyCollect, Mode, Prices, Subscription
|
|
@@ -38,7 +41,6 @@ from .tz import as_local, local_now, set_local_timezone
|
|
|
38
41
|
_LOGGER = logging.getLogger(__name__)
|
|
39
42
|
|
|
40
43
|
STANDARD_KEYS = (ATTR_PRICE,)
|
|
41
|
-
TEMPO_KEYS = ("blue", "white", "red")
|
|
42
44
|
|
|
43
45
|
|
|
44
46
|
class FormatError(ValueError):
|
|
@@ -71,8 +73,8 @@ def validate_prices(prices: Any) -> None:
|
|
|
71
73
|
if extra := [key for key in prices if key not in (ATTR_STANDARD, ATTR_OFFPEAK)]:
|
|
72
74
|
raise FormatError(f"unexpected keys {extra}")
|
|
73
75
|
standard = prices[ATTR_STANDARD]
|
|
74
|
-
is_tempo = isinstance(standard, dict) and
|
|
75
|
-
keys =
|
|
76
|
+
is_tempo = isinstance(standard, dict) and TEMPO_B in standard
|
|
77
|
+
keys = TEMPO_DAYS if is_tempo else STANDARD_KEYS
|
|
76
78
|
_check_price_group(standard, keys, ATTR_STANDARD)
|
|
77
79
|
if ATTR_OFFPEAK in prices:
|
|
78
80
|
_check_price_group(prices[ATTR_OFFPEAK], keys, ATTR_OFFPEAK)
|
|
@@ -192,7 +194,7 @@ class EnedisByPDL:
|
|
|
192
194
|
def prod_prices(self) -> Prices | None:
|
|
193
195
|
"""Production resel price."""
|
|
194
196
|
return (
|
|
195
|
-
self._params[
|
|
197
|
+
self._params[ATTR_PROD].get(ATTR_PRICES)
|
|
196
198
|
if self._params is not None
|
|
197
199
|
else None
|
|
198
200
|
)
|
|
@@ -201,7 +203,7 @@ class EnedisByPDL:
|
|
|
201
203
|
def consum_prices(self) -> Prices | None:
|
|
202
204
|
"""Consumption prices."""
|
|
203
205
|
return (
|
|
204
|
-
self._params[
|
|
206
|
+
self._params[ATTR_CONSUM].get(ATTR_PRICES)
|
|
205
207
|
if self._params is not None
|
|
206
208
|
else None
|
|
207
209
|
)
|
|
@@ -347,7 +349,7 @@ class EnedisByPDL:
|
|
|
347
349
|
}
|
|
348
350
|
days = 1095 if service in [DAILY_PROD, DAILY_CONSUM] else 7
|
|
349
351
|
mode: Mode = (
|
|
350
|
-
|
|
352
|
+
ATTR_CONSUM if service in [DAILY_CONSUM, DETAIL_CONSUM] else ATTR_PROD
|
|
351
353
|
)
|
|
352
354
|
func = funcs[service]
|
|
353
355
|
dt_start = as_local(start) if start else local_now() - timedelta(days=days)
|
|
@@ -359,7 +361,7 @@ class EnedisByPDL:
|
|
|
359
361
|
if prices:
|
|
360
362
|
self._set_prices(mode, prices)
|
|
361
363
|
if cum_value:
|
|
362
|
-
self._set_cumsum(mode,
|
|
364
|
+
self._set_cumsum(mode, CONF_VALUE, cum_value)
|
|
363
365
|
if cum_price:
|
|
364
366
|
self._set_cumsum(mode, ATTR_PRICE, cum_price)
|
|
365
367
|
|
|
@@ -389,7 +391,7 @@ class EnedisByPDL:
|
|
|
389
391
|
|
|
390
392
|
self._params[mode].update({"data": data})
|
|
391
393
|
|
|
392
|
-
if mode ==
|
|
394
|
+
if mode == ATTR_CONSUM and self.has_tempo_subscription:
|
|
393
395
|
self.tempo = await self._api.async_get_tempo(start, end)
|
|
394
396
|
|
|
395
397
|
self.has_collected = True
|
|
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
|
|
File without changes
|
{myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/requires.txt
RENAMED
|
File without changes
|
{myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/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
|