twitter-openapi-python-generated 0.0.33__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 (451) hide show
  1. twitter_openapi_python_generated/__init__.py +906 -330
  2. twitter_openapi_python_generated/api/default_api.py +1 -2
  3. twitter_openapi_python_generated/api/other_api.py +1 -2
  4. twitter_openapi_python_generated/api/post_api.py +2081 -206
  5. twitter_openapi_python_generated/api/tweet_api.py +3225 -250
  6. twitter_openapi_python_generated/api/user_api.py +993 -91
  7. twitter_openapi_python_generated/api/user_list_api.py +2291 -68
  8. twitter_openapi_python_generated/api/users_api.py +1 -2
  9. twitter_openapi_python_generated/api/v11_get_api.py +1 -2
  10. twitter_openapi_python_generated/api/v11_post_api.py +1 -2
  11. twitter_openapi_python_generated/api/v20_get_api.py +1 -2
  12. twitter_openapi_python_generated/api_client.py +81 -36
  13. twitter_openapi_python_generated/configuration.py +103 -30
  14. twitter_openapi_python_generated/exceptions.py +7 -5
  15. twitter_openapi_python_generated/models/__init__.py +123 -2
  16. twitter_openapi_python_generated/models/about_community_result.py +4 -3
  17. twitter_openapi_python_generated/models/about_community_results.py +4 -3
  18. twitter_openapi_python_generated/models/about_community_tweet_data.py +4 -3
  19. twitter_openapi_python_generated/models/additional_media_info.py +7 -4
  20. twitter_openapi_python_generated/models/additional_media_info_call_to_actions.py +4 -3
  21. twitter_openapi_python_generated/models/additional_media_info_call_to_actions_url.py +4 -3
  22. twitter_openapi_python_generated/models/allow_download_status.py +4 -3
  23. twitter_openapi_python_generated/models/analysis_results.py +4 -3
  24. twitter_openapi_python_generated/models/article.py +4 -3
  25. twitter_openapi_python_generated/models/article_cover_media.py +6 -5
  26. twitter_openapi_python_generated/models/article_cover_media_color_info.py +5 -5
  27. twitter_openapi_python_generated/models/article_cover_media_color_info_palette.py +4 -3
  28. twitter_openapi_python_generated/models/article_cover_media_color_info_palette_rgb.py +4 -3
  29. twitter_openapi_python_generated/models/article_cover_media_info.py +4 -3
  30. twitter_openapi_python_generated/models/article_lifecycle_state.py +4 -3
  31. twitter_openapi_python_generated/models/article_metadata.py +4 -3
  32. twitter_openapi_python_generated/models/article_preview.py +99 -0
  33. twitter_openapi_python_generated/models/article_result.py +21 -8
  34. twitter_openapi_python_generated/models/article_results.py +4 -3
  35. twitter_openapi_python_generated/models/author_community_relationship.py +9 -8
  36. twitter_openapi_python_generated/models/badge_counts.py +97 -0
  37. twitter_openapi_python_generated/models/birdwatch_entity.py +4 -3
  38. twitter_openapi_python_generated/models/birdwatch_entity_ref.py +7 -4
  39. twitter_openapi_python_generated/models/birdwatch_pivot.py +19 -6
  40. twitter_openapi_python_generated/models/birdwatch_pivot_call_to_action.py +4 -3
  41. twitter_openapi_python_generated/models/birdwatch_pivot_footer.py +5 -5
  42. twitter_openapi_python_generated/models/birdwatch_pivot_note.py +19 -8
  43. twitter_openapi_python_generated/models/birdwatch_pivot_subtitle.py +5 -5
  44. twitter_openapi_python_generated/models/bookmarks_response.py +5 -5
  45. twitter_openapi_python_generated/models/bookmarks_response_data.py +4 -3
  46. twitter_openapi_python_generated/models/bookmarks_timeline.py +4 -3
  47. twitter_openapi_python_generated/models/callback.py +4 -3
  48. twitter_openapi_python_generated/models/cashtag_attachment.py +89 -0
  49. twitter_openapi_python_generated/models/client_event_info.py +4 -3
  50. twitter_openapi_python_generated/models/communities_actions.py +4 -3
  51. twitter_openapi_python_generated/models/community.py +141 -12
  52. twitter_openapi_python_generated/models/community_about_timeline_response.py +5 -5
  53. twitter_openapi_python_generated/models/community_actions.py +4 -3
  54. twitter_openapi_python_generated/models/community_delete_action_result.py +4 -3
  55. twitter_openapi_python_generated/models/community_discovery_timeline_response.py +102 -0
  56. twitter_openapi_python_generated/models/community_discovery_timeline_response_data.py +93 -0
  57. twitter_openapi_python_generated/models/community_discovery_timeline_viewer.py +93 -0
  58. twitter_openapi_python_generated/models/community_invites_result.py +4 -3
  59. twitter_openapi_python_generated/models/community_join_action.py +4 -3
  60. twitter_openapi_python_generated/models/community_join_action_result_union.py +3 -2
  61. twitter_openapi_python_generated/models/community_join_action_unavailable.py +4 -3
  62. twitter_openapi_python_generated/models/community_join_requests_result.py +4 -3
  63. twitter_openapi_python_generated/models/community_leave_action_result.py +4 -3
  64. twitter_openapi_python_generated/models/community_media_timeline_response.py +5 -5
  65. twitter_openapi_python_generated/models/community_pin_action_result.py +4 -3
  66. twitter_openapi_python_generated/models/community_relationship.py +6 -5
  67. twitter_openapi_python_generated/models/community_result.py +93 -0
  68. twitter_openapi_python_generated/models/community_rule.py +6 -5
  69. twitter_openapi_python_generated/models/community_tweets_timeline_response.py +5 -5
  70. twitter_openapi_python_generated/models/community_unavailable.py +90 -0
  71. twitter_openapi_python_generated/models/community_union.py +157 -0
  72. twitter_openapi_python_generated/models/community_unpin_action_result.py +4 -3
  73. twitter_openapi_python_generated/models/community_urls.py +4 -3
  74. twitter_openapi_python_generated/models/community_urls_permalink.py +4 -3
  75. twitter_openapi_python_generated/models/connect_tab_timeline_response.py +102 -0
  76. twitter_openapi_python_generated/models/connect_tab_timeline_response_data.py +93 -0
  77. twitter_openapi_python_generated/models/content_disclosure.py +99 -0
  78. twitter_openapi_python_generated/models/content_disclosure_advertising_disclosure.py +89 -0
  79. twitter_openapi_python_generated/models/content_disclosure_ai_generated_disclosure.py +103 -0
  80. twitter_openapi_python_generated/models/content_item_type.py +3 -0
  81. twitter_openapi_python_generated/models/content_union.py +3 -2
  82. twitter_openapi_python_generated/models/conversation_control.py +4 -3
  83. twitter_openapi_python_generated/models/cover_cta.py +5 -5
  84. twitter_openapi_python_generated/models/create_bookmark_response.py +5 -5
  85. twitter_openapi_python_generated/models/create_bookmark_response_data.py +4 -3
  86. twitter_openapi_python_generated/models/create_draft_tweet_response.py +102 -0
  87. twitter_openapi_python_generated/models/create_draft_tweet_response_data.py +93 -0
  88. twitter_openapi_python_generated/models/create_draft_tweet_response_tweet.py +97 -0
  89. twitter_openapi_python_generated/models/create_retweet.py +4 -3
  90. twitter_openapi_python_generated/models/create_retweet_response.py +5 -5
  91. twitter_openapi_python_generated/models/create_retweet_response_data.py +4 -3
  92. twitter_openapi_python_generated/models/create_retweet_response_result.py +4 -3
  93. twitter_openapi_python_generated/models/create_tweet.py +4 -3
  94. twitter_openapi_python_generated/models/create_tweet_response.py +5 -5
  95. twitter_openapi_python_generated/models/create_tweet_response_data.py +4 -3
  96. twitter_openapi_python_generated/models/create_tweet_response_result.py +4 -3
  97. twitter_openapi_python_generated/models/cta_client_event_info.py +4 -3
  98. twitter_openapi_python_generated/models/delete_bookmark_response.py +5 -5
  99. twitter_openapi_python_generated/models/delete_bookmark_response_data.py +4 -3
  100. twitter_openapi_python_generated/models/delete_draft_tweets_response.py +102 -0
  101. twitter_openapi_python_generated/models/delete_draft_tweets_response_data.py +89 -0
  102. twitter_openapi_python_generated/models/delete_list_response.py +102 -0
  103. twitter_openapi_python_generated/models/delete_list_response_data.py +89 -0
  104. twitter_openapi_python_generated/models/delete_retweet.py +5 -5
  105. twitter_openapi_python_generated/models/delete_retweet_response.py +5 -5
  106. twitter_openapi_python_generated/models/delete_retweet_response_data.py +4 -3
  107. twitter_openapi_python_generated/models/delete_retweet_response_result.py +4 -3
  108. twitter_openapi_python_generated/models/delete_tweet_response.py +5 -5
  109. twitter_openapi_python_generated/models/delete_tweet_response_data.py +4 -3
  110. twitter_openapi_python_generated/models/delete_tweet_response_result.py +4 -3
  111. twitter_openapi_python_generated/models/display_treatment.py +4 -3
  112. twitter_openapi_python_generated/models/draft_list.py +96 -0
  113. twitter_openapi_python_generated/models/draft_tweet.py +109 -0
  114. twitter_openapi_python_generated/models/draft_tweet_create_request.py +99 -0
  115. twitter_openapi_python_generated/models/draft_tweet_user.py +100 -0
  116. twitter_openapi_python_generated/models/draft_tweet_user_results.py +93 -0
  117. twitter_openapi_python_generated/models/draft_tweets_viewer.py +93 -0
  118. twitter_openapi_python_generated/models/entities.py +24 -15
  119. twitter_openapi_python_generated/models/error_extensions.py +5 -4
  120. twitter_openapi_python_generated/models/error_response.py +15 -8
  121. twitter_openapi_python_generated/models/error_response_path_inner.py +144 -0
  122. twitter_openapi_python_generated/models/explore_page.py +95 -0
  123. twitter_openapi_python_generated/models/explore_page_body.py +104 -0
  124. twitter_openapi_python_generated/models/explore_page_response.py +102 -0
  125. twitter_openapi_python_generated/models/explore_page_response_data.py +93 -0
  126. twitter_openapi_python_generated/models/explore_timeline.py +105 -0
  127. twitter_openapi_python_generated/models/explore_timeline_scribe_config.py +91 -0
  128. twitter_openapi_python_generated/models/ext_media_availability.py +4 -3
  129. twitter_openapi_python_generated/models/extended_entities.py +5 -5
  130. twitter_openapi_python_generated/models/favorite_tweet.py +4 -3
  131. twitter_openapi_python_generated/models/favorite_tweet_response.py +5 -5
  132. twitter_openapi_python_generated/models/feedback_info.py +4 -3
  133. twitter_openapi_python_generated/models/fetch_draft_tweets_response.py +102 -0
  134. twitter_openapi_python_generated/models/fetch_draft_tweets_response_data.py +93 -0
  135. twitter_openapi_python_generated/models/fetch_scheduled_tweets_response.py +102 -0
  136. twitter_openapi_python_generated/models/fetch_scheduled_tweets_response_data.py +93 -0
  137. twitter_openapi_python_generated/models/follow_response.py +5 -5
  138. twitter_openapi_python_generated/models/follow_response_data.py +4 -3
  139. twitter_openapi_python_generated/models/follow_response_result.py +4 -3
  140. twitter_openapi_python_generated/models/follow_response_user.py +4 -3
  141. twitter_openapi_python_generated/models/follow_timeline.py +4 -3
  142. twitter_openapi_python_generated/models/generic_timeline_by_id_response.py +102 -0
  143. twitter_openapi_python_generated/models/generic_timeline_by_id_response_data.py +93 -0
  144. twitter_openapi_python_generated/models/grok_annotation.py +89 -0
  145. twitter_openapi_python_generated/models/grok_entity.py +97 -0
  146. twitter_openapi_python_generated/models/grok_entity_ref.py +116 -0
  147. twitter_openapi_python_generated/models/grok_image_annotation.py +4 -3
  148. twitter_openapi_python_generated/models/grok_share_attachment.py +5 -5
  149. twitter_openapi_python_generated/models/grok_share_attachment_item.py +7 -4
  150. twitter_openapi_python_generated/models/grok_translated_bio.py +101 -0
  151. twitter_openapi_python_generated/models/grok_translated_bio_with_availability.py +97 -0
  152. twitter_openapi_python_generated/models/grok_translated_community_note.py +104 -0
  153. twitter_openapi_python_generated/models/grok_translated_community_note_with_availability.py +95 -0
  154. twitter_openapi_python_generated/models/grok_translated_post.py +103 -0
  155. twitter_openapi_python_generated/models/grok_translated_post_with_availability.py +95 -0
  156. twitter_openapi_python_generated/models/highlight.py +5 -5
  157. twitter_openapi_python_generated/models/home_timeline_home.py +4 -3
  158. twitter_openapi_python_generated/models/home_timeline_response_data.py +4 -3
  159. twitter_openapi_python_generated/models/instruction_union.py +3 -2
  160. twitter_openapi_python_generated/models/item_content_union.py +68 -10
  161. twitter_openapi_python_generated/models/item_result.py +4 -3
  162. twitter_openapi_python_generated/models/limited_action_results_data.py +4 -3
  163. twitter_openapi_python_generated/models/list_banner_media.py +93 -0
  164. twitter_openapi_python_generated/models/list_banner_media_info.py +99 -0
  165. twitter_openapi_python_generated/models/list_banner_media_salient_rect.py +95 -0
  166. twitter_openapi_python_generated/models/list_latest_tweets_timeline_response.py +5 -5
  167. twitter_openapi_python_generated/models/list_members_list.py +93 -0
  168. twitter_openapi_python_generated/models/list_members_response.py +102 -0
  169. twitter_openapi_python_generated/models/list_members_response_data.py +93 -0
  170. twitter_openapi_python_generated/models/list_recommended_users_list.py +93 -0
  171. twitter_openapi_python_generated/models/list_recommended_users_response.py +102 -0
  172. twitter_openapi_python_generated/models/list_recommended_users_response_data.py +93 -0
  173. twitter_openapi_python_generated/models/list_response.py +102 -0
  174. twitter_openapi_python_generated/models/list_response_data.py +93 -0
  175. twitter_openapi_python_generated/models/list_subscribers_list.py +93 -0
  176. twitter_openapi_python_generated/models/list_subscribers_response.py +102 -0
  177. twitter_openapi_python_generated/models/list_subscribers_response_data.py +93 -0
  178. twitter_openapi_python_generated/models/list_tweets_timeline_data.py +4 -3
  179. twitter_openapi_python_generated/models/list_tweets_timeline_list.py +4 -3
  180. twitter_openapi_python_generated/models/location.py +4 -3
  181. twitter_openapi_python_generated/models/media.py +23 -11
  182. twitter_openapi_python_generated/models/media_community_result.py +4 -3
  183. twitter_openapi_python_generated/models/media_community_results.py +4 -3
  184. twitter_openapi_python_generated/models/media_community_tweet_data.py +4 -3
  185. twitter_openapi_python_generated/models/media_extended.py +20 -10
  186. twitter_openapi_python_generated/models/media_original_info.py +5 -5
  187. twitter_openapi_python_generated/models/media_original_info_focus_rect.py +4 -3
  188. twitter_openapi_python_generated/models/media_result.py +4 -3
  189. twitter_openapi_python_generated/models/media_results.py +4 -3
  190. twitter_openapi_python_generated/models/media_size.py +4 -3
  191. twitter_openapi_python_generated/models/media_sizes.py +4 -3
  192. twitter_openapi_python_generated/models/media_stats.py +4 -3
  193. twitter_openapi_python_generated/models/media_video_info.py +5 -5
  194. twitter_openapi_python_generated/models/media_video_info_variant.py +4 -3
  195. twitter_openapi_python_generated/models/media_visibility_results.py +4 -3
  196. twitter_openapi_python_generated/models/media_visibility_results_blurred_image_interstitial.py +4 -3
  197. twitter_openapi_python_generated/models/module_entry.py +4 -3
  198. twitter_openapi_python_generated/models/module_item.py +6 -5
  199. twitter_openapi_python_generated/models/note_tweet.py +6 -5
  200. twitter_openapi_python_generated/models/note_tweet_result.py +4 -3
  201. twitter_openapi_python_generated/models/note_tweet_result_data.py +6 -5
  202. twitter_openapi_python_generated/models/note_tweet_result_media.py +5 -5
  203. twitter_openapi_python_generated/models/note_tweet_result_media_inline_media.py +6 -5
  204. twitter_openapi_python_generated/models/note_tweet_result_rich_text.py +5 -5
  205. twitter_openapi_python_generated/models/note_tweet_result_rich_text_tag.py +4 -3
  206. twitter_openapi_python_generated/models/notification_template.py +4 -3
  207. twitter_openapi_python_generated/models/notifications_result.py +6 -5
  208. twitter_openapi_python_generated/models/notifications_timeline_data.py +4 -3
  209. twitter_openapi_python_generated/models/notifications_timeline_response.py +5 -5
  210. twitter_openapi_python_generated/models/notifications_user_results.py +4 -3
  211. twitter_openapi_python_generated/models/notifications_viewer_v2.py +4 -3
  212. twitter_openapi_python_generated/models/one_factor_login_eligibility.py +4 -3
  213. twitter_openapi_python_generated/models/other_object_all.py +4 -3
  214. twitter_openapi_python_generated/models/post_create_bookmark_request.py +5 -4
  215. twitter_openapi_python_generated/models/post_create_bookmark_request_variables.py +6 -5
  216. twitter_openapi_python_generated/models/post_create_draft_tweet_request.py +95 -0
  217. twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables.py +93 -0
  218. twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables_post_tweet_request.py +97 -0
  219. twitter_openapi_python_generated/models/post_create_list_request.py +101 -0
  220. twitter_openapi_python_generated/models/post_create_list_request_features.py +97 -0
  221. twitter_openapi_python_generated/models/post_create_list_request_variables.py +93 -0
  222. twitter_openapi_python_generated/models/post_create_retweet_request.py +6 -5
  223. twitter_openapi_python_generated/models/post_create_retweet_request_variables.py +7 -6
  224. twitter_openapi_python_generated/models/post_create_tweet_request.py +6 -5
  225. twitter_openapi_python_generated/models/post_create_tweet_request_features.py +60 -43
  226. twitter_openapi_python_generated/models/post_create_tweet_request_variables.py +8 -7
  227. twitter_openapi_python_generated/models/post_create_tweet_request_variables_conversation_control.py +6 -5
  228. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media.py +7 -7
  229. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media_media_entities_inner.py +6 -5
  230. twitter_openapi_python_generated/models/post_create_tweet_request_variables_reply.py +6 -5
  231. twitter_openapi_python_generated/models/post_cta.py +101 -0
  232. twitter_openapi_python_generated/models/post_cta_title_text.py +98 -0
  233. twitter_openapi_python_generated/models/post_cta_title_text_entity.py +97 -0
  234. twitter_openapi_python_generated/models/post_cta_title_text_entity_ref.py +96 -0
  235. twitter_openapi_python_generated/models/post_cta_user_results.py +93 -0
  236. twitter_openapi_python_generated/models/post_cta_user_results_avatar.py +89 -0
  237. twitter_openapi_python_generated/models/post_cta_user_results_result.py +96 -0
  238. twitter_openapi_python_generated/models/post_delete_bookmark_request.py +5 -4
  239. twitter_openapi_python_generated/models/post_delete_draft_tweets_request.py +95 -0
  240. twitter_openapi_python_generated/models/post_delete_draft_tweets_request_variables.py +89 -0
  241. twitter_openapi_python_generated/models/post_delete_list_request.py +95 -0
  242. twitter_openapi_python_generated/models/post_delete_list_request_variables.py +89 -0
  243. twitter_openapi_python_generated/models/post_delete_retweet_request.py +6 -5
  244. twitter_openapi_python_generated/models/post_delete_retweet_request_variables.py +7 -6
  245. twitter_openapi_python_generated/models/post_delete_tweet_request.py +6 -5
  246. twitter_openapi_python_generated/models/post_favorite_tweet_request.py +5 -4
  247. twitter_openapi_python_generated/models/post_list_add_member_request.py +101 -0
  248. twitter_openapi_python_generated/models/post_list_add_member_request_variables.py +91 -0
  249. twitter_openapi_python_generated/models/post_list_remove_member_request.py +101 -0
  250. twitter_openapi_python_generated/models/post_unfavorite_tweet_request.py +5 -4
  251. twitter_openapi_python_generated/models/primary_community_topic.py +6 -5
  252. twitter_openapi_python_generated/models/profile_bio.py +97 -0
  253. twitter_openapi_python_generated/models/profile_bio_entities.py +98 -0
  254. twitter_openapi_python_generated/models/profile_bio_entities_urls.py +96 -0
  255. twitter_openapi_python_generated/models/profile_response.py +5 -5
  256. twitter_openapi_python_generated/models/profile_response_data.py +4 -3
  257. twitter_openapi_python_generated/models/quoted_ref_result.py +4 -3
  258. twitter_openapi_python_generated/models/quoted_status_permalink.py +4 -3
  259. twitter_openapi_python_generated/models/ranked_community_result.py +4 -3
  260. twitter_openapi_python_generated/models/ranked_community_results.py +4 -3
  261. twitter_openapi_python_generated/models/ranked_community_tweet_data.py +4 -3
  262. twitter_openapi_python_generated/models/retweet.py +8 -7
  263. twitter_openapi_python_generated/models/retweet_legacy.py +4 -3
  264. twitter_openapi_python_generated/models/rich_message.py +4 -3
  265. twitter_openapi_python_generated/models/scheduled_tweets_viewer.py +89 -0
  266. twitter_openapi_python_generated/models/search_by_raw_query.py +4 -3
  267. twitter_openapi_python_generated/models/search_timeline.py +4 -3
  268. twitter_openapi_python_generated/models/search_timeline_data.py +4 -3
  269. twitter_openapi_python_generated/models/search_timeline_response.py +5 -5
  270. twitter_openapi_python_generated/models/self_thread.py +6 -5
  271. twitter_openapi_python_generated/models/sensitive_media_warning.py +4 -3
  272. twitter_openapi_python_generated/models/session.py +12 -11
  273. twitter_openapi_python_generated/models/smarttag.py +97 -0
  274. twitter_openapi_python_generated/models/smarttag_tag.py +89 -0
  275. twitter_openapi_python_generated/models/social_context_landing_url.py +4 -3
  276. twitter_openapi_python_generated/models/social_context_union.py +3 -2
  277. twitter_openapi_python_generated/models/super_follow_user_profile.py +89 -0
  278. twitter_openapi_python_generated/models/super_follows_reply_user_result.py +4 -3
  279. twitter_openapi_python_generated/models/super_follows_reply_user_result_core.py +89 -0
  280. twitter_openapi_python_generated/models/super_follows_reply_user_result_data.py +12 -11
  281. twitter_openapi_python_generated/models/super_follows_reply_user_result_legacy.py +4 -3
  282. twitter_openapi_python_generated/models/text.py +5 -5
  283. twitter_openapi_python_generated/models/text_entity.py +4 -3
  284. twitter_openapi_python_generated/models/text_entity_ref.py +4 -3
  285. twitter_openapi_python_generated/models/text_highlight.py +4 -3
  286. twitter_openapi_python_generated/models/thumbnail_image.py +4 -3
  287. twitter_openapi_python_generated/models/timeline.py +5 -5
  288. twitter_openapi_python_generated/models/timeline_add_entries.py +5 -5
  289. twitter_openapi_python_generated/models/timeline_add_entry.py +8 -7
  290. twitter_openapi_python_generated/models/timeline_add_to_module.py +5 -5
  291. twitter_openapi_python_generated/models/timeline_clear_cache.py +4 -3
  292. twitter_openapi_python_generated/models/timeline_clear_entries_unread_state.py +4 -3
  293. twitter_openapi_python_generated/models/timeline_community.py +4 -3
  294. twitter_openapi_python_generated/models/timeline_cover_behavior.py +4 -3
  295. twitter_openapi_python_generated/models/timeline_cover_behavior_url.py +4 -3
  296. twitter_openapi_python_generated/models/timeline_frame.py +97 -0
  297. twitter_openapi_python_generated/models/timeline_general_context.py +4 -3
  298. twitter_openapi_python_generated/models/timeline_half_cover.py +5 -5
  299. twitter_openapi_python_generated/models/timeline_label.py +101 -0
  300. twitter_openapi_python_generated/models/timeline_mark_entries_unread_greater_than_sort_index.py +6 -5
  301. twitter_openapi_python_generated/models/timeline_message_prompt.py +4 -3
  302. twitter_openapi_python_generated/models/timeline_notification.py +4 -3
  303. twitter_openapi_python_generated/models/timeline_pin_entry.py +4 -3
  304. twitter_openapi_python_generated/models/timeline_prompt.py +4 -3
  305. twitter_openapi_python_generated/models/timeline_replace_entry.py +4 -3
  306. twitter_openapi_python_generated/models/timeline_response.py +5 -5
  307. twitter_openapi_python_generated/models/timeline_result.py +4 -3
  308. twitter_openapi_python_generated/models/timeline_show_alert.py +18 -7
  309. twitter_openapi_python_generated/models/timeline_show_alert_rich_text.py +4 -3
  310. twitter_openapi_python_generated/models/timeline_show_cover.py +4 -3
  311. twitter_openapi_python_generated/models/timeline_terminate_timeline.py +4 -3
  312. twitter_openapi_python_generated/models/timeline_timeline_cursor.py +4 -3
  313. twitter_openapi_python_generated/models/timeline_timeline_item.py +4 -3
  314. twitter_openapi_python_generated/models/timeline_timeline_module.py +5 -5
  315. twitter_openapi_python_generated/models/timeline_tombstone.py +4 -3
  316. twitter_openapi_python_generated/models/timeline_topic_context.py +4 -3
  317. twitter_openapi_python_generated/models/timeline_trend.py +20 -7
  318. twitter_openapi_python_generated/models/timeline_tweet.py +4 -3
  319. twitter_openapi_python_generated/models/timeline_twitter_list.py +101 -0
  320. twitter_openapi_python_generated/models/timeline_user.py +4 -3
  321. twitter_openapi_python_generated/models/timestamp.py +4 -3
  322. twitter_openapi_python_generated/models/tombstone_entity.py +4 -3
  323. twitter_openapi_python_generated/models/tombstone_info.py +4 -3
  324. twitter_openapi_python_generated/models/tombstone_ref.py +4 -3
  325. twitter_openapi_python_generated/models/tombstone_rich_text.py +5 -5
  326. twitter_openapi_python_generated/models/topic_context.py +4 -3
  327. twitter_openapi_python_generated/models/tracing.py +6 -5
  328. twitter_openapi_python_generated/models/trend_image.py +4 -3
  329. twitter_openapi_python_generated/models/trend_metadata.py +8 -5
  330. twitter_openapi_python_generated/models/trend_results.py +6 -5
  331. twitter_openapi_python_generated/models/tweet.py +52 -9
  332. twitter_openapi_python_generated/models/tweet_card.py +4 -3
  333. twitter_openapi_python_generated/models/tweet_card_legacy.py +6 -7
  334. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value.py +4 -3
  335. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value_data.py +4 -3
  336. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value_data_image.py +4 -3
  337. twitter_openapi_python_generated/models/tweet_card_platform.py +4 -3
  338. twitter_openapi_python_generated/models/tweet_card_platform_audience.py +4 -3
  339. twitter_openapi_python_generated/models/tweet_card_platform_data.py +4 -3
  340. twitter_openapi_python_generated/models/tweet_card_platform_device.py +6 -5
  341. twitter_openapi_python_generated/models/tweet_detail_response.py +5 -5
  342. twitter_openapi_python_generated/models/tweet_detail_response_data.py +4 -3
  343. twitter_openapi_python_generated/models/tweet_edit_control.py +10 -9
  344. twitter_openapi_python_generated/models/tweet_edit_control_initial.py +8 -7
  345. twitter_openapi_python_generated/models/tweet_edit_prespective.py +4 -3
  346. twitter_openapi_python_generated/models/tweet_favoriters_response.py +5 -5
  347. twitter_openapi_python_generated/models/tweet_favoriters_response_data.py +4 -3
  348. twitter_openapi_python_generated/models/tweet_interstitial.py +6 -5
  349. twitter_openapi_python_generated/models/tweet_interstitial_reveal_text.py +5 -5
  350. twitter_openapi_python_generated/models/tweet_interstitial_text.py +5 -5
  351. twitter_openapi_python_generated/models/tweet_interstitial_text_entity.py +4 -3
  352. twitter_openapi_python_generated/models/tweet_interstitial_text_entity_ref.py +4 -3
  353. twitter_openapi_python_generated/models/tweet_legacy.py +20 -19
  354. twitter_openapi_python_generated/models/tweet_legacy_scopes.py +4 -3
  355. twitter_openapi_python_generated/models/tweet_limited_action_results.py +5 -5
  356. twitter_openapi_python_generated/models/tweet_post_cta.py +105 -0
  357. twitter_openapi_python_generated/models/tweet_preview_display.py +4 -3
  358. twitter_openapi_python_generated/models/tweet_preview_display_cta.py +4 -3
  359. twitter_openapi_python_generated/models/tweet_preview_display_cta_url.py +4 -3
  360. twitter_openapi_python_generated/models/tweet_preview_display_tweet.py +17 -10
  361. twitter_openapi_python_generated/models/tweet_preview_display_tweet_view_count.py +6 -5
  362. twitter_openapi_python_generated/models/tweet_previous_counts.py +4 -3
  363. twitter_openapi_python_generated/models/tweet_result_by_rest_id_data.py +4 -3
  364. twitter_openapi_python_generated/models/tweet_result_by_rest_id_response.py +5 -5
  365. twitter_openapi_python_generated/models/tweet_retweeters_response.py +5 -5
  366. twitter_openapi_python_generated/models/tweet_retweeters_response_data.py +4 -3
  367. twitter_openapi_python_generated/models/tweet_tombstone.py +4 -3
  368. twitter_openapi_python_generated/models/tweet_unavailable.py +4 -3
  369. twitter_openapi_python_generated/models/tweet_union.py +3 -2
  370. twitter_openapi_python_generated/models/tweet_view.py +6 -5
  371. twitter_openapi_python_generated/models/tweet_with_visibility_results.py +4 -3
  372. twitter_openapi_python_generated/models/twitter_list.py +146 -0
  373. twitter_openapi_python_generated/models/type_name.py +6 -0
  374. twitter_openapi_python_generated/models/unfavorite_tweet.py +4 -3
  375. twitter_openapi_python_generated/models/unfavorite_tweet_response.py +5 -5
  376. twitter_openapi_python_generated/models/unified_card.py +4 -3
  377. twitter_openapi_python_generated/models/url.py +4 -3
  378. twitter_openapi_python_generated/models/urt_endpoint_options.py +7 -7
  379. twitter_openapi_python_generated/models/urt_endpoint_request_params.py +4 -3
  380. twitter_openapi_python_generated/models/user.py +150 -12
  381. twitter_openapi_python_generated/models/user_action_counts.py +89 -0
  382. twitter_openapi_python_generated/models/user_avatar.py +89 -0
  383. twitter_openapi_python_generated/models/user_banner.py +89 -0
  384. twitter_openapi_python_generated/models/user_core.py +101 -0
  385. twitter_openapi_python_generated/models/user_dm_permissions.py +89 -0
  386. twitter_openapi_python_generated/models/user_features.py +4 -3
  387. twitter_openapi_python_generated/models/user_highlights_info.py +4 -3
  388. twitter_openapi_python_generated/models/user_highlights_tweets_data.py +4 -3
  389. twitter_openapi_python_generated/models/user_highlights_tweets_response.py +5 -5
  390. twitter_openapi_python_generated/models/user_highlights_tweets_result.py +4 -3
  391. twitter_openapi_python_generated/models/user_highlights_tweets_timeline.py +4 -3
  392. twitter_openapi_python_generated/models/user_highlights_tweets_user.py +4 -3
  393. twitter_openapi_python_generated/models/user_legacy.py +26 -14
  394. twitter_openapi_python_generated/models/user_legacy_extended_profile.py +4 -3
  395. twitter_openapi_python_generated/models/user_legacy_extended_profile_birthdate.py +4 -3
  396. twitter_openapi_python_generated/models/user_location.py +89 -0
  397. twitter_openapi_python_generated/models/user_media_permissions.py +89 -0
  398. twitter_openapi_python_generated/models/user_notifications_settings.py +89 -0
  399. twitter_openapi_python_generated/models/user_pinned_items.py +90 -0
  400. twitter_openapi_python_generated/models/user_privacy.py +89 -0
  401. twitter_openapi_python_generated/models/user_professional.py +9 -9
  402. twitter_openapi_python_generated/models/user_professional_category.py +4 -3
  403. twitter_openapi_python_generated/models/user_profile.py +93 -0
  404. twitter_openapi_python_generated/models/user_profile_metadata.py +89 -0
  405. twitter_openapi_python_generated/models/user_profile_translation.py +89 -0
  406. twitter_openapi_python_generated/models/user_relationship_counts.py +91 -0
  407. twitter_openapi_python_generated/models/user_relationship_perspectives.py +99 -0
  408. twitter_openapi_python_generated/models/user_response.py +5 -5
  409. twitter_openapi_python_generated/models/user_response_data.py +4 -3
  410. twitter_openapi_python_generated/models/user_result_by_screen_name.py +6 -5
  411. twitter_openapi_python_generated/models/user_result_by_screen_name_core.py +91 -0
  412. twitter_openapi_python_generated/models/user_result_by_screen_name_legacy.py +4 -3
  413. twitter_openapi_python_generated/models/user_result_by_screen_name_result.py +32 -11
  414. twitter_openapi_python_generated/models/user_result_core.py +7 -4
  415. twitter_openapi_python_generated/models/user_result_privacy.py +89 -0
  416. twitter_openapi_python_generated/models/user_result_relationship_perspectives.py +95 -0
  417. twitter_openapi_python_generated/models/user_results.py +7 -4
  418. twitter_openapi_python_generated/models/user_tip_jar_settings.py +4 -3
  419. twitter_openapi_python_generated/models/user_tweet_counts.py +91 -0
  420. twitter_openapi_python_generated/models/user_tweets_data.py +4 -3
  421. twitter_openapi_python_generated/models/user_tweets_response.py +5 -5
  422. twitter_openapi_python_generated/models/user_tweets_result_v1.py +4 -3
  423. twitter_openapi_python_generated/models/user_tweets_result_v2.py +4 -3
  424. twitter_openapi_python_generated/models/user_tweets_user.py +4 -3
  425. twitter_openapi_python_generated/models/user_unavailable.py +4 -3
  426. twitter_openapi_python_generated/models/user_union.py +6 -3
  427. twitter_openapi_python_generated/models/user_value.py +12 -9
  428. twitter_openapi_python_generated/models/user_verification.py +101 -0
  429. twitter_openapi_python_generated/models/user_verification_info.py +4 -3
  430. twitter_openapi_python_generated/models/user_verification_info_reason.py +6 -5
  431. twitter_openapi_python_generated/models/user_verification_info_reason_description.py +5 -5
  432. twitter_openapi_python_generated/models/user_verification_info_reason_description_entities.py +4 -3
  433. twitter_openapi_python_generated/models/user_verification_info_reason_description_entities_ref.py +4 -3
  434. twitter_openapi_python_generated/models/user_website.py +89 -0
  435. twitter_openapi_python_generated/models/users_response.py +5 -5
  436. twitter_openapi_python_generated/models/users_response_data.py +5 -5
  437. twitter_openapi_python_generated/models/viewer_badge_counts_response.py +102 -0
  438. twitter_openapi_python_generated/models/viewer_badge_counts_response_data.py +93 -0
  439. twitter_openapi_python_generated/models/viewer_badge_counts_result.py +96 -0
  440. twitter_openapi_python_generated/models/viewer_badge_counts_user_results.py +93 -0
  441. twitter_openapi_python_generated/models/viewer_badge_counts_viewer.py +93 -0
  442. twitter_openapi_python_generated/rest.py +86 -10
  443. twitter_openapi_python_generated-0.0.35.dist-info/METADATA +926 -0
  444. twitter_openapi_python_generated-0.0.35.dist-info/RECORD +456 -0
  445. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/WHEEL +1 -1
  446. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/licenses/LICENSE +31 -31
  447. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/licenses/LICENSE.AGPL +660 -660
  448. twitter_openapi_python_generated/models/community_data.py +0 -219
  449. twitter_openapi_python_generated-0.0.33.dist-info/METADATA +0 -29
  450. twitter_openapi_python_generated-0.0.33.dist-info/RECORD +0 -335
  451. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,146 @@
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.user_results import UserResults
26
+ from typing import Optional, Set
27
+ from typing_extensions import Self
28
+ from pydantic_core import to_jsonable_python
29
+
30
+ class TwitterList(BaseModel):
31
+ """
32
+ TwitterList
33
+ """ # noqa: E501
34
+ created_at: StrictInt
35
+ default_banner_media: ListBannerMedia
36
+ default_banner_media_results: Dict[str, Any]
37
+ description: StrictStr
38
+ facepile_urls: List[StrictStr]
39
+ followers_context: Optional[StrictStr] = None
40
+ following: StrictBool
41
+ id: StrictStr
42
+ id_str: Annotated[str, Field(strict=True)]
43
+ is_member: StrictBool
44
+ member_count: StrictInt
45
+ members_context: Optional[StrictStr] = None
46
+ mode: StrictStr
47
+ muting: StrictBool
48
+ name: StrictStr
49
+ pinning: StrictBool
50
+ subscriber_count: StrictInt
51
+ user_results: UserResults
52
+ __properties: ClassVar[List[str]] = ["created_at", "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"]
53
+
54
+ @field_validator('id_str', mode="before")
55
+ def id_str_validate_regular_expression(cls, value):
56
+ """Validates the regular expression"""
57
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
58
+ raise ValueError(r"must validate the regular expression /^[0-9]+$/")
59
+ return value
60
+
61
+ @field_validator('mode')
62
+ def mode_validate_enum(cls, value):
63
+ """Validates the enum"""
64
+ if value not in set(['Public', 'Private']):
65
+ raise ValueError("must be one of enum values ('Public', 'Private')")
66
+ return value
67
+
68
+ model_config = ConfigDict(
69
+ validate_by_name=True,
70
+ validate_by_alias=True,
71
+ validate_assignment=True,
72
+ protected_namespaces=(),
73
+ )
74
+
75
+
76
+ def to_str(self) -> str:
77
+ """Returns the string representation of the model using alias"""
78
+ return pprint.pformat(self.model_dump(by_alias=True))
79
+
80
+ def to_json(self) -> str:
81
+ """Returns the JSON representation of the model using alias"""
82
+ return json.dumps(to_jsonable_python(self.to_dict()))
83
+
84
+ @classmethod
85
+ def from_json(cls, json_str: str) -> Optional[Self]:
86
+ """Create an instance of TwitterList from a JSON string"""
87
+ return cls.from_dict(json.loads(json_str))
88
+
89
+ def to_dict(self) -> Dict[str, Any]:
90
+ """Return the dictionary representation of the model using alias.
91
+
92
+ This has the following differences from calling pydantic's
93
+ `self.model_dump(by_alias=True)`:
94
+
95
+ * `None` is only added to the output dict for nullable fields that
96
+ were set at model initialization. Other fields with value `None`
97
+ are ignored.
98
+ """
99
+ excluded_fields: Set[str] = set([
100
+ ])
101
+
102
+ _dict = self.model_dump(
103
+ by_alias=True,
104
+ exclude=excluded_fields,
105
+ exclude_none=True,
106
+ )
107
+ # override the default output from pydantic by calling `to_dict()` of default_banner_media
108
+ if self.default_banner_media:
109
+ _dict['default_banner_media'] = self.default_banner_media.to_dict()
110
+ # override the default output from pydantic by calling `to_dict()` of user_results
111
+ if self.user_results:
112
+ _dict['user_results'] = self.user_results.to_dict()
113
+ return _dict
114
+
115
+ @classmethod
116
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
117
+ """Create an instance of TwitterList from a dict"""
118
+ if obj is None:
119
+ return None
120
+
121
+ if not isinstance(obj, dict):
122
+ return cls.model_validate(obj)
123
+
124
+ _obj = cls.model_validate({
125
+ "created_at": obj.get("created_at"),
126
+ "default_banner_media": ListBannerMedia.from_dict(obj["default_banner_media"]) if obj.get("default_banner_media") is not None else None,
127
+ "default_banner_media_results": obj.get("default_banner_media_results"),
128
+ "description": obj.get("description"),
129
+ "facepile_urls": obj.get("facepile_urls"),
130
+ "followers_context": obj.get("followers_context"),
131
+ "following": obj.get("following"),
132
+ "id": obj.get("id"),
133
+ "id_str": obj.get("id_str"),
134
+ "is_member": obj.get("is_member"),
135
+ "member_count": obj.get("member_count"),
136
+ "members_context": obj.get("members_context"),
137
+ "mode": obj.get("mode"),
138
+ "muting": obj.get("muting"),
139
+ "name": obj.get("name"),
140
+ "pinning": obj.get("pinning"),
141
+ "subscriber_count": obj.get("subscriber_count"),
142
+ "user_results": UserResults.from_dict(obj["user_results"]) if obj.get("user_results") is not None else None
143
+ })
144
+ return _obj
145
+
146
+
@@ -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'
@@ -56,7 +60,9 @@ class TypeName(str, Enum):
56
60
  COMMUNITYTWEETUNPINACTIONUNAVAILABLE = 'CommunityTweetUnpinActionUnavailable'
57
61
  COMMUNITYINVITESUNAVAILABLE = 'CommunityInvitesUnavailable'
58
62
  COMMUNITYJOINREQUESTSUNAVAILABLE = 'CommunityJoinRequestsUnavailable'
63
+ COMMUNITYUNAVAILABLE = 'CommunityUnavailable'
59
64
  APIIMAGE = 'ApiImage'
65
+ TIMELINERICHTEXTUSER = 'TimelineRichTextUser'
60
66
 
61
67
  @classmethod
62
68
  def from_json(cls, json_str: str) -> Self:
@@ -22,6 +22,7 @@ from pydantic import BaseModel, ConfigDict, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
25
26
 
26
27
  class UnfavoriteTweet(BaseModel):
27
28
  """
@@ -31,7 +32,8 @@ class UnfavoriteTweet(BaseModel):
31
32
  __properties: ClassVar[List[str]] = ["unfavorite_tweet"]
32
33
 
33
34
  model_config = ConfigDict(
34
- populate_by_name=True,
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
35
37
  validate_assignment=True,
36
38
  protected_namespaces=(),
37
39
  )
@@ -43,8 +45,7 @@ class UnfavoriteTweet(BaseModel):
43
45
 
44
46
  def to_json(self) -> str:
45
47
  """Returns the JSON representation of the model using alias"""
46
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
- return json.dumps(self.to_dict())
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
48
49
 
49
50
  @classmethod
50
51
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -24,6 +24,7 @@ from twitter_openapi_python_generated.models.error_response import ErrorResponse
24
24
  from twitter_openapi_python_generated.models.unfavorite_tweet import UnfavoriteTweet
25
25
  from typing import Optional, Set
26
26
  from typing_extensions import Self
27
+ from pydantic_core import to_jsonable_python
27
28
 
28
29
  class UnfavoriteTweetResponse(BaseModel):
29
30
  """
@@ -34,7 +35,8 @@ class UnfavoriteTweetResponse(BaseModel):
34
35
  __properties: ClassVar[List[str]] = ["data", "errors"]
35
36
 
36
37
  model_config = ConfigDict(
37
- populate_by_name=True,
38
+ validate_by_name=True,
39
+ validate_by_alias=True,
38
40
  validate_assignment=True,
39
41
  protected_namespaces=(),
40
42
  )
@@ -46,8 +48,7 @@ class UnfavoriteTweetResponse(BaseModel):
46
48
 
47
49
  def to_json(self) -> str:
48
50
  """Returns the JSON representation of the model using alias"""
49
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50
- return json.dumps(self.to_dict())
51
+ return json.dumps(to_jsonable_python(self.to_dict()))
51
52
 
52
53
  @classmethod
53
54
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -79,8 +80,7 @@ class UnfavoriteTweetResponse(BaseModel):
79
80
  _items = []
80
81
  if self.errors:
81
82
  for _item_errors in self.errors:
82
- if _item_errors:
83
- _items.append(_item_errors.to_dict())
83
+ _items.append(_item_errors.to_dict() if _item_errors is not None else None)
84
84
  _dict['errors'] = _items
85
85
  return _dict
86
86
 
@@ -22,6 +22,7 @@ from pydantic import BaseModel, ConfigDict, StrictStr, field_validator
22
22
  from typing import Any, ClassVar, Dict, List
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
25
26
 
26
27
  class UnifiedCard(BaseModel):
27
28
  """
@@ -38,7 +39,8 @@ class UnifiedCard(BaseModel):
38
39
  return value
39
40
 
40
41
  model_config = ConfigDict(
41
- populate_by_name=True,
42
+ validate_by_name=True,
43
+ validate_by_alias=True,
42
44
  validate_assignment=True,
43
45
  protected_namespaces=(),
44
46
  )
@@ -50,8 +52,7 @@ class UnifiedCard(BaseModel):
50
52
 
51
53
  def to_json(self) -> str:
52
54
  """Returns the JSON representation of the model using alias"""
53
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
54
- return json.dumps(self.to_dict())
55
+ return json.dumps(to_jsonable_python(self.to_dict()))
55
56
 
56
57
  @classmethod
57
58
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -22,6 +22,7 @@ from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
25
26
 
26
27
  class Url(BaseModel):
27
28
  """
@@ -34,7 +35,8 @@ class Url(BaseModel):
34
35
  __properties: ClassVar[List[str]] = ["display_url", "expanded_url", "indices", "url"]
35
36
 
36
37
  model_config = ConfigDict(
37
- populate_by_name=True,
38
+ validate_by_name=True,
39
+ validate_by_alias=True,
38
40
  validate_assignment=True,
39
41
  protected_namespaces=(),
40
42
  )
@@ -46,8 +48,7 @@ class Url(BaseModel):
46
48
 
47
49
  def to_json(self) -> str:
48
50
  """Returns the JSON representation of the model using alias"""
49
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50
- return json.dumps(self.to_dict())
51
+ return json.dumps(to_jsonable_python(self.to_dict()))
51
52
 
52
53
  @classmethod
53
54
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -19,21 +19,23 @@ 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
26
+ from pydantic_core import to_jsonable_python
26
27
 
27
28
  class UrtEndpointOptions(BaseModel):
28
29
  """
29
30
  UrtEndpointOptions
30
31
  """ # noqa: E501
31
32
  request_params: List[UrtEndpointRequestParams] = Field(alias="requestParams")
32
- title: StrictStr
33
+ title: Optional[StrictStr] = None
33
34
  __properties: ClassVar[List[str]] = ["requestParams", "title"]
34
35
 
35
36
  model_config = ConfigDict(
36
- populate_by_name=True,
37
+ validate_by_name=True,
38
+ validate_by_alias=True,
37
39
  validate_assignment=True,
38
40
  protected_namespaces=(),
39
41
  )
@@ -45,8 +47,7 @@ class UrtEndpointOptions(BaseModel):
45
47
 
46
48
  def to_json(self) -> str:
47
49
  """Returns the JSON representation of the model using alias"""
48
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
49
- return json.dumps(self.to_dict())
50
+ return json.dumps(to_jsonable_python(self.to_dict()))
50
51
 
51
52
  @classmethod
52
53
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -75,8 +76,7 @@ class UrtEndpointOptions(BaseModel):
75
76
  _items = []
76
77
  if self.request_params:
77
78
  for _item_request_params in self.request_params:
78
- if _item_request_params:
79
- _items.append(_item_request_params.to_dict())
79
+ _items.append(_item_request_params.to_dict() if _item_request_params is not None else None)
80
80
  _dict['requestParams'] = _items
81
81
  return _dict
82
82
 
@@ -22,6 +22,7 @@ from pydantic import BaseModel, ConfigDict, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
25
26
 
26
27
  class UrtEndpointRequestParams(BaseModel):
27
28
  """
@@ -32,7 +33,8 @@ class UrtEndpointRequestParams(BaseModel):
32
33
  __properties: ClassVar[List[str]] = ["key", "value"]
33
34
 
34
35
  model_config = ConfigDict(
35
- populate_by_name=True,
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
36
38
  validate_assignment=True,
37
39
  protected_namespaces=(),
38
40
  )
@@ -44,8 +46,7 @@ class UrtEndpointRequestParams(BaseModel):
44
46
 
45
47
  def to_json(self) -> str:
46
48
  """Returns the JSON representation of the model using alias"""
47
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
- return json.dumps(self.to_dict())
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
50
 
50
51
  @classmethod
51
52
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -21,24 +21,51 @@ 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.profile_bio import ProfileBio
24
25
  from twitter_openapi_python_generated.models.type_name import TypeName
26
+ from twitter_openapi_python_generated.models.user_action_counts import UserActionCounts
27
+ from twitter_openapi_python_generated.models.user_avatar import UserAvatar
28
+ from twitter_openapi_python_generated.models.user_banner import UserBanner
29
+ from twitter_openapi_python_generated.models.user_core import UserCore
30
+ from twitter_openapi_python_generated.models.user_dm_permissions import UserDmPermissions
25
31
  from twitter_openapi_python_generated.models.user_highlights_info import UserHighlightsInfo
26
32
  from twitter_openapi_python_generated.models.user_legacy import UserLegacy
27
33
  from twitter_openapi_python_generated.models.user_legacy_extended_profile import UserLegacyExtendedProfile
34
+ from twitter_openapi_python_generated.models.user_location import UserLocation
35
+ from twitter_openapi_python_generated.models.user_media_permissions import UserMediaPermissions
36
+ from twitter_openapi_python_generated.models.user_notifications_settings import UserNotificationsSettings
37
+ from twitter_openapi_python_generated.models.user_pinned_items import UserPinnedItems
38
+ from twitter_openapi_python_generated.models.user_privacy import UserPrivacy
28
39
  from twitter_openapi_python_generated.models.user_professional import UserProfessional
40
+ from twitter_openapi_python_generated.models.user_profile import UserProfile
41
+ from twitter_openapi_python_generated.models.user_profile_metadata import UserProfileMetadata
42
+ from twitter_openapi_python_generated.models.user_profile_translation import UserProfileTranslation
43
+ from twitter_openapi_python_generated.models.user_relationship_counts import UserRelationshipCounts
44
+ from twitter_openapi_python_generated.models.user_relationship_perspectives import UserRelationshipPerspectives
29
45
  from twitter_openapi_python_generated.models.user_tip_jar_settings import UserTipJarSettings
46
+ from twitter_openapi_python_generated.models.user_tweet_counts import UserTweetCounts
47
+ from twitter_openapi_python_generated.models.user_verification import UserVerification
30
48
  from twitter_openapi_python_generated.models.user_verification_info import UserVerificationInfo
49
+ from twitter_openapi_python_generated.models.user_website import UserWebsite
31
50
  from typing import Optional, Set
32
51
  from typing_extensions import Self
52
+ from pydantic_core import to_jsonable_python
33
53
 
34
54
  class User(BaseModel):
35
55
  """
36
56
  User
37
57
  """ # noqa: E501
38
58
  typename: TypeName = Field(alias="__typename")
59
+ action_counts: Optional[UserActionCounts] = None
39
60
  affiliates_highlighted_label: Optional[Dict[str, Any]] = None
61
+ avatar: Optional[UserAvatar] = None
62
+ banner: Optional[UserBanner] = None
40
63
  business_account: Optional[Dict[str, Any]] = None
64
+ core: Optional[UserCore] = None
41
65
  creator_subscriptions_count: Optional[StrictInt] = None
66
+ dm_permissions: Optional[UserDmPermissions] = None
67
+ follow_request_sent: Optional[StrictBool] = None
68
+ grok_translated_bio_with_availability: Optional[GrokTranslatedBioWithAvailability] = None
42
69
  has_graduated_access: Optional[StrictBool] = None
43
70
  has_hidden_likes_on_profile: Optional[StrictBool] = None
44
71
  has_hidden_subscriptions_on_profile: Optional[StrictBool] = None
@@ -47,25 +74,44 @@ class User(BaseModel):
47
74
  id: Annotated[str, Field(strict=True)]
48
75
  is_blue_verified: StrictBool
49
76
  is_profile_translatable: Optional[StrictBool] = None
50
- legacy: UserLegacy
77
+ is_verified_organization: Optional[StrictBool] = None
78
+ legacy: Optional[UserLegacy] = None
51
79
  legacy_extended_profile: Optional[UserLegacyExtendedProfile] = None
80
+ location: Optional[UserLocation] = None
81
+ media_permissions: Optional[UserMediaPermissions] = None
82
+ notifications_settings: Optional[UserNotificationsSettings] = None
52
83
  parody_commentary_fan_label: Optional[StrictStr] = None
84
+ pinned_items: Optional[UserPinnedItems] = None
85
+ possibly_sensitive: Optional[StrictBool] = None
53
86
  premium_gifting_eligible: Optional[StrictBool] = None
87
+ privacy: Optional[UserPrivacy] = None
54
88
  professional: Optional[UserProfessional] = None
89
+ profile_bio: Optional[ProfileBio] = None
90
+ profile_description_language: Optional[StrictStr] = None
55
91
  profile_image_shape: StrictStr
92
+ profile_metadata: Optional[UserProfileMetadata] = None
93
+ profile_sort_enabled: Optional[StrictBool] = None
94
+ profile_translation: Optional[UserProfileTranslation] = None
95
+ relationship_counts: Optional[UserRelationshipCounts] = None
96
+ relationship_perspectives: Optional[UserRelationshipPerspectives] = None
56
97
  rest_id: Annotated[str, Field(strict=True)]
57
98
  super_follow_eligible: Optional[StrictBool] = None
58
99
  super_followed_by: Optional[StrictBool] = None
59
100
  super_following: Optional[StrictBool] = None
101
+ super_follows_user_profile: Optional[UserProfile] = None
60
102
  tipjar_settings: Optional[UserTipJarSettings] = None
103
+ tweet_counts: Optional[UserTweetCounts] = None
61
104
  user_seed_tweet_count: Optional[StrictInt] = None
105
+ verification: Optional[UserVerification] = None
62
106
  verification_info: Optional[UserVerificationInfo] = None
63
- __properties: ClassVar[List[str]] = ["__typename", "affiliates_highlighted_label", "business_account", "creator_subscriptions_count", "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", "parody_commentary_fan_label", "premium_gifting_eligible", "professional", "profile_image_shape", "rest_id", "super_follow_eligible", "super_followed_by", "super_following", "tipjar_settings", "user_seed_tweet_count", "verification_info"]
107
+ verified_user_profiles: Optional[UserProfile] = None
108
+ website: Optional[UserWebsite] = None
109
+ __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"]
64
110
 
65
- @field_validator('id')
111
+ @field_validator('id', mode="before")
66
112
  def id_validate_regular_expression(cls, value):
67
113
  """Validates the regular expression"""
68
- if not re.match(r"^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)?$", value):
114
+ 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):
69
115
  raise ValueError(r"must validate the regular expression /^([A-Za-z0-9+\/]{4})*([A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}==)?$/")
70
116
  return value
71
117
 
@@ -75,8 +121,8 @@ class User(BaseModel):
75
121
  if value is None:
76
122
  return value
77
123
 
78
- if value not in set(['None', 'Parody', 'Commentary']):
79
- raise ValueError("must be one of enum values ('None', 'Parody', 'Commentary')")
124
+ if value not in set(['None', 'Parody', 'Commentary', 'Fan']):
125
+ raise ValueError("must be one of enum values ('None', 'Parody', 'Commentary', 'Fan')")
80
126
  return value
81
127
 
82
128
  @field_validator('profile_image_shape')
@@ -86,15 +132,16 @@ class User(BaseModel):
86
132
  raise ValueError("must be one of enum values ('Circle', 'Square', 'Hexagon')")
87
133
  return value
88
134
 
89
- @field_validator('rest_id')
135
+ @field_validator('rest_id', mode="before")
90
136
  def rest_id_validate_regular_expression(cls, value):
91
137
  """Validates the regular expression"""
92
- if not re.match(r"^[0-9]+$", value):
138
+ if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
93
139
  raise ValueError(r"must validate the regular expression /^[0-9]+$/")
94
140
  return value
95
141
 
96
142
  model_config = ConfigDict(
97
- populate_by_name=True,
143
+ validate_by_name=True,
144
+ validate_by_alias=True,
98
145
  validate_assignment=True,
99
146
  protected_namespaces=(),
100
147
  )
@@ -106,8 +153,7 @@ class User(BaseModel):
106
153
 
107
154
  def to_json(self) -> str:
108
155
  """Returns the JSON representation of the model using alias"""
109
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
110
- return json.dumps(self.to_dict())
156
+ return json.dumps(to_jsonable_python(self.to_dict()))
111
157
 
112
158
  @classmethod
113
159
  def from_json(cls, json_str: str) -> Optional[Self]:
@@ -132,6 +178,24 @@ class User(BaseModel):
132
178
  exclude=excluded_fields,
133
179
  exclude_none=True,
134
180
  )
181
+ # override the default output from pydantic by calling `to_dict()` of action_counts
182
+ if self.action_counts:
183
+ _dict['action_counts'] = self.action_counts.to_dict()
184
+ # override the default output from pydantic by calling `to_dict()` of avatar
185
+ if self.avatar:
186
+ _dict['avatar'] = self.avatar.to_dict()
187
+ # override the default output from pydantic by calling `to_dict()` of banner
188
+ if self.banner:
189
+ _dict['banner'] = self.banner.to_dict()
190
+ # override the default output from pydantic by calling `to_dict()` of core
191
+ if self.core:
192
+ _dict['core'] = self.core.to_dict()
193
+ # override the default output from pydantic by calling `to_dict()` of dm_permissions
194
+ if self.dm_permissions:
195
+ _dict['dm_permissions'] = self.dm_permissions.to_dict()
196
+ # override the default output from pydantic by calling `to_dict()` of grok_translated_bio_with_availability
197
+ if self.grok_translated_bio_with_availability:
198
+ _dict['grok_translated_bio_with_availability'] = self.grok_translated_bio_with_availability.to_dict()
135
199
  # override the default output from pydantic by calling `to_dict()` of highlights_info
136
200
  if self.highlights_info:
137
201
  _dict['highlights_info'] = self.highlights_info.to_dict()
@@ -141,15 +205,60 @@ class User(BaseModel):
141
205
  # override the default output from pydantic by calling `to_dict()` of legacy_extended_profile
142
206
  if self.legacy_extended_profile:
143
207
  _dict['legacy_extended_profile'] = self.legacy_extended_profile.to_dict()
208
+ # override the default output from pydantic by calling `to_dict()` of location
209
+ if self.location:
210
+ _dict['location'] = self.location.to_dict()
211
+ # override the default output from pydantic by calling `to_dict()` of media_permissions
212
+ if self.media_permissions:
213
+ _dict['media_permissions'] = self.media_permissions.to_dict()
214
+ # override the default output from pydantic by calling `to_dict()` of notifications_settings
215
+ if self.notifications_settings:
216
+ _dict['notifications_settings'] = self.notifications_settings.to_dict()
217
+ # override the default output from pydantic by calling `to_dict()` of pinned_items
218
+ if self.pinned_items:
219
+ _dict['pinned_items'] = self.pinned_items.to_dict()
220
+ # override the default output from pydantic by calling `to_dict()` of privacy
221
+ if self.privacy:
222
+ _dict['privacy'] = self.privacy.to_dict()
144
223
  # override the default output from pydantic by calling `to_dict()` of professional
145
224
  if self.professional:
146
225
  _dict['professional'] = self.professional.to_dict()
226
+ # override the default output from pydantic by calling `to_dict()` of profile_bio
227
+ if self.profile_bio:
228
+ _dict['profile_bio'] = self.profile_bio.to_dict()
229
+ # override the default output from pydantic by calling `to_dict()` of profile_metadata
230
+ if self.profile_metadata:
231
+ _dict['profile_metadata'] = self.profile_metadata.to_dict()
232
+ # override the default output from pydantic by calling `to_dict()` of profile_translation
233
+ if self.profile_translation:
234
+ _dict['profile_translation'] = self.profile_translation.to_dict()
235
+ # override the default output from pydantic by calling `to_dict()` of relationship_counts
236
+ if self.relationship_counts:
237
+ _dict['relationship_counts'] = self.relationship_counts.to_dict()
238
+ # override the default output from pydantic by calling `to_dict()` of relationship_perspectives
239
+ if self.relationship_perspectives:
240
+ _dict['relationship_perspectives'] = self.relationship_perspectives.to_dict()
241
+ # override the default output from pydantic by calling `to_dict()` of super_follows_user_profile
242
+ if self.super_follows_user_profile:
243
+ _dict['super_follows_user_profile'] = self.super_follows_user_profile.to_dict()
147
244
  # override the default output from pydantic by calling `to_dict()` of tipjar_settings
148
245
  if self.tipjar_settings:
149
246
  _dict['tipjar_settings'] = self.tipjar_settings.to_dict()
247
+ # override the default output from pydantic by calling `to_dict()` of tweet_counts
248
+ if self.tweet_counts:
249
+ _dict['tweet_counts'] = self.tweet_counts.to_dict()
250
+ # override the default output from pydantic by calling `to_dict()` of verification
251
+ if self.verification:
252
+ _dict['verification'] = self.verification.to_dict()
150
253
  # override the default output from pydantic by calling `to_dict()` of verification_info
151
254
  if self.verification_info:
152
255
  _dict['verification_info'] = self.verification_info.to_dict()
256
+ # override the default output from pydantic by calling `to_dict()` of verified_user_profiles
257
+ if self.verified_user_profiles:
258
+ _dict['verified_user_profiles'] = self.verified_user_profiles.to_dict()
259
+ # override the default output from pydantic by calling `to_dict()` of website
260
+ if self.website:
261
+ _dict['website'] = self.website.to_dict()
153
262
  return _dict
154
263
 
155
264
  @classmethod
@@ -163,9 +272,16 @@ class User(BaseModel):
163
272
 
164
273
  _obj = cls.model_validate({
165
274
  "__typename": obj.get("__typename"),
275
+ "action_counts": UserActionCounts.from_dict(obj["action_counts"]) if obj.get("action_counts") is not None else None,
166
276
  "affiliates_highlighted_label": obj.get("affiliates_highlighted_label"),
277
+ "avatar": UserAvatar.from_dict(obj["avatar"]) if obj.get("avatar") is not None else None,
278
+ "banner": UserBanner.from_dict(obj["banner"]) if obj.get("banner") is not None else None,
167
279
  "business_account": obj.get("business_account"),
280
+ "core": UserCore.from_dict(obj["core"]) if obj.get("core") is not None else None,
168
281
  "creator_subscriptions_count": obj.get("creator_subscriptions_count"),
282
+ "dm_permissions": UserDmPermissions.from_dict(obj["dm_permissions"]) if obj.get("dm_permissions") is not None else None,
283
+ "follow_request_sent": obj.get("follow_request_sent"),
284
+ "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,
169
285
  "has_graduated_access": obj.get("has_graduated_access"),
170
286
  "has_hidden_likes_on_profile": obj.get("has_hidden_likes_on_profile"),
171
287
  "has_hidden_subscriptions_on_profile": obj.get("has_hidden_subscriptions_on_profile"),
@@ -174,20 +290,42 @@ class User(BaseModel):
174
290
  "id": obj.get("id"),
175
291
  "is_blue_verified": obj.get("is_blue_verified"),
176
292
  "is_profile_translatable": obj.get("is_profile_translatable"),
293
+ "is_verified_organization": obj.get("is_verified_organization"),
177
294
  "legacy": UserLegacy.from_dict(obj["legacy"]) if obj.get("legacy") is not None else None,
178
295
  "legacy_extended_profile": UserLegacyExtendedProfile.from_dict(obj["legacy_extended_profile"]) if obj.get("legacy_extended_profile") is not None else None,
296
+ "location": UserLocation.from_dict(obj["location"]) if obj.get("location") is not None else None,
297
+ "media_permissions": UserMediaPermissions.from_dict(obj["media_permissions"]) if obj.get("media_permissions") is not None else None,
298
+ "notifications_settings": UserNotificationsSettings.from_dict(obj["notifications_settings"]) if obj.get("notifications_settings") is not None else None,
179
299
  "parody_commentary_fan_label": obj.get("parody_commentary_fan_label"),
300
+ "pinned_items": UserPinnedItems.from_dict(obj["pinned_items"]) if obj.get("pinned_items") is not None else None,
301
+ "possibly_sensitive": obj.get("possibly_sensitive"),
180
302
  "premium_gifting_eligible": obj.get("premium_gifting_eligible"),
303
+ "privacy": UserPrivacy.from_dict(obj["privacy"]) if obj.get("privacy") is not None else None,
181
304
  "professional": UserProfessional.from_dict(obj["professional"]) if obj.get("professional") is not None else None,
305
+ "profile_bio": ProfileBio.from_dict(obj["profile_bio"]) if obj.get("profile_bio") is not None else None,
306
+ "profile_description_language": obj.get("profile_description_language"),
182
307
  "profile_image_shape": obj.get("profile_image_shape"),
308
+ "profile_metadata": UserProfileMetadata.from_dict(obj["profile_metadata"]) if obj.get("profile_metadata") is not None else None,
309
+ "profile_sort_enabled": obj.get("profile_sort_enabled"),
310
+ "profile_translation": UserProfileTranslation.from_dict(obj["profile_translation"]) if obj.get("profile_translation") is not None else None,
311
+ "relationship_counts": UserRelationshipCounts.from_dict(obj["relationship_counts"]) if obj.get("relationship_counts") is not None else None,
312
+ "relationship_perspectives": UserRelationshipPerspectives.from_dict(obj["relationship_perspectives"]) if obj.get("relationship_perspectives") is not None else None,
183
313
  "rest_id": obj.get("rest_id"),
184
314
  "super_follow_eligible": obj.get("super_follow_eligible"),
185
315
  "super_followed_by": obj.get("super_followed_by"),
186
316
  "super_following": obj.get("super_following"),
317
+ "super_follows_user_profile": UserProfile.from_dict(obj["super_follows_user_profile"]) if obj.get("super_follows_user_profile") is not None else None,
187
318
  "tipjar_settings": UserTipJarSettings.from_dict(obj["tipjar_settings"]) if obj.get("tipjar_settings") is not None else None,
319
+ "tweet_counts": UserTweetCounts.from_dict(obj["tweet_counts"]) if obj.get("tweet_counts") is not None else None,
188
320
  "user_seed_tweet_count": obj.get("user_seed_tweet_count"),
189
- "verification_info": UserVerificationInfo.from_dict(obj["verification_info"]) if obj.get("verification_info") is not None else None
321
+ "verification": UserVerification.from_dict(obj["verification"]) if obj.get("verification") is not None else None,
322
+ "verification_info": UserVerificationInfo.from_dict(obj["verification_info"]) if obj.get("verification_info") is not None else None,
323
+ "verified_user_profiles": UserProfile.from_dict(obj["verified_user_profiles"]) if obj.get("verified_user_profiles") is not None else None,
324
+ "website": UserWebsite.from_dict(obj["website"]) if obj.get("website") is not None else None
190
325
  })
191
326
  return _obj
192
327
 
328
+ from twitter_openapi_python_generated.models.grok_translated_bio_with_availability import GrokTranslatedBioWithAvailability
329
+ # TODO: Rewrite to not use raise_errors
330
+ User.model_rebuild(raise_errors=False)
193
331