carconnectivity-connector-seatcupra 0.1a16__tar.gz → 0.1a17__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 (39) hide show
  1. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/PKG-INFO +2 -2
  2. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/pyproject.toml +1 -1
  3. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connector_seatcupra.egg-info/PKG-INFO +2 -2
  4. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connector_seatcupra.egg-info/requires.txt +1 -1
  5. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/_version.py +1 -1
  6. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/connector.py +13 -10
  7. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.flake8 +0 -0
  8. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  9. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  10. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.github/dependabot.yml +0 -0
  11. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.github/workflows/build.yml +0 -0
  12. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.github/workflows/build_and_publish.yml +0 -0
  13. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.github/workflows/codeql-analysis.yml +0 -0
  14. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/.gitignore +0 -0
  15. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/CHANGELOG.md +0 -0
  16. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/LICENSE +0 -0
  17. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/Makefile +0 -0
  18. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/README.md +0 -0
  19. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/doc/Config.md +0 -0
  20. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/setup.cfg +0 -0
  21. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/setup_requirements.txt +0 -0
  22. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connector_seatcupra.egg-info/SOURCES.txt +0 -0
  23. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connector_seatcupra.egg-info/dependency_links.txt +0 -0
  24. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connector_seatcupra.egg-info/top_level.txt +0 -0
  25. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/__init__.py +0 -0
  26. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/auth/__init__.py +0 -0
  27. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/auth/auth_util.py +0 -0
  28. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/auth/helpers/blacklist_retry.py +0 -0
  29. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/auth/my_cupra_session.py +0 -0
  30. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/auth/openid_session.py +0 -0
  31. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/auth/session_manager.py +0 -0
  32. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/auth/vw_web_session.py +0 -0
  33. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/capability.py +0 -0
  34. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/charging.py +0 -0
  35. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/climatization.py +0 -0
  36. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/command_impl.py +0 -0
  37. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/ui/connector_ui.py +0 -0
  38. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/src/carconnectivity_connectors/seatcupra/vehicle.py +0 -0
  39. {carconnectivity_connector_seatcupra-0.1a16 → carconnectivity_connector_seatcupra-0.1a17}/test/integration_test/carConnectivity.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: carconnectivity-connector-seatcupra
3
- Version: 0.1a16
3
+ Version: 0.1a17
4
4
  Summary: CarConnectivity connector for Seat and Cupra services
5
5
  Author: Till Steinbach
6
6
  License: MIT License
@@ -37,7 +37,7 @@ Classifier: Topic :: Software Development :: Libraries
37
37
  Requires-Python: >=3.9
38
38
  Description-Content-Type: text/markdown
39
39
  License-File: LICENSE
40
- Requires-Dist: carconnectivity>=0.4a10
40
+ Requires-Dist: carconnectivity>=0.4a11
41
41
  Requires-Dist: oauthlib~=3.2.2
42
42
  Requires-Dist: requests~=2.32.3
43
43
  Requires-Dist: jwt~=1.3.1
@@ -14,7 +14,7 @@ authors = [
14
14
  { name = "Till Steinbach" }
15
15
  ]
16
16
  dependencies = [
17
- "carconnectivity>=0.4a10",
17
+ "carconnectivity>=0.4a11",
18
18
  "oauthlib~=3.2.2",
19
19
  "requests~=2.32.3",
20
20
  "jwt~=1.3.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: carconnectivity-connector-seatcupra
3
- Version: 0.1a16
3
+ Version: 0.1a17
4
4
  Summary: CarConnectivity connector for Seat and Cupra services
5
5
  Author: Till Steinbach
6
6
  License: MIT License
@@ -37,7 +37,7 @@ Classifier: Topic :: Software Development :: Libraries
37
37
  Requires-Python: >=3.9
38
38
  Description-Content-Type: text/markdown
39
39
  License-File: LICENSE
40
- Requires-Dist: carconnectivity>=0.4a10
40
+ Requires-Dist: carconnectivity>=0.4a11
41
41
  Requires-Dist: oauthlib~=3.2.2
42
42
  Requires-Dist: requests~=2.32.3
43
43
  Requires-Dist: jwt~=1.3.1
@@ -1,4 +1,4 @@
1
- carconnectivity>=0.4a10
1
+ carconnectivity>=0.4a11
2
2
  oauthlib~=3.2.2
3
3
  requests~=2.32.3
4
4
  jwt~=1.3.1
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.1a16'
20
+ __version__ = version = '0.1a17'
21
21
  __version_tuple__ = version_tuple = (0, 1)
@@ -22,7 +22,7 @@ from carconnectivity.windows import Windows
22
22
  from carconnectivity.lights import Lights
23
23
  from carconnectivity.drive import GenericDrive, ElectricDrive, CombustionDrive
24
24
  from carconnectivity.vehicle import GenericVehicle, ElectricVehicle
25
- from carconnectivity.attributes import BooleanAttribute, DurationAttribute, GenericAttribute, TemperatureAttribute
25
+ from carconnectivity.attributes import BooleanAttribute, DurationAttribute, GenericAttribute, TemperatureAttribute, EnumAttribute
26
26
  from carconnectivity.units import Temperature
27
27
  from carconnectivity.command_impl import ClimatizationStartStopCommand, WakeSleepCommand, HonkAndFlashCommand, LockUnlockCommand, ChargingStartStopCommand
28
28
  from carconnectivity.climatization import Climatization
@@ -30,6 +30,7 @@ from carconnectivity.commands import Commands
30
30
  from carconnectivity.charging import Charging
31
31
  from carconnectivity.charging_connector import ChargingConnector
32
32
  from carconnectivity.position import Position
33
+ from carconnectivity.enums import ConnectionState
33
34
 
34
35
  from carconnectivity_connectors.base.connector import BaseConnector
35
36
  from carconnectivity_connectors.seatcupra.auth.session_manager import SessionManager, SessionUser, Service
@@ -76,13 +77,12 @@ class Connector(BaseConnector):
76
77
  self._background_thread: Optional[threading.Thread] = None
77
78
  self._stop_event = threading.Event()
78
79
 
79
- self.connected: BooleanAttribute = BooleanAttribute(name="connected", parent=self, tags={'connector_custom'})
80
+ self.connection_state: EnumAttribute = EnumAttribute(name="connection_state", parent=self, value_type=ConnectionState,
81
+ value=ConnectionState.DISCONNECTED, tags={'connector_custom'})
80
82
  self.interval: DurationAttribute = DurationAttribute(name="interval", parent=self, tags={'connector_custom'})
81
83
  self.interval.minimum = timedelta(seconds=180)
82
84
  self.interval._is_changeable = True # pylint: disable=protected-access
83
85
 
84
- self._healthy = False
85
-
86
86
  self.commands: Commands = Commands(parent=self)
87
87
 
88
88
  LOG.info("Loading seatcupra connector with config %s", config_remove_credentials(config))
@@ -167,11 +167,12 @@ class Connector(BaseConnector):
167
167
  self._background_thread = threading.Thread(target=self._background_loop, daemon=False)
168
168
  self._background_thread.name = 'carconnectivity.connectors.seatcupra-background'
169
169
  self._background_thread.start()
170
- self._healthy = True
170
+ self.healthy._set_value(value=True) # pylint: disable=protected-access
171
171
 
172
172
  def _background_loop(self) -> None:
173
173
  self._stop_event.clear()
174
174
  fetch: bool = True
175
+ self.connection_state._set_value(value=ConnectionState.CONNECTING) # pylint: disable=protected-access
175
176
  while not self._stop_event.is_set():
176
177
  interval = 300
177
178
  try:
@@ -205,7 +206,7 @@ class Connector(BaseConnector):
205
206
  self._stop_event.wait(interval)
206
207
  except Exception as err:
207
208
  LOG.critical('Critical error during update: %s', traceback.format_exc())
208
- self._healthy = False
209
+ self.healthy._set_value(value=False) # pylint: disable=protected-access
209
210
  raise err
210
211
  else:
211
212
  self._stop_event.wait(interval)
@@ -720,7 +721,7 @@ class Connector(BaseConnector):
720
721
  if vehicle.position is None:
721
722
  raise ValueError('Vehicle has no position object')
722
723
  url = f'https://ola.prod.code.seat.cloud.vwgroup.com/v1/vehicles/{vin}/parkingposition'
723
- data: Dict[str, Any] | None = self._fetch_data(url=url, session=self.session, no_cache=no_cache)
724
+ data: Dict[str, Any] | None = self._fetch_data(url=url, session=self.session, no_cache=no_cache, allow_empty=True)
724
725
  if data is not None:
725
726
  if 'lat' in data and data['lat'] is not None:
726
727
  latitude: Optional[float] = data['lat']
@@ -842,7 +843,7 @@ class Connector(BaseConnector):
842
843
  vehicle.climatization.state._set_value(value=climatization_state, measured=captured_at) # pylint: disable=protected-access
843
844
  else:
844
845
  vehicle.climatization.state._set_value(None) # pylint: disable=protected-access
845
- log_extra_keys(LOG_API, 'climatisation', data, {'carCapturedTimestamp', 'climatisationState'})
846
+ log_extra_keys(LOG_API, 'climatisationStatus', data['climatisationStatus'], {'carCapturedTimestamp', 'climatisationState'})
846
847
  else:
847
848
  vehicle.climatization.state._set_value(None) # pylint: disable=protected-access
848
849
  log_extra_keys(LOG_API, 'climatisation', data, {'climatisationStatus'})
@@ -1082,6 +1083,8 @@ class Connector(BaseConnector):
1082
1083
  data = status_response.json()
1083
1084
  if session.cache is not None:
1084
1085
  session.cache[url] = (data, str(datetime.utcnow()))
1086
+ elif status_response.status_code == requests.codes['no_content'] and allow_empty:
1087
+ data = None
1085
1088
  elif status_response.status_code == requests.codes['too_many_requests']:
1086
1089
  raise TooManyRequestsError('Could not fetch data due to too many requests from your account. '
1087
1090
  f'Status Code was: {status_response.status_code}')
@@ -1454,5 +1457,5 @@ class Connector(BaseConnector):
1454
1457
  def get_type(self) -> str:
1455
1458
  return "carconnectivity-connector-seatcupra"
1456
1459
 
1457
- def is_healthy(self) -> bool:
1458
- return self._healthy and super().is_healthy()
1460
+ def get_name(self) -> str:
1461
+ return "Seat/Cupra Connector"