From 59cc222792c7e484ee73b9bef5b24e47663e2b11 Mon Sep 17 00:00:00 2001 From: Jason Young <jyoung8607@gmail.com> Date: Fri, 27 Sep 2024 19:16:58 -0400 Subject: [PATCH] more refactor/cleanup --- opendbc/car/__init__.py | 14 ++++++++++++-- opendbc/car/body/values.py | 2 +- opendbc/car/docs_definitions.py | 2 -- opendbc/car/other_cars.py | 27 +++++---------------------- 4 files changed, 18 insertions(+), 27 deletions(-) diff --git a/opendbc/car/__init__.py b/opendbc/car/__init__.py index 455d8c3803..974e5865e8 100644 --- a/opendbc/car/__init__.py +++ b/opendbc/car/__init__.py @@ -3,12 +3,12 @@ from collections import namedtuple from dataclasses import dataclass from enum import IntFlag, ReprEnum, EnumType -from dataclasses import replace +from dataclasses import replace, field from panda import uds from opendbc.car import structs from opendbc.car.can_definitions import CanData -from opendbc.car.docs_definitions import CarDocs +from opendbc.car.docs_definitions import CarDocs, OtherCarDocs from opendbc.car.common.numpy_fast import clip, interp # set up logging @@ -321,3 +321,13 @@ def create_dbc_map(cls) -> dict[str, DbcDict]: @classmethod def with_flags(cls, flags: IntFlag) -> set['Platforms']: return {p for p in cls if p.config.flags & flags} + + + +@dataclass(order=True) +class OtherPlatformConfig(PlatformConfig): + car_docs: list[OtherCarDocs] + specs: CarSpecs | None = None + dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('unknown', None)) + flags = 0 + platform_str = "Unknown" diff --git a/opendbc/car/body/values.py b/opendbc/car/body/values.py index 8a546ac383..3c221548c3 100644 --- a/opendbc/car/body/values.py +++ b/opendbc/car/body/values.py @@ -1,6 +1,6 @@ from opendbc.car import CarSpecs, PlatformConfig, Platforms, dbc_dict from opendbc.car.structs import CarParams -from opendbc.car.docs_definitions import CarDocs, SupportType +from opendbc.car.docs_definitions import CarDocs from opendbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries Ecu = CarParams.Ecu diff --git a/opendbc/car/docs_definitions.py b/opendbc/car/docs_definitions.py index d463a81f20..8bf658dc1a 100644 --- a/opendbc/car/docs_definitions.py +++ b/opendbc/car/docs_definitions.py @@ -4,8 +4,6 @@ from dataclasses import dataclass, field from enum import Enum -from mypy.typeops import supported_self_type - from opendbc.car.common.conversions import Conversions as CV from opendbc.car.structs import CarParams diff --git a/opendbc/car/other_cars.py b/opendbc/car/other_cars.py index fe18ed4ea8..14584e485b 100644 --- a/opendbc/car/other_cars.py +++ b/opendbc/car/other_cars.py @@ -1,33 +1,16 @@ -from dataclasses import dataclass, field +from dataclasses import dataclass from enum import Enum -from opendbc.car import dbc_dict, structs, CarSpecs, DbcDict, PlatformConfig, Platforms +from opendbc.car import structs, Platforms, OtherPlatformConfig from opendbc.car.docs_definitions import CarFootnote, OtherCarDocs, Column, SupportType -@dataclass -class OtherPlatformConfig(PlatformConfig): - dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('unknown', None)) - - -@dataclass(frozen=True, kw_only=True) -class OtherCarSpecs(CarSpecs): - # FIXME: Need to be able to print these as N/A or Unknown or whatever, try to eliminate entirely - steerRatio: float = 0. - - @dataclass class CommunityCarDocs(OtherCarDocs): def init_make(self, CP: structs.CarParams): self.support_type = SupportType.COMMUNITY -@dataclass -class IncompatibleCarDocs(OtherCarDocs): - def init_make(self, CP: structs.CarParams): - self.support_type = SupportType.INCOMPATIBLE - - @dataclass class ToyotaSecurityCarDocs(OtherCarDocs): def init_make(self, CP: structs.CarParams): @@ -57,7 +40,7 @@ class CAR(Platforms): CommunityCarDocs("Hyundai Palisade 2023-24", package="All", footnotes=[Footnote.UNDER_REVIEW]), CommunityCarDocs("Kia Telluride 2023-24", package="All", footnotes=[Footnote.UNDER_REVIEW]), ], - OtherCarSpecs(mass=0., wheelbase=0.), # TODO: Don't require CarSpecs for unsupported cars + None, ) TOYOTA_SECURITY_CARS = OtherPlatformConfig( @@ -76,7 +59,7 @@ class CAR(Platforms): ToyotaSecurityCarDocs("Toyota Tundra 2022-25"), ToyotaSecurityCarDocs("Toyota Venza 2021-25"), ], - OtherCarSpecs(mass=0., wheelbase=0.), # TODO: Don't require CarSpecs for unsupported cars + None, ) AUDI_FLEXRAY = OtherPlatformConfig( @@ -85,5 +68,5 @@ class CAR(Platforms): FlexRayCarDocs("Audi A5 2016-24", package="All"), FlexRayCarDocs("Audi Q5 2017-24", package="All"), ], - OtherCarSpecs(mass=0., wheelbase=0.), # TODO: Don't require CarSpecs for unsupported cars + None, )