twitter-openapi-python-generated 0.0.35__py3-none-any.whl → 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. twitter_openapi_python_generated/__init__.py +135 -9
  2. twitter_openapi_python_generated/api_client.py +1 -1
  3. twitter_openapi_python_generated/configuration.py +1 -1
  4. twitter_openapi_python_generated/models/__init__.py +67 -4
  5. twitter_openapi_python_generated/models/ad_metadata_container.py +104 -0
  6. twitter_openapi_python_generated/models/affiliates_highlighted_label.py +93 -0
  7. twitter_openapi_python_generated/models/api_image.py +108 -0
  8. twitter_openapi_python_generated/models/api_media.py +110 -0
  9. twitter_openapi_python_generated/models/article_cover_media_info.py +3 -3
  10. twitter_openapi_python_generated/models/birdwatch_pivot.py +2 -2
  11. twitter_openapi_python_generated/models/cashtag_info.py +93 -0
  12. twitter_openapi_python_generated/models/click_tracking_info.py +96 -0
  13. twitter_openapi_python_generated/models/client_event_info.py +6 -2
  14. twitter_openapi_python_generated/models/client_event_info_details.py +99 -0
  15. twitter_openapi_python_generated/models/community.py +20 -7
  16. twitter_openapi_python_generated/models/community_banner_media.py +95 -0
  17. twitter_openapi_python_generated/models/community_banner_media_info.py +108 -0
  18. twitter_openapi_python_generated/models/community_moderation_state.py +90 -0
  19. twitter_openapi_python_generated/models/community_relationship.py +6 -2
  20. twitter_openapi_python_generated/models/community_viewer_relationship.py +95 -0
  21. twitter_openapi_python_generated/models/conversation_control.py +10 -11
  22. twitter_openapi_python_generated/models/conversation_details.py +96 -0
  23. twitter_openapi_python_generated/models/conversation_metadata.py +92 -0
  24. twitter_openapi_python_generated/models/conversation_owner.py +96 -0
  25. twitter_openapi_python_generated/models/conversation_owner_core.py +89 -0
  26. twitter_openapi_python_generated/models/conversation_owner_results.py +93 -0
  27. twitter_openapi_python_generated/models/cta_limited_action_prompt.py +110 -0
  28. twitter_openapi_python_generated/models/cta_limited_action_prompt_text.py +91 -0
  29. twitter_openapi_python_generated/models/deepsearch_header.py +96 -0
  30. twitter_openapi_python_generated/models/deepsearch_step.py +99 -0
  31. twitter_openapi_python_generated/models/deepsearch_web_result.py +89 -0
  32. twitter_openapi_python_generated/models/entities.py +27 -6
  33. twitter_openapi_python_generated/models/error_extensions.py +1 -1
  34. twitter_openapi_python_generated/models/error_response.py +1 -1
  35. twitter_openapi_python_generated/models/feedback_action.py +136 -0
  36. twitter_openapi_python_generated/models/feedback_action_entry.py +95 -0
  37. twitter_openapi_python_generated/models/feedback_client_event_info.py +93 -0
  38. twitter_openapi_python_generated/models/feedback_info.py +8 -6
  39. twitter_openapi_python_generated/models/grok_share_attachment_item.py +9 -2
  40. twitter_openapi_python_generated/models/grouped_trend.py +95 -0
  41. twitter_openapi_python_generated/models/hashtag.py +91 -0
  42. twitter_openapi_python_generated/models/jetfuel_attachment.py +91 -0
  43. twitter_openapi_python_generated/models/key_value.py +91 -0
  44. twitter_openapi_python_generated/models/landing_url.py +98 -0
  45. twitter_openapi_python_generated/models/limited_action.py +95 -0
  46. twitter_openapi_python_generated/models/limited_action_results.py +96 -0
  47. twitter_openapi_python_generated/models/limited_action_results_data.py +1 -8
  48. twitter_openapi_python_generated/models/list_banner_media_info.py +3 -3
  49. twitter_openapi_python_generated/models/list_banner_media_results.py +93 -0
  50. twitter_openapi_python_generated/models/{article_cover_media_color_info.py → media_color_info.py} +7 -7
  51. twitter_openapi_python_generated/models/{article_cover_media_color_info_palette.py → media_color_info_palette.py} +7 -7
  52. twitter_openapi_python_generated/models/{article_cover_media_color_info_palette_rgb.py → media_color_info_palette_rgb.py} +4 -4
  53. twitter_openapi_python_generated/models/{list_banner_media_salient_rect.py → media_salient_rect.py} +4 -4
  54. twitter_openapi_python_generated/models/module_footer.py +104 -0
  55. twitter_openapi_python_generated/models/module_header.py +100 -0
  56. twitter_openapi_python_generated/models/module_metadata.py +93 -0
  57. twitter_openapi_python_generated/models/promoted_metadata.py +109 -0
  58. twitter_openapi_python_generated/models/reader_mode_config.py +89 -0
  59. twitter_openapi_python_generated/models/scribe_config.py +89 -0
  60. twitter_openapi_python_generated/models/search_timeline.py +2 -2
  61. twitter_openapi_python_generated/models/smarttag_tag.py +6 -2
  62. twitter_openapi_python_generated/models/smarttag_tag_info.py +93 -0
  63. twitter_openapi_python_generated/models/symbol.py +97 -0
  64. twitter_openapi_python_generated/models/timeline.py +12 -4
  65. twitter_openapi_python_generated/models/timeline_community.py +13 -17
  66. twitter_openapi_python_generated/models/timeline_message_prompt.py +13 -17
  67. twitter_openapi_python_generated/models/timeline_message_prompt_button.py +95 -0
  68. twitter_openapi_python_generated/models/timeline_message_prompt_button_action.py +91 -0
  69. twitter_openapi_python_generated/models/timeline_message_prompt_content.py +112 -0
  70. twitter_openapi_python_generated/models/timeline_message_prompt_rich_text.py +98 -0
  71. twitter_openapi_python_generated/models/timeline_message_prompt_rich_text_entity.py +97 -0
  72. twitter_openapi_python_generated/models/timeline_message_prompt_rich_text_entity_ref.py +107 -0
  73. twitter_openapi_python_generated/models/timeline_metadata.py +99 -0
  74. twitter_openapi_python_generated/models/timeline_prompt.py +19 -17
  75. twitter_openapi_python_generated/models/timeline_prompt_callback.py +89 -0
  76. twitter_openapi_python_generated/models/timeline_prompt_content.py +124 -0
  77. twitter_openapi_python_generated/models/timeline_response_objects.py +96 -0
  78. twitter_openapi_python_generated/models/timeline_show_alert.py +18 -21
  79. twitter_openapi_python_generated/models/timeline_show_alert_color_config.py +93 -0
  80. twitter_openapi_python_generated/models/timeline_show_alert_icon_display_info.py +91 -0
  81. twitter_openapi_python_generated/models/timeline_show_alert_rich_text.py +3 -3
  82. twitter_openapi_python_generated/models/timeline_timeline_item.py +6 -2
  83. twitter_openapi_python_generated/models/timeline_timeline_module.py +18 -6
  84. twitter_openapi_python_generated/models/timeline_trend.py +10 -1
  85. twitter_openapi_python_generated/models/timeline_tweet.py +6 -2
  86. twitter_openapi_python_generated/models/timelines_details.py +93 -0
  87. twitter_openapi_python_generated/models/tweet.py +7 -1
  88. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value_data.py +6 -2
  89. twitter_openapi_python_generated/models/tweet_legacy.py +6 -2
  90. twitter_openapi_python_generated/models/tweet_with_visibility_results.py +6 -2
  91. twitter_openapi_python_generated/models/twitter_list.py +17 -3
  92. twitter_openapi_python_generated/models/type_name.py +3 -0
  93. twitter_openapi_python_generated/models/user.py +6 -2
  94. twitter_openapi_python_generated/models/user_label.py +128 -0
  95. twitter_openapi_python_generated/models/user_label_badge.py +89 -0
  96. twitter_openapi_python_generated/models/user_label_mention_results.py +93 -0
  97. twitter_openapi_python_generated/models/user_label_mention_user.py +106 -0
  98. twitter_openapi_python_generated/models/user_label_mention_user_core.py +89 -0
  99. twitter_openapi_python_generated/models/user_label_text.py +98 -0
  100. twitter_openapi_python_generated/models/user_label_text_entity.py +97 -0
  101. twitter_openapi_python_generated/models/user_label_text_entity_ref.py +104 -0
  102. twitter_openapi_python_generated/models/user_label_url.py +98 -0
  103. twitter_openapi_python_generated/models/user_legacy.py +6 -2
  104. twitter_openapi_python_generated/models/user_mention.py +115 -0
  105. twitter_openapi_python_generated/models/user_professional.py +7 -2
  106. {twitter_openapi_python_generated-0.0.35.dist-info → twitter_openapi_python_generated-0.1.1.dist-info}/METADATA +72 -9
  107. {twitter_openapi_python_generated-0.0.35.dist-info → twitter_openapi_python_generated-0.1.1.dist-info}/RECORD +111 -48
  108. {twitter_openapi_python_generated-0.0.35.dist-info → twitter_openapi_python_generated-0.1.1.dist-info}/WHEEL +0 -0
  109. {twitter_openapi_python_generated-0.0.35.dist-info → twitter_openapi_python_generated-0.1.1.dist-info}/licenses/LICENSE +0 -0
  110. {twitter_openapi_python_generated-0.0.35.dist-info → twitter_openapi_python_generated-0.1.1.dist-info}/licenses/LICENSE.AGPL +0 -0
  111. {twitter_openapi_python_generated-0.0.35.dist-info → twitter_openapi_python_generated-0.1.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,98 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Twitter OpenAPI
5
+
6
+ Twitter OpenAPI(Swagger) specification
7
+
8
+ The version of the OpenAPI document: 0.0.1
9
+ Contact: yuki@yuki0311.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from typing import Any, ClassVar, Dict, List
23
+ from twitter_openapi_python_generated.models.timeline_message_prompt_rich_text_entity import TimelineMessagePromptRichTextEntity
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+ from pydantic_core import to_jsonable_python
27
+
28
+ class TimelineMessagePromptRichText(BaseModel):
29
+ """
30
+ TimelineMessagePromptRichText
31
+ """ # noqa: E501
32
+ entities: List[TimelineMessagePromptRichTextEntity]
33
+ text: StrictStr
34
+ __properties: ClassVar[List[str]] = ["entities", "text"]
35
+
36
+ model_config = ConfigDict(
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
39
+ validate_assignment=True,
40
+ protected_namespaces=(),
41
+ )
42
+
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.model_dump(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ return json.dumps(to_jsonable_python(self.to_dict()))
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of TimelineMessagePromptRichText from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([
68
+ ])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ # override the default output from pydantic by calling `to_dict()` of each item in entities (list)
76
+ _items = []
77
+ if self.entities:
78
+ for _item_entities in self.entities:
79
+ _items.append(_item_entities.to_dict() if _item_entities is not None else None)
80
+ _dict['entities'] = _items
81
+ return _dict
82
+
83
+ @classmethod
84
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
85
+ """Create an instance of TimelineMessagePromptRichText from a dict"""
86
+ if obj is None:
87
+ return None
88
+
89
+ if not isinstance(obj, dict):
90
+ return cls.model_validate(obj)
91
+
92
+ _obj = cls.model_validate({
93
+ "entities": [TimelineMessagePromptRichTextEntity.from_dict(_item) for _item in obj["entities"]] if obj.get("entities") is not None else None,
94
+ "text": obj.get("text")
95
+ })
96
+ return _obj
97
+
98
+
@@ -0,0 +1,97 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Twitter OpenAPI
5
+
6
+ Twitter OpenAPI(Swagger) specification
7
+
8
+ The version of the OpenAPI document: 0.0.1
9
+ Contact: yuki@yuki0311.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt
22
+ from typing import Any, ClassVar, Dict, List
23
+ from twitter_openapi_python_generated.models.timeline_message_prompt_rich_text_entity_ref import TimelineMessagePromptRichTextEntityRef
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+ from pydantic_core import to_jsonable_python
27
+
28
+ class TimelineMessagePromptRichTextEntity(BaseModel):
29
+ """
30
+ TimelineMessagePromptRichTextEntity
31
+ """ # noqa: E501
32
+ from_index: StrictInt = Field(alias="fromIndex")
33
+ ref: TimelineMessagePromptRichTextEntityRef
34
+ to_index: StrictInt = Field(alias="toIndex")
35
+ __properties: ClassVar[List[str]] = ["fromIndex", "ref", "toIndex"]
36
+
37
+ model_config = ConfigDict(
38
+ validate_by_name=True,
39
+ validate_by_alias=True,
40
+ validate_assignment=True,
41
+ protected_namespaces=(),
42
+ )
43
+
44
+
45
+ def to_str(self) -> str:
46
+ """Returns the string representation of the model using alias"""
47
+ return pprint.pformat(self.model_dump(by_alias=True))
48
+
49
+ def to_json(self) -> str:
50
+ """Returns the JSON representation of the model using alias"""
51
+ return json.dumps(to_jsonable_python(self.to_dict()))
52
+
53
+ @classmethod
54
+ def from_json(cls, json_str: str) -> Optional[Self]:
55
+ """Create an instance of TimelineMessagePromptRichTextEntity from a JSON string"""
56
+ return cls.from_dict(json.loads(json_str))
57
+
58
+ def to_dict(self) -> Dict[str, Any]:
59
+ """Return the dictionary representation of the model using alias.
60
+
61
+ This has the following differences from calling pydantic's
62
+ `self.model_dump(by_alias=True)`:
63
+
64
+ * `None` is only added to the output dict for nullable fields that
65
+ were set at model initialization. Other fields with value `None`
66
+ are ignored.
67
+ """
68
+ excluded_fields: Set[str] = set([
69
+ ])
70
+
71
+ _dict = self.model_dump(
72
+ by_alias=True,
73
+ exclude=excluded_fields,
74
+ exclude_none=True,
75
+ )
76
+ # override the default output from pydantic by calling `to_dict()` of ref
77
+ if self.ref:
78
+ _dict['ref'] = self.ref.to_dict()
79
+ return _dict
80
+
81
+ @classmethod
82
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
83
+ """Create an instance of TimelineMessagePromptRichTextEntity from a dict"""
84
+ if obj is None:
85
+ return None
86
+
87
+ if not isinstance(obj, dict):
88
+ return cls.model_validate(obj)
89
+
90
+ _obj = cls.model_validate({
91
+ "fromIndex": obj.get("fromIndex"),
92
+ "ref": TimelineMessagePromptRichTextEntityRef.from_dict(obj["ref"]) if obj.get("ref") is not None else None,
93
+ "toIndex": obj.get("toIndex")
94
+ })
95
+ return _obj
96
+
97
+
@@ -0,0 +1,107 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Twitter OpenAPI
5
+
6
+ Twitter OpenAPI(Swagger) specification
7
+
8
+ The version of the OpenAPI document: 0.0.1
9
+ Contact: yuki@yuki0311.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from typing import Any, ClassVar, Dict, List
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
26
+
27
+ class TimelineMessagePromptRichTextEntityRef(BaseModel):
28
+ """
29
+ TimelineMessagePromptRichTextEntityRef
30
+ """ # noqa: E501
31
+ type: StrictStr
32
+ url: StrictStr
33
+ url_type: StrictStr = Field(alias="urlType")
34
+ __properties: ClassVar[List[str]] = ["type", "url", "urlType"]
35
+
36
+ @field_validator('type')
37
+ def type_validate_enum(cls, value):
38
+ """Validates the enum"""
39
+ if value not in set(['TimelineUrl']):
40
+ raise ValueError("must be one of enum values ('TimelineUrl')")
41
+ return value
42
+
43
+ @field_validator('url_type')
44
+ def url_type_validate_enum(cls, value):
45
+ """Validates the enum"""
46
+ if value not in set(['ExternalUrl']):
47
+ raise ValueError("must be one of enum values ('ExternalUrl')")
48
+ return value
49
+
50
+ model_config = ConfigDict(
51
+ validate_by_name=True,
52
+ validate_by_alias=True,
53
+ validate_assignment=True,
54
+ protected_namespaces=(),
55
+ )
56
+
57
+
58
+ def to_str(self) -> str:
59
+ """Returns the string representation of the model using alias"""
60
+ return pprint.pformat(self.model_dump(by_alias=True))
61
+
62
+ def to_json(self) -> str:
63
+ """Returns the JSON representation of the model using alias"""
64
+ return json.dumps(to_jsonable_python(self.to_dict()))
65
+
66
+ @classmethod
67
+ def from_json(cls, json_str: str) -> Optional[Self]:
68
+ """Create an instance of TimelineMessagePromptRichTextEntityRef from a JSON string"""
69
+ return cls.from_dict(json.loads(json_str))
70
+
71
+ def to_dict(self) -> Dict[str, Any]:
72
+ """Return the dictionary representation of the model using alias.
73
+
74
+ This has the following differences from calling pydantic's
75
+ `self.model_dump(by_alias=True)`:
76
+
77
+ * `None` is only added to the output dict for nullable fields that
78
+ were set at model initialization. Other fields with value `None`
79
+ are ignored.
80
+ """
81
+ excluded_fields: Set[str] = set([
82
+ ])
83
+
84
+ _dict = self.model_dump(
85
+ by_alias=True,
86
+ exclude=excluded_fields,
87
+ exclude_none=True,
88
+ )
89
+ return _dict
90
+
91
+ @classmethod
92
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
93
+ """Create an instance of TimelineMessagePromptRichTextEntityRef from a dict"""
94
+ if obj is None:
95
+ return None
96
+
97
+ if not isinstance(obj, dict):
98
+ return cls.model_validate(obj)
99
+
100
+ _obj = cls.model_validate({
101
+ "type": obj.get("type"),
102
+ "url": obj.get("url"),
103
+ "urlType": obj.get("urlType")
104
+ })
105
+ return _obj
106
+
107
+
@@ -0,0 +1,99 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Twitter OpenAPI
5
+
6
+ Twitter OpenAPI(Swagger) specification
7
+
8
+ The version of the OpenAPI document: 0.0.1
9
+ Contact: yuki@yuki0311.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from twitter_openapi_python_generated.models.reader_mode_config import ReaderModeConfig
24
+ from twitter_openapi_python_generated.models.scribe_config import ScribeConfig
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+ from pydantic_core import to_jsonable_python
28
+
29
+ class TimelineMetadata(BaseModel):
30
+ """
31
+ TimelineMetadata
32
+ """ # noqa: E501
33
+ reader_mode_config: Optional[ReaderModeConfig] = None
34
+ scribe_config: ScribeConfig = Field(alias="scribeConfig")
35
+ __properties: ClassVar[List[str]] = ["reader_mode_config", "scribeConfig"]
36
+
37
+ model_config = ConfigDict(
38
+ validate_by_name=True,
39
+ validate_by_alias=True,
40
+ validate_assignment=True,
41
+ protected_namespaces=(),
42
+ )
43
+
44
+
45
+ def to_str(self) -> str:
46
+ """Returns the string representation of the model using alias"""
47
+ return pprint.pformat(self.model_dump(by_alias=True))
48
+
49
+ def to_json(self) -> str:
50
+ """Returns the JSON representation of the model using alias"""
51
+ return json.dumps(to_jsonable_python(self.to_dict()))
52
+
53
+ @classmethod
54
+ def from_json(cls, json_str: str) -> Optional[Self]:
55
+ """Create an instance of TimelineMetadata from a JSON string"""
56
+ return cls.from_dict(json.loads(json_str))
57
+
58
+ def to_dict(self) -> Dict[str, Any]:
59
+ """Return the dictionary representation of the model using alias.
60
+
61
+ This has the following differences from calling pydantic's
62
+ `self.model_dump(by_alias=True)`:
63
+
64
+ * `None` is only added to the output dict for nullable fields that
65
+ were set at model initialization. Other fields with value `None`
66
+ are ignored.
67
+ """
68
+ excluded_fields: Set[str] = set([
69
+ ])
70
+
71
+ _dict = self.model_dump(
72
+ by_alias=True,
73
+ exclude=excluded_fields,
74
+ exclude_none=True,
75
+ )
76
+ # override the default output from pydantic by calling `to_dict()` of reader_mode_config
77
+ if self.reader_mode_config:
78
+ _dict['reader_mode_config'] = self.reader_mode_config.to_dict()
79
+ # override the default output from pydantic by calling `to_dict()` of scribe_config
80
+ if self.scribe_config:
81
+ _dict['scribeConfig'] = self.scribe_config.to_dict()
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of TimelineMetadata from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "reader_mode_config": ReaderModeConfig.from_dict(obj["reader_mode_config"]) if obj.get("reader_mode_config") is not None else None,
95
+ "scribeConfig": ScribeConfig.from_dict(obj["scribeConfig"]) if obj.get("scribeConfig") is not None else None
96
+ })
97
+ return _obj
98
+
99
+
@@ -19,7 +19,10 @@ import re # noqa: F401
19
19
  import json
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field
22
- from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Any, ClassVar, Dict, List
23
+ from twitter_openapi_python_generated.models.client_event_info import ClientEventInfo
24
+ from twitter_openapi_python_generated.models.content_item_type import ContentItemType
25
+ from twitter_openapi_python_generated.models.timeline_prompt_content import TimelinePromptContent
23
26
  from twitter_openapi_python_generated.models.type_name import TypeName
24
27
  from typing import Optional, Set
25
28
  from typing_extensions import Self
@@ -29,9 +32,11 @@ class TimelinePrompt(BaseModel):
29
32
  """
30
33
  TimelinePrompt
31
34
  """ # noqa: E501
32
- typename: Optional[TypeName] = Field(default=None, alias="__typename")
33
- additional_properties: Dict[str, Any] = {}
34
- __properties: ClassVar[List[str]] = ["__typename"]
35
+ typename: TypeName = Field(alias="__typename")
36
+ client_event_info: ClientEventInfo = Field(alias="clientEventInfo")
37
+ content: TimelinePromptContent
38
+ item_type: ContentItemType = Field(alias="itemType")
39
+ __properties: ClassVar[List[str]] = ["__typename", "clientEventInfo", "content", "itemType"]
35
40
 
36
41
  model_config = ConfigDict(
37
42
  validate_by_name=True,
@@ -63,10 +68,8 @@ class TimelinePrompt(BaseModel):
63
68
  * `None` is only added to the output dict for nullable fields that
64
69
  were set at model initialization. Other fields with value `None`
65
70
  are ignored.
66
- * Fields in `self.additional_properties` are added to the output dict.
67
71
  """
68
72
  excluded_fields: Set[str] = set([
69
- "additional_properties",
70
73
  ])
71
74
 
72
75
  _dict = self.model_dump(
@@ -74,11 +77,12 @@ class TimelinePrompt(BaseModel):
74
77
  exclude=excluded_fields,
75
78
  exclude_none=True,
76
79
  )
77
- # puts key-value pairs in additional_properties in the top level
78
- if self.additional_properties is not None:
79
- for _key, _value in self.additional_properties.items():
80
- _dict[_key] = _value
81
-
80
+ # override the default output from pydantic by calling `to_dict()` of client_event_info
81
+ if self.client_event_info:
82
+ _dict['clientEventInfo'] = self.client_event_info.to_dict()
83
+ # override the default output from pydantic by calling `to_dict()` of content
84
+ if self.content:
85
+ _dict['content'] = self.content.to_dict()
82
86
  return _dict
83
87
 
84
88
  @classmethod
@@ -91,13 +95,11 @@ class TimelinePrompt(BaseModel):
91
95
  return cls.model_validate(obj)
92
96
 
93
97
  _obj = cls.model_validate({
94
- "__typename": obj.get("__typename")
98
+ "__typename": obj.get("__typename"),
99
+ "clientEventInfo": ClientEventInfo.from_dict(obj["clientEventInfo"]) if obj.get("clientEventInfo") is not None else None,
100
+ "content": TimelinePromptContent.from_dict(obj["content"]) if obj.get("content") is not None else None,
101
+ "itemType": obj.get("itemType")
95
102
  })
96
- # store additional fields in additional_properties
97
- for _key in obj.keys():
98
- if _key not in cls.__properties:
99
- _obj.additional_properties[_key] = obj.get(_key)
100
-
101
103
  return _obj
102
104
 
103
105
 
@@ -0,0 +1,89 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Twitter OpenAPI
5
+
6
+ Twitter OpenAPI(Swagger) specification
7
+
8
+ The version of the OpenAPI document: 0.0.1
9
+ Contact: yuki@yuki0311.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, StrictStr
22
+ from typing import Any, ClassVar, Dict, List
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
26
+
27
+ class TimelinePromptCallback(BaseModel):
28
+ """
29
+ TimelinePromptCallback
30
+ """ # noqa: E501
31
+ endpoint: StrictStr
32
+ __properties: ClassVar[List[str]] = ["endpoint"]
33
+
34
+ model_config = ConfigDict(
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of TimelinePromptCallback from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ return _dict
74
+
75
+ @classmethod
76
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
77
+ """Create an instance of TimelinePromptCallback from a dict"""
78
+ if obj is None:
79
+ return None
80
+
81
+ if not isinstance(obj, dict):
82
+ return cls.model_validate(obj)
83
+
84
+ _obj = cls.model_validate({
85
+ "endpoint": obj.get("endpoint")
86
+ })
87
+ return _obj
88
+
89
+
@@ -0,0 +1,124 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Twitter OpenAPI
5
+
6
+ Twitter OpenAPI(Swagger) specification
7
+
8
+ The version of the OpenAPI document: 0.0.1
9
+ Contact: yuki@yuki0311.com
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from typing import Any, ClassVar, Dict, List
23
+ from twitter_openapi_python_generated.models.timeline_prompt_callback import TimelinePromptCallback
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+ from pydantic_core import to_jsonable_python
27
+
28
+ class TimelinePromptContent(BaseModel):
29
+ """
30
+ TimelinePromptContent
31
+ """ # noqa: E501
32
+ confirmation: StrictStr
33
+ content_type: StrictStr = Field(alias="contentType")
34
+ display_type: StrictStr = Field(alias="displayType")
35
+ is_relevant_callback: TimelinePromptCallback = Field(alias="isRelevantCallback")
36
+ is_relevant_text: StrictStr = Field(alias="isRelevantText")
37
+ not_relevant_callback: TimelinePromptCallback = Field(alias="notRelevantCallback")
38
+ not_relevant_text: StrictStr = Field(alias="notRelevantText")
39
+ title: StrictStr
40
+ __properties: ClassVar[List[str]] = ["confirmation", "contentType", "displayType", "isRelevantCallback", "isRelevantText", "notRelevantCallback", "notRelevantText", "title"]
41
+
42
+ @field_validator('content_type')
43
+ def content_type_validate_enum(cls, value):
44
+ """Validates the enum"""
45
+ if value not in set(['TimelineRelevancePrompt']):
46
+ raise ValueError("must be one of enum values ('TimelineRelevancePrompt')")
47
+ return value
48
+
49
+ @field_validator('display_type')
50
+ def display_type_validate_enum(cls, value):
51
+ """Validates the enum"""
52
+ if value not in set(['Compact']):
53
+ raise ValueError("must be one of enum values ('Compact')")
54
+ return value
55
+
56
+ model_config = ConfigDict(
57
+ validate_by_name=True,
58
+ validate_by_alias=True,
59
+ validate_assignment=True,
60
+ protected_namespaces=(),
61
+ )
62
+
63
+
64
+ def to_str(self) -> str:
65
+ """Returns the string representation of the model using alias"""
66
+ return pprint.pformat(self.model_dump(by_alias=True))
67
+
68
+ def to_json(self) -> str:
69
+ """Returns the JSON representation of the model using alias"""
70
+ return json.dumps(to_jsonable_python(self.to_dict()))
71
+
72
+ @classmethod
73
+ def from_json(cls, json_str: str) -> Optional[Self]:
74
+ """Create an instance of TimelinePromptContent from a JSON string"""
75
+ return cls.from_dict(json.loads(json_str))
76
+
77
+ def to_dict(self) -> Dict[str, Any]:
78
+ """Return the dictionary representation of the model using alias.
79
+
80
+ This has the following differences from calling pydantic's
81
+ `self.model_dump(by_alias=True)`:
82
+
83
+ * `None` is only added to the output dict for nullable fields that
84
+ were set at model initialization. Other fields with value `None`
85
+ are ignored.
86
+ """
87
+ excluded_fields: Set[str] = set([
88
+ ])
89
+
90
+ _dict = self.model_dump(
91
+ by_alias=True,
92
+ exclude=excluded_fields,
93
+ exclude_none=True,
94
+ )
95
+ # override the default output from pydantic by calling `to_dict()` of is_relevant_callback
96
+ if self.is_relevant_callback:
97
+ _dict['isRelevantCallback'] = self.is_relevant_callback.to_dict()
98
+ # override the default output from pydantic by calling `to_dict()` of not_relevant_callback
99
+ if self.not_relevant_callback:
100
+ _dict['notRelevantCallback'] = self.not_relevant_callback.to_dict()
101
+ return _dict
102
+
103
+ @classmethod
104
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
105
+ """Create an instance of TimelinePromptContent from a dict"""
106
+ if obj is None:
107
+ return None
108
+
109
+ if not isinstance(obj, dict):
110
+ return cls.model_validate(obj)
111
+
112
+ _obj = cls.model_validate({
113
+ "confirmation": obj.get("confirmation"),
114
+ "contentType": obj.get("contentType"),
115
+ "displayType": obj.get("displayType"),
116
+ "isRelevantCallback": TimelinePromptCallback.from_dict(obj["isRelevantCallback"]) if obj.get("isRelevantCallback") is not None else None,
117
+ "isRelevantText": obj.get("isRelevantText"),
118
+ "notRelevantCallback": TimelinePromptCallback.from_dict(obj["notRelevantCallback"]) if obj.get("notRelevantCallback") is not None else None,
119
+ "notRelevantText": obj.get("notRelevantText"),
120
+ "title": obj.get("title")
121
+ })
122
+ return _obj
123
+
124
+