Skip to content

Commit

Permalink
Use orjson
Browse files Browse the repository at this point in the history
  • Loading branch information
Prior99 committed Sep 24, 2024
1 parent ad8d68a commit f288bb8
Show file tree
Hide file tree
Showing 15 changed files with 64 additions and 64 deletions.
6 changes: 3 additions & 3 deletions myskoda/auth/authorization.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import jwt
from aiohttp import ClientSession, FormData
from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin

from myskoda.auth.csrf_parser import CSRFParser, CSRFState
from myskoda.const import BASE_URL_IDENT, BASE_URL_SKODA, CLIENT_ID, MAX_RETRIES
Expand All @@ -23,7 +23,7 @@


@dataclass
class IDKAuthorizationCode(DataClassJSONMixin):
class IDKAuthorizationCode(DataClassORJSONMixin):
"""One-time authorization code that can be obtained by logging in.
This authorization code can later be exchanged for a set of JWT tokens.
Expand All @@ -38,7 +38,7 @@ class IDKAuthorizationCode(DataClassJSONMixin):


@dataclass
class IDKSession(DataClassJSONMixin):
class IDKSession(DataClassORJSONMixin):
"""Stores the JWT tokens relevant for a session at the IDK server.
Can be used to authorized and refresh the authorization token.
Expand Down
4 changes: 2 additions & 2 deletions myskoda/auth/csrf_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
from html.parser import HTMLParser

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin
from mashumaro.mixins.yaml import DataClassYAMLMixin

json_object = re.compile(r"window\._IDK\s=\s((?:\n|.)*?)$")


@dataclass
class TemplateModel(DataClassJSONMixin):
class TemplateModel(DataClassORJSONMixin):
hmac: str
relay_state: str = field(metadata=field_options(alias="relayState"))

Expand Down
12 changes: 6 additions & 6 deletions myskoda/models/air_conditioning.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from typing import Any

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin

from .common import ChargerLockedState, ConnectionState, OnOffState, Side, Weekday

Expand All @@ -21,7 +21,7 @@ class TimerMode(StrEnum):


@dataclass
class Timer(DataClassJSONMixin):
class Timer(DataClassORJSONMixin):
enabled: bool
id: int
time: time
Expand All @@ -30,26 +30,26 @@ class Timer(DataClassJSONMixin):


@dataclass
class SeatHeating(DataClassJSONMixin):
class SeatHeating(DataClassORJSONMixin):
front_left: bool = field(metadata=field_options(alias="frontLeft"))
front_right: bool = field(metadata=field_options(alias="frontRight"))


@dataclass
class TargetTemperature(DataClassJSONMixin):
class TargetTemperature(DataClassORJSONMixin):
temperature_value: float = field(metadata=field_options(alias="temperatureValue"))
unit_in_car: TemperatureUnit = field(metadata=field_options(alias="unitInCar"))


@dataclass
class WindowHeatingState(DataClassJSONMixin):
class WindowHeatingState(DataClassORJSONMixin):
front: OnOffState
rear: OnOffState
unspecified: Any


@dataclass
class AirConditioning(DataClassJSONMixin):
class AirConditioning(DataClassORJSONMixin):
"""Information related to air conditioning."""

timers: list[Timer]
Expand Down
12 changes: 6 additions & 6 deletions myskoda/models/charging.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from enum import StrEnum

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin

from .common import ActiveState, EnabledState

Expand All @@ -20,7 +20,7 @@ class ChargingErrorType(StrEnum):


@dataclass
class ChargingError(DataClassJSONMixin):
class ChargingError(DataClassORJSONMixin):
type: ChargingErrorType
description: str

Expand Down Expand Up @@ -60,7 +60,7 @@ class PlugUnlockMode(StrEnum):


@dataclass
class Settings(DataClassJSONMixin):
class Settings(DataClassORJSONMixin):
available_charge_modes: list[ChargeMode] = field(
metadata=field_options(alias="availableChargeModes")
)
Expand All @@ -79,15 +79,15 @@ class Settings(DataClassJSONMixin):


@dataclass
class Battery(DataClassJSONMixin):
class Battery(DataClassORJSONMixin):
remaining_cruising_range_in_meters: int = field(
metadata=field_options(alias="remainingCruisingRangeInMeters")
)
state_of_charge_in_percent: int = field(metadata=field_options(alias="stateOfChargeInPercent"))


@dataclass
class ChargingStatus(DataClassJSONMixin):
class ChargingStatus(DataClassORJSONMixin):
battery: Battery
state: ChargingState
charging_rate_in_kilometers_per_hour: float = field(
Expand All @@ -103,7 +103,7 @@ class ChargingStatus(DataClassJSONMixin):


@dataclass
class Charging(DataClassJSONMixin):
class Charging(DataClassORJSONMixin):
"""Information related to charging an EV."""

errors: list[ChargingError]
Expand Down
6 changes: 3 additions & 3 deletions myskoda/models/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from enum import StrEnum

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin


class OnOffState(StrEnum):
Expand Down Expand Up @@ -51,13 +51,13 @@ class Side(StrEnum):


@dataclass
class Coordinates(DataClassJSONMixin):
class Coordinates(DataClassORJSONMixin):
latitude: float
longitude: float


@dataclass
class Address(DataClassJSONMixin):
class Address(DataClassORJSONMixin):
city: str
street: str
country_code: str = field(metadata=field_options(alias="countryCode"))
Expand Down
6 changes: 3 additions & 3 deletions myskoda/models/driving_range.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from enum import StrEnum

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin


class EngineType(StrEnum):
Expand All @@ -14,7 +14,7 @@ class EngineType(StrEnum):


@dataclass
class EngineRange(DataClassJSONMixin):
class EngineRange(DataClassORJSONMixin):
current_soc_in_percent: int = field(metadata=field_options(alias="currentSoCInPercent"))
engine_type: EngineType = field(metadata=field_options(alias="engineType"))
remaining_range_in_km: int = field(metadata=field_options(alias="remainingRangeInKm"))
Expand All @@ -24,7 +24,7 @@ class EngineRange(DataClassJSONMixin):


@dataclass
class DrivingRange(DataClassJSONMixin):
class DrivingRange(DataClassORJSONMixin):
car_captured_timestamp: datetime = field(metadata=field_options(alias="carCapturedTimestamp"))
car_type: EngineType = field(metadata=field_options(alias="carType"))
primary_engine_range: EngineRange = field(metadata=field_options(alias="primaryEngineRange"))
Expand Down
6 changes: 3 additions & 3 deletions myskoda/models/health.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from typing import Any

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin


class WarningLightCategory(StrEnum):
Expand All @@ -21,13 +21,13 @@ class WarningLightCategory(StrEnum):


@dataclass
class WarningLight(DataClassJSONMixin):
class WarningLight(DataClassORJSONMixin):
category: WarningLightCategory
defects: list[Any]


@dataclass
class Health(DataClassJSONMixin):
class Health(DataClassORJSONMixin):
"""Information about the car's health (currently only mileage)."""

captured_at: datetime = field(metadata=field_options(alias="capturedAt"))
Expand Down
20 changes: 10 additions & 10 deletions myskoda/models/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from enum import StrEnum

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -86,7 +86,7 @@ class CapabilityStatus(StrEnum):


@dataclass
class Capability(DataClassJSONMixin):
class Capability(DataClassORJSONMixin):
id: CapabilityId
statuses: list[CapabilityStatus]

Expand All @@ -107,14 +107,14 @@ def drop_unknown_capabilities(value: list[dict]) -> list[Capability]:


@dataclass
class Capabilities(DataClassJSONMixin):
class Capabilities(DataClassORJSONMixin):
capabilities: list[Capability] = field(
metadata=field_options(deserialize=drop_unknown_capabilities)
)


@dataclass
class Battery(DataClassJSONMixin):
class Battery(DataClassORJSONMixin):
capacity: int = field(metadata=field_options(alias="capacityInKWh"))


Expand All @@ -130,7 +130,7 @@ class VehicleState(StrEnum):


@dataclass
class Engine(DataClassJSONMixin):
class Engine(DataClassORJSONMixin):
type: str
power: int = field(metadata=field_options(alias="powerInKW"))
capacity_in_liters: float | None = field(
Expand All @@ -139,12 +139,12 @@ class Engine(DataClassJSONMixin):


@dataclass
class Gearbox(DataClassJSONMixin):
class Gearbox(DataClassORJSONMixin):
type: str


@dataclass
class Specification(DataClassJSONMixin):
class Specification(DataClassORJSONMixin):
body: BodyType
engine: Engine
model: str
Expand All @@ -161,7 +161,7 @@ class Specification(DataClassJSONMixin):


@dataclass
class ServicePartner(DataClassJSONMixin):
class ServicePartner(DataClassORJSONMixin):
id: str = field(metadata=field_options(alias="servicePartnerId"))


Expand All @@ -170,13 +170,13 @@ class ErrorType(StrEnum):


@dataclass
class Error(DataClassJSONMixin):
class Error(DataClassORJSONMixin):
description: str
type: ErrorType


@dataclass
class Info(DataClassJSONMixin):
class Info(DataClassORJSONMixin):
"""Basic vehicle information."""

state: VehicleState
Expand Down
18 changes: 9 additions & 9 deletions myskoda/models/maintenance.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
from enum import StrEnum

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin

from .common import Address, Coordinates, Weekday


@dataclass
class MaintenanceReport(DataClassJSONMixin):
class MaintenanceReport(DataClassORJSONMixin):
captured_at: datetime = field(metadata=field_options(alias="capturedAt"))
inspection_due_in_days: int = field(metadata=field_options(alias="inspectionDueInDays"))
mileage_in_km: int = field(metadata=field_options(alias="mileageInKm"))
Expand All @@ -27,20 +27,20 @@ class MaintenanceReport(DataClassJSONMixin):


@dataclass
class Contact(DataClassJSONMixin):
class Contact(DataClassORJSONMixin):
email: str | None = field(default=None)
phone: str | None = field(default=None)
url: str | None = field(default=None)


@dataclass
class TimeRange(DataClassJSONMixin):
class TimeRange(DataClassORJSONMixin):
start: time = field(metadata=field_options(alias="from"))
end: time = field(metadata=field_options(alias="to"))


@dataclass
class OpeningHoursPeriod(DataClassJSONMixin):
class OpeningHoursPeriod(DataClassORJSONMixin):
opening_times: list[TimeRange] = field(metadata=field_options(alias="openingTimes"))
period_end: Weekday = field(metadata=field_options(alias="periodEnd"))
period_start: Weekday = field(metadata=field_options(alias="periodStart"))
Expand All @@ -51,7 +51,7 @@ class CommunicationChannel(StrEnum):


@dataclass
class PredictiveMaintenanceSettings(DataClassJSONMixin):
class PredictiveMaintenanceSettings(DataClassORJSONMixin):
email: str
phone: str
preferred_channel: CommunicationChannel = field(
Expand All @@ -61,12 +61,12 @@ class PredictiveMaintenanceSettings(DataClassJSONMixin):


@dataclass
class PredictiveMaintenance(DataClassJSONMixin):
class PredictiveMaintenance(DataClassORJSONMixin):
setting: PredictiveMaintenanceSettings


@dataclass
class ServicePartner(DataClassJSONMixin):
class ServicePartner(DataClassORJSONMixin):
address: Address
brand: str
contact: Contact
Expand All @@ -78,7 +78,7 @@ class ServicePartner(DataClassJSONMixin):


@dataclass
class Maintenance(DataClassJSONMixin):
class Maintenance(DataClassORJSONMixin):
maintenance_report: MaintenanceReport = field(metadata=field_options(alias="maintenanceReport"))
predictive_maintenance: PredictiveMaintenance | None = field(
default=None, metadata=field_options(alias="predictiveMaintenance")
Expand Down
4 changes: 2 additions & 2 deletions myskoda/models/operation_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from enum import StrEnum

from mashumaro import field_options
from mashumaro.mixins.json import DataClassJSONMixin
from mashumaro.mixins.orjson import DataClassORJSONMixin


class OperationStatus(StrEnum):
Expand Down Expand Up @@ -52,7 +52,7 @@ class OperationName(StrEnum):


@dataclass
class OperationRequest(DataClassJSONMixin):
class OperationRequest(DataClassORJSONMixin):
version: int
trace_id: str = field(metadata=field_options(alias="traceId"))
request_id: str = field(metadata=field_options(alias="requestId"))
Expand Down
Loading

0 comments on commit f288bb8

Please sign in to comment.