twitter-openapi-python-generated 0.0.33__py3-none-any.whl → 0.0.34__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 (361) hide show
  1. twitter_openapi_python_generated/__init__.py +742 -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 +1 -2
  5. twitter_openapi_python_generated/api/tweet_api.py +1 -2
  6. twitter_openapi_python_generated/api/user_api.py +1 -2
  7. twitter_openapi_python_generated/api/user_list_api.py +318 -2
  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 +35 -28
  13. twitter_openapi_python_generated/configuration.py +47 -23
  14. twitter_openapi_python_generated/exceptions.py +7 -5
  15. twitter_openapi_python_generated/models/__init__.py +41 -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 +4 -3
  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 +7 -3
  26. twitter_openapi_python_generated/models/article_cover_media_color_info.py +4 -3
  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 +23 -6
  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/birdwatch_entity.py +4 -3
  37. twitter_openapi_python_generated/models/birdwatch_entity_ref.py +4 -3
  38. twitter_openapi_python_generated/models/birdwatch_pivot.py +19 -6
  39. twitter_openapi_python_generated/models/birdwatch_pivot_call_to_action.py +4 -3
  40. twitter_openapi_python_generated/models/birdwatch_pivot_footer.py +4 -3
  41. twitter_openapi_python_generated/models/birdwatch_pivot_note.py +20 -6
  42. twitter_openapi_python_generated/models/birdwatch_pivot_subtitle.py +4 -3
  43. twitter_openapi_python_generated/models/bookmarks_response.py +4 -3
  44. twitter_openapi_python_generated/models/bookmarks_response_data.py +4 -3
  45. twitter_openapi_python_generated/models/bookmarks_timeline.py +4 -3
  46. twitter_openapi_python_generated/models/callback.py +4 -3
  47. twitter_openapi_python_generated/models/client_event_info.py +4 -3
  48. twitter_openapi_python_generated/models/communities_actions.py +4 -3
  49. twitter_openapi_python_generated/models/community.py +146 -12
  50. twitter_openapi_python_generated/models/community_about_timeline_response.py +4 -3
  51. twitter_openapi_python_generated/models/community_actions.py +4 -3
  52. twitter_openapi_python_generated/models/community_delete_action_result.py +4 -3
  53. twitter_openapi_python_generated/models/community_invites_result.py +4 -3
  54. twitter_openapi_python_generated/models/community_join_action.py +4 -3
  55. twitter_openapi_python_generated/models/community_join_action_unavailable.py +4 -3
  56. twitter_openapi_python_generated/models/community_join_requests_result.py +4 -3
  57. twitter_openapi_python_generated/models/community_leave_action_result.py +4 -3
  58. twitter_openapi_python_generated/models/community_media_timeline_response.py +4 -3
  59. twitter_openapi_python_generated/models/community_pin_action_result.py +4 -3
  60. twitter_openapi_python_generated/models/community_relationship.py +7 -3
  61. twitter_openapi_python_generated/models/community_result.py +93 -0
  62. twitter_openapi_python_generated/models/community_rule.py +7 -3
  63. twitter_openapi_python_generated/models/community_tweets_timeline_response.py +4 -3
  64. twitter_openapi_python_generated/models/community_unavailable.py +90 -0
  65. twitter_openapi_python_generated/models/community_union.py +156 -0
  66. twitter_openapi_python_generated/models/community_unpin_action_result.py +4 -3
  67. twitter_openapi_python_generated/models/community_urls.py +4 -3
  68. twitter_openapi_python_generated/models/community_urls_permalink.py +4 -3
  69. twitter_openapi_python_generated/models/content_disclosure.py +99 -0
  70. twitter_openapi_python_generated/models/content_disclosure_advertising_disclosure.py +89 -0
  71. twitter_openapi_python_generated/models/content_disclosure_ai_generated_disclosure.py +103 -0
  72. twitter_openapi_python_generated/models/conversation_control.py +4 -3
  73. twitter_openapi_python_generated/models/cover_cta.py +4 -3
  74. twitter_openapi_python_generated/models/create_bookmark_response.py +4 -3
  75. twitter_openapi_python_generated/models/create_bookmark_response_data.py +4 -3
  76. twitter_openapi_python_generated/models/create_retweet.py +4 -3
  77. twitter_openapi_python_generated/models/create_retweet_response.py +4 -3
  78. twitter_openapi_python_generated/models/create_retweet_response_data.py +4 -3
  79. twitter_openapi_python_generated/models/create_retweet_response_result.py +4 -3
  80. twitter_openapi_python_generated/models/create_tweet.py +4 -3
  81. twitter_openapi_python_generated/models/create_tweet_response.py +4 -3
  82. twitter_openapi_python_generated/models/create_tweet_response_data.py +4 -3
  83. twitter_openapi_python_generated/models/create_tweet_response_result.py +4 -3
  84. twitter_openapi_python_generated/models/cta_client_event_info.py +4 -3
  85. twitter_openapi_python_generated/models/delete_bookmark_response.py +4 -3
  86. twitter_openapi_python_generated/models/delete_bookmark_response_data.py +4 -3
  87. twitter_openapi_python_generated/models/delete_retweet.py +4 -3
  88. twitter_openapi_python_generated/models/delete_retweet_response.py +4 -3
  89. twitter_openapi_python_generated/models/delete_retweet_response_data.py +4 -3
  90. twitter_openapi_python_generated/models/delete_retweet_response_result.py +4 -3
  91. twitter_openapi_python_generated/models/delete_tweet_response.py +4 -3
  92. twitter_openapi_python_generated/models/delete_tweet_response_data.py +4 -3
  93. twitter_openapi_python_generated/models/delete_tweet_response_result.py +4 -3
  94. twitter_openapi_python_generated/models/display_treatment.py +4 -3
  95. twitter_openapi_python_generated/models/entities.py +19 -8
  96. twitter_openapi_python_generated/models/error_extensions.py +4 -3
  97. twitter_openapi_python_generated/models/error_response.py +14 -5
  98. twitter_openapi_python_generated/models/error_response_path_inner.py +144 -0
  99. twitter_openapi_python_generated/models/ext_media_availability.py +4 -3
  100. twitter_openapi_python_generated/models/extended_entities.py +4 -3
  101. twitter_openapi_python_generated/models/favorite_tweet.py +4 -3
  102. twitter_openapi_python_generated/models/favorite_tweet_response.py +4 -3
  103. twitter_openapi_python_generated/models/feedback_info.py +4 -3
  104. twitter_openapi_python_generated/models/follow_response.py +4 -3
  105. twitter_openapi_python_generated/models/follow_response_data.py +4 -3
  106. twitter_openapi_python_generated/models/follow_response_result.py +4 -3
  107. twitter_openapi_python_generated/models/follow_response_user.py +4 -3
  108. twitter_openapi_python_generated/models/follow_timeline.py +4 -3
  109. twitter_openapi_python_generated/models/grok_annotation.py +89 -0
  110. twitter_openapi_python_generated/models/grok_entity.py +97 -0
  111. twitter_openapi_python_generated/models/grok_entity_ref.py +116 -0
  112. twitter_openapi_python_generated/models/grok_image_annotation.py +4 -3
  113. twitter_openapi_python_generated/models/grok_share_attachment.py +4 -3
  114. twitter_openapi_python_generated/models/grok_share_attachment_item.py +7 -4
  115. twitter_openapi_python_generated/models/grok_translated_community_note.py +105 -0
  116. twitter_openapi_python_generated/models/grok_translated_community_note_with_availability.py +95 -0
  117. twitter_openapi_python_generated/models/grok_translated_post.py +103 -0
  118. twitter_openapi_python_generated/models/grok_translated_post_with_availability.py +95 -0
  119. twitter_openapi_python_generated/models/highlight.py +4 -3
  120. twitter_openapi_python_generated/models/home_timeline_home.py +4 -3
  121. twitter_openapi_python_generated/models/home_timeline_response_data.py +4 -3
  122. twitter_openapi_python_generated/models/item_result.py +4 -3
  123. twitter_openapi_python_generated/models/limited_action_results_data.py +4 -3
  124. twitter_openapi_python_generated/models/list_latest_tweets_timeline_response.py +4 -3
  125. twitter_openapi_python_generated/models/list_tweets_timeline_data.py +4 -3
  126. twitter_openapi_python_generated/models/list_tweets_timeline_list.py +4 -3
  127. twitter_openapi_python_generated/models/location.py +4 -3
  128. twitter_openapi_python_generated/models/media.py +17 -4
  129. twitter_openapi_python_generated/models/media_community_result.py +4 -3
  130. twitter_openapi_python_generated/models/media_community_results.py +4 -3
  131. twitter_openapi_python_generated/models/media_community_tweet_data.py +4 -3
  132. twitter_openapi_python_generated/models/media_extended.py +17 -4
  133. twitter_openapi_python_generated/models/media_original_info.py +4 -3
  134. twitter_openapi_python_generated/models/media_original_info_focus_rect.py +4 -3
  135. twitter_openapi_python_generated/models/media_result.py +4 -3
  136. twitter_openapi_python_generated/models/media_results.py +4 -3
  137. twitter_openapi_python_generated/models/media_size.py +4 -3
  138. twitter_openapi_python_generated/models/media_sizes.py +4 -3
  139. twitter_openapi_python_generated/models/media_stats.py +4 -3
  140. twitter_openapi_python_generated/models/media_video_info.py +4 -3
  141. twitter_openapi_python_generated/models/media_video_info_variant.py +4 -3
  142. twitter_openapi_python_generated/models/media_visibility_results.py +4 -3
  143. twitter_openapi_python_generated/models/media_visibility_results_blurred_image_interstitial.py +4 -3
  144. twitter_openapi_python_generated/models/module_entry.py +4 -3
  145. twitter_openapi_python_generated/models/module_item.py +7 -3
  146. twitter_openapi_python_generated/models/note_tweet.py +6 -5
  147. twitter_openapi_python_generated/models/note_tweet_result.py +4 -3
  148. twitter_openapi_python_generated/models/note_tweet_result_data.py +7 -3
  149. twitter_openapi_python_generated/models/note_tweet_result_media.py +4 -3
  150. twitter_openapi_python_generated/models/note_tweet_result_media_inline_media.py +7 -3
  151. twitter_openapi_python_generated/models/note_tweet_result_rich_text.py +4 -3
  152. twitter_openapi_python_generated/models/note_tweet_result_rich_text_tag.py +4 -3
  153. twitter_openapi_python_generated/models/notification_template.py +4 -3
  154. twitter_openapi_python_generated/models/notifications_result.py +7 -3
  155. twitter_openapi_python_generated/models/notifications_timeline_data.py +4 -3
  156. twitter_openapi_python_generated/models/notifications_timeline_response.py +4 -3
  157. twitter_openapi_python_generated/models/notifications_user_results.py +4 -3
  158. twitter_openapi_python_generated/models/notifications_viewer_v2.py +4 -3
  159. twitter_openapi_python_generated/models/one_factor_login_eligibility.py +4 -3
  160. twitter_openapi_python_generated/models/other_object_all.py +4 -3
  161. twitter_openapi_python_generated/models/post_create_bookmark_request.py +4 -3
  162. twitter_openapi_python_generated/models/post_create_bookmark_request_variables.py +4 -3
  163. twitter_openapi_python_generated/models/post_create_retweet_request.py +5 -4
  164. twitter_openapi_python_generated/models/post_create_retweet_request_variables.py +4 -3
  165. twitter_openapi_python_generated/models/post_create_tweet_request.py +5 -4
  166. twitter_openapi_python_generated/models/post_create_tweet_request_features.py +30 -15
  167. twitter_openapi_python_generated/models/post_create_tweet_request_variables.py +4 -3
  168. twitter_openapi_python_generated/models/post_create_tweet_request_variables_conversation_control.py +4 -3
  169. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media.py +4 -3
  170. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media_media_entities_inner.py +4 -3
  171. twitter_openapi_python_generated/models/post_create_tweet_request_variables_reply.py +4 -3
  172. twitter_openapi_python_generated/models/post_cta.py +101 -0
  173. twitter_openapi_python_generated/models/post_cta_title_text.py +99 -0
  174. twitter_openapi_python_generated/models/post_cta_title_text_entity.py +97 -0
  175. twitter_openapi_python_generated/models/post_cta_title_text_entity_ref.py +96 -0
  176. twitter_openapi_python_generated/models/post_cta_user_results.py +93 -0
  177. twitter_openapi_python_generated/models/post_cta_user_results_avatar.py +89 -0
  178. twitter_openapi_python_generated/models/post_cta_user_results_result.py +96 -0
  179. twitter_openapi_python_generated/models/post_delete_bookmark_request.py +4 -3
  180. twitter_openapi_python_generated/models/post_delete_retweet_request.py +5 -4
  181. twitter_openapi_python_generated/models/post_delete_retweet_request_variables.py +4 -3
  182. twitter_openapi_python_generated/models/post_delete_tweet_request.py +4 -3
  183. twitter_openapi_python_generated/models/post_favorite_tweet_request.py +4 -3
  184. twitter_openapi_python_generated/models/post_unfavorite_tweet_request.py +4 -3
  185. twitter_openapi_python_generated/models/primary_community_topic.py +7 -3
  186. twitter_openapi_python_generated/models/profile_bio.py +89 -0
  187. twitter_openapi_python_generated/models/profile_response.py +4 -3
  188. twitter_openapi_python_generated/models/profile_response_data.py +4 -3
  189. twitter_openapi_python_generated/models/quoted_ref_result.py +4 -3
  190. twitter_openapi_python_generated/models/quoted_status_permalink.py +4 -3
  191. twitter_openapi_python_generated/models/ranked_community_result.py +4 -3
  192. twitter_openapi_python_generated/models/ranked_community_results.py +4 -3
  193. twitter_openapi_python_generated/models/ranked_community_tweet_data.py +4 -3
  194. twitter_openapi_python_generated/models/retweet.py +7 -3
  195. twitter_openapi_python_generated/models/retweet_legacy.py +4 -3
  196. twitter_openapi_python_generated/models/rich_message.py +4 -3
  197. twitter_openapi_python_generated/models/search_by_raw_query.py +4 -3
  198. twitter_openapi_python_generated/models/search_timeline.py +4 -3
  199. twitter_openapi_python_generated/models/search_timeline_data.py +4 -3
  200. twitter_openapi_python_generated/models/search_timeline_response.py +4 -3
  201. twitter_openapi_python_generated/models/self_thread.py +7 -3
  202. twitter_openapi_python_generated/models/sensitive_media_warning.py +4 -3
  203. twitter_openapi_python_generated/models/session.py +16 -3
  204. twitter_openapi_python_generated/models/smarttag.py +97 -0
  205. twitter_openapi_python_generated/models/smarttag_tag.py +89 -0
  206. twitter_openapi_python_generated/models/social_context_landing_url.py +4 -3
  207. twitter_openapi_python_generated/models/super_follow_user_profile.py +89 -0
  208. twitter_openapi_python_generated/models/super_follows_reply_user_result.py +4 -3
  209. twitter_openapi_python_generated/models/super_follows_reply_user_result_core.py +89 -0
  210. twitter_openapi_python_generated/models/super_follows_reply_user_result_data.py +12 -11
  211. twitter_openapi_python_generated/models/super_follows_reply_user_result_legacy.py +4 -3
  212. twitter_openapi_python_generated/models/text.py +4 -3
  213. twitter_openapi_python_generated/models/text_entity.py +4 -3
  214. twitter_openapi_python_generated/models/text_entity_ref.py +4 -3
  215. twitter_openapi_python_generated/models/text_highlight.py +4 -3
  216. twitter_openapi_python_generated/models/thumbnail_image.py +4 -3
  217. twitter_openapi_python_generated/models/timeline.py +4 -3
  218. twitter_openapi_python_generated/models/timeline_add_entries.py +4 -3
  219. twitter_openapi_python_generated/models/timeline_add_entry.py +10 -3
  220. twitter_openapi_python_generated/models/timeline_add_to_module.py +4 -3
  221. twitter_openapi_python_generated/models/timeline_clear_cache.py +4 -3
  222. twitter_openapi_python_generated/models/timeline_clear_entries_unread_state.py +4 -3
  223. twitter_openapi_python_generated/models/timeline_community.py +4 -3
  224. twitter_openapi_python_generated/models/timeline_cover_behavior.py +4 -3
  225. twitter_openapi_python_generated/models/timeline_cover_behavior_url.py +4 -3
  226. twitter_openapi_python_generated/models/timeline_general_context.py +4 -3
  227. twitter_openapi_python_generated/models/timeline_half_cover.py +4 -3
  228. twitter_openapi_python_generated/models/timeline_mark_entries_unread_greater_than_sort_index.py +7 -3
  229. twitter_openapi_python_generated/models/timeline_message_prompt.py +4 -3
  230. twitter_openapi_python_generated/models/timeline_notification.py +4 -3
  231. twitter_openapi_python_generated/models/timeline_pin_entry.py +4 -3
  232. twitter_openapi_python_generated/models/timeline_prompt.py +4 -3
  233. twitter_openapi_python_generated/models/timeline_replace_entry.py +4 -3
  234. twitter_openapi_python_generated/models/timeline_response.py +4 -3
  235. twitter_openapi_python_generated/models/timeline_result.py +4 -3
  236. twitter_openapi_python_generated/models/timeline_show_alert.py +11 -4
  237. twitter_openapi_python_generated/models/timeline_show_alert_rich_text.py +4 -3
  238. twitter_openapi_python_generated/models/timeline_show_cover.py +4 -3
  239. twitter_openapi_python_generated/models/timeline_terminate_timeline.py +4 -3
  240. twitter_openapi_python_generated/models/timeline_timeline_cursor.py +4 -3
  241. twitter_openapi_python_generated/models/timeline_timeline_item.py +4 -3
  242. twitter_openapi_python_generated/models/timeline_timeline_module.py +4 -3
  243. twitter_openapi_python_generated/models/timeline_tombstone.py +4 -3
  244. twitter_openapi_python_generated/models/timeline_topic_context.py +4 -3
  245. twitter_openapi_python_generated/models/timeline_trend.py +4 -3
  246. twitter_openapi_python_generated/models/timeline_tweet.py +4 -3
  247. twitter_openapi_python_generated/models/timeline_user.py +4 -3
  248. twitter_openapi_python_generated/models/timestamp.py +4 -3
  249. twitter_openapi_python_generated/models/tombstone_entity.py +4 -3
  250. twitter_openapi_python_generated/models/tombstone_info.py +4 -3
  251. twitter_openapi_python_generated/models/tombstone_ref.py +4 -3
  252. twitter_openapi_python_generated/models/tombstone_rich_text.py +4 -3
  253. twitter_openapi_python_generated/models/topic_context.py +4 -3
  254. twitter_openapi_python_generated/models/tracing.py +7 -3
  255. twitter_openapi_python_generated/models/trend_image.py +4 -3
  256. twitter_openapi_python_generated/models/trend_metadata.py +4 -3
  257. twitter_openapi_python_generated/models/trend_results.py +7 -3
  258. twitter_openapi_python_generated/models/tweet.py +39 -7
  259. twitter_openapi_python_generated/models/tweet_card.py +4 -3
  260. twitter_openapi_python_generated/models/tweet_card_legacy.py +4 -3
  261. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value.py +4 -3
  262. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value_data.py +4 -3
  263. twitter_openapi_python_generated/models/tweet_card_legacy_binding_value_data_image.py +4 -3
  264. twitter_openapi_python_generated/models/tweet_card_platform.py +4 -3
  265. twitter_openapi_python_generated/models/tweet_card_platform_audience.py +4 -3
  266. twitter_openapi_python_generated/models/tweet_card_platform_data.py +4 -3
  267. twitter_openapi_python_generated/models/tweet_card_platform_device.py +7 -3
  268. twitter_openapi_python_generated/models/tweet_detail_response.py +4 -3
  269. twitter_openapi_python_generated/models/tweet_detail_response_data.py +4 -3
  270. twitter_openapi_python_generated/models/tweet_edit_control.py +13 -3
  271. twitter_openapi_python_generated/models/tweet_edit_control_initial.py +10 -3
  272. twitter_openapi_python_generated/models/tweet_edit_prespective.py +4 -3
  273. twitter_openapi_python_generated/models/tweet_favoriters_response.py +4 -3
  274. twitter_openapi_python_generated/models/tweet_favoriters_response_data.py +4 -3
  275. twitter_openapi_python_generated/models/tweet_interstitial.py +6 -5
  276. twitter_openapi_python_generated/models/tweet_interstitial_reveal_text.py +4 -3
  277. twitter_openapi_python_generated/models/tweet_interstitial_text.py +4 -3
  278. twitter_openapi_python_generated/models/tweet_interstitial_text_entity.py +4 -3
  279. twitter_openapi_python_generated/models/tweet_interstitial_text_entity_ref.py +4 -3
  280. twitter_openapi_python_generated/models/tweet_legacy.py +26 -4
  281. twitter_openapi_python_generated/models/tweet_legacy_scopes.py +4 -3
  282. twitter_openapi_python_generated/models/tweet_limited_action_results.py +4 -3
  283. twitter_openapi_python_generated/models/tweet_post_cta.py +105 -0
  284. twitter_openapi_python_generated/models/tweet_preview_display.py +4 -3
  285. twitter_openapi_python_generated/models/tweet_preview_display_cta.py +4 -3
  286. twitter_openapi_python_generated/models/tweet_preview_display_cta_url.py +4 -3
  287. twitter_openapi_python_generated/models/tweet_preview_display_tweet.py +18 -5
  288. twitter_openapi_python_generated/models/tweet_preview_display_tweet_view_count.py +7 -3
  289. twitter_openapi_python_generated/models/tweet_previous_counts.py +4 -3
  290. twitter_openapi_python_generated/models/tweet_result_by_rest_id_data.py +4 -3
  291. twitter_openapi_python_generated/models/tweet_result_by_rest_id_response.py +4 -3
  292. twitter_openapi_python_generated/models/tweet_retweeters_response.py +4 -3
  293. twitter_openapi_python_generated/models/tweet_retweeters_response_data.py +4 -3
  294. twitter_openapi_python_generated/models/tweet_tombstone.py +4 -3
  295. twitter_openapi_python_generated/models/tweet_unavailable.py +4 -3
  296. twitter_openapi_python_generated/models/tweet_view.py +7 -3
  297. twitter_openapi_python_generated/models/tweet_with_visibility_results.py +4 -3
  298. twitter_openapi_python_generated/models/type_name.py +2 -0
  299. twitter_openapi_python_generated/models/unfavorite_tweet.py +4 -3
  300. twitter_openapi_python_generated/models/unfavorite_tweet_response.py +4 -3
  301. twitter_openapi_python_generated/models/unified_card.py +4 -3
  302. twitter_openapi_python_generated/models/url.py +4 -3
  303. twitter_openapi_python_generated/models/urt_endpoint_options.py +4 -3
  304. twitter_openapi_python_generated/models/urt_endpoint_request_params.py +4 -3
  305. twitter_openapi_python_generated/models/user.py +83 -7
  306. twitter_openapi_python_generated/models/user_avatar.py +89 -0
  307. twitter_openapi_python_generated/models/user_core.py +104 -0
  308. twitter_openapi_python_generated/models/user_dm_permissions.py +89 -0
  309. twitter_openapi_python_generated/models/user_features.py +4 -3
  310. twitter_openapi_python_generated/models/user_highlights_info.py +4 -3
  311. twitter_openapi_python_generated/models/user_highlights_tweets_data.py +4 -3
  312. twitter_openapi_python_generated/models/user_highlights_tweets_response.py +4 -3
  313. twitter_openapi_python_generated/models/user_highlights_tweets_result.py +4 -3
  314. twitter_openapi_python_generated/models/user_highlights_tweets_timeline.py +4 -3
  315. twitter_openapi_python_generated/models/user_highlights_tweets_user.py +4 -3
  316. twitter_openapi_python_generated/models/user_legacy.py +27 -12
  317. twitter_openapi_python_generated/models/user_legacy_extended_profile.py +4 -3
  318. twitter_openapi_python_generated/models/user_legacy_extended_profile_birthdate.py +4 -3
  319. twitter_openapi_python_generated/models/user_location.py +89 -0
  320. twitter_openapi_python_generated/models/user_media_permissions.py +89 -0
  321. twitter_openapi_python_generated/models/user_privacy.py +89 -0
  322. twitter_openapi_python_generated/models/user_professional.py +9 -5
  323. twitter_openapi_python_generated/models/user_professional_category.py +4 -3
  324. twitter_openapi_python_generated/models/user_profile.py +93 -0
  325. twitter_openapi_python_generated/models/user_relationship_perspectives.py +95 -0
  326. twitter_openapi_python_generated/models/user_response.py +4 -3
  327. twitter_openapi_python_generated/models/user_response_data.py +4 -3
  328. twitter_openapi_python_generated/models/user_result_by_screen_name.py +7 -3
  329. twitter_openapi_python_generated/models/user_result_by_screen_name_core.py +91 -0
  330. twitter_openapi_python_generated/models/user_result_by_screen_name_legacy.py +4 -3
  331. twitter_openapi_python_generated/models/user_result_by_screen_name_result.py +31 -6
  332. twitter_openapi_python_generated/models/user_result_core.py +4 -3
  333. twitter_openapi_python_generated/models/user_result_privacy.py +89 -0
  334. twitter_openapi_python_generated/models/user_result_relationship_perspectives.py +95 -0
  335. twitter_openapi_python_generated/models/user_results.py +4 -3
  336. twitter_openapi_python_generated/models/user_tip_jar_settings.py +4 -3
  337. twitter_openapi_python_generated/models/user_tweets_data.py +4 -3
  338. twitter_openapi_python_generated/models/user_tweets_response.py +4 -3
  339. twitter_openapi_python_generated/models/user_tweets_result_v1.py +4 -3
  340. twitter_openapi_python_generated/models/user_tweets_result_v2.py +4 -3
  341. twitter_openapi_python_generated/models/user_tweets_user.py +4 -3
  342. twitter_openapi_python_generated/models/user_unavailable.py +4 -3
  343. twitter_openapi_python_generated/models/user_value.py +7 -3
  344. twitter_openapi_python_generated/models/user_verification.py +101 -0
  345. twitter_openapi_python_generated/models/user_verification_info.py +4 -3
  346. twitter_openapi_python_generated/models/user_verification_info_reason.py +7 -3
  347. twitter_openapi_python_generated/models/user_verification_info_reason_description.py +4 -3
  348. twitter_openapi_python_generated/models/user_verification_info_reason_description_entities.py +4 -3
  349. twitter_openapi_python_generated/models/user_verification_info_reason_description_entities_ref.py +4 -3
  350. twitter_openapi_python_generated/models/users_response.py +4 -3
  351. twitter_openapi_python_generated/models/users_response_data.py +4 -3
  352. twitter_openapi_python_generated/rest.py +7 -2
  353. twitter_openapi_python_generated-0.0.34.dist-info/METADATA +816 -0
  354. twitter_openapi_python_generated-0.0.34.dist-info/RECORD +374 -0
  355. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.34.dist-info}/WHEEL +1 -1
  356. twitter_openapi_python_generated/models/community_data.py +0 -219
  357. twitter_openapi_python_generated-0.0.33.dist-info/METADATA +0 -29
  358. twitter_openapi_python_generated-0.0.33.dist-info/RECORD +0 -335
  359. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.34.dist-info}/licenses/LICENSE +0 -0
  360. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.34.dist-info}/licenses/LICENSE.AGPL +0 -0
  361. {twitter_openapi_python_generated-0.0.33.dist-info → twitter_openapi_python_generated-0.0.34.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -40,6 +39,323 @@ class UserListApi:
40
39
  self.api_client = api_client
41
40
 
42
41
 
42
+ @validate_call
43
+ def get_blue_verified_followers(
44
+ self,
45
+ path_query_id: StrictStr,
46
+ variables: StrictStr,
47
+ features: StrictStr,
48
+ _request_timeout: Union[
49
+ None,
50
+ Annotated[StrictFloat, Field(gt=0)],
51
+ Tuple[
52
+ Annotated[StrictFloat, Field(gt=0)],
53
+ Annotated[StrictFloat, Field(gt=0)]
54
+ ]
55
+ ] = None,
56
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
57
+ _content_type: Optional[StrictStr] = None,
58
+ _headers: Optional[Dict[StrictStr, Any]] = None,
59
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
60
+ ) -> FollowResponse:
61
+ """get_blue_verified_followers
62
+
63
+ get blue verified followers
64
+
65
+ :param path_query_id: (required)
66
+ :type path_query_id: str
67
+ :param variables: (required)
68
+ :type variables: str
69
+ :param features: (required)
70
+ :type features: str
71
+ :param _request_timeout: timeout setting for this request. If one
72
+ number provided, it will be total request
73
+ timeout. It can also be a pair (tuple) of
74
+ (connection, read) timeouts.
75
+ :type _request_timeout: int, tuple(int, int), optional
76
+ :param _request_auth: set to override the auth_settings for an a single
77
+ request; this effectively ignores the
78
+ authentication in the spec for a single request.
79
+ :type _request_auth: dict, optional
80
+ :param _content_type: force content-type for the request.
81
+ :type _content_type: str, Optional
82
+ :param _headers: set to override the headers for a single
83
+ request; this effectively ignores the headers
84
+ in the spec for a single request.
85
+ :type _headers: dict, optional
86
+ :param _host_index: set to override the host_index for a single
87
+ request; this effectively ignores the host_index
88
+ in the spec for a single request.
89
+ :type _host_index: int, optional
90
+ :return: Returns the result object.
91
+ """ # noqa: E501
92
+
93
+ _param = self._get_blue_verified_followers_serialize(
94
+ path_query_id=path_query_id,
95
+ variables=variables,
96
+ features=features,
97
+ _request_auth=_request_auth,
98
+ _content_type=_content_type,
99
+ _headers=_headers,
100
+ _host_index=_host_index
101
+ )
102
+
103
+ _response_types_map: Dict[str, Optional[str]] = {
104
+ '200': "FollowResponse",
105
+ }
106
+ response_data = self.api_client.call_api(
107
+ *_param,
108
+ _request_timeout=_request_timeout
109
+ )
110
+ response_data.read()
111
+ return self.api_client.response_deserialize(
112
+ response_data=response_data,
113
+ response_types_map=_response_types_map,
114
+ ).data
115
+
116
+
117
+ @validate_call
118
+ def get_blue_verified_followers_with_http_info(
119
+ self,
120
+ path_query_id: StrictStr,
121
+ variables: StrictStr,
122
+ features: StrictStr,
123
+ _request_timeout: Union[
124
+ None,
125
+ Annotated[StrictFloat, Field(gt=0)],
126
+ Tuple[
127
+ Annotated[StrictFloat, Field(gt=0)],
128
+ Annotated[StrictFloat, Field(gt=0)]
129
+ ]
130
+ ] = None,
131
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
132
+ _content_type: Optional[StrictStr] = None,
133
+ _headers: Optional[Dict[StrictStr, Any]] = None,
134
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
135
+ ) -> ApiResponse[FollowResponse]:
136
+ """get_blue_verified_followers
137
+
138
+ get blue verified followers
139
+
140
+ :param path_query_id: (required)
141
+ :type path_query_id: str
142
+ :param variables: (required)
143
+ :type variables: str
144
+ :param features: (required)
145
+ :type features: str
146
+ :param _request_timeout: timeout setting for this request. If one
147
+ number provided, it will be total request
148
+ timeout. It can also be a pair (tuple) of
149
+ (connection, read) timeouts.
150
+ :type _request_timeout: int, tuple(int, int), optional
151
+ :param _request_auth: set to override the auth_settings for an a single
152
+ request; this effectively ignores the
153
+ authentication in the spec for a single request.
154
+ :type _request_auth: dict, optional
155
+ :param _content_type: force content-type for the request.
156
+ :type _content_type: str, Optional
157
+ :param _headers: set to override the headers for a single
158
+ request; this effectively ignores the headers
159
+ in the spec for a single request.
160
+ :type _headers: dict, optional
161
+ :param _host_index: set to override the host_index for a single
162
+ request; this effectively ignores the host_index
163
+ in the spec for a single request.
164
+ :type _host_index: int, optional
165
+ :return: Returns the result object.
166
+ """ # noqa: E501
167
+
168
+ _param = self._get_blue_verified_followers_serialize(
169
+ path_query_id=path_query_id,
170
+ variables=variables,
171
+ features=features,
172
+ _request_auth=_request_auth,
173
+ _content_type=_content_type,
174
+ _headers=_headers,
175
+ _host_index=_host_index
176
+ )
177
+
178
+ _response_types_map: Dict[str, Optional[str]] = {
179
+ '200': "FollowResponse",
180
+ }
181
+ response_data = self.api_client.call_api(
182
+ *_param,
183
+ _request_timeout=_request_timeout
184
+ )
185
+ response_data.read()
186
+ return self.api_client.response_deserialize(
187
+ response_data=response_data,
188
+ response_types_map=_response_types_map,
189
+ )
190
+
191
+
192
+ @validate_call
193
+ def get_blue_verified_followers_without_preload_content(
194
+ self,
195
+ path_query_id: StrictStr,
196
+ variables: StrictStr,
197
+ features: StrictStr,
198
+ _request_timeout: Union[
199
+ None,
200
+ Annotated[StrictFloat, Field(gt=0)],
201
+ Tuple[
202
+ Annotated[StrictFloat, Field(gt=0)],
203
+ Annotated[StrictFloat, Field(gt=0)]
204
+ ]
205
+ ] = None,
206
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
207
+ _content_type: Optional[StrictStr] = None,
208
+ _headers: Optional[Dict[StrictStr, Any]] = None,
209
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
210
+ ) -> RESTResponseType:
211
+ """get_blue_verified_followers
212
+
213
+ get blue verified followers
214
+
215
+ :param path_query_id: (required)
216
+ :type path_query_id: str
217
+ :param variables: (required)
218
+ :type variables: str
219
+ :param features: (required)
220
+ :type features: str
221
+ :param _request_timeout: timeout setting for this request. If one
222
+ number provided, it will be total request
223
+ timeout. It can also be a pair (tuple) of
224
+ (connection, read) timeouts.
225
+ :type _request_timeout: int, tuple(int, int), optional
226
+ :param _request_auth: set to override the auth_settings for an a single
227
+ request; this effectively ignores the
228
+ authentication in the spec for a single request.
229
+ :type _request_auth: dict, optional
230
+ :param _content_type: force content-type for the request.
231
+ :type _content_type: str, Optional
232
+ :param _headers: set to override the headers for a single
233
+ request; this effectively ignores the headers
234
+ in the spec for a single request.
235
+ :type _headers: dict, optional
236
+ :param _host_index: set to override the host_index for a single
237
+ request; this effectively ignores the host_index
238
+ in the spec for a single request.
239
+ :type _host_index: int, optional
240
+ :return: Returns the result object.
241
+ """ # noqa: E501
242
+
243
+ _param = self._get_blue_verified_followers_serialize(
244
+ path_query_id=path_query_id,
245
+ variables=variables,
246
+ features=features,
247
+ _request_auth=_request_auth,
248
+ _content_type=_content_type,
249
+ _headers=_headers,
250
+ _host_index=_host_index
251
+ )
252
+
253
+ _response_types_map: Dict[str, Optional[str]] = {
254
+ '200': "FollowResponse",
255
+ }
256
+ response_data = self.api_client.call_api(
257
+ *_param,
258
+ _request_timeout=_request_timeout
259
+ )
260
+ return response_data.response
261
+
262
+
263
+ def _get_blue_verified_followers_serialize(
264
+ self,
265
+ path_query_id,
266
+ variables,
267
+ features,
268
+ _request_auth,
269
+ _content_type,
270
+ _headers,
271
+ _host_index,
272
+ ) -> RequestSerialized:
273
+
274
+ _host = None
275
+
276
+ _collection_formats: Dict[str, str] = {
277
+ }
278
+
279
+ _path_params: Dict[str, str] = {}
280
+ _query_params: List[Tuple[str, str]] = []
281
+ _header_params: Dict[str, Optional[str]] = _headers or {}
282
+ _form_params: List[Tuple[str, str]] = []
283
+ _files: Dict[
284
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
285
+ ] = {}
286
+ _body_params: Optional[bytes] = None
287
+
288
+ # process the path parameters
289
+ if path_query_id is not None:
290
+ _path_params['pathQueryId'] = path_query_id
291
+ # process the query parameters
292
+ if variables is not None:
293
+
294
+ _query_params.append(('variables', variables))
295
+
296
+ if features is not None:
297
+
298
+ _query_params.append(('features', features))
299
+
300
+ # process the header parameters
301
+ # process the form parameters
302
+ # process the body parameter
303
+
304
+
305
+ # set the HTTP header `Accept`
306
+ if 'Accept' not in _header_params:
307
+ _header_params['Accept'] = self.api_client.select_header_accept(
308
+ [
309
+ 'application/json'
310
+ ]
311
+ )
312
+
313
+
314
+ # authentication setting
315
+ _auth_settings: List[str] = [
316
+ 'Accept',
317
+ 'ClientLanguage',
318
+ 'Priority',
319
+ 'Referer',
320
+ 'SecFetchDest',
321
+ 'SecChUaPlatform',
322
+ 'SecFetchMode',
323
+ 'CsrfToken',
324
+ 'ClientUuid',
325
+ 'BearerAuth',
326
+ 'GuestToken',
327
+ 'SecChUa',
328
+ 'CookieGt0',
329
+ 'ClientTransactionId',
330
+ 'ActiveUser',
331
+ 'CookieCt0',
332
+ 'UserAgent',
333
+ 'AcceptLanguage',
334
+ 'SecFetchSite',
335
+ 'AuthType',
336
+ 'CookieAuthToken',
337
+ 'SecChUaMobile',
338
+ 'AcceptEncoding'
339
+ ]
340
+
341
+ return self.api_client.param_serialize(
342
+ method='GET',
343
+ resource_path='/graphql/{pathQueryId}/BlueVerifiedFollowers',
344
+ path_params=_path_params,
345
+ query_params=_query_params,
346
+ header_params=_header_params,
347
+ body=_body_params,
348
+ post_params=_form_params,
349
+ files=_files,
350
+ auth_settings=_auth_settings,
351
+ collection_formats=_collection_formats,
352
+ _host=_host,
353
+ _request_auth=_request_auth
354
+ )
355
+
356
+
357
+
358
+
43
359
  @validate_call
44
360
  def get_favoriters(
45
361
  self,
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -12,6 +10,7 @@
12
10
  Do not edit the class manually.
13
11
  """ # noqa: E501
14
12
 
13
+
15
14
  import warnings
16
15
  from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
17
16
  from typing import Any, Dict, List, Optional, Tuple, Union
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  """
4
2
  Twitter OpenAPI
5
3
 
@@ -13,6 +11,7 @@
13
11
  """ # noqa: E501
14
12
 
15
13
 
14
+
16
15
  import datetime
17
16
  from dateutil.parser import parse
18
17
  from enum import Enum
@@ -22,6 +21,7 @@ import mimetypes
22
21
  import os
23
22
  import re
24
23
  import tempfile
24
+ import uuid
25
25
 
26
26
  from urllib.parse import quote
27
27
  from typing import Tuple, Optional, List, Dict, Union
@@ -69,6 +69,7 @@ class ApiClient:
69
69
  'date': datetime.date,
70
70
  'datetime': datetime.datetime,
71
71
  'decimal': decimal.Decimal,
72
+ 'UUID': uuid.UUID,
72
73
  'object': object,
73
74
  }
74
75
  _pool = None
@@ -91,7 +92,7 @@ class ApiClient:
91
92
  self.default_headers[header_name] = header_value
92
93
  self.cookie = cookie
93
94
  # Set default User-Agent.
94
- self.user_agent = 'OpenAPI-Generator/0.0.33/python'
95
+ self.user_agent = 'OpenAPI-Generator/0.0.34/python'
95
96
  self.client_side_validation = configuration.client_side_validation
96
97
 
97
98
  def __enter__(self):
@@ -306,13 +307,13 @@ class ApiClient:
306
307
  response_text = None
307
308
  return_data = None
308
309
  try:
309
- if response_type == "bytearray":
310
+ if response_type in ("bytearray", "bytes"):
310
311
  return_data = response_data.data
311
312
  elif response_type == "file":
312
313
  return_data = self.__deserialize_file(response_data)
313
314
  elif response_type is not None:
314
315
  match = None
315
- content_type = response_data.getheader('content-type')
316
+ content_type = response_data.headers.get('content-type')
316
317
  if content_type is not None:
317
318
  match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
318
319
  encoding = match.group(1) if match else "utf-8"
@@ -329,7 +330,7 @@ class ApiClient:
329
330
  return ApiResponse(
330
331
  status_code = response_data.status,
331
332
  data = return_data,
332
- headers = response_data.getheaders(),
333
+ headers = response_data.headers,
333
334
  raw_data = response_data.data
334
335
  )
335
336
 
@@ -357,6 +358,8 @@ class ApiClient:
357
358
  return obj.get_secret_value()
358
359
  elif isinstance(obj, self.PRIMITIVE_TYPES):
359
360
  return obj
361
+ elif isinstance(obj, uuid.UUID):
362
+ return str(obj)
360
363
  elif isinstance(obj, list):
361
364
  return [
362
365
  self.sanitize_for_serialization(sub_obj) for sub_obj in obj
@@ -369,24 +372,24 @@ class ApiClient:
369
372
  return obj.isoformat()
370
373
  elif isinstance(obj, decimal.Decimal):
371
374
  return str(obj)
372
-
373
375
  elif isinstance(obj, dict):
374
- obj_dict = obj
376
+ return {
377
+ key: self.sanitize_for_serialization(val)
378
+ for key, val in obj.items()
379
+ }
380
+
381
+ # Convert model obj to dict except
382
+ # attributes `openapi_types`, `attribute_map`
383
+ # and attributes which value is not None.
384
+ # Convert attribute name to json key in
385
+ # model definition for request.
386
+ if hasattr(obj, 'to_dict') and callable(getattr(obj, 'to_dict')):
387
+ obj_dict = obj.to_dict()
375
388
  else:
376
- # Convert model obj to dict except
377
- # attributes `openapi_types`, `attribute_map`
378
- # and attributes which value is not None.
379
- # Convert attribute name to json key in
380
- # model definition for request.
381
- if hasattr(obj, 'to_dict') and callable(getattr(obj, 'to_dict')):
382
- obj_dict = obj.to_dict()
383
- else:
384
- obj_dict = obj.__dict__
389
+ obj_dict = obj.__dict__
390
+
391
+ return self.sanitize_for_serialization(obj_dict)
385
392
 
386
- return {
387
- key: self.sanitize_for_serialization(val)
388
- for key, val in obj_dict.items()
389
- }
390
393
 
391
394
  def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
392
395
  """Deserializes response into an object.
@@ -405,7 +408,7 @@ class ApiClient:
405
408
  data = json.loads(response_text)
406
409
  except ValueError:
407
410
  data = response_text
408
- elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
411
+ elif re.match(r'^application/(json|[\w!#$&.+\-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
409
412
  if response_text == "":
410
413
  data = ""
411
414
  else:
@@ -454,14 +457,16 @@ class ApiClient:
454
457
 
455
458
  if klass in self.PRIMITIVE_TYPES:
456
459
  return self.__deserialize_primitive(data, klass)
457
- elif klass == object:
460
+ elif klass is object:
458
461
  return self.__deserialize_object(data)
459
- elif klass == datetime.date:
462
+ elif klass is datetime.date:
460
463
  return self.__deserialize_date(data)
461
- elif klass == datetime.datetime:
464
+ elif klass is datetime.datetime:
462
465
  return self.__deserialize_datetime(data)
463
- elif klass == decimal.Decimal:
466
+ elif klass is decimal.Decimal:
464
467
  return decimal.Decimal(data)
468
+ elif klass is uuid.UUID:
469
+ return uuid.UUID(data)
465
470
  elif issubclass(klass, Enum):
466
471
  return self.__deserialize_enum(data, klass)
467
472
  else:
@@ -695,14 +700,16 @@ class ApiClient:
695
700
  os.close(fd)
696
701
  os.remove(path)
697
702
 
698
- content_disposition = response.getheader("Content-Disposition")
703
+ content_disposition = response.headers.get("Content-Disposition")
699
704
  if content_disposition:
700
705
  m = re.search(
701
706
  r'filename=[\'"]?([^\'"\s]+)[\'"]?',
702
707
  content_disposition
703
708
  )
704
709
  assert m is not None, "Unexpected 'content-disposition' header value"
705
- filename = m.group(1)
710
+ filename = os.path.basename(m.group(1)) # Strip any directory traversal
711
+ if filename in ("", ".", ".."): # fall back to tmp filename
712
+ filename = os.path.basename(path)
706
713
  path = os.path.join(os.path.dirname(path), filename)
707
714
 
708
715
  with open(path, "wb") as f: