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.
Files changed (48) hide show
  1. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/PKG-INFO +1 -1
  2. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/const.py +12 -4
  3. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/mypdl.py +12 -10
  4. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/PKG-INFO +1 -1
  5. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/scm_version.json +2 -2
  6. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.devcontainer/devcontainer-lock.json +0 -0
  7. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.devcontainer/devcontainer.json +0 -0
  8. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/dependabot.yml +0 -0
  9. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/auto-approve.yml +0 -0
  10. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/python-lint.yml +0 -0
  11. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/python-publish.yml +0 -0
  12. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.github/workflows/release.yml +0 -0
  13. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.gitignore +0 -0
  14. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.pre-commit-config.yaml +0 -0
  15. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/.vscode/settings.json +0 -0
  16. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/LICENSE +0 -0
  17. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/README.md +0 -0
  18. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/_secrets.yaml +0 -0
  19. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/example.py +0 -0
  20. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/__init__.py +0 -0
  21. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/analytics.py +0 -0
  22. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/api.py +0 -0
  23. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/auth.py +0 -0
  24. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/exceptions.py +0 -0
  25. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/py.typed +0 -0
  26. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/types.py +0 -0
  27. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy/tz.py +0 -0
  28. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/SOURCES.txt +0 -0
  29. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/dependency_links.txt +0 -0
  30. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/requires.txt +0 -0
  31. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/scm_file_list.json +0 -0
  32. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/myelectricaldatapy.egg-info/top_level.txt +0 -0
  33. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/pyproject.toml +0 -0
  34. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/setup.cfg +0 -0
  35. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/__init__.py +0 -0
  36. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/conftest.py +0 -0
  37. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/consts.py +0 -0
  38. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/access.json +0 -0
  39. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/address.json +0 -0
  40. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/contract.json +0 -0
  41. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/daily.json +0 -0
  42. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/detail.json +0 -0
  43. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/ecowatt.json +0 -0
  44. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/invalid_access.json +0 -0
  45. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/fixtures/tempo.json +0 -0
  46. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/test_analytics.py +0 -0
  47. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/tests/test_load_data.py +0 -0
  48. {myelectricaldatapy-2.3.0 → myelectricaldatapy-2.3.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: myelectricaldatapy
3
- Version: 2.3.0
3
+ Version: 2.3.1
4
4
  Summary: Fetch Linky data from myelectricaldata.fr
5
5
  Author-email: Cyr-ius <cyr-ius@ipocus.net>
6
6
  License-Expression: GPL-3.0-or-later
@@ -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
- TEMPO_DAYS = ("blue", "white", "red")
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
- CONSUMPTION,
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 "blue" in standard
75
- keys = TEMPO_KEYS if is_tempo else STANDARD_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[PRODUCTION].get(ATTR_PRICES)
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[CONSUMPTION].get(ATTR_PRICES)
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
- CONSUMPTION if service in [DAILY_CONSUM, DETAIL_CONSUM] else PRODUCTION
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, "value", cum_value)
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 == CONSUMPTION and self.has_tempo_subscription:
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: myelectricaldatapy
3
- Version: 2.3.0
3
+ Version: 2.3.1
4
4
  Summary: Fetch Linky data from myelectricaldata.fr
5
5
  Author-email: Cyr-ius <cyr-ius@ipocus.net>
6
6
  License-Expression: GPL-3.0-or-later
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "2.3.0",
2
+ "tag": "2.3.1",
3
3
  "distance": 0,
4
- "node": "g871193cc4dd148dbba91f20141f638264e26601f",
4
+ "node": "g388e64f428e5f5d7959f71b5a8034b79c72a7f86",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-29"