twitter-openapi-python-generated 0.0.34__py3-none-any.whl → 0.1.0__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 (296) hide show
  1. twitter_openapi_python_generated/__init__.py +279 -7
  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 +139 -3
  9. twitter_openapi_python_generated/models/ad_metadata_container.py +104 -0
  10. twitter_openapi_python_generated/models/additional_media_info.py +3 -1
  11. twitter_openapi_python_generated/models/affiliates_highlighted_label.py +93 -0
  12. twitter_openapi_python_generated/models/api_image.py +108 -0
  13. twitter_openapi_python_generated/models/api_media.py +110 -0
  14. twitter_openapi_python_generated/models/article_cover_media.py +2 -5
  15. twitter_openapi_python_generated/models/article_cover_media_info.py +3 -3
  16. twitter_openapi_python_generated/models/article_result.py +3 -7
  17. twitter_openapi_python_generated/models/badge_counts.py +97 -0
  18. twitter_openapi_python_generated/models/birdwatch_entity_ref.py +3 -1
  19. twitter_openapi_python_generated/models/birdwatch_pivot.py +2 -2
  20. twitter_openapi_python_generated/models/birdwatch_pivot_footer.py +1 -2
  21. twitter_openapi_python_generated/models/birdwatch_pivot_note.py +2 -5
  22. twitter_openapi_python_generated/models/birdwatch_pivot_subtitle.py +1 -2
  23. twitter_openapi_python_generated/models/bookmarks_response.py +1 -2
  24. twitter_openapi_python_generated/models/cashtag_attachment.py +89 -0
  25. twitter_openapi_python_generated/models/cashtag_info.py +93 -0
  26. twitter_openapi_python_generated/models/click_tracking_info.py +96 -0
  27. twitter_openapi_python_generated/models/client_event_info.py +6 -2
  28. twitter_openapi_python_generated/models/client_event_info_details.py +99 -0
  29. twitter_openapi_python_generated/models/community.py +21 -15
  30. twitter_openapi_python_generated/models/community_about_timeline_response.py +1 -2
  31. twitter_openapi_python_generated/models/community_banner_media.py +95 -0
  32. twitter_openapi_python_generated/models/community_banner_media_info.py +108 -0
  33. twitter_openapi_python_generated/models/community_discovery_timeline_response.py +102 -0
  34. twitter_openapi_python_generated/models/community_discovery_timeline_response_data.py +93 -0
  35. twitter_openapi_python_generated/models/community_discovery_timeline_viewer.py +93 -0
  36. twitter_openapi_python_generated/models/community_join_action_result_union.py +3 -2
  37. twitter_openapi_python_generated/models/community_media_timeline_response.py +1 -2
  38. twitter_openapi_python_generated/models/community_moderation_state.py +90 -0
  39. twitter_openapi_python_generated/models/community_relationship.py +8 -7
  40. twitter_openapi_python_generated/models/community_rule.py +2 -5
  41. twitter_openapi_python_generated/models/community_tweets_timeline_response.py +1 -2
  42. twitter_openapi_python_generated/models/community_union.py +3 -2
  43. twitter_openapi_python_generated/models/community_viewer_relationship.py +95 -0
  44. twitter_openapi_python_generated/models/connect_tab_timeline_response.py +102 -0
  45. twitter_openapi_python_generated/models/connect_tab_timeline_response_data.py +93 -0
  46. twitter_openapi_python_generated/models/content_disclosure_ai_generated_disclosure.py +2 -2
  47. twitter_openapi_python_generated/models/content_item_type.py +3 -0
  48. twitter_openapi_python_generated/models/content_union.py +3 -2
  49. twitter_openapi_python_generated/models/conversation_control.py +10 -11
  50. twitter_openapi_python_generated/models/conversation_details.py +96 -0
  51. twitter_openapi_python_generated/models/conversation_metadata.py +92 -0
  52. twitter_openapi_python_generated/models/conversation_owner.py +96 -0
  53. twitter_openapi_python_generated/models/conversation_owner_core.py +89 -0
  54. twitter_openapi_python_generated/models/conversation_owner_results.py +93 -0
  55. twitter_openapi_python_generated/models/cover_cta.py +1 -2
  56. twitter_openapi_python_generated/models/create_bookmark_response.py +1 -2
  57. twitter_openapi_python_generated/models/create_draft_tweet_response.py +102 -0
  58. twitter_openapi_python_generated/models/create_draft_tweet_response_data.py +93 -0
  59. twitter_openapi_python_generated/models/create_draft_tweet_response_tweet.py +97 -0
  60. twitter_openapi_python_generated/models/create_retweet_response.py +1 -2
  61. twitter_openapi_python_generated/models/create_tweet_response.py +1 -2
  62. twitter_openapi_python_generated/models/cta_limited_action_prompt.py +110 -0
  63. twitter_openapi_python_generated/models/cta_limited_action_prompt_text.py +91 -0
  64. twitter_openapi_python_generated/models/deepsearch_header.py +96 -0
  65. twitter_openapi_python_generated/models/deepsearch_step.py +99 -0
  66. twitter_openapi_python_generated/models/deepsearch_web_result.py +89 -0
  67. twitter_openapi_python_generated/models/delete_bookmark_response.py +1 -2
  68. twitter_openapi_python_generated/models/delete_draft_tweets_response.py +102 -0
  69. twitter_openapi_python_generated/models/delete_draft_tweets_response_data.py +89 -0
  70. twitter_openapi_python_generated/models/delete_list_response.py +102 -0
  71. twitter_openapi_python_generated/models/delete_list_response_data.py +89 -0
  72. twitter_openapi_python_generated/models/delete_retweet.py +1 -2
  73. twitter_openapi_python_generated/models/delete_retweet_response.py +1 -2
  74. twitter_openapi_python_generated/models/delete_tweet_response.py +1 -2
  75. twitter_openapi_python_generated/models/draft_list.py +96 -0
  76. twitter_openapi_python_generated/models/draft_tweet.py +109 -0
  77. twitter_openapi_python_generated/models/draft_tweet_create_request.py +99 -0
  78. twitter_openapi_python_generated/models/draft_tweet_user.py +100 -0
  79. twitter_openapi_python_generated/models/draft_tweet_user_results.py +93 -0
  80. twitter_openapi_python_generated/models/draft_tweets_viewer.py +93 -0
  81. twitter_openapi_python_generated/models/entities.py +34 -15
  82. twitter_openapi_python_generated/models/error_extensions.py +1 -1
  83. twitter_openapi_python_generated/models/error_response.py +3 -5
  84. twitter_openapi_python_generated/models/explore_page.py +95 -0
  85. twitter_openapi_python_generated/models/explore_page_body.py +104 -0
  86. twitter_openapi_python_generated/models/explore_page_response.py +102 -0
  87. twitter_openapi_python_generated/models/explore_page_response_data.py +93 -0
  88. twitter_openapi_python_generated/models/explore_timeline.py +105 -0
  89. twitter_openapi_python_generated/models/explore_timeline_scribe_config.py +91 -0
  90. twitter_openapi_python_generated/models/extended_entities.py +1 -2
  91. twitter_openapi_python_generated/models/favorite_tweet_response.py +1 -2
  92. twitter_openapi_python_generated/models/feedback_action.py +136 -0
  93. twitter_openapi_python_generated/models/feedback_action_entry.py +95 -0
  94. twitter_openapi_python_generated/models/feedback_client_event_info.py +93 -0
  95. twitter_openapi_python_generated/models/feedback_info.py +8 -6
  96. twitter_openapi_python_generated/models/fetch_draft_tweets_response.py +102 -0
  97. twitter_openapi_python_generated/models/fetch_draft_tweets_response_data.py +93 -0
  98. twitter_openapi_python_generated/models/fetch_scheduled_tweets_response.py +102 -0
  99. twitter_openapi_python_generated/models/fetch_scheduled_tweets_response_data.py +93 -0
  100. twitter_openapi_python_generated/models/follow_response.py +1 -2
  101. twitter_openapi_python_generated/models/generic_timeline_by_id_response.py +102 -0
  102. twitter_openapi_python_generated/models/generic_timeline_by_id_response_data.py +93 -0
  103. twitter_openapi_python_generated/models/grok_share_attachment.py +1 -2
  104. twitter_openapi_python_generated/models/grok_share_attachment_item.py +9 -2
  105. twitter_openapi_python_generated/models/grok_translated_bio.py +101 -0
  106. twitter_openapi_python_generated/models/grok_translated_bio_with_availability.py +97 -0
  107. twitter_openapi_python_generated/models/grok_translated_community_note.py +1 -2
  108. twitter_openapi_python_generated/models/hashtag.py +91 -0
  109. twitter_openapi_python_generated/models/highlight.py +1 -2
  110. twitter_openapi_python_generated/models/instruction_union.py +3 -2
  111. twitter_openapi_python_generated/models/item_content_union.py +68 -10
  112. twitter_openapi_python_generated/models/jetfuel_attachment.py +91 -0
  113. twitter_openapi_python_generated/models/key_value.py +91 -0
  114. twitter_openapi_python_generated/models/landing_url.py +98 -0
  115. twitter_openapi_python_generated/models/limited_action.py +95 -0
  116. twitter_openapi_python_generated/models/limited_action_results.py +96 -0
  117. twitter_openapi_python_generated/models/limited_action_results_data.py +1 -8
  118. twitter_openapi_python_generated/models/list_banner_media.py +93 -0
  119. twitter_openapi_python_generated/models/list_banner_media_info.py +99 -0
  120. twitter_openapi_python_generated/models/list_banner_media_results.py +93 -0
  121. twitter_openapi_python_generated/models/list_latest_tweets_timeline_response.py +1 -2
  122. twitter_openapi_python_generated/models/list_members_list.py +93 -0
  123. twitter_openapi_python_generated/models/list_members_response.py +102 -0
  124. twitter_openapi_python_generated/models/list_members_response_data.py +93 -0
  125. twitter_openapi_python_generated/models/list_recommended_users_list.py +93 -0
  126. twitter_openapi_python_generated/models/list_recommended_users_response.py +102 -0
  127. twitter_openapi_python_generated/models/list_recommended_users_response_data.py +93 -0
  128. twitter_openapi_python_generated/models/list_response.py +102 -0
  129. twitter_openapi_python_generated/models/list_response_data.py +93 -0
  130. twitter_openapi_python_generated/models/list_subscribers_list.py +93 -0
  131. twitter_openapi_python_generated/models/list_subscribers_response.py +102 -0
  132. twitter_openapi_python_generated/models/list_subscribers_response_data.py +93 -0
  133. twitter_openapi_python_generated/models/media.py +16 -17
  134. twitter_openapi_python_generated/models/{article_cover_media_color_info.py → media_color_info.py} +8 -9
  135. twitter_openapi_python_generated/models/{article_cover_media_color_info_palette.py → media_color_info_palette.py} +7 -7
  136. twitter_openapi_python_generated/models/{article_cover_media_color_info_palette_rgb.py → media_color_info_palette_rgb.py} +4 -4
  137. twitter_openapi_python_generated/models/media_extended.py +13 -16
  138. twitter_openapi_python_generated/models/media_original_info.py +1 -2
  139. twitter_openapi_python_generated/models/media_salient_rect.py +95 -0
  140. twitter_openapi_python_generated/models/media_video_info.py +1 -2
  141. twitter_openapi_python_generated/models/module_footer.py +104 -0
  142. twitter_openapi_python_generated/models/module_header.py +100 -0
  143. twitter_openapi_python_generated/models/module_item.py +2 -5
  144. twitter_openapi_python_generated/models/module_metadata.py +93 -0
  145. twitter_openapi_python_generated/models/note_tweet_result_data.py +2 -5
  146. twitter_openapi_python_generated/models/note_tweet_result_media.py +1 -2
  147. twitter_openapi_python_generated/models/note_tweet_result_media_inline_media.py +2 -5
  148. twitter_openapi_python_generated/models/note_tweet_result_rich_text.py +1 -2
  149. twitter_openapi_python_generated/models/notifications_result.py +2 -5
  150. twitter_openapi_python_generated/models/notifications_timeline_response.py +1 -2
  151. twitter_openapi_python_generated/models/post_create_bookmark_request.py +1 -1
  152. twitter_openapi_python_generated/models/post_create_bookmark_request_variables.py +2 -2
  153. twitter_openapi_python_generated/models/post_create_draft_tweet_request.py +95 -0
  154. twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables.py +93 -0
  155. twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables_post_tweet_request.py +97 -0
  156. twitter_openapi_python_generated/models/post_create_list_request.py +101 -0
  157. twitter_openapi_python_generated/models/post_create_list_request_features.py +97 -0
  158. twitter_openapi_python_generated/models/post_create_list_request_variables.py +93 -0
  159. twitter_openapi_python_generated/models/post_create_retweet_request.py +1 -1
  160. twitter_openapi_python_generated/models/post_create_retweet_request_variables.py +3 -3
  161. twitter_openapi_python_generated/models/post_create_tweet_request.py +2 -2
  162. twitter_openapi_python_generated/models/post_create_tweet_request_features.py +43 -41
  163. twitter_openapi_python_generated/models/post_create_tweet_request_variables.py +4 -4
  164. twitter_openapi_python_generated/models/post_create_tweet_request_variables_conversation_control.py +2 -2
  165. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media.py +3 -4
  166. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media_media_entities_inner.py +2 -2
  167. twitter_openapi_python_generated/models/post_create_tweet_request_variables_reply.py +2 -2
  168. twitter_openapi_python_generated/models/post_cta_title_text.py +1 -2
  169. twitter_openapi_python_generated/models/post_delete_bookmark_request.py +1 -1
  170. twitter_openapi_python_generated/models/post_delete_draft_tweets_request.py +95 -0
  171. twitter_openapi_python_generated/models/post_delete_draft_tweets_request_variables.py +89 -0
  172. twitter_openapi_python_generated/models/post_delete_list_request.py +95 -0
  173. twitter_openapi_python_generated/models/post_delete_list_request_variables.py +89 -0
  174. twitter_openapi_python_generated/models/post_delete_retweet_request.py +1 -1
  175. twitter_openapi_python_generated/models/post_delete_retweet_request_variables.py +3 -3
  176. twitter_openapi_python_generated/models/post_delete_tweet_request.py +2 -2
  177. twitter_openapi_python_generated/models/post_favorite_tweet_request.py +1 -1
  178. twitter_openapi_python_generated/models/post_list_add_member_request.py +101 -0
  179. twitter_openapi_python_generated/models/post_list_add_member_request_variables.py +91 -0
  180. twitter_openapi_python_generated/models/post_list_remove_member_request.py +101 -0
  181. twitter_openapi_python_generated/models/post_unfavorite_tweet_request.py +1 -1
  182. twitter_openapi_python_generated/models/primary_community_topic.py +2 -5
  183. twitter_openapi_python_generated/models/profile_bio.py +11 -3
  184. twitter_openapi_python_generated/models/profile_bio_entities.py +98 -0
  185. twitter_openapi_python_generated/models/profile_bio_entities_urls.py +96 -0
  186. twitter_openapi_python_generated/models/profile_response.py +1 -2
  187. twitter_openapi_python_generated/models/promoted_metadata.py +109 -0
  188. twitter_openapi_python_generated/models/reader_mode_config.py +89 -0
  189. twitter_openapi_python_generated/models/retweet.py +4 -7
  190. twitter_openapi_python_generated/models/scheduled_tweets_viewer.py +89 -0
  191. twitter_openapi_python_generated/models/scribe_config.py +89 -0
  192. twitter_openapi_python_generated/models/search_timeline_response.py +1 -2
  193. twitter_openapi_python_generated/models/self_thread.py +2 -5
  194. twitter_openapi_python_generated/models/session.py +8 -20
  195. twitter_openapi_python_generated/models/smarttag_tag.py +6 -2
  196. twitter_openapi_python_generated/models/smarttag_tag_info.py +93 -0
  197. twitter_openapi_python_generated/models/social_context_union.py +3 -2
  198. twitter_openapi_python_generated/models/symbol.py +97 -0
  199. twitter_openapi_python_generated/models/text.py +1 -2
  200. twitter_openapi_python_generated/models/timeline.py +13 -6
  201. twitter_openapi_python_generated/models/timeline_add_entries.py +1 -2
  202. twitter_openapi_python_generated/models/timeline_add_entry.py +4 -10
  203. twitter_openapi_python_generated/models/timeline_add_to_module.py +1 -2
  204. twitter_openapi_python_generated/models/timeline_frame.py +97 -0
  205. twitter_openapi_python_generated/models/timeline_half_cover.py +1 -2
  206. twitter_openapi_python_generated/models/timeline_label.py +101 -0
  207. twitter_openapi_python_generated/models/timeline_mark_entries_unread_greater_than_sort_index.py +2 -5
  208. twitter_openapi_python_generated/models/timeline_metadata.py +99 -0
  209. twitter_openapi_python_generated/models/timeline_response.py +1 -2
  210. twitter_openapi_python_generated/models/timeline_response_objects.py +96 -0
  211. twitter_openapi_python_generated/models/timeline_show_alert.py +19 -18
  212. twitter_openapi_python_generated/models/timeline_show_alert_color_config.py +93 -0
  213. twitter_openapi_python_generated/models/timeline_show_alert_icon_display_info.py +91 -0
  214. twitter_openapi_python_generated/models/timeline_show_alert_rich_text.py +3 -3
  215. twitter_openapi_python_generated/models/timeline_timeline_item.py +6 -2
  216. twitter_openapi_python_generated/models/timeline_timeline_module.py +19 -8
  217. twitter_openapi_python_generated/models/timeline_trend.py +16 -4
  218. twitter_openapi_python_generated/models/timeline_tweet.py +6 -2
  219. twitter_openapi_python_generated/models/timeline_twitter_list.py +101 -0
  220. twitter_openapi_python_generated/models/timelines_details.py +93 -0
  221. twitter_openapi_python_generated/models/tombstone_rich_text.py +1 -2
  222. twitter_openapi_python_generated/models/tracing.py +2 -5
  223. twitter_openapi_python_generated/models/trend_metadata.py +4 -2
  224. twitter_openapi_python_generated/models/trend_results.py +2 -5
  225. twitter_openapi_python_generated/models/tweet.py +23 -6
  226. twitter_openapi_python_generated/models/tweet_card_legacy.py +2 -4
  227. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value_data.py +6 -2
  228. twitter_openapi_python_generated/models/tweet_card_platform_device.py +2 -5
  229. twitter_openapi_python_generated/models/tweet_detail_response.py +1 -2
  230. twitter_openapi_python_generated/models/tweet_edit_control.py +6 -15
  231. twitter_openapi_python_generated/models/tweet_edit_control_initial.py +4 -10
  232. twitter_openapi_python_generated/models/tweet_favoriters_response.py +1 -2
  233. twitter_openapi_python_generated/models/tweet_interstitial_reveal_text.py +1 -2
  234. twitter_openapi_python_generated/models/tweet_interstitial_text.py +1 -2
  235. twitter_openapi_python_generated/models/tweet_legacy.py +21 -38
  236. twitter_openapi_python_generated/models/tweet_limited_action_results.py +1 -2
  237. twitter_openapi_python_generated/models/tweet_preview_display_tweet.py +5 -11
  238. twitter_openapi_python_generated/models/tweet_preview_display_tweet_view_count.py +2 -5
  239. twitter_openapi_python_generated/models/tweet_result_by_rest_id_response.py +1 -2
  240. twitter_openapi_python_generated/models/tweet_retweeters_response.py +1 -2
  241. twitter_openapi_python_generated/models/tweet_union.py +3 -2
  242. twitter_openapi_python_generated/models/tweet_view.py +2 -5
  243. twitter_openapi_python_generated/models/tweet_with_visibility_results.py +6 -2
  244. twitter_openapi_python_generated/models/twitter_list.py +160 -0
  245. twitter_openapi_python_generated/models/type_name.py +7 -0
  246. twitter_openapi_python_generated/models/unfavorite_tweet_response.py +1 -2
  247. twitter_openapi_python_generated/models/urt_endpoint_options.py +3 -4
  248. twitter_openapi_python_generated/models/user.py +81 -15
  249. twitter_openapi_python_generated/models/user_action_counts.py +89 -0
  250. twitter_openapi_python_generated/models/user_banner.py +89 -0
  251. twitter_openapi_python_generated/models/user_core.py +3 -6
  252. twitter_openapi_python_generated/models/user_highlights_tweets_response.py +1 -2
  253. twitter_openapi_python_generated/models/user_label.py +128 -0
  254. twitter_openapi_python_generated/models/user_label_badge.py +89 -0
  255. twitter_openapi_python_generated/models/user_label_mention_results.py +93 -0
  256. twitter_openapi_python_generated/models/user_label_mention_user.py +106 -0
  257. twitter_openapi_python_generated/models/user_label_mention_user_core.py +89 -0
  258. twitter_openapi_python_generated/models/user_label_text.py +98 -0
  259. twitter_openapi_python_generated/models/user_label_text_entity.py +97 -0
  260. twitter_openapi_python_generated/models/user_label_text_entity_ref.py +104 -0
  261. twitter_openapi_python_generated/models/user_label_url.py +98 -0
  262. twitter_openapi_python_generated/models/user_legacy.py +9 -8
  263. twitter_openapi_python_generated/models/user_mention.py +115 -0
  264. twitter_openapi_python_generated/models/user_notifications_settings.py +89 -0
  265. twitter_openapi_python_generated/models/user_pinned_items.py +90 -0
  266. twitter_openapi_python_generated/models/user_professional.py +10 -9
  267. twitter_openapi_python_generated/models/user_profile_metadata.py +89 -0
  268. twitter_openapi_python_generated/models/user_profile_translation.py +89 -0
  269. twitter_openapi_python_generated/models/user_relationship_counts.py +91 -0
  270. twitter_openapi_python_generated/models/user_relationship_perspectives.py +6 -2
  271. twitter_openapi_python_generated/models/user_response.py +1 -2
  272. twitter_openapi_python_generated/models/user_result_by_screen_name.py +2 -5
  273. twitter_openapi_python_generated/models/user_result_by_screen_name_result.py +8 -12
  274. twitter_openapi_python_generated/models/user_result_core.py +3 -1
  275. twitter_openapi_python_generated/models/user_results.py +3 -1
  276. twitter_openapi_python_generated/models/user_tweet_counts.py +91 -0
  277. twitter_openapi_python_generated/models/user_tweets_response.py +1 -2
  278. twitter_openapi_python_generated/models/user_union.py +6 -3
  279. twitter_openapi_python_generated/models/user_value.py +8 -9
  280. twitter_openapi_python_generated/models/user_verification_info_reason.py +2 -5
  281. twitter_openapi_python_generated/models/user_verification_info_reason_description.py +1 -2
  282. twitter_openapi_python_generated/models/user_website.py +89 -0
  283. twitter_openapi_python_generated/models/users_response.py +1 -2
  284. twitter_openapi_python_generated/models/users_response_data.py +1 -2
  285. twitter_openapi_python_generated/models/viewer_badge_counts_response.py +102 -0
  286. twitter_openapi_python_generated/models/viewer_badge_counts_response_data.py +93 -0
  287. twitter_openapi_python_generated/models/viewer_badge_counts_result.py +96 -0
  288. twitter_openapi_python_generated/models/viewer_badge_counts_user_results.py +93 -0
  289. twitter_openapi_python_generated/models/viewer_badge_counts_viewer.py +93 -0
  290. twitter_openapi_python_generated/rest.py +79 -8
  291. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.1.0.dist-info}/METADATA +980 -816
  292. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.1.0.dist-info}/RECORD +296 -160
  293. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.1.0.dist-info}/WHEEL +1 -1
  294. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.1.0.dist-info}/licenses/LICENSE +31 -31
  295. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.1.0.dist-info}/licenses/LICENSE.AGPL +660 -660
  296. {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.1.0.dist-info}/top_level.txt +0 -0
@@ -35,7 +35,7 @@ class TweetPreviewDisplayTweet(BaseModel):
35
35
  article_preview: Optional[ArticlePreview] = None
36
36
  bookmark_count: StrictInt
37
37
  core: UserResultCore
38
- created_at: Annotated[str, Field(strict=True)]
38
+ created_at: Annotated[str, Field(strict=True)] = Field(json_schema_extra={"examples": ["Sat Dec 31 23:59:59 +0000 2023"]})
39
39
  entities: Dict[str, Any]
40
40
  favorite_count: StrictInt
41
41
  quote_count: StrictInt
@@ -46,23 +46,17 @@ class TweetPreviewDisplayTweet(BaseModel):
46
46
  view_count: TweetPreviewDisplayTweetViewCount
47
47
  __properties: ClassVar[List[str]] = ["article_preview", "bookmark_count", "core", "created_at", "entities", "favorite_count", "quote_count", "reply_count", "rest_id", "retweet_count", "text", "view_count"]
48
48
 
49
- @field_validator('created_at')
49
+ @field_validator('created_at', mode="before")
50
50
  def created_at_validate_regular_expression(cls, value):
51
51
  """Validates the regular expression"""
52
- if not isinstance(value, str):
53
- value = str(value)
54
-
55
- 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):
52
+ 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):
56
53
  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})$/")
57
54
  return value
58
55
 
59
- @field_validator('rest_id')
56
+ @field_validator('rest_id', mode="before")
60
57
  def rest_id_validate_regular_expression(cls, value):
61
58
  """Validates the regular expression"""
62
- if not isinstance(value, str):
63
- value = str(value)
64
-
65
- if not re.match(r"^[0-9]+$", value):
59
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
66
60
  raise ValueError(r"must validate the regular expression /^[0-9]+$/")
67
61
  return value
68
62
 
@@ -32,13 +32,10 @@ class TweetPreviewDisplayTweetViewCount(BaseModel):
32
32
  count: Annotated[str, Field(strict=True)]
33
33
  __properties: ClassVar[List[str]] = ["count"]
34
34
 
35
- @field_validator('count')
35
+ @field_validator('count', mode="before")
36
36
  def count_validate_regular_expression(cls, value):
37
37
  """Validates the regular expression"""
38
- if not isinstance(value, str):
39
- value = str(value)
40
-
41
- if not re.match(r"^[0-9]+$", value):
38
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
42
39
  raise ValueError(r"must validate the regular expression /^[0-9]+$/")
43
40
  return value
44
41
 
@@ -80,8 +80,7 @@ class TweetResultByRestIdResponse(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
 
@@ -80,8 +80,7 @@ class TweetRetweetersResponse(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
 
@@ -114,9 +114,10 @@ class TweetUnion(BaseModel):
114
114
  match = 0
115
115
 
116
116
  # use oneOf discriminator to lookup the data type
117
- _data_type = json.loads(json_str).get("__typename")
117
+ _discriminator_property = "__typename"
118
+ _data_type = json.loads(json_str).get(_discriminator_property)
118
119
  if not _data_type:
119
- raise ValueError("Failed to lookup data type from the field `__typename` in the input.")
120
+ raise ValueError(f"Failed to lookup data type from the field `{_discriminator_property}` in the input.")
120
121
 
121
122
  # check if data type is `Tweet`
122
123
  if _data_type == "Tweet":
@@ -33,16 +33,13 @@ class TweetView(BaseModel):
33
33
  state: StrictStr
34
34
  __properties: ClassVar[List[str]] = ["count", "state"]
35
35
 
36
- @field_validator('count')
36
+ @field_validator('count', mode="before")
37
37
  def count_validate_regular_expression(cls, value):
38
38
  """Validates the regular expression"""
39
39
  if value is None:
40
40
  return value
41
41
 
42
- if not isinstance(value, str):
43
- value = str(value)
44
-
45
- if not re.match(r"^[0-9]+$", value):
42
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
46
43
  raise ValueError(r"must validate the regular expression /^[0-9]+$/")
47
44
  return value
48
45
 
@@ -20,6 +20,7 @@ import json
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
+ from twitter_openapi_python_generated.models.limited_action_results import LimitedActionResults
23
24
  from twitter_openapi_python_generated.models.media_visibility_results import MediaVisibilityResults
24
25
  from twitter_openapi_python_generated.models.tweet_interstitial import TweetInterstitial
25
26
  from twitter_openapi_python_generated.models.type_name import TypeName
@@ -32,7 +33,7 @@ class TweetWithVisibilityResults(BaseModel):
32
33
  TweetWithVisibilityResults
33
34
  """ # noqa: E501
34
35
  typename: TypeName = Field(alias="__typename")
35
- limited_action_results: Optional[Dict[str, Any]] = Field(default=None, alias="limitedActionResults")
36
+ limited_action_results: Optional[LimitedActionResults] = Field(default=None, alias="limitedActionResults")
36
37
  media_visibility_results: Optional[MediaVisibilityResults] = Field(default=None, alias="mediaVisibilityResults")
37
38
  tweet: Tweet
38
39
  tweet_interstitial: Optional[TweetInterstitial] = Field(default=None, alias="tweetInterstitial")
@@ -77,6 +78,9 @@ class TweetWithVisibilityResults(BaseModel):
77
78
  exclude=excluded_fields,
78
79
  exclude_none=True,
79
80
  )
81
+ # override the default output from pydantic by calling `to_dict()` of limited_action_results
82
+ if self.limited_action_results:
83
+ _dict['limitedActionResults'] = self.limited_action_results.to_dict()
80
84
  # override the default output from pydantic by calling `to_dict()` of media_visibility_results
81
85
  if self.media_visibility_results:
82
86
  _dict['mediaVisibilityResults'] = self.media_visibility_results.to_dict()
@@ -99,7 +103,7 @@ class TweetWithVisibilityResults(BaseModel):
99
103
 
100
104
  _obj = cls.model_validate({
101
105
  "__typename": obj.get("__typename"),
102
- "limitedActionResults": obj.get("limitedActionResults"),
106
+ "limitedActionResults": LimitedActionResults.from_dict(obj["limitedActionResults"]) if obj.get("limitedActionResults") is not None else None,
103
107
  "mediaVisibilityResults": MediaVisibilityResults.from_dict(obj["mediaVisibilityResults"]) if obj.get("mediaVisibilityResults") is not None else None,
104
108
  "tweet": Tweet.from_dict(obj["tweet"]) if obj.get("tweet") is not None else None,
105
109
  "tweetInterstitial": TweetInterstitial.from_dict(obj["tweetInterstitial"]) if obj.get("tweetInterstitial") is not None else None
@@ -0,0 +1,160 @@
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, StrictBool, StrictInt, StrictStr, field_validator
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from typing_extensions import Annotated
24
+ from twitter_openapi_python_generated.models.list_banner_media import ListBannerMedia
25
+ from twitter_openapi_python_generated.models.list_banner_media_results import ListBannerMediaResults
26
+ from twitter_openapi_python_generated.models.user_results import UserResults
27
+ from typing import Optional, Set
28
+ from typing_extensions import Self
29
+ from pydantic_core import to_jsonable_python
30
+
31
+ class TwitterList(BaseModel):
32
+ """
33
+ TwitterList
34
+ """ # noqa: E501
35
+ created_at: StrictInt
36
+ custom_banner_media: Optional[ListBannerMedia] = None
37
+ custom_banner_media_results: Optional[ListBannerMediaResults] = None
38
+ default_banner_media: ListBannerMedia
39
+ default_banner_media_results: ListBannerMediaResults
40
+ description: StrictStr
41
+ facepile_urls: List[StrictStr]
42
+ followers_context: Optional[StrictStr] = None
43
+ following: StrictBool
44
+ id: StrictStr
45
+ id_str: Annotated[str, Field(strict=True)]
46
+ is_member: StrictBool
47
+ member_count: StrictInt
48
+ members_context: Optional[StrictStr] = None
49
+ mode: StrictStr
50
+ muting: StrictBool
51
+ name: StrictStr
52
+ pinning: StrictBool
53
+ subscriber_count: StrictInt
54
+ user_results: UserResults
55
+ __properties: ClassVar[List[str]] = ["created_at", "custom_banner_media", "custom_banner_media_results", "default_banner_media", "default_banner_media_results", "description", "facepile_urls", "followers_context", "following", "id", "id_str", "is_member", "member_count", "members_context", "mode", "muting", "name", "pinning", "subscriber_count", "user_results"]
56
+
57
+ @field_validator('id_str', mode="before")
58
+ def id_str_validate_regular_expression(cls, value):
59
+ """Validates the regular expression"""
60
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
61
+ raise ValueError(r"must validate the regular expression /^[0-9]+$/")
62
+ return value
63
+
64
+ @field_validator('mode')
65
+ def mode_validate_enum(cls, value):
66
+ """Validates the enum"""
67
+ if value not in set(['Public', 'Private']):
68
+ raise ValueError("must be one of enum values ('Public', 'Private')")
69
+ return value
70
+
71
+ model_config = ConfigDict(
72
+ validate_by_name=True,
73
+ validate_by_alias=True,
74
+ validate_assignment=True,
75
+ protected_namespaces=(),
76
+ )
77
+
78
+
79
+ def to_str(self) -> str:
80
+ """Returns the string representation of the model using alias"""
81
+ return pprint.pformat(self.model_dump(by_alias=True))
82
+
83
+ def to_json(self) -> str:
84
+ """Returns the JSON representation of the model using alias"""
85
+ return json.dumps(to_jsonable_python(self.to_dict()))
86
+
87
+ @classmethod
88
+ def from_json(cls, json_str: str) -> Optional[Self]:
89
+ """Create an instance of TwitterList from a JSON string"""
90
+ return cls.from_dict(json.loads(json_str))
91
+
92
+ def to_dict(self) -> Dict[str, Any]:
93
+ """Return the dictionary representation of the model using alias.
94
+
95
+ This has the following differences from calling pydantic's
96
+ `self.model_dump(by_alias=True)`:
97
+
98
+ * `None` is only added to the output dict for nullable fields that
99
+ were set at model initialization. Other fields with value `None`
100
+ are ignored.
101
+ """
102
+ excluded_fields: Set[str] = set([
103
+ ])
104
+
105
+ _dict = self.model_dump(
106
+ by_alias=True,
107
+ exclude=excluded_fields,
108
+ exclude_none=True,
109
+ )
110
+ # override the default output from pydantic by calling `to_dict()` of custom_banner_media
111
+ if self.custom_banner_media:
112
+ _dict['custom_banner_media'] = self.custom_banner_media.to_dict()
113
+ # override the default output from pydantic by calling `to_dict()` of custom_banner_media_results
114
+ if self.custom_banner_media_results:
115
+ _dict['custom_banner_media_results'] = self.custom_banner_media_results.to_dict()
116
+ # override the default output from pydantic by calling `to_dict()` of default_banner_media
117
+ if self.default_banner_media:
118
+ _dict['default_banner_media'] = self.default_banner_media.to_dict()
119
+ # override the default output from pydantic by calling `to_dict()` of default_banner_media_results
120
+ if self.default_banner_media_results:
121
+ _dict['default_banner_media_results'] = self.default_banner_media_results.to_dict()
122
+ # override the default output from pydantic by calling `to_dict()` of user_results
123
+ if self.user_results:
124
+ _dict['user_results'] = self.user_results.to_dict()
125
+ return _dict
126
+
127
+ @classmethod
128
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
129
+ """Create an instance of TwitterList from a dict"""
130
+ if obj is None:
131
+ return None
132
+
133
+ if not isinstance(obj, dict):
134
+ return cls.model_validate(obj)
135
+
136
+ _obj = cls.model_validate({
137
+ "created_at": obj.get("created_at"),
138
+ "custom_banner_media": ListBannerMedia.from_dict(obj["custom_banner_media"]) if obj.get("custom_banner_media") is not None else None,
139
+ "custom_banner_media_results": ListBannerMediaResults.from_dict(obj["custom_banner_media_results"]) if obj.get("custom_banner_media_results") is not None else None,
140
+ "default_banner_media": ListBannerMedia.from_dict(obj["default_banner_media"]) if obj.get("default_banner_media") is not None else None,
141
+ "default_banner_media_results": ListBannerMediaResults.from_dict(obj["default_banner_media_results"]) if obj.get("default_banner_media_results") is not None else None,
142
+ "description": obj.get("description"),
143
+ "facepile_urls": obj.get("facepile_urls"),
144
+ "followers_context": obj.get("followers_context"),
145
+ "following": obj.get("following"),
146
+ "id": obj.get("id"),
147
+ "id_str": obj.get("id_str"),
148
+ "is_member": obj.get("is_member"),
149
+ "member_count": obj.get("member_count"),
150
+ "members_context": obj.get("members_context"),
151
+ "mode": obj.get("mode"),
152
+ "muting": obj.get("muting"),
153
+ "name": obj.get("name"),
154
+ "pinning": obj.get("pinning"),
155
+ "subscriber_count": obj.get("subscriber_count"),
156
+ "user_results": UserResults.from_dict(obj["user_results"]) if obj.get("user_results") is not None else None
157
+ })
158
+ return _obj
159
+
160
+
@@ -28,6 +28,10 @@ class TypeName(str, Enum):
28
28
  allowed enum values
29
29
  """
30
30
  TIMELINETWEET = 'TimelineTweet'
31
+ SEGMENTEDTIMELINES = 'SegmentedTimelines'
32
+ TIMELINEFRAME = 'TimelineFrame'
33
+ TIMELINETWITTERLIST = 'TimelineTwitterList'
34
+ TIMELINELABEL = 'TimelineLabel'
31
35
  TIMELINETIMELINEITEM = 'TimelineTimelineItem'
32
36
  TIMELINEUSER = 'TimelineUser'
33
37
  TIMELINETIMELINECURSOR = 'TimelineTimelineCursor'
@@ -58,6 +62,9 @@ class TypeName(str, Enum):
58
62
  COMMUNITYJOINREQUESTSUNAVAILABLE = 'CommunityJoinRequestsUnavailable'
59
63
  COMMUNITYUNAVAILABLE = 'CommunityUnavailable'
60
64
  APIIMAGE = 'ApiImage'
65
+ APIMEDIA = 'ApiMedia'
66
+ COMMUNITYUSERDEFAULTMODERATIONSTATE = 'CommunityUserDefaultModerationState'
67
+ CTALIMITEDACTIONPROMPT = 'CtaLimitedActionPrompt'
61
68
  TIMELINERICHTEXTUSER = 'TimelineRichTextUser'
62
69
 
63
70
  @classmethod
@@ -80,8 +80,7 @@ class UnfavoriteTweetResponse(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
 
@@ -19,7 +19,7 @@ import re # noqa: F401
19
19
  import json
20
20
 
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
- from typing import Any, ClassVar, Dict, List
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
23
  from twitter_openapi_python_generated.models.urt_endpoint_request_params import UrtEndpointRequestParams
24
24
  from typing import Optional, Set
25
25
  from typing_extensions import Self
@@ -30,7 +30,7 @@ class UrtEndpointOptions(BaseModel):
30
30
  UrtEndpointOptions
31
31
  """ # noqa: E501
32
32
  request_params: List[UrtEndpointRequestParams] = Field(alias="requestParams")
33
- title: StrictStr
33
+ title: Optional[StrictStr] = None
34
34
  __properties: ClassVar[List[str]] = ["requestParams", "title"]
35
35
 
36
36
  model_config = ConfigDict(
@@ -76,8 +76,7 @@ class UrtEndpointOptions(BaseModel):
76
76
  _items = []
77
77
  if self.request_params:
78
78
  for _item_request_params in self.request_params:
79
- if _item_request_params:
80
- _items.append(_item_request_params.to_dict())
79
+ _items.append(_item_request_params.to_dict() if _item_request_params is not None else None)
81
80
  _dict['requestParams'] = _items
82
81
  return _dict
83
82
 
@@ -21,9 +21,12 @@ import json
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing_extensions import Annotated
24
+ from twitter_openapi_python_generated.models.affiliates_highlighted_label import AffiliatesHighlightedLabel
24
25
  from twitter_openapi_python_generated.models.profile_bio import ProfileBio
25
26
  from twitter_openapi_python_generated.models.type_name import TypeName
27
+ from twitter_openapi_python_generated.models.user_action_counts import UserActionCounts
26
28
  from twitter_openapi_python_generated.models.user_avatar import UserAvatar
29
+ from twitter_openapi_python_generated.models.user_banner import UserBanner
27
30
  from twitter_openapi_python_generated.models.user_core import UserCore
28
31
  from twitter_openapi_python_generated.models.user_dm_permissions import UserDmPermissions
29
32
  from twitter_openapi_python_generated.models.user_highlights_info import UserHighlightsInfo
@@ -31,13 +34,20 @@ from twitter_openapi_python_generated.models.user_legacy import UserLegacy
31
34
  from twitter_openapi_python_generated.models.user_legacy_extended_profile import UserLegacyExtendedProfile
32
35
  from twitter_openapi_python_generated.models.user_location import UserLocation
33
36
  from twitter_openapi_python_generated.models.user_media_permissions import UserMediaPermissions
37
+ from twitter_openapi_python_generated.models.user_notifications_settings import UserNotificationsSettings
38
+ from twitter_openapi_python_generated.models.user_pinned_items import UserPinnedItems
34
39
  from twitter_openapi_python_generated.models.user_privacy import UserPrivacy
35
40
  from twitter_openapi_python_generated.models.user_professional import UserProfessional
36
41
  from twitter_openapi_python_generated.models.user_profile import UserProfile
42
+ from twitter_openapi_python_generated.models.user_profile_metadata import UserProfileMetadata
43
+ from twitter_openapi_python_generated.models.user_profile_translation import UserProfileTranslation
44
+ from twitter_openapi_python_generated.models.user_relationship_counts import UserRelationshipCounts
37
45
  from twitter_openapi_python_generated.models.user_relationship_perspectives import UserRelationshipPerspectives
38
46
  from twitter_openapi_python_generated.models.user_tip_jar_settings import UserTipJarSettings
47
+ from twitter_openapi_python_generated.models.user_tweet_counts import UserTweetCounts
39
48
  from twitter_openapi_python_generated.models.user_verification import UserVerification
40
49
  from twitter_openapi_python_generated.models.user_verification_info import UserVerificationInfo
50
+ from twitter_openapi_python_generated.models.user_website import UserWebsite
41
51
  from typing import Optional, Set
42
52
  from typing_extensions import Self
43
53
  from pydantic_core import to_jsonable_python
@@ -47,12 +57,16 @@ class User(BaseModel):
47
57
  User
48
58
  """ # noqa: E501
49
59
  typename: TypeName = Field(alias="__typename")
50
- affiliates_highlighted_label: Optional[Dict[str, Any]] = None
60
+ action_counts: Optional[UserActionCounts] = None
61
+ affiliates_highlighted_label: Optional[AffiliatesHighlightedLabel] = None
51
62
  avatar: Optional[UserAvatar] = None
63
+ banner: Optional[UserBanner] = None
52
64
  business_account: Optional[Dict[str, Any]] = None
53
65
  core: Optional[UserCore] = None
54
66
  creator_subscriptions_count: Optional[StrictInt] = None
55
67
  dm_permissions: Optional[UserDmPermissions] = None
68
+ follow_request_sent: Optional[StrictBool] = None
69
+ grok_translated_bio_with_availability: Optional[GrokTranslatedBioWithAvailability] = None
56
70
  has_graduated_access: Optional[StrictBool] = None
57
71
  has_hidden_likes_on_profile: Optional[StrictBool] = None
58
72
  has_hidden_subscriptions_on_profile: Optional[StrictBool] = None
@@ -61,18 +75,25 @@ class User(BaseModel):
61
75
  id: Annotated[str, Field(strict=True)]
62
76
  is_blue_verified: StrictBool
63
77
  is_profile_translatable: Optional[StrictBool] = None
64
- legacy: UserLegacy
78
+ is_verified_organization: Optional[StrictBool] = None
79
+ legacy: Optional[UserLegacy] = None
65
80
  legacy_extended_profile: Optional[UserLegacyExtendedProfile] = None
66
81
  location: Optional[UserLocation] = None
67
82
  media_permissions: Optional[UserMediaPermissions] = None
83
+ notifications_settings: Optional[UserNotificationsSettings] = None
68
84
  parody_commentary_fan_label: Optional[StrictStr] = None
85
+ pinned_items: Optional[UserPinnedItems] = None
86
+ possibly_sensitive: Optional[StrictBool] = None
69
87
  premium_gifting_eligible: Optional[StrictBool] = None
70
88
  privacy: Optional[UserPrivacy] = None
71
89
  professional: Optional[UserProfessional] = None
72
90
  profile_bio: Optional[ProfileBio] = None
73
91
  profile_description_language: Optional[StrictStr] = None
74
92
  profile_image_shape: StrictStr
93
+ profile_metadata: Optional[UserProfileMetadata] = None
75
94
  profile_sort_enabled: Optional[StrictBool] = None
95
+ profile_translation: Optional[UserProfileTranslation] = None
96
+ relationship_counts: Optional[UserRelationshipCounts] = None
76
97
  relationship_perspectives: Optional[UserRelationshipPerspectives] = None
77
98
  rest_id: Annotated[str, Field(strict=True)]
78
99
  super_follow_eligible: Optional[StrictBool] = None
@@ -80,19 +101,18 @@ class User(BaseModel):
80
101
  super_following: Optional[StrictBool] = None
81
102
  super_follows_user_profile: Optional[UserProfile] = None
82
103
  tipjar_settings: Optional[UserTipJarSettings] = None
104
+ tweet_counts: Optional[UserTweetCounts] = None
83
105
  user_seed_tweet_count: Optional[StrictInt] = None
84
106
  verification: Optional[UserVerification] = None
85
107
  verification_info: Optional[UserVerificationInfo] = None
86
108
  verified_user_profiles: Optional[UserProfile] = None
87
- __properties: ClassVar[List[str]] = ["__typename", "affiliates_highlighted_label", "avatar", "business_account", "core", "creator_subscriptions_count", "dm_permissions", "has_graduated_access", "has_hidden_likes_on_profile", "has_hidden_subscriptions_on_profile", "has_nft_avatar", "highlights_info", "id", "is_blue_verified", "is_profile_translatable", "legacy", "legacy_extended_profile", "location", "media_permissions", "parody_commentary_fan_label", "premium_gifting_eligible", "privacy", "professional", "profile_bio", "profile_description_language", "profile_image_shape", "profile_sort_enabled", "relationship_perspectives", "rest_id", "super_follow_eligible", "super_followed_by", "super_following", "super_follows_user_profile", "tipjar_settings", "user_seed_tweet_count", "verification", "verification_info", "verified_user_profiles"]
109
+ website: Optional[UserWebsite] = None
110
+ __properties: ClassVar[List[str]] = ["__typename", "action_counts", "affiliates_highlighted_label", "avatar", "banner", "business_account", "core", "creator_subscriptions_count", "dm_permissions", "follow_request_sent", "grok_translated_bio_with_availability", "has_graduated_access", "has_hidden_likes_on_profile", "has_hidden_subscriptions_on_profile", "has_nft_avatar", "highlights_info", "id", "is_blue_verified", "is_profile_translatable", "is_verified_organization", "legacy", "legacy_extended_profile", "location", "media_permissions", "notifications_settings", "parody_commentary_fan_label", "pinned_items", "possibly_sensitive", "premium_gifting_eligible", "privacy", "professional", "profile_bio", "profile_description_language", "profile_image_shape", "profile_metadata", "profile_sort_enabled", "profile_translation", "relationship_counts", "relationship_perspectives", "rest_id", "super_follow_eligible", "super_followed_by", "super_following", "super_follows_user_profile", "tipjar_settings", "tweet_counts", "user_seed_tweet_count", "verification", "verification_info", "verified_user_profiles", "website"]
88
111
 
89
- @field_validator('id')
112
+ @field_validator('id', mode="before")
90
113
  def id_validate_regular_expression(cls, value):
91
114
  """Validates the regular expression"""
92
- if not isinstance(value, str):
93
- value = str(value)
94
-
95
- if not re.match(r"^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)?$", value):
115
+ 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):
96
116
  raise ValueError(r"must validate the regular expression /^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)?$/")
97
117
  return value
98
118
 
@@ -113,13 +133,10 @@ class User(BaseModel):
113
133
  raise ValueError("must be one of enum values ('Circle', 'Square', 'Hexagon')")
114
134
  return value
115
135
 
116
- @field_validator('rest_id')
136
+ @field_validator('rest_id', mode="before")
117
137
  def rest_id_validate_regular_expression(cls, value):
118
138
  """Validates the regular expression"""
119
- if not isinstance(value, str):
120
- value = str(value)
121
-
122
- if not re.match(r"^[0-9]+$", value):
139
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
123
140
  raise ValueError(r"must validate the regular expression /^[0-9]+$/")
124
141
  return value
125
142
 
@@ -162,15 +179,27 @@ class User(BaseModel):
162
179
  exclude=excluded_fields,
163
180
  exclude_none=True,
164
181
  )
182
+ # override the default output from pydantic by calling `to_dict()` of action_counts
183
+ if self.action_counts:
184
+ _dict['action_counts'] = self.action_counts.to_dict()
185
+ # override the default output from pydantic by calling `to_dict()` of affiliates_highlighted_label
186
+ if self.affiliates_highlighted_label:
187
+ _dict['affiliates_highlighted_label'] = self.affiliates_highlighted_label.to_dict()
165
188
  # override the default output from pydantic by calling `to_dict()` of avatar
166
189
  if self.avatar:
167
190
  _dict['avatar'] = self.avatar.to_dict()
191
+ # override the default output from pydantic by calling `to_dict()` of banner
192
+ if self.banner:
193
+ _dict['banner'] = self.banner.to_dict()
168
194
  # override the default output from pydantic by calling `to_dict()` of core
169
195
  if self.core:
170
196
  _dict['core'] = self.core.to_dict()
171
197
  # override the default output from pydantic by calling `to_dict()` of dm_permissions
172
198
  if self.dm_permissions:
173
199
  _dict['dm_permissions'] = self.dm_permissions.to_dict()
200
+ # override the default output from pydantic by calling `to_dict()` of grok_translated_bio_with_availability
201
+ if self.grok_translated_bio_with_availability:
202
+ _dict['grok_translated_bio_with_availability'] = self.grok_translated_bio_with_availability.to_dict()
174
203
  # override the default output from pydantic by calling `to_dict()` of highlights_info
175
204
  if self.highlights_info:
176
205
  _dict['highlights_info'] = self.highlights_info.to_dict()
@@ -186,6 +215,12 @@ class User(BaseModel):
186
215
  # override the default output from pydantic by calling `to_dict()` of media_permissions
187
216
  if self.media_permissions:
188
217
  _dict['media_permissions'] = self.media_permissions.to_dict()
218
+ # override the default output from pydantic by calling `to_dict()` of notifications_settings
219
+ if self.notifications_settings:
220
+ _dict['notifications_settings'] = self.notifications_settings.to_dict()
221
+ # override the default output from pydantic by calling `to_dict()` of pinned_items
222
+ if self.pinned_items:
223
+ _dict['pinned_items'] = self.pinned_items.to_dict()
189
224
  # override the default output from pydantic by calling `to_dict()` of privacy
190
225
  if self.privacy:
191
226
  _dict['privacy'] = self.privacy.to_dict()
@@ -195,6 +230,15 @@ class User(BaseModel):
195
230
  # override the default output from pydantic by calling `to_dict()` of profile_bio
196
231
  if self.profile_bio:
197
232
  _dict['profile_bio'] = self.profile_bio.to_dict()
233
+ # override the default output from pydantic by calling `to_dict()` of profile_metadata
234
+ if self.profile_metadata:
235
+ _dict['profile_metadata'] = self.profile_metadata.to_dict()
236
+ # override the default output from pydantic by calling `to_dict()` of profile_translation
237
+ if self.profile_translation:
238
+ _dict['profile_translation'] = self.profile_translation.to_dict()
239
+ # override the default output from pydantic by calling `to_dict()` of relationship_counts
240
+ if self.relationship_counts:
241
+ _dict['relationship_counts'] = self.relationship_counts.to_dict()
198
242
  # override the default output from pydantic by calling `to_dict()` of relationship_perspectives
199
243
  if self.relationship_perspectives:
200
244
  _dict['relationship_perspectives'] = self.relationship_perspectives.to_dict()
@@ -204,6 +248,9 @@ class User(BaseModel):
204
248
  # override the default output from pydantic by calling `to_dict()` of tipjar_settings
205
249
  if self.tipjar_settings:
206
250
  _dict['tipjar_settings'] = self.tipjar_settings.to_dict()
251
+ # override the default output from pydantic by calling `to_dict()` of tweet_counts
252
+ if self.tweet_counts:
253
+ _dict['tweet_counts'] = self.tweet_counts.to_dict()
207
254
  # override the default output from pydantic by calling `to_dict()` of verification
208
255
  if self.verification:
209
256
  _dict['verification'] = self.verification.to_dict()
@@ -213,6 +260,9 @@ class User(BaseModel):
213
260
  # override the default output from pydantic by calling `to_dict()` of verified_user_profiles
214
261
  if self.verified_user_profiles:
215
262
  _dict['verified_user_profiles'] = self.verified_user_profiles.to_dict()
263
+ # override the default output from pydantic by calling `to_dict()` of website
264
+ if self.website:
265
+ _dict['website'] = self.website.to_dict()
216
266
  return _dict
217
267
 
218
268
  @classmethod
@@ -226,12 +276,16 @@ class User(BaseModel):
226
276
 
227
277
  _obj = cls.model_validate({
228
278
  "__typename": obj.get("__typename"),
229
- "affiliates_highlighted_label": obj.get("affiliates_highlighted_label"),
279
+ "action_counts": UserActionCounts.from_dict(obj["action_counts"]) if obj.get("action_counts") is not None else None,
280
+ "affiliates_highlighted_label": AffiliatesHighlightedLabel.from_dict(obj["affiliates_highlighted_label"]) if obj.get("affiliates_highlighted_label") is not None else None,
230
281
  "avatar": UserAvatar.from_dict(obj["avatar"]) if obj.get("avatar") is not None else None,
282
+ "banner": UserBanner.from_dict(obj["banner"]) if obj.get("banner") is not None else None,
231
283
  "business_account": obj.get("business_account"),
232
284
  "core": UserCore.from_dict(obj["core"]) if obj.get("core") is not None else None,
233
285
  "creator_subscriptions_count": obj.get("creator_subscriptions_count"),
234
286
  "dm_permissions": UserDmPermissions.from_dict(obj["dm_permissions"]) if obj.get("dm_permissions") is not None else None,
287
+ "follow_request_sent": obj.get("follow_request_sent"),
288
+ "grok_translated_bio_with_availability": GrokTranslatedBioWithAvailability.from_dict(obj["grok_translated_bio_with_availability"]) if obj.get("grok_translated_bio_with_availability") is not None else None,
235
289
  "has_graduated_access": obj.get("has_graduated_access"),
236
290
  "has_hidden_likes_on_profile": obj.get("has_hidden_likes_on_profile"),
237
291
  "has_hidden_subscriptions_on_profile": obj.get("has_hidden_subscriptions_on_profile"),
@@ -240,18 +294,25 @@ class User(BaseModel):
240
294
  "id": obj.get("id"),
241
295
  "is_blue_verified": obj.get("is_blue_verified"),
242
296
  "is_profile_translatable": obj.get("is_profile_translatable"),
297
+ "is_verified_organization": obj.get("is_verified_organization"),
243
298
  "legacy": UserLegacy.from_dict(obj["legacy"]) if obj.get("legacy") is not None else None,
244
299
  "legacy_extended_profile": UserLegacyExtendedProfile.from_dict(obj["legacy_extended_profile"]) if obj.get("legacy_extended_profile") is not None else None,
245
300
  "location": UserLocation.from_dict(obj["location"]) if obj.get("location") is not None else None,
246
301
  "media_permissions": UserMediaPermissions.from_dict(obj["media_permissions"]) if obj.get("media_permissions") is not None else None,
302
+ "notifications_settings": UserNotificationsSettings.from_dict(obj["notifications_settings"]) if obj.get("notifications_settings") is not None else None,
247
303
  "parody_commentary_fan_label": obj.get("parody_commentary_fan_label"),
304
+ "pinned_items": UserPinnedItems.from_dict(obj["pinned_items"]) if obj.get("pinned_items") is not None else None,
305
+ "possibly_sensitive": obj.get("possibly_sensitive"),
248
306
  "premium_gifting_eligible": obj.get("premium_gifting_eligible"),
249
307
  "privacy": UserPrivacy.from_dict(obj["privacy"]) if obj.get("privacy") is not None else None,
250
308
  "professional": UserProfessional.from_dict(obj["professional"]) if obj.get("professional") is not None else None,
251
309
  "profile_bio": ProfileBio.from_dict(obj["profile_bio"]) if obj.get("profile_bio") is not None else None,
252
310
  "profile_description_language": obj.get("profile_description_language"),
253
311
  "profile_image_shape": obj.get("profile_image_shape"),
312
+ "profile_metadata": UserProfileMetadata.from_dict(obj["profile_metadata"]) if obj.get("profile_metadata") is not None else None,
254
313
  "profile_sort_enabled": obj.get("profile_sort_enabled"),
314
+ "profile_translation": UserProfileTranslation.from_dict(obj["profile_translation"]) if obj.get("profile_translation") is not None else None,
315
+ "relationship_counts": UserRelationshipCounts.from_dict(obj["relationship_counts"]) if obj.get("relationship_counts") is not None else None,
255
316
  "relationship_perspectives": UserRelationshipPerspectives.from_dict(obj["relationship_perspectives"]) if obj.get("relationship_perspectives") is not None else None,
256
317
  "rest_id": obj.get("rest_id"),
257
318
  "super_follow_eligible": obj.get("super_follow_eligible"),
@@ -259,11 +320,16 @@ class User(BaseModel):
259
320
  "super_following": obj.get("super_following"),
260
321
  "super_follows_user_profile": UserProfile.from_dict(obj["super_follows_user_profile"]) if obj.get("super_follows_user_profile") is not None else None,
261
322
  "tipjar_settings": UserTipJarSettings.from_dict(obj["tipjar_settings"]) if obj.get("tipjar_settings") is not None else None,
323
+ "tweet_counts": UserTweetCounts.from_dict(obj["tweet_counts"]) if obj.get("tweet_counts") is not None else None,
262
324
  "user_seed_tweet_count": obj.get("user_seed_tweet_count"),
263
325
  "verification": UserVerification.from_dict(obj["verification"]) if obj.get("verification") is not None else None,
264
326
  "verification_info": UserVerificationInfo.from_dict(obj["verification_info"]) if obj.get("verification_info") is not None else None,
265
- "verified_user_profiles": UserProfile.from_dict(obj["verified_user_profiles"]) if obj.get("verified_user_profiles") is not None else None
327
+ "verified_user_profiles": UserProfile.from_dict(obj["verified_user_profiles"]) if obj.get("verified_user_profiles") is not None else None,
328
+ "website": UserWebsite.from_dict(obj["website"]) if obj.get("website") is not None else None
266
329
  })
267
330
  return _obj
268
331
 
332
+ from twitter_openapi_python_generated.models.grok_translated_bio_with_availability import GrokTranslatedBioWithAvailability
333
+ # TODO: Rewrite to not use raise_errors
334
+ User.model_rebuild(raise_errors=False)
269
335