Skip to content

Commit 0867303

Browse files
Merge pull request #63 from devopsarr/feature/code-generation
fix: map Field to ContractField to avoid pydantic issue
2 parents ad221cc + 73829ad commit 0867303

19 files changed

+80
-35
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ Class | Method | HTTP request | Description
343343
- [CommandResult](docs/CommandResult.md)
344344
- [CommandStatus](docs/CommandStatus.md)
345345
- [CommandTrigger](docs/CommandTrigger.md)
346+
- [ContractField](docs/ContractField.md)
346347
- [CustomFilterResource](docs/CustomFilterResource.md)
347348
- [CustomFormatResource](docs/CustomFormatResource.md)
348349
- [CustomFormatSpecificationSchema](docs/CustomFormatSpecificationSchema.md)
@@ -360,7 +361,6 @@ Class | Method | HTTP request | Description
360361
- [EpisodeResourcePagingResource](docs/EpisodeResourcePagingResource.md)
361362
- [EpisodeTitleRequiredType](docs/EpisodeTitleRequiredType.md)
362363
- [EpisodesMonitoredResource](docs/EpisodesMonitoredResource.md)
363-
- [Field](docs/Field.md)
364364
- [FileDateType](docs/FileDateType.md)
365365
- [HealthCheckResult](docs/HealthCheckResult.md)
366366
- [HealthResource](docs/HealthResource.md)

docs/AutoTaggingSpecificationSchema.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Name | Type | Description | Notes
1111
**implementation_name** | **str** | | [optional]
1212
**negate** | **bool** | | [optional]
1313
**required** | **bool** | | [optional]
14-
**fields** | [**List[Field]**](Field.md) | | [optional]
14+
**fields** | [**List[ContractField]**](ContractField.md) | | [optional]
1515

1616
## Example
1717

docs/ContractField.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# ContractField
2+
3+
4+
## Properties
5+
6+
Name | Type | Description | Notes
7+
------------ | ------------- | ------------- | -------------
8+
**order** | **int** | | [optional]
9+
**name** | **str** | | [optional]
10+
**label** | **str** | | [optional]
11+
**unit** | **str** | | [optional]
12+
**help_text** | **str** | | [optional]
13+
**help_text_warning** | **str** | | [optional]
14+
**help_link** | **str** | | [optional]
15+
**value** | **object** | | [optional]
16+
**type** | **str** | | [optional]
17+
**advanced** | **bool** | | [optional]
18+
**select_options** | [**List[SelectOption]**](SelectOption.md) | | [optional]
19+
**select_options_provider_action** | **str** | | [optional]
20+
**section** | **str** | | [optional]
21+
**hidden** | **str** | | [optional]
22+
**privacy** | [**PrivacyLevel**](PrivacyLevel.md) | | [optional]
23+
**placeholder** | **str** | | [optional]
24+
**is_float** | **bool** | | [optional]
25+
26+
## Example
27+
28+
```python
29+
from sonarr.models.contract_field import ContractField
30+
31+
# TODO update the JSON string below
32+
json = "{}"
33+
# create an instance of ContractField from a JSON string
34+
contract_field_instance = ContractField.from_json(json)
35+
# print the JSON string representation of the object
36+
print ContractField.to_json()
37+
38+
# convert the object into a dict
39+
contract_field_dict = contract_field_instance.to_dict()
40+
# create an instance of ContractField from a dict
41+
contract_field_form_dict = contract_field.from_dict(contract_field_dict)
42+
```
43+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
44+
45+

docs/CustomFormatSpecificationSchema.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Name | Type | Description | Notes
1212
**info_link** | **str** | | [optional]
1313
**negate** | **bool** | | [optional]
1414
**required** | **bool** | | [optional]
15-
**fields** | [**List[Field]**](Field.md) | | [optional]
15+
**fields** | [**List[ContractField]**](ContractField.md) | | [optional]
1616
**presets** | [**List[CustomFormatSpecificationSchema]**](CustomFormatSpecificationSchema.md) | | [optional]
1717

1818
## Example

docs/DownloadClientResource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
77
------------ | ------------- | ------------- | -------------
88
**id** | **int** | | [optional]
99
**name** | **str** | | [optional]
10-
**fields** | [**List[Field]**](Field.md) | | [optional]
10+
**fields** | [**List[ContractField]**](ContractField.md) | | [optional]
1111
**implementation_name** | **str** | | [optional]
1212
**implementation** | **str** | | [optional]
1313
**config_contract** | **str** | | [optional]

docs/ImportListResource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
77
------------ | ------------- | ------------- | -------------
88
**id** | **int** | | [optional]
99
**name** | **str** | | [optional]
10-
**fields** | [**List[Field]**](Field.md) | | [optional]
10+
**fields** | [**List[ContractField]**](ContractField.md) | | [optional]
1111
**implementation_name** | **str** | | [optional]
1212
**implementation** | **str** | | [optional]
1313
**config_contract** | **str** | | [optional]

docs/IndexerResource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
77
------------ | ------------- | ------------- | -------------
88
**id** | **int** | | [optional]
99
**name** | **str** | | [optional]
10-
**fields** | [**List[Field]**](Field.md) | | [optional]
10+
**fields** | [**List[ContractField]**](ContractField.md) | | [optional]
1111
**implementation_name** | **str** | | [optional]
1212
**implementation** | **str** | | [optional]
1313
**config_contract** | **str** | | [optional]

docs/MetadataResource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
77
------------ | ------------- | ------------- | -------------
88
**id** | **int** | | [optional]
99
**name** | **str** | | [optional]
10-
**fields** | [**List[Field]**](Field.md) | | [optional]
10+
**fields** | [**List[ContractField]**](ContractField.md) | | [optional]
1111
**implementation_name** | **str** | | [optional]
1212
**implementation** | **str** | | [optional]
1313
**config_contract** | **str** | | [optional]

docs/NotificationResource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
77
------------ | ------------- | ------------- | -------------
88
**id** | **int** | | [optional]
99
**name** | **str** | | [optional]
10-
**fields** | [**List[Field]**](Field.md) | | [optional]
10+
**fields** | [**List[ContractField]**](ContractField.md) | | [optional]
1111
**implementation_name** | **str** | | [optional]
1212
**implementation** | **str** | | [optional]
1313
**config_contract** | **str** | | [optional]

sonarr/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
from sonarr.models.command_result import CommandResult
116116
from sonarr.models.command_status import CommandStatus
117117
from sonarr.models.command_trigger import CommandTrigger
118+
from sonarr.models.contract_field import ContractField
118119
from sonarr.models.custom_filter_resource import CustomFilterResource
119120
from sonarr.models.custom_format_resource import CustomFormatResource
120121
from sonarr.models.custom_format_specification_schema import CustomFormatSpecificationSchema
@@ -132,7 +133,6 @@
132133
from sonarr.models.episode_resource_paging_resource import EpisodeResourcePagingResource
133134
from sonarr.models.episode_title_required_type import EpisodeTitleRequiredType
134135
from sonarr.models.episodes_monitored_resource import EpisodesMonitoredResource
135-
from sonarr.models.field import Field
136136
from sonarr.models.file_date_type import FileDateType
137137
from sonarr.models.health_check_result import HealthCheckResult
138138
from sonarr.models.health_resource import HealthResource

sonarr/models/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
from sonarr.models.command_result import CommandResult
3434
from sonarr.models.command_status import CommandStatus
3535
from sonarr.models.command_trigger import CommandTrigger
36+
from sonarr.models.contract_field import ContractField
3637
from sonarr.models.custom_filter_resource import CustomFilterResource
3738
from sonarr.models.custom_format_resource import CustomFormatResource
3839
from sonarr.models.custom_format_specification_schema import CustomFormatSpecificationSchema
@@ -50,7 +51,6 @@
5051
from sonarr.models.episode_resource_paging_resource import EpisodeResourcePagingResource
5152
from sonarr.models.episode_title_required_type import EpisodeTitleRequiredType
5253
from sonarr.models.episodes_monitored_resource import EpisodesMonitoredResource
53-
from sonarr.models.field import Field
5454
from sonarr.models.file_date_type import FileDateType
5555
from sonarr.models.health_check_result import HealthCheckResult
5656
from sonarr.models.health_resource import HealthResource

sonarr/models/auto_tagging_specification_schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr
2121
from typing import Any, ClassVar, Dict, List, Optional
22-
from sonarr.models.field import Field
22+
from sonarr.models.contract_field import ContractField
2323
from typing import Optional, Set
2424
from typing_extensions import Self
2525

@@ -33,7 +33,7 @@ class AutoTaggingSpecificationSchema(BaseModel):
3333
implementation_name: Optional[StrictStr] = Field(default=None, alias="implementationName")
3434
negate: Optional[StrictBool] = None
3535
required: Optional[StrictBool] = None
36-
fields: Optional[List[Field]] = None
36+
fields: Optional[List[ContractField]] = None
3737
__properties: ClassVar[List[str]] = ["id", "name", "implementation", "implementationName", "negate", "required", "fields"]
3838

3939
model_config = {
@@ -120,7 +120,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
120120
"implementationName": obj.get("implementationName"),
121121
"negate": obj.get("negate"),
122122
"required": obj.get("required"),
123-
"fields": [Field.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None
123+
"fields": [ContractField.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None
124124
})
125125
return _obj
126126

sonarr/models/field.py renamed to sonarr/models/contract_field.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
from typing import Optional, Set
2525
from typing_extensions import Self
2626

27-
class Field(BaseModel):
27+
class ContractField(BaseModel):
2828
"""
29-
Field
29+
ContractField
3030
""" # noqa: E501
3131
order: Optional[StrictInt] = None
3232
name: Optional[StrictStr] = None
@@ -65,7 +65,7 @@ def to_json(self) -> str:
6565

6666
@classmethod
6767
def from_json(cls, json_str: str) -> Optional[Self]:
68-
"""Create an instance of Field from a JSON string"""
68+
"""Create an instance of ContractField from a JSON string"""
6969
return cls.from_dict(json.loads(json_str))
7070

7171
def to_dict(self) -> Dict[str, Any]:
@@ -162,7 +162,7 @@ def to_dict(self) -> Dict[str, Any]:
162162

163163
@classmethod
164164
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
165-
"""Create an instance of Field from a dict"""
165+
"""Create an instance of ContractField from a dict"""
166166
if obj is None:
167167
return None
168168

sonarr/models/custom_format_specification_schema.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr
2121
from typing import Any, ClassVar, Dict, List, Optional
22-
from sonarr.models.field import Field
22+
from sonarr.models.contract_field import ContractField
2323
from typing import Optional, Set
2424
from typing_extensions import Self
2525

@@ -34,7 +34,7 @@ class CustomFormatSpecificationSchema(BaseModel):
3434
info_link: Optional[StrictStr] = Field(default=None, alias="infoLink")
3535
negate: Optional[StrictBool] = None
3636
required: Optional[StrictBool] = None
37-
fields: Optional[List[Field]] = None
37+
fields: Optional[List[ContractField]] = None
3838
presets: Optional[List[CustomFormatSpecificationSchema]] = None
3939
__properties: ClassVar[List[str]] = ["id", "name", "implementation", "implementationName", "infoLink", "negate", "required", "fields", "presets"]
4040

@@ -140,7 +140,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
140140
"infoLink": obj.get("infoLink"),
141141
"negate": obj.get("negate"),
142142
"required": obj.get("required"),
143-
"fields": [Field.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
143+
"fields": [ContractField.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
144144
"presets": [CustomFormatSpecificationSchema.from_dict(_item) for _item in obj["presets"]] if obj.get("presets") is not None else None
145145
})
146146
return _obj

sonarr/models/download_client_resource.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr
2121
from typing import Any, ClassVar, Dict, List, Optional
22+
from sonarr.models.contract_field import ContractField
2223
from sonarr.models.download_protocol import DownloadProtocol
23-
from sonarr.models.field import Field
2424
from sonarr.models.provider_message import ProviderMessage
2525
from typing import Optional, Set
2626
from typing_extensions import Self
@@ -31,7 +31,7 @@ class DownloadClientResource(BaseModel):
3131
""" # noqa: E501
3232
id: Optional[StrictInt] = None
3333
name: Optional[StrictStr] = None
34-
fields: Optional[List[Field]] = None
34+
fields: Optional[List[ContractField]] = None
3535
implementation_name: Optional[StrictStr] = Field(default=None, alias="implementationName")
3636
implementation: Optional[StrictStr] = None
3737
config_contract: Optional[StrictStr] = Field(default=None, alias="configContract")
@@ -156,7 +156,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
156156
_obj = cls.model_validate({
157157
"id": obj.get("id"),
158158
"name": obj.get("name"),
159-
"fields": [Field.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
159+
"fields": [ContractField.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
160160
"implementationName": obj.get("implementationName"),
161161
"implementation": obj.get("implementation"),
162162
"configContract": obj.get("configContract"),

sonarr/models/import_list_resource.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr
2121
from typing import Any, ClassVar, Dict, List, Optional
22-
from sonarr.models.field import Field
22+
from sonarr.models.contract_field import ContractField
2323
from sonarr.models.import_list_type import ImportListType
2424
from sonarr.models.monitor_types import MonitorTypes
2525
from sonarr.models.new_item_monitor_types import NewItemMonitorTypes
@@ -34,7 +34,7 @@ class ImportListResource(BaseModel):
3434
""" # noqa: E501
3535
id: Optional[StrictInt] = None
3636
name: Optional[StrictStr] = None
37-
fields: Optional[List[Field]] = None
37+
fields: Optional[List[ContractField]] = None
3838
implementation_name: Optional[StrictStr] = Field(default=None, alias="implementationName")
3939
implementation: Optional[StrictStr] = None
4040
config_contract: Optional[StrictStr] = Field(default=None, alias="configContract")
@@ -170,7 +170,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
170170
_obj = cls.model_validate({
171171
"id": obj.get("id"),
172172
"name": obj.get("name"),
173-
"fields": [Field.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
173+
"fields": [ContractField.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
174174
"implementationName": obj.get("implementationName"),
175175
"implementation": obj.get("implementation"),
176176
"configContract": obj.get("configContract"),

sonarr/models/indexer_resource.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr
2121
from typing import Any, ClassVar, Dict, List, Optional
22+
from sonarr.models.contract_field import ContractField
2223
from sonarr.models.download_protocol import DownloadProtocol
23-
from sonarr.models.field import Field
2424
from sonarr.models.provider_message import ProviderMessage
2525
from typing import Optional, Set
2626
from typing_extensions import Self
@@ -31,7 +31,7 @@ class IndexerResource(BaseModel):
3131
""" # noqa: E501
3232
id: Optional[StrictInt] = None
3333
name: Optional[StrictStr] = None
34-
fields: Optional[List[Field]] = None
34+
fields: Optional[List[ContractField]] = None
3535
implementation_name: Optional[StrictStr] = Field(default=None, alias="implementationName")
3636
implementation: Optional[StrictStr] = None
3737
config_contract: Optional[StrictStr] = Field(default=None, alias="configContract")
@@ -160,7 +160,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
160160
_obj = cls.model_validate({
161161
"id": obj.get("id"),
162162
"name": obj.get("name"),
163-
"fields": [Field.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
163+
"fields": [ContractField.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
164164
"implementationName": obj.get("implementationName"),
165165
"implementation": obj.get("implementation"),
166166
"configContract": obj.get("configContract"),

sonarr/models/metadata_resource.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr
2121
from typing import Any, ClassVar, Dict, List, Optional
22-
from sonarr.models.field import Field
22+
from sonarr.models.contract_field import ContractField
2323
from sonarr.models.provider_message import ProviderMessage
2424
from typing import Optional, Set
2525
from typing_extensions import Self
@@ -30,7 +30,7 @@ class MetadataResource(BaseModel):
3030
""" # noqa: E501
3131
id: Optional[StrictInt] = None
3232
name: Optional[StrictStr] = None
33-
fields: Optional[List[Field]] = None
33+
fields: Optional[List[ContractField]] = None
3434
implementation_name: Optional[StrictStr] = Field(default=None, alias="implementationName")
3535
implementation: Optional[StrictStr] = None
3636
config_contract: Optional[StrictStr] = Field(default=None, alias="configContract")
@@ -151,7 +151,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
151151
_obj = cls.model_validate({
152152
"id": obj.get("id"),
153153
"name": obj.get("name"),
154-
"fields": [Field.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
154+
"fields": [ContractField.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
155155
"implementationName": obj.get("implementationName"),
156156
"implementation": obj.get("implementation"),
157157
"configContract": obj.get("configContract"),

sonarr/models/notification_resource.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from pydantic import BaseModel, Field, StrictBool, StrictInt, StrictStr
2121
from typing import Any, ClassVar, Dict, List, Optional
22-
from sonarr.models.field import Field
22+
from sonarr.models.contract_field import ContractField
2323
from sonarr.models.provider_message import ProviderMessage
2424
from typing import Optional, Set
2525
from typing_extensions import Self
@@ -30,7 +30,7 @@ class NotificationResource(BaseModel):
3030
""" # noqa: E501
3131
id: Optional[StrictInt] = None
3232
name: Optional[StrictStr] = None
33-
fields: Optional[List[Field]] = None
33+
fields: Optional[List[ContractField]] = None
3434
implementation_name: Optional[StrictStr] = Field(default=None, alias="implementationName")
3535
implementation: Optional[StrictStr] = None
3636
config_contract: Optional[StrictStr] = Field(default=None, alias="configContract")
@@ -187,7 +187,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
187187
_obj = cls.model_validate({
188188
"id": obj.get("id"),
189189
"name": obj.get("name"),
190-
"fields": [Field.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
190+
"fields": [ContractField.from_dict(_item) for _item in obj["fields"]] if obj.get("fields") is not None else None,
191191
"implementationName": obj.get("implementationName"),
192192
"implementation": obj.get("implementation"),
193193
"configContract": obj.get("configContract"),

0 commit comments

Comments
 (0)