Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ name = "pypi"

[packages]
requests = ">=2.27.0,<2.33.0"
pydantic = ">=1.9.0,<2.0"
pydantic = ">=1.9.0,<3.0"
urllib3 = ">=1.26.0,<1.27"

[dev-packages]
Expand Down
1,001 changes: 511 additions & 490 deletions emnify/modules/api/models.py

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions emnify/modules/device/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def send_sms(
return device_call_managers.SendSmsToDevice().call_api(
client=self.client,
path_params={"endpoint_id": device_id},
data=sms.dict(exclude_none=True),
data=sms.model_dump(exclude_none=True),
)

def update_device(
Expand All @@ -118,7 +118,7 @@ def update_device(
"""
return device_call_managers.UpdateDevice().call_api(
client=self.client,
data=device.dict(exclude_none=True),
data=device.model_dump(exclude_none=True),
path_params={"endpoint_id": device_id},
)

Expand Down Expand Up @@ -355,7 +355,7 @@ def create_device(self, device: device_models.Device) -> bool:
"Argument must contain filled Device model"
)
return device_call_managers.CreateDevice().call_api(
client=self.client, data=device.dict(exclude_none=True)
client=self.client, data=device.model_dump(exclude_none=True)
)

def retrieve_device(self, device_id: int) -> device_models.RetrieveDevice:
Expand Down Expand Up @@ -426,7 +426,7 @@ def __transform_all_devices_filter_params(
) -> dict:
query_filter = {}
if filter_model:
filter_dict = filter_model.dict(exclude_none=True)
filter_dict = filter_model.model_dump(exclude_none=True)
query_filter["q"] = ",".join(
[f"{key}:{filter_dict[key]}" for key in filter_dict]
)
Expand Down
23 changes: 12 additions & 11 deletions emnify/modules/device/models.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import datetime
from pydantic import BaseModel, validator
from pydantic import ConfigDict, RootModel, BaseModel, field_validator, ValidationInfo
from typing import Optional, List, Dict, Any
from emnify.modules.sim.models import SimList
from emnify.modules.api import models as generated_models
Expand All @@ -26,13 +26,13 @@ class CreateDevice(Device):
Custom class for validation of Device on creation
"""

@validator("status")
@field_validator("status")
@classmethod
def validate_status(cls, field_value, values, field, config):
def validate_status(cls, field_value, info: ValidationInfo):
if (
values.get("sim")
and getattr(values["sim"], "status")
and values["sim"].status.id == 1
info.data.get("sim")
and getattr(info.data["sim"], "status", None)
and info.data["sim"].status.id == 1
):
return field_value
if field_value.id == 0:
Expand Down Expand Up @@ -101,8 +101,11 @@ class FilterDeviceModel(BaseModel):
sim_status: Optional[int] = None


class ListQFilterDeviceListModel(BaseModel):
__root__: List[FilterDeviceModel]
class ListQFilterDeviceListModel(RootModel[List[FilterDeviceModel]]):
"""
Root model for list of FilterDeviceModel
"""
pass


class GetDeviceFilterSet(BaseModel):
Expand All @@ -112,9 +115,7 @@ class GetDeviceFilterSet(BaseModel):

sort: Optional[DeviceSortModel] = None
q: Optional[ListQFilterDeviceListModel] = None

class Config:
use_enum_values = True
model_config = ConfigDict(use_enum_values=True)


class DeviceEvent(generated_models.Event):
Expand Down
4 changes: 2 additions & 2 deletions emnify/modules/sim/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def update_sim(self, sim_id: int, sim: sim_models.SimUpdate) -> bool:
"""
return SimUpdateApi().call_api(
client=self.client,
data=sim.dict(exclude_none=True),
data=sim.model_dump(exclude_none=True),
path_params={"sim": sim_id},
)

Expand Down Expand Up @@ -139,7 +139,7 @@ def __transform_sim_filter_params(
) -> dict:
query_filter = {}
if filter_model:
filter_dict = filter_model.dict(exclude_none=True)
filter_dict = filter_model.model_dump(exclude_none=True)
query_filter["q"] = ",".join(
[f"{key}:{filter_dict[key]}" for key in filter_dict]
)
Expand Down
2 changes: 1 addition & 1 deletion emnify/modules/sim/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class SimList(RetrieveSIMlistresponse):
"""

status: SimStatus = None
device: typing.Optional[SimDevice] = Field(alias="endpoint")
device: typing.Optional[SimDevice] = Field(None, alias="endpoint")


class SimUpdate(BaseModel):
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
REQUIRES = [
"requests>=2.27.0,<2.33.0",
"urllib3>=1.21.1,<1.27",
"pydantic>=1.9.0,<2.0.0",
"pydantic>=1.9.0,<3.0.0",
]
if __name__ == "__main__":
with open("README.md", "r", encoding="utf-8") as fh:
Expand Down