Skip to content

feat: Change from_dict from staticmethod to classmethod BNCH-17564 #23

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
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
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import datetime
from typing import Any, Dict, List, Optional, Union, cast
from typing import Any, Dict, List, Optional, Type, TypeVar, Union, cast

import attr
from dateutil.parser import isoparse
Expand All @@ -8,6 +8,8 @@
from ..models.different_enum import DifferentEnum
from ..types import UNSET, Unset

T = TypeVar("T", bound="AModel")


@attr.s(auto_attribs=True)
class AModel:
Expand Down Expand Up @@ -75,8 +77,8 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "AModel":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
an_enum_value = AnEnum(d.pop("an_enum_value"))

Expand Down Expand Up @@ -124,7 +126,7 @@ def _parse_a_camel_date_time(data: Any) -> Union[datetime.datetime, datetime.dat

not_required_not_nullable = d.pop("not_required_not_nullable", UNSET)

a_model = AModel(
a_model = cls(
an_enum_value=an_enum_value,
a_camel_date_time=a_camel_date_time,
a_date=a_date,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from io import BytesIO
from typing import Any, Dict
from typing import Any, Dict, Type, TypeVar

import attr

from ..types import File

T = TypeVar("T", bound="BodyUploadFileTestsUploadPost")


@attr.s(auto_attribs=True)
class BodyUploadFileTestsUploadPost:
Expand All @@ -24,12 +26,12 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "BodyUploadFileTestsUploadPost":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
some_file = File(payload=BytesIO(d.pop("some_file")))

body_upload_file_tests_upload_post = BodyUploadFileTestsUploadPost(
body_upload_file_tests_upload_post = cls(
some_file=some_file,
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from typing import Any, Dict, List
from typing import Any, Dict, List, Type, TypeVar

import attr

T = TypeVar("T", bound="FreeFormModel")


@attr.s(auto_attribs=True)
class FreeFormModel:
Expand All @@ -17,10 +19,10 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "FreeFormModel":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
free_form_model = FreeFormModel()
free_form_model = cls()

free_form_model.additional_properties = d
return free_form_model
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from typing import Any, Dict, List, Union
from typing import Any, Dict, List, Type, TypeVar, Union

import attr

from ..models.validation_error import ValidationError
from ..types import UNSET, Unset

T = TypeVar("T", bound="HTTPValidationError")


@attr.s(auto_attribs=True)
class HTTPValidationError:
Expand All @@ -28,8 +30,8 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "HTTPValidationError":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
detail = []
_detail = d.pop("detail", UNSET)
Expand All @@ -38,7 +40,7 @@ def from_dict(src_dict: Dict[str, Any]) -> "HTTPValidationError":

detail.append(detail_item)

http_validation_error = HTTPValidationError(
http_validation_error = cls(
detail=detail,
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Any, Dict, List, Union
from typing import Any, Dict, List, Type, TypeVar, Union

import attr

Expand All @@ -7,6 +7,8 @@
)
from ..types import UNSET, Unset

T = TypeVar("T", bound="ModelWithAdditionalPropertiesInlined")


@attr.s(auto_attribs=True)
class ModelWithAdditionalPropertiesInlined:
Expand All @@ -30,12 +32,12 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithAdditionalPropertiesInlined":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
a_number = d.pop("a_number", UNSET)

model_with_additional_properties_inlined = ModelWithAdditionalPropertiesInlined(
model_with_additional_properties_inlined = cls(
a_number=a_number,
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from typing import Any, Dict, List, Union
from typing import Any, Dict, List, Type, TypeVar, Union

import attr

from ..types import UNSET, Unset

T = TypeVar("T", bound="ModelWithAdditionalPropertiesInlinedAdditionalProperty")


@attr.s(auto_attribs=True)
class ModelWithAdditionalPropertiesInlinedAdditionalProperty:
Expand All @@ -23,15 +25,13 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithAdditionalPropertiesInlinedAdditionalProperty":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
extra_props_prop = d.pop("extra_props_prop", UNSET)

model_with_additional_properties_inlined_additional_property = (
ModelWithAdditionalPropertiesInlinedAdditionalProperty(
extra_props_prop=extra_props_prop,
)
model_with_additional_properties_inlined_additional_property = cls(
extra_props_prop=extra_props_prop,
)

model_with_additional_properties_inlined_additional_property.additional_properties = d
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from typing import Any, Dict, List
from typing import Any, Dict, List, Type, TypeVar

import attr

from ..models.an_enum import AnEnum

T = TypeVar("T", bound="ModelWithAdditionalPropertiesRefed")


@attr.s(auto_attribs=True)
class ModelWithAdditionalPropertiesRefed:
Expand All @@ -21,10 +23,10 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithAdditionalPropertiesRefed":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
model_with_additional_properties_refed = ModelWithAdditionalPropertiesRefed()
model_with_additional_properties_refed = cls()

additional_properties = {}
for prop_name, prop_dict in d.items():
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from typing import Any, Dict, List, Union, cast
from typing import Any, Dict, List, Type, TypeVar, Union, cast

import attr

from ..models.model_with_any_json_properties_additional_property import ModelWithAnyJsonPropertiesAdditionalProperty
from ..types import Unset

T = TypeVar("T", bound="ModelWithAnyJsonProperties")


@attr.s(auto_attribs=True)
class ModelWithAnyJsonProperties:
Expand All @@ -31,10 +33,10 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithAnyJsonProperties":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
model_with_any_json_properties = ModelWithAnyJsonProperties()
model_with_any_json_properties = cls()

additional_properties = {}
for prop_name, prop_dict in d.items():
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from typing import Any, Dict, List
from typing import Any, Dict, List, Type, TypeVar

import attr

T = TypeVar("T", bound="ModelWithAnyJsonPropertiesAdditionalProperty")


@attr.s(auto_attribs=True)
class ModelWithAnyJsonPropertiesAdditionalProperty:
Expand All @@ -17,10 +19,10 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithAnyJsonPropertiesAdditionalProperty":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
model_with_any_json_properties_additional_property = ModelWithAnyJsonPropertiesAdditionalProperty()
model_with_any_json_properties_additional_property = cls()

model_with_any_json_properties_additional_property.additional_properties = d
return model_with_any_json_properties_additional_property
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Any, Dict, List, Union, cast
from typing import Any, Dict, List, Type, TypeVar, Union, cast

import attr

Expand All @@ -7,6 +7,8 @@
)
from ..types import UNSET, Unset

T = TypeVar("T", bound="ModelWithPrimitiveAdditionalProperties")


@attr.s(auto_attribs=True)
class ModelWithPrimitiveAdditionalProperties:
Expand All @@ -28,8 +30,8 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithPrimitiveAdditionalProperties":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
a_date_holder: Union[ModelWithPrimitiveAdditionalPropertiesADateHolder, Unset] = UNSET
_a_date_holder = d.pop("a_date_holder", UNSET)
Expand All @@ -38,7 +40,7 @@ def from_dict(src_dict: Dict[str, Any]) -> "ModelWithPrimitiveAdditionalProperti
cast(Dict[str, Any], _a_date_holder)
)

model_with_primitive_additional_properties = ModelWithPrimitiveAdditionalProperties(
model_with_primitive_additional_properties = cls(
a_date_holder=a_date_holder,
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import datetime
from typing import Any, Dict, List
from typing import Any, Dict, List, Type, TypeVar

import attr
from dateutil.parser import isoparse

T = TypeVar("T", bound="ModelWithPrimitiveAdditionalPropertiesADateHolder")


@attr.s(auto_attribs=True)
class ModelWithPrimitiveAdditionalPropertiesADateHolder:
Expand All @@ -21,10 +23,10 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithPrimitiveAdditionalPropertiesADateHolder":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
model_with_primitive_additional_properties_a_date_holder = ModelWithPrimitiveAdditionalPropertiesADateHolder()
model_with_primitive_additional_properties_a_date_holder = cls()

additional_properties = {}
for prop_name, prop_dict in d.items():
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
from typing import Any, Dict, Union
from typing import Any, Dict, Type, TypeVar, Union

import attr

from ..models.an_enum import AnEnum
from ..models.an_int_enum import AnIntEnum
from ..types import UNSET, Unset

T = TypeVar("T", bound="ModelWithUnionProperty")


@attr.s(auto_attribs=True)
class ModelWithUnionProperty:
Expand Down Expand Up @@ -34,8 +36,8 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "ModelWithUnionProperty":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()

def _parse_a_property(data: Any) -> Union[Unset, AnEnum, AnIntEnum]:
Expand All @@ -59,7 +61,7 @@ def _parse_a_property(data: Any) -> Union[Unset, AnEnum, AnIntEnum]:

a_property = _parse_a_property(d.pop("a_property", UNSET))

model_with_union_property = ModelWithUnionProperty(
model_with_union_property = cls(
a_property=a_property,
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from typing import Any, Dict, Union
from typing import Any, Dict, Type, TypeVar, Union

import attr

from ..types import UNSET, Unset

T = TypeVar("T", bound="TestInlineObjectsJsonBody")


@attr.s(auto_attribs=True)
class TestInlineObjectsJsonBody:
Expand All @@ -21,12 +23,12 @@ def to_dict(self) -> Dict[str, Any]:

return field_dict

@staticmethod
def from_dict(src_dict: Dict[str, Any]) -> "TestInlineObjectsJsonBody":
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
d = src_dict.copy()
a_property = d.pop("a_property", UNSET)

test_inline_objects_json_body = TestInlineObjectsJsonBody(
test_inline_objects_json_body = cls(
a_property=a_property,
)

Expand Down
Loading