Skip to content

Commit 9e86588

Browse files
committed
Footnote enums
1 parent 6604709 commit 9e86588

File tree

6 files changed

+75
-78
lines changed

6 files changed

+75
-78
lines changed

selfdrive/car/docs.py

+9-11
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
#!/usr/bin/env python3
22
import jinja2
33
import os
4+
from enum import Enum
45
from typing import Dict, Iterator, List, Tuple
56

67
from common.basedir import BASEDIR
78
from common.params import Params
8-
from selfdrive.car.docs_definitions import CarFootnote, Column, Star, Tier
9+
from selfdrive.car.docs_definitions import Column, Star, Tier
910
from selfdrive.car.car_helpers import interfaces, get_interface_attr
1011
from selfdrive.car.hyundai.radar_interface import RADAR_START_ADDR as HKG_RADAR_START_ADDR
1112
from selfdrive.car.tests.routes import non_tested_cars
1213

1314

14-
def get_all_footnotes() -> Dict[CarFootnote, int]:
15-
all_footnotes = {}
16-
i = 1
17-
for _, footnotes in get_interface_attr("FOOTNOTES").items():
15+
def get_all_footnotes():
16+
all_footnotes = []
17+
for _, footnotes in get_interface_attr("Footnote").items():
1818
if footnotes is not None:
19-
for footnote in footnotes.values():
20-
all_footnotes[footnote] = i
21-
i += 1
22-
return all_footnotes
19+
all_footnotes += footnotes
20+
return {fn: idx + 1 for idx, fn in enumerate(all_footnotes)}
2321

2422

25-
ALL_FOOTNOTES: Dict[CarFootnote, int] = get_all_footnotes()
23+
ALL_FOOTNOTES: Dict[Enum, int] = get_all_footnotes()
2624
CARS_MD_OUT = os.path.join(BASEDIR, "docs", "CARS.md")
2725
CARS_MD_TEMPLATE = os.path.join(BASEDIR, "selfdrive", "car", "CARS_template.md")
2826

@@ -62,7 +60,7 @@ def generate_cars_md(tier_car_rows: Iterator[Tuple[str, List[str]]], template_fn
6260
with open(template_fn, "r") as f:
6361
template = jinja2.Template(f.read(), trim_blocks=True)
6462

65-
footnotes = map(lambda fn: fn.text, ALL_FOOTNOTES)
63+
footnotes = [fn.value.text for fn in ALL_FOOTNOTES]
6664
return template.render(tiers=tier_car_rows, columns=[column.value for column in Column], footnotes=footnotes,
6765
star_full=Star.FULL.icon, star_half=Star.HALF.icon, star_empty=Star.EMPTY.icon)
6866

selfdrive/car/docs_definitions.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
from collections import namedtuple
22
from dataclasses import dataclass
33
from enum import Enum
4-
from typing import List, Optional, NamedTuple
4+
from typing import List, Optional
55

66

77
@dataclass
88
class CarInfo:
99
name: str
1010
package: str
1111
video_link: Optional[str] = None
12-
footnotes: Optional[List[NamedTuple]] = None
12+
footnotes: Optional[List[Enum]] = None
1313
min_steer_speed: Optional[float] = None
1414
min_enable_speed: Optional[float] = None
1515
good_torque: bool = False
@@ -35,8 +35,8 @@ def get_stars(self, CP, non_tested_cars):
3535

3636
# Demote if footnote specifies a star
3737
footnote = get_footnote(self.footnotes, column)
38-
if footnote is not None and footnote.star is not None:
39-
stars[idx] = footnote.star
38+
if footnote is not None and footnote.value.star is not None:
39+
stars[idx] = footnote.value.star
4040

4141
return stars
4242

@@ -87,10 +87,10 @@ def icon(self):
8787
CarFootnote = namedtuple("CarFootnote", ["text", "column", "star"], defaults=[None])
8888

8989

90-
def get_footnote(footnotes: Optional[List[CarFootnote]], column: Column) -> Optional[CarFootnote]:
90+
def get_footnote(footnotes: Optional[List[Enum]], column: Column) -> Optional[Enum]:
9191
# Returns applicable footnote given current column
9292
if footnotes is not None:
9393
for fn in footnotes:
94-
if fn.column == column:
94+
if fn.value.column == column:
9595
return fn
9696
return None

selfdrive/car/gm/values.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from enum import Enum
12
from typing import Dict, List, Union
23

34
from cereal import car
@@ -53,21 +54,21 @@ class CAR:
5354
ESCALADE_ESV = "CADILLAC ESCALADE ESV 2016"
5455

5556

56-
FOOTNOTES: Dict[str, CarFootnote] = {
57-
"OBD_II": CarFootnote(
57+
class Footnote(Enum):
58+
OBD_II = CarFootnote(
5859
"Requires an [OBD-II](https://comma.ai/shop/products/comma-car-harness) car harness and [community built ASCM harness]" +
5960
"(https://github.com/commaai/openpilot/wiki/GM#hardware). NOTE: disconnecting the ASCM disables Automatic Emergency Braking (AEB).",
60-
Column.MODEL),
61-
}
61+
Column.MODEL)
62+
6263

6364
CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
6465
CAR.HOLDEN_ASTRA: CarInfo("Holden Astra 2017", "Adaptive Cruise"),
65-
CAR.VOLT: CarInfo("Chevrolet Volt 2017-18", "Adaptive Cruise", footnotes=[FOOTNOTES["OBD_II"]], min_enable_speed=0),
66+
CAR.VOLT: CarInfo("Chevrolet Volt 2017-18", "Adaptive Cruise", footnotes=[Footnote.OBD_II], min_enable_speed=0),
6667
CAR.CADILLAC_ATS: CarInfo("Cadillac ATS Premium Performance 2018", "Adaptive Cruise"),
6768
CAR.MALIBU: CarInfo("Chevrolet Malibu Premier 2017", "Adaptive Cruise"),
68-
CAR.ACADIA: CarInfo("GMC Acadia 2018", "Adaptive Cruise", video_link="https://www.youtube.com/watch?v=0ZN6DdsBUZo", footnotes=[FOOTNOTES["OBD_II"]]),
69+
CAR.ACADIA: CarInfo("GMC Acadia 2018", "Adaptive Cruise", video_link="https://www.youtube.com/watch?v=0ZN6DdsBUZo", footnotes=[Footnote.OBD_II]),
6970
CAR.BUICK_REGAL: CarInfo("Buick Regal Essence 2018", "Adaptive Cruise"),
70-
CAR.ESCALADE_ESV: CarInfo("Cadillac Escalade ESV 2016", "ACC + LKAS", footnotes=[FOOTNOTES["OBD_II"]]),
71+
CAR.ESCALADE_ESV: CarInfo("Cadillac Escalade ESV 2016", "ACC + LKAS", footnotes=[Footnote.OBD_II]),
7172
}
7273

7374

selfdrive/car/honda/values.py

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from enum import IntFlag
1+
from enum import Enum, IntFlag
22
from typing import Dict, List, Union
33

44
from cereal import car
@@ -91,11 +91,10 @@ class CAR:
9191
HONDA_E = "HONDA E 2020"
9292

9393

94-
FOOTNOTES: Dict[str, CarFootnote] = {
95-
"CIVIC_DIESEL": CarFootnote(
94+
class Footnote(Enum):
95+
CIVIC_DIESEL = CarFootnote(
9696
"2019 Honda Civic 1.6L Diesel Sedan does not have ALC below 12mph.",
97-
Column.FSR_STEERING),
98-
}
97+
Column.FSR_STEERING)
9998

10099

101100
CAR_INFO: Dict[str, Union[CarInfo, List[CarInfo]]] = {
@@ -106,7 +105,7 @@ class CAR:
106105
CAR.ACCORDH: CarInfo("Honda Accord Hybrid 2018-21", "All", min_steer_speed=3. * CV.MPH_TO_MS),
107106
CAR.CIVIC: CarInfo("Honda Civic 2016-18", "Honda Sensing", min_steer_speed=12. * CV.MPH_TO_MS),
108107
CAR.CIVIC_BOSCH: [
109-
CarInfo("Honda Civic 2019-20", "All", video_link="https://www.youtube.com/watch?v=4Iz1Mz5LGF8", footnotes=[FOOTNOTES["CIVIC_DIESEL"]], min_steer_speed=2. * CV.MPH_TO_MS),
108+
CarInfo("Honda Civic 2019-20", "All", video_link="https://www.youtube.com/watch?v=4Iz1Mz5LGF8", footnotes=[Footnote.CIVIC_DIESEL], min_steer_speed=2. * CV.MPH_TO_MS),
110109
CarInfo("Honda Civic Hatchback 2017-21", "Honda Sensing", min_steer_speed=12. * CV.MPH_TO_MS),
111110
],
112111
CAR.ACURA_ILX: CarInfo("Acura ILX 2016-19", "AcuraWatch Plus", min_steer_speed=25. * CV.MPH_TO_MS),

selfdrive/car/toyota/values.py

+29-30
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from collections import defaultdict
22
from dataclasses import dataclass
3-
from enum import IntFlag
3+
from enum import Enum, IntFlag
44
from typing import Dict, List, Union
55

66
from cereal import car
@@ -74,18 +74,17 @@ class CAR:
7474
LEXUS_RXH_TSS2 = "LEXUS RX HYBRID 2020"
7575

7676

77-
FOOTNOTES: Dict[str, CarFootnote] = {
78-
"DSU": CarFootnote(
77+
class Footnote(Enum):
78+
DSU = CarFootnote(
7979
"When disconnecting the Driver Support Unit (DSU), openpilot Adaptive Cruise Control (ACC) will replace " +
8080
"stock Adaptive Cruise Control (ACC). NOTE: disconnecting the DSU disables Automatic Emergency Braking (AEB).",
81-
Column.LONGITUDINAL, star=Star.HALF),
82-
"CAMRY": CarFootnote(
81+
Column.LONGITUDINAL, star=Star.HALF)
82+
CAMRY = CarFootnote(
8383
"28mph for Camry 4CYL L, 4CYL LE and 4CYL SE which don't have Full-Speed Range Dynamic Radar Cruise Control.",
84-
Column.FSR_LONGITUDINAL),
85-
"ANGLE_SENSOR": CarFootnote(
84+
Column.FSR_LONGITUDINAL)
85+
ANGLE_SENSOR = CarFootnote(
8686
"An inaccurate steering wheel angle sensor makes precise control difficult.",
87-
Column.STEERING_TORQUE, Star.HALF)
88-
}
87+
Column.STEERING_TORQUE, star=Star.HALF)
8988

9089

9190
@dataclass
@@ -97,17 +96,17 @@ class ToyotaCarInfo(CarInfo):
9796
CAR_INFO: Dict[str, Union[ToyotaCarInfo, List[ToyotaCarInfo]]] = {
9897
# Toyota
9998
CAR.ALPHARD_TSS2: ToyotaCarInfo("Toyota Alphard 2019-20"),
100-
CAR.AVALON: ToyotaCarInfo("Toyota Avalon 2016-18", "TSS-P", footnotes=[FOOTNOTES["DSU"]]),
101-
CAR.AVALON_2019: ToyotaCarInfo("Toyota Avalon 2019-21", "TSS-P", footnotes=[FOOTNOTES["DSU"]]),
102-
CAR.AVALONH_2019: ToyotaCarInfo("Toyota Avalon Hybrid 2019-21", "TSS-P", footnotes=[FOOTNOTES["DSU"]]),
99+
CAR.AVALON: ToyotaCarInfo("Toyota Avalon 2016-18", "TSS-P", footnotes=[Footnote.DSU]),
100+
CAR.AVALON_2019: ToyotaCarInfo("Toyota Avalon 2019-21", "TSS-P", footnotes=[Footnote.DSU]),
101+
CAR.AVALONH_2019: ToyotaCarInfo("Toyota Avalon Hybrid 2019-21", "TSS-P", footnotes=[Footnote.DSU]),
103102
CAR.AVALON_TSS2: ToyotaCarInfo("Toyota Avalon 2022"),
104-
CAR.CAMRY: ToyotaCarInfo("Toyota Camry 2018-20", video_link="https://www.youtube.com/watch?v=fkcjviZY9CM", footnotes=[FOOTNOTES["CAMRY"]]),
105-
CAR.CAMRYH: ToyotaCarInfo("Toyota Camry Hybrid 2018-20", video_link="https://www.youtube.com/watch?v=Q2DYY0AWKgk", footnotes=[FOOTNOTES["CAMRY"]]),
106-
CAR.CAMRY_TSS2: ToyotaCarInfo("Toyota Camry 2021-22", footnotes=[FOOTNOTES["CAMRY"]]),
103+
CAR.CAMRY: ToyotaCarInfo("Toyota Camry 2018-20", video_link="https://www.youtube.com/watch?v=fkcjviZY9CM", footnotes=[Footnote.CAMRY]),
104+
CAR.CAMRYH: ToyotaCarInfo("Toyota Camry Hybrid 2018-20", video_link="https://www.youtube.com/watch?v=Q2DYY0AWKgk", footnotes=[Footnote.CAMRY]),
105+
CAR.CAMRY_TSS2: ToyotaCarInfo("Toyota Camry 2021-22", footnotes=[Footnote.CAMRY]),
107106
CAR.CAMRYH_TSS2: ToyotaCarInfo("Toyota Camry Hybrid 2021-22"),
108107
CAR.CHR: ToyotaCarInfo("Toyota C-HR 2017-21"),
109108
CAR.CHRH: ToyotaCarInfo("Toyota C-HR Hybrid 2017-19"),
110-
CAR.COROLLA: ToyotaCarInfo("Toyota Corolla 2017-19", footnotes=[FOOTNOTES["DSU"]]),
109+
CAR.COROLLA: ToyotaCarInfo("Toyota Corolla 2017-19", footnotes=[Footnote.DSU]),
111110
CAR.COROLLA_TSS2: [
112111
ToyotaCarInfo("Toyota Corolla 2020-22", video_link="https://www.youtube.com/watch?v=_66pXk0CBYA"),
113112
ToyotaCarInfo("Toyota Corolla Hatchback 2019-22", video_link="https://www.youtube.com/watch?v=_66pXk0CBYA"),
@@ -116,38 +115,38 @@ class ToyotaCarInfo(CarInfo):
116115
ToyotaCarInfo("Toyota Corolla Hybrid 2020-22"),
117116
ToyotaCarInfo("Lexus UX Hybrid 2019-21"),
118117
],
119-
CAR.HIGHLANDER: ToyotaCarInfo("Toyota Highlander 2017-19", video_link="https://www.youtube.com/watch?v=0wS0wXSLzoo", footnotes=[FOOTNOTES["DSU"]]),
118+
CAR.HIGHLANDER: ToyotaCarInfo("Toyota Highlander 2017-19", video_link="https://www.youtube.com/watch?v=0wS0wXSLzoo", footnotes=[Footnote.DSU]),
120119
CAR.HIGHLANDER_TSS2: ToyotaCarInfo("Toyota Highlander 2020-22"),
121-
CAR.HIGHLANDERH: ToyotaCarInfo("Toyota Highlander Hybrid 2017-19", footnotes=[FOOTNOTES["DSU"]]),
120+
CAR.HIGHLANDERH: ToyotaCarInfo("Toyota Highlander Hybrid 2017-19", footnotes=[Footnote.DSU]),
122121
CAR.HIGHLANDERH_TSS2: ToyotaCarInfo("Toyota Highlander Hybrid 2020-22"),
123122
CAR.PRIUS: [
124-
ToyotaCarInfo("Toyota Prius 2016-20", "TSS-P", video_link="https://www.youtube.com/watch?v=8zopPJI8XQ0", footnotes=[FOOTNOTES["DSU"], FOOTNOTES["ANGLE_SENSOR"]]),
125-
ToyotaCarInfo("Toyota Prius Prime 2017-20", video_link="https://www.youtube.com/watch?v=8zopPJI8XQ0", footnotes=[FOOTNOTES["DSU"], FOOTNOTES["ANGLE_SENSOR"]]),
123+
ToyotaCarInfo("Toyota Prius 2016-20", "TSS-P", video_link="https://www.youtube.com/watch?v=8zopPJI8XQ0", footnotes=[Footnote.DSU, Footnote.ANGLE_SENSOR]),
124+
ToyotaCarInfo("Toyota Prius Prime 2017-20", video_link="https://www.youtube.com/watch?v=8zopPJI8XQ0", footnotes=[Footnote.DSU, Footnote.ANGLE_SENSOR]),
126125
],
127-
CAR.PRIUS_V: ToyotaCarInfo("Toyota Prius v 2017", "TSS-P", min_enable_speed=MIN_ACC_SPEED, footnotes=[FOOTNOTES["DSU"], FOOTNOTES["ANGLE_SENSOR"]]),
126+
CAR.PRIUS_V: ToyotaCarInfo("Toyota Prius v 2017", "TSS-P", min_enable_speed=MIN_ACC_SPEED, footnotes=[Footnote.DSU, Footnote.ANGLE_SENSOR]),
128127
CAR.PRIUS_TSS2: [
129128
ToyotaCarInfo("Toyota Prius 2021-22", video_link="https://www.youtube.com/watch?v=J58TvCpUd4U"),
130129
ToyotaCarInfo("Toyota Prius Prime 2021-22", video_link="https://www.youtube.com/watch?v=J58TvCpUd4U"),
131130
],
132-
CAR.RAV4: ToyotaCarInfo("Toyota RAV4 2016-18", "TSS-P", footnotes=[FOOTNOTES["DSU"]]),
133-
CAR.RAV4H: ToyotaCarInfo("Toyota RAV4 Hybrid 2016-18", "TSS-P", footnotes=[FOOTNOTES["DSU"]]),
131+
CAR.RAV4: ToyotaCarInfo("Toyota RAV4 2016-18", "TSS-P", footnotes=[Footnote.DSU]),
132+
CAR.RAV4H: ToyotaCarInfo("Toyota RAV4 Hybrid 2016-18", "TSS-P", footnotes=[Footnote.DSU]),
134133
CAR.RAV4_TSS2: ToyotaCarInfo("Toyota RAV4 2019-21", video_link="https://www.youtube.com/watch?v=wJxjDd42gGA"),
135134
CAR.RAV4H_TSS2: ToyotaCarInfo("Toyota RAV4 Hybrid 2019-21"),
136135
CAR.MIRAI: ToyotaCarInfo("Toyota Mirai 2021"),
137-
CAR.SIENNA: ToyotaCarInfo("Toyota Sienna 2018-20", video_link="https://www.youtube.com/watch?v=q1UPOo4Sh68", footnotes=[FOOTNOTES["DSU"]]),
136+
CAR.SIENNA: ToyotaCarInfo("Toyota Sienna 2018-20", video_link="https://www.youtube.com/watch?v=q1UPOo4Sh68", footnotes=[Footnote.DSU]),
138137

139138
# Lexus
140-
CAR.LEXUS_CTH: ToyotaCarInfo("Lexus CT Hybrid 2017-18", "LSS", footnotes=[FOOTNOTES["DSU"]]),
141-
CAR.LEXUS_ESH: ToyotaCarInfo("Lexus ES Hybrid 2017-18", "LSS", footnotes=[FOOTNOTES["DSU"]]),
139+
CAR.LEXUS_CTH: ToyotaCarInfo("Lexus CT Hybrid 2017-18", "LSS", footnotes=[Footnote.DSU]),
140+
CAR.LEXUS_ESH: ToyotaCarInfo("Lexus ES Hybrid 2017-18", "LSS", footnotes=[Footnote.DSU]),
142141
CAR.LEXUS_ES_TSS2: ToyotaCarInfo("Lexus ES 2019-21"),
143142
CAR.LEXUS_ESH_TSS2: ToyotaCarInfo("Lexus ES Hybrid 2019-21"),
144143
CAR.LEXUS_IS: ToyotaCarInfo("Lexus IS 2017-19"),
145-
CAR.LEXUS_NX: ToyotaCarInfo("Lexus NX 2018-19", footnotes=[FOOTNOTES["DSU"]]),
146-
CAR.LEXUS_NXH: ToyotaCarInfo("Lexus NX Hybrid 2018-19", footnotes=[FOOTNOTES["DSU"]]),
144+
CAR.LEXUS_NX: ToyotaCarInfo("Lexus NX 2018-19", footnotes=[Footnote.DSU]),
145+
CAR.LEXUS_NXH: ToyotaCarInfo("Lexus NX Hybrid 2018-19", footnotes=[Footnote.DSU]),
147146
CAR.LEXUS_NX_TSS2: ToyotaCarInfo("Lexus NX 2020"),
148147
CAR.LEXUS_RC: ToyotaCarInfo("Lexus RC 2020"),
149-
CAR.LEXUS_RX: ToyotaCarInfo("Lexus RX 2016-18", footnotes=[FOOTNOTES["DSU"]]),
150-
CAR.LEXUS_RXH: ToyotaCarInfo("Lexus RX Hybrid 2016-19", footnotes=[FOOTNOTES["DSU"]]),
148+
CAR.LEXUS_RX: ToyotaCarInfo("Lexus RX 2016-18", footnotes=[Footnote.DSU]),
149+
CAR.LEXUS_RXH: ToyotaCarInfo("Lexus RX Hybrid 2016-19", footnotes=[Footnote.DSU]),
151150
CAR.LEXUS_RX_TSS2: ToyotaCarInfo("Lexus RX 2020-21"),
152151
CAR.LEXUS_RXH_TSS2: ToyotaCarInfo("Lexus RX Hybrid 2020-21"),
153152
}

selfdrive/car/volkswagen/values.py

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from collections import defaultdict
22
from dataclasses import dataclass
3+
from enum import Enum
34
from typing import Dict, List, Union
45

56
from cereal import car
@@ -90,20 +91,19 @@ class CAR:
9091
SKODA_OCTAVIA_MK3 = "SKODA OCTAVIA 3RD GEN" # Chassis NE, Mk3 Skoda Octavia and variants
9192

9293

93-
FOOTNOTES: Dict[str, CarFootnote] = {
94-
"KAMIQ": CarFootnote(
94+
class Footnote(Enum):
95+
KAMIQ = CarFootnote(
9596
"Not including the China market Kamiq, which is based on the (currently) unsupported PQ34 platform.",
96-
Column.MODEL),
97-
"PASSAT": CarFootnote(
97+
Column.MODEL)
98+
PASSAT = CarFootnote(
9899
"Not including the USA/China market Passat, which is based on the (currently) unsupported PQ35/NMS platform.",
99-
Column.MODEL),
100-
"VW_HARNESS": CarFootnote(
100+
Column.MODEL)
101+
VW_HARNESS = CarFootnote(
101102
"Model-years 2021 and beyond may have a new camera harness design, which isn't yet available from the comma " +
102103
"store. Before ordering, remove the Lane Assist camera cover and check to see if the connector is black " +
103104
"(older design) or light brown (newer design). For the newer design, in the interim, choose \"VW J533 Development\" " +
104105
"from the vehicle drop-down for a harness that integrates at the CAN gateway inside the dashboard.",
105-
Column.MODEL),
106-
}
106+
Column.MODEL)
107107

108108

109109
@dataclass
@@ -113,8 +113,8 @@ class VWCarInfo(CarInfo):
113113

114114

115115
CAR_INFO: Dict[str, Union[VWCarInfo, List[VWCarInfo]]] = {
116-
CAR.ARTEON_MK1: VWCarInfo("Volkswagen Arteon 2018, 2021", footnotes=[FOOTNOTES["VW_HARNESS"]]),
117-
CAR.ATLAS_MK1: VWCarInfo("Volkswagen Atlas 2018-19, 2022", footnotes=[FOOTNOTES["VW_HARNESS"]]),
116+
CAR.ARTEON_MK1: VWCarInfo("Volkswagen Arteon 2018, 2021", footnotes=[Footnote.VW_HARNESS]),
117+
CAR.ATLAS_MK1: VWCarInfo("Volkswagen Atlas 2018-19, 2022", footnotes=[Footnote.VW_HARNESS]),
118118
CAR.GOLF_MK7: [
119119
VWCarInfo("Volkswagen e-Golf 2014, 2019-20"),
120120
VWCarInfo("Volkswagen Golf 2015-20"),
@@ -129,17 +129,17 @@ class VWCarInfo(CarInfo):
129129
VWCarInfo("Volkswagen Jetta 2018-20"),
130130
VWCarInfo("Volkswagen Jetta GLI 2021"),
131131
],
132-
CAR.PASSAT_MK8: VWCarInfo("Volkswagen Passat 2016-18", footnotes=[FOOTNOTES["PASSAT"]]),
132+
CAR.PASSAT_MK8: VWCarInfo("Volkswagen Passat 2016-18", footnotes=[Footnote.PASSAT]),
133133
CAR.POLO_MK6: VWCarInfo("Volkswagen Polo 2020"),
134-
CAR.TAOS_MK1: VWCarInfo("Volkswagen Taos 2022", footnotes=[FOOTNOTES["VW_HARNESS"]]),
135-
CAR.TCROSS_MK1: VWCarInfo("Volkswagen T-Cross 2021", footnotes=[FOOTNOTES["VW_HARNESS"]]),
136-
CAR.TIGUAN_MK2: VWCarInfo("Volkswagen Tiguan 2020-22", footnotes=[FOOTNOTES["VW_HARNESS"]]),
134+
CAR.TAOS_MK1: VWCarInfo("Volkswagen Taos 2022", footnotes=[Footnote.VW_HARNESS]),
135+
CAR.TCROSS_MK1: VWCarInfo("Volkswagen T-Cross 2021", footnotes=[Footnote.VW_HARNESS]),
136+
CAR.TIGUAN_MK2: VWCarInfo("Volkswagen Tiguan 2020-22", footnotes=[Footnote.VW_HARNESS]),
137137
CAR.TOURAN_MK2: VWCarInfo("Volkswagen Touran 2017"),
138138
CAR.TRANSPORTER_T61: [
139-
VWCarInfo("Volkswagen Caravelle 2020", footnotes=[FOOTNOTES["VW_HARNESS"]]),
140-
VWCarInfo("Volkswagen California 2021", footnotes=[FOOTNOTES["VW_HARNESS"]]),
139+
VWCarInfo("Volkswagen Caravelle 2020", footnotes=[Footnote.VW_HARNESS]),
140+
VWCarInfo("Volkswagen California 2021", footnotes=[Footnote.VW_HARNESS]),
141141
],
142-
CAR.TROC_MK1: VWCarInfo("Volkswagen T-Roc 2021", footnotes=[FOOTNOTES["VW_HARNESS"]]),
142+
CAR.TROC_MK1: VWCarInfo("Volkswagen T-Roc 2021", footnotes=[Footnote.VW_HARNESS]),
143143
CAR.AUDI_A3_MK3: [
144144
VWCarInfo("Audi A3 2014-19", "ACC + Lane Assist"),
145145
VWCarInfo("Audi A3 Sportback e-tron 2017-18", "ACC + Lane Assist"),
@@ -149,7 +149,7 @@ class VWCarInfo(CarInfo):
149149
CAR.AUDI_Q3_MK2: VWCarInfo("Audi Q3 2020-21", "ACC + Lane Assist"),
150150
CAR.SEAT_ATECA_MK1: VWCarInfo("SEAT Ateca 2018"),
151151
CAR.SEAT_LEON_MK3: VWCarInfo("SEAT Leon 2014-20"),
152-
CAR.SKODA_KAMIQ_MK1: VWCarInfo("Škoda Kamiq 2021", footnotes=[FOOTNOTES["KAMIQ"]]),
152+
CAR.SKODA_KAMIQ_MK1: VWCarInfo("Škoda Kamiq 2021", footnotes=[Footnote.KAMIQ]),
153153
CAR.SKODA_KAROQ_MK1: VWCarInfo("Škoda Karoq 2019"),
154154
CAR.SKODA_KODIAQ_MK1: VWCarInfo("Škoda Kodiaq 2018-19"),
155155
CAR.SKODA_SCALA_MK1: VWCarInfo("Škoda Scala 2020"),

0 commit comments

Comments
 (0)