Use StrEnum for car classes (#30114)
* str enum * import sort * fix car helpers * fix that * fix static analysis old-commit-hash: 6ae465e4af76e21c6a31c541f37555f6bd0727fc
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from enum import StrEnum
|
||||
from typing import Dict
|
||||
|
||||
from cereal import car
|
||||
@@ -21,7 +22,7 @@ class CarControllerParams:
|
||||
pass
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
BODY = "COMMA BODY"
|
||||
|
||||
|
||||
|
||||
@@ -66,9 +66,8 @@ def load_interfaces(brand_names):
|
||||
def _get_interface_names() -> Dict[str, List[str]]:
|
||||
# returns a dict of brand name and its respective models
|
||||
brand_names = {}
|
||||
for brand_name, model_names in get_interface_attr("CAR").items():
|
||||
model_names = [getattr(model_names, c) for c in model_names.__dict__.keys() if not c.startswith("__")]
|
||||
brand_names[brand_name] = model_names
|
||||
for brand_name, brand_models in get_interface_attr("CAR").items():
|
||||
brand_names[brand_name] = [model.value for model in brand_models]
|
||||
|
||||
return brand_names
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# ruff: noqa: E501
|
||||
from enum import IntFlag
|
||||
from enum import IntFlag, StrEnum
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
@@ -16,7 +16,7 @@ class ChryslerFlags(IntFlag):
|
||||
HIGHER_MIN_STEERING_SPEED = 1
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
# Chrysler
|
||||
PACIFICA_2017_HYBRID = "CHRYSLER PACIFICA HYBRID 2017"
|
||||
PACIFICA_2018_HYBRID = "CHRYSLER PACIFICA HYBRID 2018"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum
|
||||
from enum import Enum, StrEnum
|
||||
from typing import Dict, List, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -40,7 +40,7 @@ class CarControllerParams:
|
||||
pass
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
BRONCO_SPORT_MK1 = "FORD BRONCO SPORT 1ST GEN"
|
||||
ESCAPE_MK4 = "FORD ESCAPE 4TH GEN"
|
||||
EXPLORER_MK6 = "FORD EXPLORER 6TH GEN"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# ruff: noqa: E501
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum
|
||||
from enum import Enum, StrEnum
|
||||
from typing import Dict, List, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -61,7 +61,7 @@ class CarControllerParams:
|
||||
self.BRAKE_LOOKUP_V = [self.MAX_BRAKE, 0.]
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
HOLDEN_ASTRA = "HOLDEN ASTRA RS-V BK 2017"
|
||||
VOLT = "CHEVROLET VOLT PREMIER 2017"
|
||||
CADILLAC_ATS = "CADILLAC ATS Premium Performance 2018"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum, IntFlag
|
||||
from enum import Enum, IntFlag, StrEnum
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -72,7 +72,7 @@ VISUAL_HUD = {
|
||||
}
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
ACCORD = "HONDA ACCORD 2018"
|
||||
ACCORDH = "HONDA ACCORD HYBRID 2018"
|
||||
CIVIC = "HONDA CIVIC 2016"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# ruff: noqa: E501
|
||||
import re
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum, IntFlag
|
||||
from enum import Enum, IntFlag, StrEnum
|
||||
from typing import Dict, List, Optional, Set, Tuple, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -67,7 +67,7 @@ class HyundaiFlags(IntFlag):
|
||||
CANFD_HDA2_ALT_STEERING = 512
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
# Hyundai
|
||||
AZERA_6TH_GEN = "HYUNDAI AZERA 6TH GEN"
|
||||
AZERA_HEV_6TH_GEN = "HYUNDAI AZERA HYBRID 6TH GEN"
|
||||
@@ -400,8 +400,8 @@ def match_fw_to_car_fuzzy(live_fw_versions) -> Set[str]:
|
||||
# to distinguish between hybrid and ICE. All EVs so far are either exclusively
|
||||
# electric or specify electric in the platform code.
|
||||
# TODO: whitelist platforms that we've seen hybrid and ICE versions of that have these specifiers
|
||||
fuzzy_platform_blacklist = set(CANFD_CAR - EV_CAR)
|
||||
candidates = set()
|
||||
fuzzy_platform_blacklist = {str(car) for car in set(CANFD_CAR - EV_CAR)}
|
||||
candidates: Set[str] = set()
|
||||
|
||||
for candidate, fws in FW_VERSIONS.items():
|
||||
# Keep track of ECUs which pass all checks (platform codes, within date range)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from dataclasses import dataclass, field
|
||||
from enum import StrEnum
|
||||
from typing import Dict, List, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -25,7 +26,7 @@ class CarControllerParams:
|
||||
pass
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
CX5 = "MAZDA CX-5"
|
||||
CX9 = "MAZDA CX-9"
|
||||
MAZDA3 = "MAZDA 3"
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
from enum import StrEnum
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
from openpilot.selfdrive.car.docs_definitions import CarInfo
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
MOCK = 'mock'
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# ruff: noqa: E501
|
||||
from dataclasses import dataclass, field
|
||||
from enum import StrEnum
|
||||
from typing import Dict, List, Optional, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -21,7 +22,7 @@ class CarControllerParams:
|
||||
pass
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
XTRAIL = "NISSAN X-TRAIL 2017"
|
||||
LEAF = "NISSAN LEAF 2018"
|
||||
# Leaf with ADAS ECU found behind instrument cluster instead of glovebox
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum, IntFlag
|
||||
from enum import Enum, IntFlag, StrEnum
|
||||
from typing import Dict, List, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -63,7 +63,7 @@ class CanBus:
|
||||
camera = 2
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
# Global platform
|
||||
ASCENT = "SUBARU ASCENT LIMITED 2019"
|
||||
ASCENT_2023 = "SUBARU ASCENT 2023"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# ruff: noqa: E501
|
||||
from collections import namedtuple
|
||||
from enum import StrEnum
|
||||
from typing import Dict, List, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -12,7 +13,7 @@ Ecu = car.CarParams.Ecu
|
||||
Button = namedtuple('Button', ['event_type', 'can_addr', 'can_msg', 'values'])
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
AP1_MODELS = 'TESLA AP1 MODEL S'
|
||||
AP2_MODELS = 'TESLA AP2 MODEL S'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum, IntFlag
|
||||
from enum import Enum, IntFlag, StrEnum
|
||||
from typing import Dict, List, Set, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -46,7 +46,7 @@ class ToyotaFlags(IntFlag):
|
||||
DISABLE_RADAR = 4
|
||||
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
# Toyota
|
||||
ALPHARD_TSS2 = "TOYOTA ALPHARD 2020"
|
||||
ALPHARDH_TSS2 = "TOYOTA ALPHARD HYBRID 2021"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from collections import defaultdict, namedtuple
|
||||
from dataclasses import dataclass, field
|
||||
from enum import Enum
|
||||
from enum import Enum, StrEnum
|
||||
from typing import Dict, List, Union
|
||||
|
||||
from cereal import car
|
||||
@@ -114,7 +114,7 @@ class CANBUS:
|
||||
# FW_VERSIONS for that existing CAR.
|
||||
# Exception: SEAT Leon and SEAT Ateca share a chassis code
|
||||
|
||||
class CAR:
|
||||
class CAR(StrEnum):
|
||||
ARTEON_MK1 = "VOLKSWAGEN ARTEON 1ST GEN" # Chassis AN, Mk1 VW Arteon and variants
|
||||
ATLAS_MK1 = "VOLKSWAGEN ATLAS 1ST GEN" # Chassis CA, Mk1 VW Atlas and Atlas Cross Sport
|
||||
CRAFTER_MK2 = "VOLKSWAGEN CRAFTER 2ND GEN" # Chassis SY/SZ, Mk2 VW Crafter, VW Grand California, MAN TGE
|
||||
|
||||
Reference in New Issue
Block a user