carconnectivity-connector-seatcupra 0.3__py3-none-any.whl → 0.4__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: carconnectivity-connector-seatcupra
3
- Version: 0.3
3
+ Version: 0.4
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.6
40
+ Requires-Dist: carconnectivity>=0.7
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,11 +1,11 @@
1
- carconnectivity_connector_seatcupra-0.3.dist-info/licenses/LICENSE,sha256=PIwI1alwDyOfvEQHdGCm2u9uf_mGE8030xZDfun0xTo,1071
1
+ carconnectivity_connector_seatcupra-0.4.dist-info/licenses/LICENSE,sha256=PIwI1alwDyOfvEQHdGCm2u9uf_mGE8030xZDfun0xTo,1071
2
2
  carconnectivity_connectors/seatcupra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- carconnectivity_connectors/seatcupra/_version.py,sha256=hptOGIBLOnpzA-fkbjoP65wPqWhg_6jCYYIUObQw6xc,506
3
+ carconnectivity_connectors/seatcupra/_version.py,sha256=z4A7Ai6QyXWBOpaj5g4Fi0n9CYi27WfJ6gm02OiXBxE,506
4
4
  carconnectivity_connectors/seatcupra/capability.py,sha256=936V06hOX8AuAMxL_S9wVyVa36Xw1bo9081X0xf5f94,5064
5
5
  carconnectivity_connectors/seatcupra/charging.py,sha256=mayvseay5x2r2qjWqol0ijlgoBL2L2A0A96T44FOiHg,4076
6
6
  carconnectivity_connectors/seatcupra/climatization.py,sha256=0xxWlxrheAPzkVT8WRQtbm6ExZmVdgW7lUdOXyS_qWY,1695
7
- carconnectivity_connectors/seatcupra/command_impl.py,sha256=wUmf4IRo4HxzeiS6LKfQzUZBwPO6Gm8GQmVJM9sH1Tk,3226
8
- carconnectivity_connectors/seatcupra/connector.py,sha256=5bLClhgEyL1R12Ooa3UanRNx0Ke5yrvYp_5qF82hnD4,130762
7
+ carconnectivity_connectors/seatcupra/command_impl.py,sha256=5kIzMWhabUTtLVcrWQuu2Xp78NnF96G3Fr-nt9h6IA0,3234
8
+ carconnectivity_connectors/seatcupra/connector.py,sha256=N8LhUSgy6zK4rjtLuLgI1xPwYqPmFzqaZ4gczaXy2tE,131556
9
9
  carconnectivity_connectors/seatcupra/vehicle.py,sha256=LHkAlVD_C8xOX81wCGFZbZqyhctpKx-CN0T3NZJ2jFk,3946
10
10
  carconnectivity_connectors/seatcupra/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  carconnectivity_connectors/seatcupra/auth/auth_util.py,sha256=Y81h8fGOMSMgPtE4wI_TI9WgE_s43uaPjRLBBINhj4g,4433
@@ -15,7 +15,7 @@ carconnectivity_connectors/seatcupra/auth/session_manager.py,sha256=ZIDvC848T3fy
15
15
  carconnectivity_connectors/seatcupra/auth/vw_web_session.py,sha256=CcI6m68IyRs6WsMDu-IsW3Dj85vyGiMmxvFqNETMHO0,10929
16
16
  carconnectivity_connectors/seatcupra/auth/helpers/blacklist_retry.py,sha256=f3wsiY5bpHDBxp7Va1Mv9nKJ4u3qnCHZZmDu78_AhMk,1251
17
17
  carconnectivity_connectors/seatcupra/ui/connector_ui.py,sha256=UXDWnMAyTrm0UReTP2WamorrPE5kAJ5oxOjCp-MrZ-c,1414
18
- carconnectivity_connector_seatcupra-0.3.dist-info/METADATA,sha256=TAUEL6c8a4npLNiH2ltogQLIBT6D4LysUhLU3wxbHc0,5491
19
- carconnectivity_connector_seatcupra-0.3.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
20
- carconnectivity_connector_seatcupra-0.3.dist-info/top_level.txt,sha256=KqA8GviZsDH4PtmnwSQsz0HB_w-TWkeEHLIRNo5dTaI,27
21
- carconnectivity_connector_seatcupra-0.3.dist-info/RECORD,,
18
+ carconnectivity_connector_seatcupra-0.4.dist-info/METADATA,sha256=ptD-uU_NM7mKuk29cunDIkPyVHWmmiXkb4-ynFmGYag,5491
19
+ carconnectivity_connector_seatcupra-0.4.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
20
+ carconnectivity_connector_seatcupra-0.4.dist-info/top_level.txt,sha256=KqA8GviZsDH4PtmnwSQsz0HB_w-TWkeEHLIRNo5dTaI,27
21
+ carconnectivity_connector_seatcupra-0.4.dist-info/RECORD,,
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.3'
21
- __version_tuple__ = version_tuple = (0, 3)
20
+ __version__ = version = '0.4'
21
+ __version_tuple__ = version_tuple = (0, 4)
@@ -44,7 +44,7 @@ class SpinCommand(GenericCommand):
44
44
  parser.add_argument('--spin', dest='spin', help='Spin to be used instead of spin from config or .netrc', type=str, required=False,
45
45
  default=None)
46
46
  try:
47
- args = parser.parse_args(new_value.split(sep=' '))
47
+ args = parser.parse_args(new_value.strip().split(sep=' '))
48
48
  except argparse.ArgumentError as e:
49
49
  raise SetterError(f'Invalid format for SpinCommand: {e.message} {parser.format_usage()}') from e
50
50
 
@@ -316,7 +316,7 @@ class Connector(BaseConnector):
316
316
  and vehicle.position.position_type.enabled and vehicle.position.position_type.value == Position.PositionType.PARKING:
317
317
  vehicle.state._set_value(GenericVehicle.State.PARKED) # pylint: disable=protected-access
318
318
  else:
319
- vehicle.state._set_value(None) # pylint: disable=protected-access
319
+ vehicle.state._set_value(GenericVehicle.State.UNKNOWN) # pylint: disable=protected-access
320
320
 
321
321
  def fetch_vehicles(self) -> None:
322
322
  """
@@ -669,11 +669,13 @@ class Connector(BaseConnector):
669
669
  if 'levelPct' in vehicle_status_data['engines'][drive_id] and vehicle_status_data['engines'][drive_id]['levelPct'] is not None:
670
670
  # pylint: disable-next=protected-access
671
671
  drive.level._set_value(value=vehicle_status_data['engines'][drive_id]['levelPct'])
672
+ drive.level.precision = 1
672
673
  else:
673
674
  drive.level._set_value(None) # pylint: disable=protected-access
674
675
  if 'rangeKm' in vehicle_status_data['engines'][drive_id] and vehicle_status_data['engines'][drive_id]['rangeKm'] is not None:
675
676
  # pylint: disable-next=protected-access
676
677
  drive.range._set_value(value=vehicle_status_data['engines'][drive_id]['rangeKm'], unit=Length.KM)
678
+ drive.range.precision = 1
677
679
  total_range += vehicle_status_data['engines'][drive_id]['rangeKm']
678
680
  else:
679
681
  drive.range._set_value(None, unit=Length.KM) # pylint: disable=protected-access
@@ -681,6 +683,7 @@ class Connector(BaseConnector):
681
683
  'levelPct',
682
684
  'rangeKm'})
683
685
  vehicle.drives.total_range._set_value(total_range, unit=Length.KM) # pylint: disable=protected-access
686
+ vehicle.drives.total_range.precision = 1
684
687
  else:
685
688
  vehicle.drives.enabled = False
686
689
  if len(vehicle.drives.drives) > 0:
@@ -816,7 +819,9 @@ class Connector(BaseConnector):
816
819
  else:
817
820
  longitude = None
818
821
  vehicle.position.latitude._set_value(latitude) # pylint: disable=protected-access
822
+ vehicle.position.latitude.precision = 0.000001
819
823
  vehicle.position.longitude._set_value(longitude) # pylint: disable=protected-access
824
+ vehicle.position.longitude.precision = 0.000001
820
825
  vehicle.position.position_type._set_value(Position.PositionType.PARKING) # pylint: disable=protected-access
821
826
  log_extra_keys(LOG_API, 'parkingposition', data, {'lat', 'lon'})
822
827
  else:
@@ -847,6 +852,7 @@ class Connector(BaseConnector):
847
852
  if data is not None:
848
853
  if 'mileageKm' in data and data['mileageKm'] is not None:
849
854
  vehicle.odometer._set_value(data['mileageKm'], unit=Length.KM) # pylint: disable=protected-access
855
+ vehicle.odometer.precision = 1
850
856
  else:
851
857
  vehicle.odometer._set_value(None) # pylint: disable=protected-access
852
858
  log_extra_keys(LOG_API, f'https://ola.prod.code.seat.cloud.vwgroup.com/v1/vehicles/{vin}/mileage', data, {'mileageKm'})
@@ -869,22 +875,26 @@ class Connector(BaseConnector):
869
875
  if 'rangeName' in range_dict and range_dict['rangeName'] is not None and range_dict['rangeName'] == 'electricRangeKm' \
870
876
  and 'value' in range_dict and range_dict['value'] is not None:
871
877
  drive.range._set_value(range_dict['value'], unit=Length.KM) # pylint: disable=protected-access
878
+ drive.range.precision = 1
872
879
  break
873
880
  elif drive.type.enabled and drive.type.value == GenericDrive.Type.GASOLINE:
874
881
  for range_dict in data['ranges']:
875
882
  if 'rangeName' in range_dict and range_dict['rangeName'] is not None and range_dict['rangeName'] == 'gasolineRangeKm' \
876
883
  and 'value' in range_dict and range_dict['value'] is not None:
877
884
  drive.range._set_value(range_dict['value'], unit=Length.KM) # pylint: disable=protected-access
885
+ drive.range.precision = 1
878
886
  break
879
887
  elif drive.type.enabled and drive.type.value == GenericDrive.Type.DIESEL:
880
888
  for range_dict in data['ranges']:
881
889
  if 'rangeName' in range_dict and range_dict['rangeName'] is not None and range_dict['rangeName'] == 'dieselRangeKm' \
882
890
  and 'value' in range_dict and range_dict['value'] is not None:
883
891
  drive.range._set_value(range_dict['value'], unit=Length.KM) # pylint: disable=protected-access
892
+ drive.range.precision = 1
884
893
  elif 'rangeName' in range_dict and range_dict['rangeName'] is not None and range_dict['rangeName'] == 'adBlueKm' \
885
894
  and 'value' in range_dict and range_dict['value'] is not None:
886
895
  if isinstance(drive, DieselDrive):
887
896
  drive.adblue_range._set_value(range_dict['value'], unit=Length.KM) # pylint: disable=protected-access
897
+ drive.adblue_range.precision = 1
888
898
  log_extra_keys(LOG_API, f'https://ola.prod.code.seat.cloud.vwgroup.com/v1/vehicles/{vin}/ranges', data, {'ranges'})
889
899
  return vehicle
890
900
 
@@ -905,6 +915,7 @@ class Connector(BaseConnector):
905
915
  vehicle.maintenance.inspection_due_at._set_value(None) # pylint: disable=protected-access
906
916
  if 'inspectionDueKm' in data and data['inspectionDueKm'] is not None:
907
917
  vehicle.maintenance.inspection_due_after._set_value(data['inspectionDueKm'], unit=Length.KM) # pylint: disable=protected-access
918
+ vehicle.maintenance.inspection_due_after.precision = 1
908
919
  else:
909
920
  vehicle.maintenance.inspection_due_after._set_value(None) # pylint: disable=protected-access
910
921
  if 'oilServiceDueDays' in data and data['oilServiceDueDays'] is not None:
@@ -917,11 +928,13 @@ class Connector(BaseConnector):
917
928
  vehicle.maintenance.oil_service_due_at._set_value(None) # pylint: disable=protected-access
918
929
  if 'oilServiceDueKm' in data and data['oilServiceDueKm'] is not None:
919
930
  vehicle.maintenance.oil_service_due_after._set_value(data['oilServiceDueKm'], unit=Length.KM) # pylint: disable=protected-access
931
+ vehicle.maintenance.oil_service_due_after.precision = 1
920
932
  else:
921
933
  vehicle.maintenance.oil_service_due_after._set_value(None) # pylint: disable=protected-access
922
934
  log_extra_keys(LOG_API, f'/v1/vehicles/{vin}/maintenance', data, {'inspectionDueDays', 'inspectionDueKm', 'oilServiceDueDays', 'oilServiceDueKm'})
923
935
  else:
924
936
  vehicle.odometer._set_value(None) # pylint: disable=protected-access
937
+ vehicle.odometer.precision = 1
925
938
  return vehicle
926
939
 
927
940
  def fetch_climatisation(self, vehicle: SeatCupraVehicle, no_cache: bool = False) -> SeatCupraVehicle:
@@ -1330,7 +1343,7 @@ class Connector(BaseConnector):
1330
1343
  elif not allow_http_error or (allowed_errors is not None and status_response.status_code not in allowed_errors):
1331
1344
  raise RetrievalError(f'Could not fetch data even after re-authorization. Status Code was: {status_response.status_code}')
1332
1345
  elif not allow_http_error or (allowed_errors is not None and status_response.status_code not in allowed_errors):
1333
- raise RetrievalError(f'Could not fetch data. Status Code was: {status_response.status_code}')
1346
+ raise RetrievalError(f'Could not fetch data for {url}. Status Code was: {status_response.status_code}')
1334
1347
  except requests.exceptions.ConnectionError as connection_error:
1335
1348
  raise RetrievalError(f'Connection error: {connection_error}.'
1336
1349
  ' If this happens frequently, please check if other applications communicate with the Seat/Cupra server.') from connection_error