twitter-openapi-python-generated 0.0.34__py3-none-any.whl → 0.0.35__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 (227) hide show
  1. twitter_openapi_python_generated/__init__.py +165 -1
  2. twitter_openapi_python_generated/api/post_api.py +2079 -203
  3. twitter_openapi_python_generated/api/tweet_api.py +3207 -231
  4. twitter_openapi_python_generated/api/user_api.py +969 -66
  5. twitter_openapi_python_generated/api/user_list_api.py +1907 -0
  6. twitter_openapi_python_generated/api_client.py +47 -9
  7. twitter_openapi_python_generated/configuration.py +55 -6
  8. twitter_openapi_python_generated/models/__init__.py +82 -0
  9. twitter_openapi_python_generated/models/additional_media_info.py +3 -1
  10. twitter_openapi_python_generated/models/article_cover_media.py +2 -5
  11. twitter_openapi_python_generated/models/article_cover_media_color_info.py +1 -2
  12. twitter_openapi_python_generated/models/article_result.py +3 -7
  13. twitter_openapi_python_generated/models/badge_counts.py +97 -0
  14. twitter_openapi_python_generated/models/birdwatch_entity_ref.py +3 -1
  15. twitter_openapi_python_generated/models/birdwatch_pivot_footer.py +1 -2
  16. twitter_openapi_python_generated/models/birdwatch_pivot_note.py +2 -5
  17. twitter_openapi_python_generated/models/birdwatch_pivot_subtitle.py +1 -2
  18. twitter_openapi_python_generated/models/bookmarks_response.py +1 -2
  19. twitter_openapi_python_generated/models/cashtag_attachment.py +89 -0
  20. twitter_openapi_python_generated/models/community.py +4 -9
  21. twitter_openapi_python_generated/models/community_about_timeline_response.py +1 -2
  22. twitter_openapi_python_generated/models/community_discovery_timeline_response.py +102 -0
  23. twitter_openapi_python_generated/models/community_discovery_timeline_response_data.py +93 -0
  24. twitter_openapi_python_generated/models/community_discovery_timeline_viewer.py +93 -0
  25. twitter_openapi_python_generated/models/community_join_action_result_union.py +3 -2
  26. twitter_openapi_python_generated/models/community_media_timeline_response.py +1 -2
  27. twitter_openapi_python_generated/models/community_relationship.py +2 -5
  28. twitter_openapi_python_generated/models/community_rule.py +2 -5
  29. twitter_openapi_python_generated/models/community_tweets_timeline_response.py +1 -2
  30. twitter_openapi_python_generated/models/community_union.py +3 -2
  31. twitter_openapi_python_generated/models/connect_tab_timeline_response.py +102 -0
  32. twitter_openapi_python_generated/models/connect_tab_timeline_response_data.py +93 -0
  33. twitter_openapi_python_generated/models/content_disclosure_ai_generated_disclosure.py +2 -2
  34. twitter_openapi_python_generated/models/content_item_type.py +3 -0
  35. twitter_openapi_python_generated/models/content_union.py +3 -2
  36. twitter_openapi_python_generated/models/cover_cta.py +1 -2
  37. twitter_openapi_python_generated/models/create_bookmark_response.py +1 -2
  38. twitter_openapi_python_generated/models/create_draft_tweet_response.py +102 -0
  39. twitter_openapi_python_generated/models/create_draft_tweet_response_data.py +93 -0
  40. twitter_openapi_python_generated/models/create_draft_tweet_response_tweet.py +97 -0
  41. twitter_openapi_python_generated/models/create_retweet_response.py +1 -2
  42. twitter_openapi_python_generated/models/create_tweet_response.py +1 -2
  43. twitter_openapi_python_generated/models/delete_bookmark_response.py +1 -2
  44. twitter_openapi_python_generated/models/delete_draft_tweets_response.py +102 -0
  45. twitter_openapi_python_generated/models/delete_draft_tweets_response_data.py +89 -0
  46. twitter_openapi_python_generated/models/delete_list_response.py +102 -0
  47. twitter_openapi_python_generated/models/delete_list_response_data.py +89 -0
  48. twitter_openapi_python_generated/models/delete_retweet.py +1 -2
  49. twitter_openapi_python_generated/models/delete_retweet_response.py +1 -2
  50. twitter_openapi_python_generated/models/delete_tweet_response.py +1 -2
  51. twitter_openapi_python_generated/models/draft_list.py +96 -0
  52. twitter_openapi_python_generated/models/draft_tweet.py +109 -0
  53. twitter_openapi_python_generated/models/draft_tweet_create_request.py +99 -0
  54. twitter_openapi_python_generated/models/draft_tweet_user.py +100 -0
  55. twitter_openapi_python_generated/models/draft_tweet_user_results.py +93 -0
  56. twitter_openapi_python_generated/models/draft_tweets_viewer.py +93 -0
  57. twitter_openapi_python_generated/models/entities.py +7 -9
  58. twitter_openapi_python_generated/models/error_extensions.py +1 -1
  59. twitter_openapi_python_generated/models/error_response.py +3 -5
  60. twitter_openapi_python_generated/models/explore_page.py +95 -0
  61. twitter_openapi_python_generated/models/explore_page_body.py +104 -0
  62. twitter_openapi_python_generated/models/explore_page_response.py +102 -0
  63. twitter_openapi_python_generated/models/explore_page_response_data.py +93 -0
  64. twitter_openapi_python_generated/models/explore_timeline.py +105 -0
  65. twitter_openapi_python_generated/models/explore_timeline_scribe_config.py +91 -0
  66. twitter_openapi_python_generated/models/extended_entities.py +1 -2
  67. twitter_openapi_python_generated/models/favorite_tweet_response.py +1 -2
  68. twitter_openapi_python_generated/models/fetch_draft_tweets_response.py +102 -0
  69. twitter_openapi_python_generated/models/fetch_draft_tweets_response_data.py +93 -0
  70. twitter_openapi_python_generated/models/fetch_scheduled_tweets_response.py +102 -0
  71. twitter_openapi_python_generated/models/fetch_scheduled_tweets_response_data.py +93 -0
  72. twitter_openapi_python_generated/models/follow_response.py +1 -2
  73. twitter_openapi_python_generated/models/generic_timeline_by_id_response.py +102 -0
  74. twitter_openapi_python_generated/models/generic_timeline_by_id_response_data.py +93 -0
  75. twitter_openapi_python_generated/models/grok_share_attachment.py +1 -2
  76. twitter_openapi_python_generated/models/grok_translated_bio.py +101 -0
  77. twitter_openapi_python_generated/models/grok_translated_bio_with_availability.py +97 -0
  78. twitter_openapi_python_generated/models/grok_translated_community_note.py +1 -2
  79. twitter_openapi_python_generated/models/highlight.py +1 -2
  80. twitter_openapi_python_generated/models/instruction_union.py +3 -2
  81. twitter_openapi_python_generated/models/item_content_union.py +68 -10
  82. twitter_openapi_python_generated/models/list_banner_media.py +93 -0
  83. twitter_openapi_python_generated/models/list_banner_media_info.py +99 -0
  84. twitter_openapi_python_generated/models/list_banner_media_salient_rect.py +95 -0
  85. twitter_openapi_python_generated/models/list_latest_tweets_timeline_response.py +1 -2
  86. twitter_openapi_python_generated/models/list_members_list.py +93 -0
  87. twitter_openapi_python_generated/models/list_members_response.py +102 -0
  88. twitter_openapi_python_generated/models/list_members_response_data.py +93 -0
  89. twitter_openapi_python_generated/models/list_recommended_users_list.py +93 -0
  90. twitter_openapi_python_generated/models/list_recommended_users_response.py +102 -0
  91. twitter_openapi_python_generated/models/list_recommended_users_response_data.py +93 -0
  92. twitter_openapi_python_generated/models/list_response.py +102 -0
  93. twitter_openapi_python_generated/models/list_response_data.py +93 -0
  94. twitter_openapi_python_generated/models/list_subscribers_list.py +93 -0
  95. twitter_openapi_python_generated/models/list_subscribers_response.py +102 -0
  96. twitter_openapi_python_generated/models/list_subscribers_response_data.py +93 -0
  97. twitter_openapi_python_generated/models/media.py +16 -17
  98. twitter_openapi_python_generated/models/media_extended.py +13 -16
  99. twitter_openapi_python_generated/models/media_original_info.py +1 -2
  100. twitter_openapi_python_generated/models/media_video_info.py +1 -2
  101. twitter_openapi_python_generated/models/module_item.py +2 -5
  102. twitter_openapi_python_generated/models/note_tweet_result_data.py +2 -5
  103. twitter_openapi_python_generated/models/note_tweet_result_media.py +1 -2
  104. twitter_openapi_python_generated/models/note_tweet_result_media_inline_media.py +2 -5
  105. twitter_openapi_python_generated/models/note_tweet_result_rich_text.py +1 -2
  106. twitter_openapi_python_generated/models/notifications_result.py +2 -5
  107. twitter_openapi_python_generated/models/notifications_timeline_response.py +1 -2
  108. twitter_openapi_python_generated/models/post_create_bookmark_request.py +1 -1
  109. twitter_openapi_python_generated/models/post_create_bookmark_request_variables.py +2 -2
  110. twitter_openapi_python_generated/models/post_create_draft_tweet_request.py +95 -0
  111. twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables.py +93 -0
  112. twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables_post_tweet_request.py +97 -0
  113. twitter_openapi_python_generated/models/post_create_list_request.py +101 -0
  114. twitter_openapi_python_generated/models/post_create_list_request_features.py +97 -0
  115. twitter_openapi_python_generated/models/post_create_list_request_variables.py +93 -0
  116. twitter_openapi_python_generated/models/post_create_retweet_request.py +1 -1
  117. twitter_openapi_python_generated/models/post_create_retweet_request_variables.py +3 -3
  118. twitter_openapi_python_generated/models/post_create_tweet_request.py +2 -2
  119. twitter_openapi_python_generated/models/post_create_tweet_request_features.py +43 -41
  120. twitter_openapi_python_generated/models/post_create_tweet_request_variables.py +4 -4
  121. twitter_openapi_python_generated/models/post_create_tweet_request_variables_conversation_control.py +2 -2
  122. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media.py +3 -4
  123. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media_media_entities_inner.py +2 -2
  124. twitter_openapi_python_generated/models/post_create_tweet_request_variables_reply.py +2 -2
  125. twitter_openapi_python_generated/models/post_cta_title_text.py +1 -2
  126. twitter_openapi_python_generated/models/post_delete_bookmark_request.py +1 -1
  127. twitter_openapi_python_generated/models/post_delete_draft_tweets_request.py +95 -0
  128. twitter_openapi_python_generated/models/post_delete_draft_tweets_request_variables.py +89 -0
  129. twitter_openapi_python_generated/models/post_delete_list_request.py +95 -0
  130. twitter_openapi_python_generated/models/post_delete_list_request_variables.py +89 -0
  131. twitter_openapi_python_generated/models/post_delete_retweet_request.py +1 -1
  132. twitter_openapi_python_generated/models/post_delete_retweet_request_variables.py +3 -3
  133. twitter_openapi_python_generated/models/post_delete_tweet_request.py +2 -2
  134. twitter_openapi_python_generated/models/post_favorite_tweet_request.py +1 -1
  135. twitter_openapi_python_generated/models/post_list_add_member_request.py +101 -0
  136. twitter_openapi_python_generated/models/post_list_add_member_request_variables.py +91 -0
  137. twitter_openapi_python_generated/models/post_list_remove_member_request.py +101 -0
  138. twitter_openapi_python_generated/models/post_unfavorite_tweet_request.py +1 -1
  139. twitter_openapi_python_generated/models/primary_community_topic.py +2 -5
  140. twitter_openapi_python_generated/models/profile_bio.py +11 -3
  141. twitter_openapi_python_generated/models/profile_bio_entities.py +98 -0
  142. twitter_openapi_python_generated/models/profile_bio_entities_urls.py +96 -0
  143. twitter_openapi_python_generated/models/profile_response.py +1 -2
  144. twitter_openapi_python_generated/models/retweet.py +4 -7
  145. twitter_openapi_python_generated/models/scheduled_tweets_viewer.py +89 -0
  146. twitter_openapi_python_generated/models/search_timeline_response.py +1 -2
  147. twitter_openapi_python_generated/models/self_thread.py +2 -5
  148. twitter_openapi_python_generated/models/session.py +8 -20
  149. twitter_openapi_python_generated/models/social_context_union.py +3 -2
  150. twitter_openapi_python_generated/models/text.py +1 -2
  151. twitter_openapi_python_generated/models/timeline.py +1 -2
  152. twitter_openapi_python_generated/models/timeline_add_entries.py +1 -2
  153. twitter_openapi_python_generated/models/timeline_add_entry.py +4 -10
  154. twitter_openapi_python_generated/models/timeline_add_to_module.py +1 -2
  155. twitter_openapi_python_generated/models/timeline_frame.py +97 -0
  156. twitter_openapi_python_generated/models/timeline_half_cover.py +1 -2
  157. twitter_openapi_python_generated/models/timeline_label.py +101 -0
  158. twitter_openapi_python_generated/models/timeline_mark_entries_unread_greater_than_sort_index.py +2 -5
  159. twitter_openapi_python_generated/models/timeline_response.py +1 -2
  160. twitter_openapi_python_generated/models/timeline_show_alert.py +7 -3
  161. twitter_openapi_python_generated/models/timeline_timeline_module.py +1 -2
  162. twitter_openapi_python_generated/models/timeline_trend.py +16 -4
  163. twitter_openapi_python_generated/models/timeline_twitter_list.py +101 -0
  164. twitter_openapi_python_generated/models/tombstone_rich_text.py +1 -2
  165. twitter_openapi_python_generated/models/tracing.py +2 -5
  166. twitter_openapi_python_generated/models/trend_metadata.py +4 -2
  167. twitter_openapi_python_generated/models/trend_results.py +2 -5
  168. twitter_openapi_python_generated/models/tweet.py +17 -6
  169. twitter_openapi_python_generated/models/tweet_card_legacy.py +2 -4
  170. twitter_openapi_python_generated/models/tweet_card_platform_device.py +2 -5
  171. twitter_openapi_python_generated/models/tweet_detail_response.py +1 -2
  172. twitter_openapi_python_generated/models/tweet_edit_control.py +6 -15
  173. twitter_openapi_python_generated/models/tweet_edit_control_initial.py +4 -10
  174. twitter_openapi_python_generated/models/tweet_favoriters_response.py +1 -2
  175. twitter_openapi_python_generated/models/tweet_interstitial_reveal_text.py +1 -2
  176. twitter_openapi_python_generated/models/tweet_interstitial_text.py +1 -2
  177. twitter_openapi_python_generated/models/tweet_legacy.py +15 -36
  178. twitter_openapi_python_generated/models/tweet_limited_action_results.py +1 -2
  179. twitter_openapi_python_generated/models/tweet_preview_display_tweet.py +5 -11
  180. twitter_openapi_python_generated/models/tweet_preview_display_tweet_view_count.py +2 -5
  181. twitter_openapi_python_generated/models/tweet_result_by_rest_id_response.py +1 -2
  182. twitter_openapi_python_generated/models/tweet_retweeters_response.py +1 -2
  183. twitter_openapi_python_generated/models/tweet_union.py +3 -2
  184. twitter_openapi_python_generated/models/tweet_view.py +2 -5
  185. twitter_openapi_python_generated/models/twitter_list.py +146 -0
  186. twitter_openapi_python_generated/models/type_name.py +4 -0
  187. twitter_openapi_python_generated/models/unfavorite_tweet_response.py +1 -2
  188. twitter_openapi_python_generated/models/urt_endpoint_options.py +3 -4
  189. twitter_openapi_python_generated/models/user.py +75 -13
  190. twitter_openapi_python_generated/models/user_action_counts.py +89 -0
  191. twitter_openapi_python_generated/models/user_banner.py +89 -0
  192. twitter_openapi_python_generated/models/user_core.py +3 -6
  193. twitter_openapi_python_generated/models/user_highlights_tweets_response.py +1 -2
  194. twitter_openapi_python_generated/models/user_legacy.py +3 -6
  195. twitter_openapi_python_generated/models/user_notifications_settings.py +89 -0
  196. twitter_openapi_python_generated/models/user_pinned_items.py +90 -0
  197. twitter_openapi_python_generated/models/user_professional.py +3 -7
  198. twitter_openapi_python_generated/models/user_profile_metadata.py +89 -0
  199. twitter_openapi_python_generated/models/user_profile_translation.py +89 -0
  200. twitter_openapi_python_generated/models/user_relationship_counts.py +91 -0
  201. twitter_openapi_python_generated/models/user_relationship_perspectives.py +6 -2
  202. twitter_openapi_python_generated/models/user_response.py +1 -2
  203. twitter_openapi_python_generated/models/user_result_by_screen_name.py +2 -5
  204. twitter_openapi_python_generated/models/user_result_by_screen_name_result.py +8 -12
  205. twitter_openapi_python_generated/models/user_result_core.py +3 -1
  206. twitter_openapi_python_generated/models/user_results.py +3 -1
  207. twitter_openapi_python_generated/models/user_tweet_counts.py +91 -0
  208. twitter_openapi_python_generated/models/user_tweets_response.py +1 -2
  209. twitter_openapi_python_generated/models/user_union.py +6 -3
  210. twitter_openapi_python_generated/models/user_value.py +8 -9
  211. twitter_openapi_python_generated/models/user_verification_info_reason.py +2 -5
  212. twitter_openapi_python_generated/models/user_verification_info_reason_description.py +1 -2
  213. twitter_openapi_python_generated/models/user_website.py +89 -0
  214. twitter_openapi_python_generated/models/users_response.py +1 -2
  215. twitter_openapi_python_generated/models/users_response_data.py +1 -2
  216. twitter_openapi_python_generated/models/viewer_badge_counts_response.py +102 -0
  217. twitter_openapi_python_generated/models/viewer_badge_counts_response_data.py +93 -0
  218. twitter_openapi_python_generated/models/viewer_badge_counts_result.py +96 -0
  219. twitter_openapi_python_generated/models/viewer_badge_counts_user_results.py +93 -0
  220. twitter_openapi_python_generated/models/viewer_badge_counts_viewer.py +93 -0
  221. twitter_openapi_python_generated/rest.py +79 -8
  222. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/METADATA +926 -816
  223. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/RECORD +227 -145
  224. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/WHEEL +1 -1
  225. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/licenses/LICENSE +31 -31
  226. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/licenses/LICENSE.AGPL +660 -660
  227. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/top_level.txt +0 -0
@@ -29,18 +29,15 @@ class UserCore(BaseModel):
29
29
  """
30
30
  UserCore
31
31
  """ # noqa: E501
32
- created_at: Annotated[str, Field(strict=True)]
32
+ created_at: Annotated[str, Field(strict=True)] = Field(json_schema_extra={"examples": ["Sat Dec 31 23:59:59 +0000 2023"]})
33
33
  name: StrictStr
34
34
  screen_name: StrictStr
35
35
  __properties: ClassVar[List[str]] = ["created_at", "name", "screen_name"]
36
36
 
37
- @field_validator('created_at')
37
+ @field_validator('created_at', mode="before")
38
38
  def created_at_validate_regular_expression(cls, value):
39
39
  """Validates the regular expression"""
40
- if not isinstance(value, str):
41
- value = str(value)
42
-
43
- if not re.match(r"^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$", value):
40
+ if isinstance(value, str) and not re.match(r"^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$", value):
44
41
  raise ValueError(r"must validate the regular expression /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$/")
45
42
  return value
46
43
 
@@ -80,8 +80,7 @@ class UserHighlightsTweetsResponse(BaseModel):
80
80
  _items = []
81
81
  if self.errors:
82
82
  for _item_errors in self.errors:
83
- if _item_errors:
84
- _items.append(_item_errors.to_dict())
83
+ _items.append(_item_errors.to_dict() if _item_errors is not None else None)
85
84
  _dict['errors'] = _items
86
85
  return _dict
87
86
 
@@ -33,7 +33,7 @@ class UserLegacy(BaseModel):
33
33
  blocking: Optional[StrictBool] = None
34
34
  can_dm: Optional[StrictBool] = None
35
35
  can_media_tag: Optional[StrictBool] = None
36
- created_at: Optional[Annotated[str, Field(strict=True)]] = None
36
+ created_at: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, json_schema_extra={"examples": ["Sat Dec 31 23:59:59 +0000 2023"]})
37
37
  default_profile: StrictBool
38
38
  default_profile_image: StrictBool
39
39
  description: StrictStr
@@ -76,16 +76,13 @@ class UserLegacy(BaseModel):
76
76
  withheld_scope: StrictStr
77
77
  __properties: ClassVar[List[str]] = ["blocked_by", "blocking", "can_dm", "can_media_tag", "created_at", "default_profile", "default_profile_image", "description", "entities", "fast_followers_count", "favourites_count", "follow_request_sent", "followed_by", "followers_count", "following", "friends_count", "has_custom_timelines", "is_translator", "listed_count", "location", "media_count", "muting", "name", "normal_followers_count", "notifications", "pinned_tweet_ids_str", "possibly_sensitive", "profile_banner_extensions", "profile_banner_url", "profile_image_extensions", "profile_image_url_https", "profile_interstitial_type", "protected", "screen_name", "statuses_count", "time_zone", "translator_type", "url", "utc_offset", "verified", "verified_type", "want_retweets", "withheld_description", "withheld_in_countries", "withheld_scope"]
78
78
 
79
- @field_validator('created_at')
79
+ @field_validator('created_at', mode="before")
80
80
  def created_at_validate_regular_expression(cls, value):
81
81
  """Validates the regular expression"""
82
82
  if value is None:
83
83
  return value
84
84
 
85
- if not isinstance(value, str):
86
- value = str(value)
87
-
88
- if not re.match(r"^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$", value):
85
+ if isinstance(value, str) and not re.match(r"^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$", value):
89
86
  raise ValueError(r"must validate the regular expression /^(Sun|Mon|Tue|Wed|Thu|Fri|Sat) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (0[1-9]|[12][0-9]|3[01]) (0[0-9]|1[0-9]|2[0-3])(: ?)([0-5][0-9])(: ?)([0-5][0-9]) ([+-][0-9]{4}) ([0-9]{4})$/")
90
87
  return value
91
88
 
@@ -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, StrictBool
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 UserNotificationsSettings(BaseModel):
28
+ """
29
+ UserNotificationsSettings
30
+ """ # noqa: E501
31
+ notifications_enabled: StrictBool
32
+ __properties: ClassVar[List[str]] = ["notifications_enabled"]
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 UserNotificationsSettings 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 UserNotificationsSettings 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
+ "notifications_enabled": obj.get("notifications_enabled")
86
+ })
87
+ return _obj
88
+
89
+
@@ -0,0 +1,90 @@
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, field_validator
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from typing_extensions import Annotated
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+ from pydantic_core import to_jsonable_python
27
+
28
+ class UserPinnedItems(BaseModel):
29
+ """
30
+ UserPinnedItems
31
+ """ # noqa: E501
32
+ tweet_ids_str: Optional[List[Annotated[str, Field(strict=True)]]] = None
33
+ __properties: ClassVar[List[str]] = ["tweet_ids_str"]
34
+
35
+ model_config = ConfigDict(
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
38
+ validate_assignment=True,
39
+ protected_namespaces=(),
40
+ )
41
+
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.model_dump(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> Optional[Self]:
53
+ """Create an instance of UserPinnedItems from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ """Return the dictionary representation of the model using alias.
58
+
59
+ This has the following differences from calling pydantic's
60
+ `self.model_dump(by_alias=True)`:
61
+
62
+ * `None` is only added to the output dict for nullable fields that
63
+ were set at model initialization. Other fields with value `None`
64
+ are ignored.
65
+ """
66
+ excluded_fields: Set[str] = set([
67
+ ])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78
+ """Create an instance of UserPinnedItems from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return cls.model_validate(obj)
84
+
85
+ _obj = cls.model_validate({
86
+ "tweet_ids_str": obj.get("tweet_ids_str")
87
+ })
88
+ return _obj
89
+
90
+
@@ -42,13 +42,10 @@ class UserProfessional(BaseModel):
42
42
  raise ValueError("must be one of enum values ('Business', 'Creator')")
43
43
  return value
44
44
 
45
- @field_validator('rest_id')
45
+ @field_validator('rest_id', mode="before")
46
46
  def rest_id_validate_regular_expression(cls, value):
47
47
  """Validates the regular expression"""
48
- if not isinstance(value, str):
49
- value = str(value)
50
-
51
- if not re.match(r"^[0-9]+$", value):
48
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
52
49
  raise ValueError(r"must validate the regular expression /^[0-9]+$/")
53
50
  return value
54
51
 
@@ -95,8 +92,7 @@ class UserProfessional(BaseModel):
95
92
  _items = []
96
93
  if self.category:
97
94
  for _item_category in self.category:
98
- if _item_category:
99
- _items.append(_item_category.to_dict())
95
+ _items.append(_item_category.to_dict() if _item_category is not None else None)
100
96
  _dict['category'] = _items
101
97
  return _dict
102
98
 
@@ -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 UserProfileMetadata(BaseModel):
28
+ """
29
+ UserProfileMetadata
30
+ """ # noqa: E501
31
+ profile_interstitial_type: StrictStr
32
+ __properties: ClassVar[List[str]] = ["profile_interstitial_type"]
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 UserProfileMetadata 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 UserProfileMetadata 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
+ "profile_interstitial_type": obj.get("profile_interstitial_type")
86
+ })
87
+ return _obj
88
+
89
+
@@ -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 UserProfileTranslation(BaseModel):
28
+ """
29
+ UserProfileTranslation
30
+ """ # noqa: E501
31
+ translator_type: StrictStr
32
+ __properties: ClassVar[List[str]] = ["translator_type"]
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 UserProfileTranslation 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 UserProfileTranslation 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
+ "translator_type": obj.get("translator_type")
86
+ })
87
+ return _obj
88
+
89
+
@@ -0,0 +1,91 @@
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, StrictInt
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 UserRelationshipCounts(BaseModel):
28
+ """
29
+ UserRelationshipCounts
30
+ """ # noqa: E501
31
+ followers: StrictInt
32
+ following: StrictInt
33
+ __properties: ClassVar[List[str]] = ["followers", "following"]
34
+
35
+ model_config = ConfigDict(
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
38
+ validate_assignment=True,
39
+ protected_namespaces=(),
40
+ )
41
+
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.model_dump(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> Optional[Self]:
53
+ """Create an instance of UserRelationshipCounts from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ """Return the dictionary representation of the model using alias.
58
+
59
+ This has the following differences from calling pydantic's
60
+ `self.model_dump(by_alias=True)`:
61
+
62
+ * `None` is only added to the output dict for nullable fields that
63
+ were set at model initialization. Other fields with value `None`
64
+ are ignored.
65
+ """
66
+ excluded_fields: Set[str] = set([
67
+ ])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78
+ """Create an instance of UserRelationshipCounts from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return cls.model_validate(obj)
84
+
85
+ _obj = cls.model_validate({
86
+ "followers": obj.get("followers"),
87
+ "following": obj.get("following")
88
+ })
89
+ return _obj
90
+
91
+
@@ -32,7 +32,9 @@ class UserRelationshipPerspectives(BaseModel):
32
32
  blocking: Optional[StrictBool] = None
33
33
  followed_by: Optional[StrictBool] = None
34
34
  following: Optional[StrictBool] = None
35
- __properties: ClassVar[List[str]] = ["blocked_by", "blocking", "followed_by", "following"]
35
+ live_following: Optional[StrictBool] = None
36
+ muting: Optional[StrictBool] = None
37
+ __properties: ClassVar[List[str]] = ["blocked_by", "blocking", "followed_by", "following", "live_following", "muting"]
36
38
 
37
39
  model_config = ConfigDict(
38
40
  validate_by_name=True,
@@ -88,7 +90,9 @@ class UserRelationshipPerspectives(BaseModel):
88
90
  "blocked_by": obj.get("blocked_by"),
89
91
  "blocking": obj.get("blocking"),
90
92
  "followed_by": obj.get("followed_by"),
91
- "following": obj.get("following")
93
+ "following": obj.get("following"),
94
+ "live_following": obj.get("live_following"),
95
+ "muting": obj.get("muting")
92
96
  })
93
97
  return _obj
94
98
 
@@ -80,8 +80,7 @@ class UserResponse(BaseModel):
80
80
  _items = []
81
81
  if self.errors:
82
82
  for _item_errors in self.errors:
83
- if _item_errors:
84
- _items.append(_item_errors.to_dict())
83
+ _items.append(_item_errors.to_dict() if _item_errors is not None else None)
85
84
  _dict['errors'] = _items
86
85
  return _dict
87
86
 
@@ -34,13 +34,10 @@ class UserResultByScreenName(BaseModel):
34
34
  result: UserResultByScreenNameResult
35
35
  __properties: ClassVar[List[str]] = ["id", "result"]
36
36
 
37
- @field_validator('id')
37
+ @field_validator('id', mode="before")
38
38
  def id_validate_regular_expression(cls, value):
39
39
  """Validates the regular expression"""
40
- if not isinstance(value, str):
41
- value = str(value)
42
-
43
- if not re.match(r"^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)?$", value):
40
+ if isinstance(value, str) and not re.match(r"^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)?$", value):
44
41
  raise ValueError(r"must validate the regular expression /^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)?$/")
45
42
  return value
46
43
 
@@ -18,7 +18,7 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field, field_validator
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, field_validator
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing_extensions import Annotated
24
24
  from twitter_openapi_python_generated.models.type_name import TypeName
@@ -37,30 +37,25 @@ class UserResultByScreenNameResult(BaseModel):
37
37
  typename: TypeName = Field(alias="__typename")
38
38
  core: UserResultByScreenNameCore
39
39
  id: Annotated[str, Field(strict=True)]
40
+ is_verified_organization: Optional[StrictBool] = None
40
41
  legacy: Optional[UserResultByScreenNameLegacy] = None
41
42
  privacy: UserResultPrivacy
42
43
  profilemodules: Dict[str, Any]
43
44
  relationship_perspectives: UserResultRelationshipPerspectives
44
45
  rest_id: Annotated[str, Field(strict=True)]
45
- __properties: ClassVar[List[str]] = ["__typename", "core", "id", "legacy", "privacy", "profilemodules", "relationship_perspectives", "rest_id"]
46
+ __properties: ClassVar[List[str]] = ["__typename", "core", "id", "is_verified_organization", "legacy", "privacy", "profilemodules", "relationship_perspectives", "rest_id"]
46
47
 
47
- @field_validator('id')
48
+ @field_validator('id', mode="before")
48
49
  def id_validate_regular_expression(cls, value):
49
50
  """Validates the regular expression"""
50
- if not isinstance(value, str):
51
- value = str(value)
52
-
53
- if not re.match(r"^[0-9a-zA-Z=]+$", value):
51
+ if isinstance(value, str) and not re.match(r"^[0-9a-zA-Z=]+$", value):
54
52
  raise ValueError(r"must validate the regular expression /^[0-9a-zA-Z=]+$/")
55
53
  return value
56
54
 
57
- @field_validator('rest_id')
55
+ @field_validator('rest_id', mode="before")
58
56
  def rest_id_validate_regular_expression(cls, value):
59
57
  """Validates the regular expression"""
60
- if not isinstance(value, str):
61
- value = str(value)
62
-
63
- if not re.match(r"^[0-9]+$", value):
58
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
64
59
  raise ValueError(r"must validate the regular expression /^[0-9]+$/")
65
60
  return value
66
61
 
@@ -130,6 +125,7 @@ class UserResultByScreenNameResult(BaseModel):
130
125
  "__typename": obj.get("__typename"),
131
126
  "core": UserResultByScreenNameCore.from_dict(obj["core"]) if obj.get("core") is not None else None,
132
127
  "id": obj.get("id"),
128
+ "is_verified_organization": obj.get("is_verified_organization"),
133
129
  "legacy": UserResultByScreenNameLegacy.from_dict(obj["legacy"]) if obj.get("legacy") is not None else None,
134
130
  "privacy": UserResultPrivacy.from_dict(obj["privacy"]) if obj.get("privacy") is not None else None,
135
131
  "profilemodules": obj.get("profilemodules"),
@@ -20,7 +20,6 @@ import json
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict
22
22
  from typing import Any, ClassVar, Dict, List
23
- from twitter_openapi_python_generated.models.user_results import UserResults
24
23
  from typing import Optional, Set
25
24
  from typing_extensions import Self
26
25
  from pydantic_core import to_jsonable_python
@@ -90,4 +89,7 @@ class UserResultCore(BaseModel):
90
89
  })
91
90
  return _obj
92
91
 
92
+ from twitter_openapi_python_generated.models.user_results import UserResults
93
+ # TODO: Rewrite to not use raise_errors
94
+ UserResultCore.model_rebuild(raise_errors=False)
93
95
 
@@ -20,7 +20,6 @@ import json
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
- from twitter_openapi_python_generated.models.user_union import UserUnion
24
23
  from typing import Optional, Set
25
24
  from typing_extensions import Self
26
25
  from pydantic_core import to_jsonable_python
@@ -90,4 +89,7 @@ class UserResults(BaseModel):
90
89
  })
91
90
  return _obj
92
91
 
92
+ from twitter_openapi_python_generated.models.user_union import UserUnion
93
+ # TODO: Rewrite to not use raise_errors
94
+ UserResults.model_rebuild(raise_errors=False)
93
95