diff --git a/yolink/device.py b/yolink/device.py index a2fbcda..b6e3cd6 100644 --- a/yolink/device.py +++ b/yolink/device.py @@ -4,7 +4,11 @@ from typing import Optional from tenacity import RetryError -from pydantic import BaseModel, Field, validator + +try: + from pydantic.v1 import BaseModel, Field, validator +except ImportError: + from pydantic import BaseModel, Field, validator from .client import YoLinkClient from .exception import YoLinkClientError diff --git a/yolink/model.py b/yolink/model.py index 8357d9f..e7af8f7 100644 --- a/yolink/model.py +++ b/yolink/model.py @@ -1,6 +1,10 @@ """YoLink Basic Model.""" from typing import Any, Dict, Optional -from pydantic import BaseModel + +try: + from pydantic.v1 import BaseModel +except ImportError: + from pydantic import BaseModel from .exception import ( YoLinkAuthFailError, @@ -12,11 +16,11 @@ class BRDP(BaseModel): """BRDP of YoLink API.""" - code: Optional[str] - desc: Optional[str] - method: Optional[str] - data: Dict[str, Any] - event: Optional[str] + code: Optional[str] = None + desc: Optional[str] = None + method: Optional[str] = None + data: Dict[str, Any] = None + event: Optional[str] = None def check_response(self): """Check API Response.""" diff --git a/yolink/mqtt_client.py b/yolink/mqtt_client.py index 2a34fb7..f31e43f 100644 --- a/yolink/mqtt_client.py +++ b/yolink/mqtt_client.py @@ -3,7 +3,12 @@ import logging from typing import Any import aiomqtt -from pydantic import ValidationError + +try: + from pydantic.v1 import ValidationError +except ImportError: + from pydantic import ValidationError + from .auth_mgr import YoLinkAuthMgr from .const import ( YOLINK_API_MQTT_BROKER, diff --git a/yolink/thermostat_request_builder.py b/yolink/thermostat_request_builder.py index e9769f2..aa2fa1e 100644 --- a/yolink/thermostat_request_builder.py +++ b/yolink/thermostat_request_builder.py @@ -2,7 +2,11 @@ from __future__ import annotations from typing import Optional -from pydantic import BaseModel + +try: + from pydantic.v1 import BaseModel +except ImportError: + from pydantic import BaseModel from .client_request import ClientRequest @@ -10,11 +14,11 @@ class ThermostatState(BaseModel): """Thermostat State.""" - lowTemp: Optional[float] - highTemp: Optional[float] - mode: Optional[str] - fan: Optional[str] - sche: Optional[str] + lowTemp: Optional[float] = None + highTemp: Optional[float] = None + mode: Optional[str] = None + fan: Optional[str] = None + sche: Optional[str] = None class ThermostatRequestBuilder: # pylint: disable=too-few-public-methods