twitter-openapi-python-generated 0.0.34__py3-none-any.whl → 0.0.35__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- twitter_openapi_python_generated/__init__.py +165 -1
- twitter_openapi_python_generated/api/post_api.py +2079 -203
- twitter_openapi_python_generated/api/tweet_api.py +3207 -231
- twitter_openapi_python_generated/api/user_api.py +969 -66
- twitter_openapi_python_generated/api/user_list_api.py +1907 -0
- twitter_openapi_python_generated/api_client.py +47 -9
- twitter_openapi_python_generated/configuration.py +55 -6
- twitter_openapi_python_generated/models/__init__.py +82 -0
- twitter_openapi_python_generated/models/additional_media_info.py +3 -1
- twitter_openapi_python_generated/models/article_cover_media.py +2 -5
- twitter_openapi_python_generated/models/article_cover_media_color_info.py +1 -2
- twitter_openapi_python_generated/models/article_result.py +3 -7
- twitter_openapi_python_generated/models/badge_counts.py +97 -0
- twitter_openapi_python_generated/models/birdwatch_entity_ref.py +3 -1
- twitter_openapi_python_generated/models/birdwatch_pivot_footer.py +1 -2
- twitter_openapi_python_generated/models/birdwatch_pivot_note.py +2 -5
- twitter_openapi_python_generated/models/birdwatch_pivot_subtitle.py +1 -2
- twitter_openapi_python_generated/models/bookmarks_response.py +1 -2
- twitter_openapi_python_generated/models/cashtag_attachment.py +89 -0
- twitter_openapi_python_generated/models/community.py +4 -9
- twitter_openapi_python_generated/models/community_about_timeline_response.py +1 -2
- twitter_openapi_python_generated/models/community_discovery_timeline_response.py +102 -0
- twitter_openapi_python_generated/models/community_discovery_timeline_response_data.py +93 -0
- twitter_openapi_python_generated/models/community_discovery_timeline_viewer.py +93 -0
- twitter_openapi_python_generated/models/community_join_action_result_union.py +3 -2
- twitter_openapi_python_generated/models/community_media_timeline_response.py +1 -2
- twitter_openapi_python_generated/models/community_relationship.py +2 -5
- twitter_openapi_python_generated/models/community_rule.py +2 -5
- twitter_openapi_python_generated/models/community_tweets_timeline_response.py +1 -2
- twitter_openapi_python_generated/models/community_union.py +3 -2
- twitter_openapi_python_generated/models/connect_tab_timeline_response.py +102 -0
- twitter_openapi_python_generated/models/connect_tab_timeline_response_data.py +93 -0
- twitter_openapi_python_generated/models/content_disclosure_ai_generated_disclosure.py +2 -2
- twitter_openapi_python_generated/models/content_item_type.py +3 -0
- twitter_openapi_python_generated/models/content_union.py +3 -2
- twitter_openapi_python_generated/models/cover_cta.py +1 -2
- twitter_openapi_python_generated/models/create_bookmark_response.py +1 -2
- twitter_openapi_python_generated/models/create_draft_tweet_response.py +102 -0
- twitter_openapi_python_generated/models/create_draft_tweet_response_data.py +93 -0
- twitter_openapi_python_generated/models/create_draft_tweet_response_tweet.py +97 -0
- twitter_openapi_python_generated/models/create_retweet_response.py +1 -2
- twitter_openapi_python_generated/models/create_tweet_response.py +1 -2
- twitter_openapi_python_generated/models/delete_bookmark_response.py +1 -2
- twitter_openapi_python_generated/models/delete_draft_tweets_response.py +102 -0
- twitter_openapi_python_generated/models/delete_draft_tweets_response_data.py +89 -0
- twitter_openapi_python_generated/models/delete_list_response.py +102 -0
- twitter_openapi_python_generated/models/delete_list_response_data.py +89 -0
- twitter_openapi_python_generated/models/delete_retweet.py +1 -2
- twitter_openapi_python_generated/models/delete_retweet_response.py +1 -2
- twitter_openapi_python_generated/models/delete_tweet_response.py +1 -2
- twitter_openapi_python_generated/models/draft_list.py +96 -0
- twitter_openapi_python_generated/models/draft_tweet.py +109 -0
- twitter_openapi_python_generated/models/draft_tweet_create_request.py +99 -0
- twitter_openapi_python_generated/models/draft_tweet_user.py +100 -0
- twitter_openapi_python_generated/models/draft_tweet_user_results.py +93 -0
- twitter_openapi_python_generated/models/draft_tweets_viewer.py +93 -0
- twitter_openapi_python_generated/models/entities.py +7 -9
- twitter_openapi_python_generated/models/error_extensions.py +1 -1
- twitter_openapi_python_generated/models/error_response.py +3 -5
- twitter_openapi_python_generated/models/explore_page.py +95 -0
- twitter_openapi_python_generated/models/explore_page_body.py +104 -0
- twitter_openapi_python_generated/models/explore_page_response.py +102 -0
- twitter_openapi_python_generated/models/explore_page_response_data.py +93 -0
- twitter_openapi_python_generated/models/explore_timeline.py +105 -0
- twitter_openapi_python_generated/models/explore_timeline_scribe_config.py +91 -0
- twitter_openapi_python_generated/models/extended_entities.py +1 -2
- twitter_openapi_python_generated/models/favorite_tweet_response.py +1 -2
- twitter_openapi_python_generated/models/fetch_draft_tweets_response.py +102 -0
- twitter_openapi_python_generated/models/fetch_draft_tweets_response_data.py +93 -0
- twitter_openapi_python_generated/models/fetch_scheduled_tweets_response.py +102 -0
- twitter_openapi_python_generated/models/fetch_scheduled_tweets_response_data.py +93 -0
- twitter_openapi_python_generated/models/follow_response.py +1 -2
- twitter_openapi_python_generated/models/generic_timeline_by_id_response.py +102 -0
- twitter_openapi_python_generated/models/generic_timeline_by_id_response_data.py +93 -0
- twitter_openapi_python_generated/models/grok_share_attachment.py +1 -2
- twitter_openapi_python_generated/models/grok_translated_bio.py +101 -0
- twitter_openapi_python_generated/models/grok_translated_bio_with_availability.py +97 -0
- twitter_openapi_python_generated/models/grok_translated_community_note.py +1 -2
- twitter_openapi_python_generated/models/highlight.py +1 -2
- twitter_openapi_python_generated/models/instruction_union.py +3 -2
- twitter_openapi_python_generated/models/item_content_union.py +68 -10
- twitter_openapi_python_generated/models/list_banner_media.py +93 -0
- twitter_openapi_python_generated/models/list_banner_media_info.py +99 -0
- twitter_openapi_python_generated/models/list_banner_media_salient_rect.py +95 -0
- twitter_openapi_python_generated/models/list_latest_tweets_timeline_response.py +1 -2
- twitter_openapi_python_generated/models/list_members_list.py +93 -0
- twitter_openapi_python_generated/models/list_members_response.py +102 -0
- twitter_openapi_python_generated/models/list_members_response_data.py +93 -0
- twitter_openapi_python_generated/models/list_recommended_users_list.py +93 -0
- twitter_openapi_python_generated/models/list_recommended_users_response.py +102 -0
- twitter_openapi_python_generated/models/list_recommended_users_response_data.py +93 -0
- twitter_openapi_python_generated/models/list_response.py +102 -0
- twitter_openapi_python_generated/models/list_response_data.py +93 -0
- twitter_openapi_python_generated/models/list_subscribers_list.py +93 -0
- twitter_openapi_python_generated/models/list_subscribers_response.py +102 -0
- twitter_openapi_python_generated/models/list_subscribers_response_data.py +93 -0
- twitter_openapi_python_generated/models/media.py +16 -17
- twitter_openapi_python_generated/models/media_extended.py +13 -16
- twitter_openapi_python_generated/models/media_original_info.py +1 -2
- twitter_openapi_python_generated/models/media_video_info.py +1 -2
- twitter_openapi_python_generated/models/module_item.py +2 -5
- twitter_openapi_python_generated/models/note_tweet_result_data.py +2 -5
- twitter_openapi_python_generated/models/note_tweet_result_media.py +1 -2
- twitter_openapi_python_generated/models/note_tweet_result_media_inline_media.py +2 -5
- twitter_openapi_python_generated/models/note_tweet_result_rich_text.py +1 -2
- twitter_openapi_python_generated/models/notifications_result.py +2 -5
- twitter_openapi_python_generated/models/notifications_timeline_response.py +1 -2
- twitter_openapi_python_generated/models/post_create_bookmark_request.py +1 -1
- twitter_openapi_python_generated/models/post_create_bookmark_request_variables.py +2 -2
- twitter_openapi_python_generated/models/post_create_draft_tweet_request.py +95 -0
- twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables.py +93 -0
- twitter_openapi_python_generated/models/post_create_draft_tweet_request_variables_post_tweet_request.py +97 -0
- twitter_openapi_python_generated/models/post_create_list_request.py +101 -0
- twitter_openapi_python_generated/models/post_create_list_request_features.py +97 -0
- twitter_openapi_python_generated/models/post_create_list_request_variables.py +93 -0
- twitter_openapi_python_generated/models/post_create_retweet_request.py +1 -1
- twitter_openapi_python_generated/models/post_create_retweet_request_variables.py +3 -3
- twitter_openapi_python_generated/models/post_create_tweet_request.py +2 -2
- twitter_openapi_python_generated/models/post_create_tweet_request_features.py +43 -41
- twitter_openapi_python_generated/models/post_create_tweet_request_variables.py +4 -4
- twitter_openapi_python_generated/models/post_create_tweet_request_variables_conversation_control.py +2 -2
- twitter_openapi_python_generated/models/post_create_tweet_request_variables_media.py +3 -4
- twitter_openapi_python_generated/models/post_create_tweet_request_variables_media_media_entities_inner.py +2 -2
- twitter_openapi_python_generated/models/post_create_tweet_request_variables_reply.py +2 -2
- twitter_openapi_python_generated/models/post_cta_title_text.py +1 -2
- twitter_openapi_python_generated/models/post_delete_bookmark_request.py +1 -1
- twitter_openapi_python_generated/models/post_delete_draft_tweets_request.py +95 -0
- twitter_openapi_python_generated/models/post_delete_draft_tweets_request_variables.py +89 -0
- twitter_openapi_python_generated/models/post_delete_list_request.py +95 -0
- twitter_openapi_python_generated/models/post_delete_list_request_variables.py +89 -0
- twitter_openapi_python_generated/models/post_delete_retweet_request.py +1 -1
- twitter_openapi_python_generated/models/post_delete_retweet_request_variables.py +3 -3
- twitter_openapi_python_generated/models/post_delete_tweet_request.py +2 -2
- twitter_openapi_python_generated/models/post_favorite_tweet_request.py +1 -1
- twitter_openapi_python_generated/models/post_list_add_member_request.py +101 -0
- twitter_openapi_python_generated/models/post_list_add_member_request_variables.py +91 -0
- twitter_openapi_python_generated/models/post_list_remove_member_request.py +101 -0
- twitter_openapi_python_generated/models/post_unfavorite_tweet_request.py +1 -1
- twitter_openapi_python_generated/models/primary_community_topic.py +2 -5
- twitter_openapi_python_generated/models/profile_bio.py +11 -3
- twitter_openapi_python_generated/models/profile_bio_entities.py +98 -0
- twitter_openapi_python_generated/models/profile_bio_entities_urls.py +96 -0
- twitter_openapi_python_generated/models/profile_response.py +1 -2
- twitter_openapi_python_generated/models/retweet.py +4 -7
- twitter_openapi_python_generated/models/scheduled_tweets_viewer.py +89 -0
- twitter_openapi_python_generated/models/search_timeline_response.py +1 -2
- twitter_openapi_python_generated/models/self_thread.py +2 -5
- twitter_openapi_python_generated/models/session.py +8 -20
- twitter_openapi_python_generated/models/social_context_union.py +3 -2
- twitter_openapi_python_generated/models/text.py +1 -2
- twitter_openapi_python_generated/models/timeline.py +1 -2
- twitter_openapi_python_generated/models/timeline_add_entries.py +1 -2
- twitter_openapi_python_generated/models/timeline_add_entry.py +4 -10
- twitter_openapi_python_generated/models/timeline_add_to_module.py +1 -2
- twitter_openapi_python_generated/models/timeline_frame.py +97 -0
- twitter_openapi_python_generated/models/timeline_half_cover.py +1 -2
- twitter_openapi_python_generated/models/timeline_label.py +101 -0
- twitter_openapi_python_generated/models/timeline_mark_entries_unread_greater_than_sort_index.py +2 -5
- twitter_openapi_python_generated/models/timeline_response.py +1 -2
- twitter_openapi_python_generated/models/timeline_show_alert.py +7 -3
- twitter_openapi_python_generated/models/timeline_timeline_module.py +1 -2
- twitter_openapi_python_generated/models/timeline_trend.py +16 -4
- twitter_openapi_python_generated/models/timeline_twitter_list.py +101 -0
- twitter_openapi_python_generated/models/tombstone_rich_text.py +1 -2
- twitter_openapi_python_generated/models/tracing.py +2 -5
- twitter_openapi_python_generated/models/trend_metadata.py +4 -2
- twitter_openapi_python_generated/models/trend_results.py +2 -5
- twitter_openapi_python_generated/models/tweet.py +17 -6
- twitter_openapi_python_generated/models/tweet_card_legacy.py +2 -4
- twitter_openapi_python_generated/models/tweet_card_platform_device.py +2 -5
- twitter_openapi_python_generated/models/tweet_detail_response.py +1 -2
- twitter_openapi_python_generated/models/tweet_edit_control.py +6 -15
- twitter_openapi_python_generated/models/tweet_edit_control_initial.py +4 -10
- twitter_openapi_python_generated/models/tweet_favoriters_response.py +1 -2
- twitter_openapi_python_generated/models/tweet_interstitial_reveal_text.py +1 -2
- twitter_openapi_python_generated/models/tweet_interstitial_text.py +1 -2
- twitter_openapi_python_generated/models/tweet_legacy.py +15 -36
- twitter_openapi_python_generated/models/tweet_limited_action_results.py +1 -2
- twitter_openapi_python_generated/models/tweet_preview_display_tweet.py +5 -11
- twitter_openapi_python_generated/models/tweet_preview_display_tweet_view_count.py +2 -5
- twitter_openapi_python_generated/models/tweet_result_by_rest_id_response.py +1 -2
- twitter_openapi_python_generated/models/tweet_retweeters_response.py +1 -2
- twitter_openapi_python_generated/models/tweet_union.py +3 -2
- twitter_openapi_python_generated/models/tweet_view.py +2 -5
- twitter_openapi_python_generated/models/twitter_list.py +146 -0
- twitter_openapi_python_generated/models/type_name.py +4 -0
- twitter_openapi_python_generated/models/unfavorite_tweet_response.py +1 -2
- twitter_openapi_python_generated/models/urt_endpoint_options.py +3 -4
- twitter_openapi_python_generated/models/user.py +75 -13
- twitter_openapi_python_generated/models/user_action_counts.py +89 -0
- twitter_openapi_python_generated/models/user_banner.py +89 -0
- twitter_openapi_python_generated/models/user_core.py +3 -6
- twitter_openapi_python_generated/models/user_highlights_tweets_response.py +1 -2
- twitter_openapi_python_generated/models/user_legacy.py +3 -6
- twitter_openapi_python_generated/models/user_notifications_settings.py +89 -0
- twitter_openapi_python_generated/models/user_pinned_items.py +90 -0
- twitter_openapi_python_generated/models/user_professional.py +3 -7
- twitter_openapi_python_generated/models/user_profile_metadata.py +89 -0
- twitter_openapi_python_generated/models/user_profile_translation.py +89 -0
- twitter_openapi_python_generated/models/user_relationship_counts.py +91 -0
- twitter_openapi_python_generated/models/user_relationship_perspectives.py +6 -2
- twitter_openapi_python_generated/models/user_response.py +1 -2
- twitter_openapi_python_generated/models/user_result_by_screen_name.py +2 -5
- twitter_openapi_python_generated/models/user_result_by_screen_name_result.py +8 -12
- twitter_openapi_python_generated/models/user_result_core.py +3 -1
- twitter_openapi_python_generated/models/user_results.py +3 -1
- twitter_openapi_python_generated/models/user_tweet_counts.py +91 -0
- twitter_openapi_python_generated/models/user_tweets_response.py +1 -2
- twitter_openapi_python_generated/models/user_union.py +6 -3
- twitter_openapi_python_generated/models/user_value.py +8 -9
- twitter_openapi_python_generated/models/user_verification_info_reason.py +2 -5
- twitter_openapi_python_generated/models/user_verification_info_reason_description.py +1 -2
- twitter_openapi_python_generated/models/user_website.py +89 -0
- twitter_openapi_python_generated/models/users_response.py +1 -2
- twitter_openapi_python_generated/models/users_response_data.py +1 -2
- twitter_openapi_python_generated/models/viewer_badge_counts_response.py +102 -0
- twitter_openapi_python_generated/models/viewer_badge_counts_response_data.py +93 -0
- twitter_openapi_python_generated/models/viewer_badge_counts_result.py +96 -0
- twitter_openapi_python_generated/models/viewer_badge_counts_user_results.py +93 -0
- twitter_openapi_python_generated/models/viewer_badge_counts_viewer.py +93 -0
- twitter_openapi_python_generated/rest.py +79 -8
- {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/METADATA +926 -816
- {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/RECORD +227 -145
- {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/WHEEL +1 -1
- {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/licenses/LICENSE +31 -31
- {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/licenses/LICENSE.AGPL +660 -660
- {twitter_openapi_python_generated-0.0.34.dist-info → twitter_openapi_python_generated-0.0.35.dist-info}/top_level.txt +0 -0
|
@@ -92,7 +92,7 @@ class ApiClient:
|
|
|
92
92
|
self.default_headers[header_name] = header_value
|
|
93
93
|
self.cookie = cookie
|
|
94
94
|
# Set default User-Agent.
|
|
95
|
-
self.user_agent = 'OpenAPI-Generator/0.0.
|
|
95
|
+
self.user_agent = 'OpenAPI-Generator/0.0.35/python'
|
|
96
96
|
self.client_side_validation = configuration.client_side_validation
|
|
97
97
|
|
|
98
98
|
def __enter__(self):
|
|
@@ -248,7 +248,6 @@ class ApiClient:
|
|
|
248
248
|
|
|
249
249
|
return method, url, header_params, body, post_params
|
|
250
250
|
|
|
251
|
-
|
|
252
251
|
def call_api(
|
|
253
252
|
self,
|
|
254
253
|
method,
|
|
@@ -303,6 +302,12 @@ class ApiClient:
|
|
|
303
302
|
# if not found, look for '1XX', '2XX', etc.
|
|
304
303
|
response_type = response_types_map.get(str(response_data.status)[0] + "XX", None)
|
|
305
304
|
|
|
305
|
+
# If the response_type has not matched (eg. did not match the previous if statements) and the default response is available, use it.
|
|
306
|
+
if response_type is None and str(response_data.status) not in response_types_map \
|
|
307
|
+
and (not isinstance(response_data.status, int) or not 100 <= response_data.status <= 599 or str(response_data.status)[0] + "XX" not in response_types_map) \
|
|
308
|
+
and 'default' in response_types_map:
|
|
309
|
+
response_type = response_types_map['default']
|
|
310
|
+
|
|
306
311
|
# deserialize response data
|
|
307
312
|
response_text = None
|
|
308
313
|
return_data = None
|
|
@@ -435,6 +440,12 @@ class ApiClient:
|
|
|
435
440
|
return None
|
|
436
441
|
|
|
437
442
|
if isinstance(klass, str):
|
|
443
|
+
if klass.startswith('Optional['):
|
|
444
|
+
m = re.match(r'Optional\[(.*)]', klass)
|
|
445
|
+
assert m is not None, "Malformed Optional type definition"
|
|
446
|
+
# data is not None here, so the optionality is already resolved
|
|
447
|
+
return self.__deserialize(data, m.group(1))
|
|
448
|
+
|
|
438
449
|
if klass.startswith('List['):
|
|
439
450
|
m = re.match(r'List\[(.*)]', klass)
|
|
440
451
|
assert m is not None, "Malformed List type definition"
|
|
@@ -483,10 +494,15 @@ class ApiClient:
|
|
|
483
494
|
if collection_formats is None:
|
|
484
495
|
collection_formats = {}
|
|
485
496
|
for k, v in params.items() if isinstance(params, dict) else params:
|
|
497
|
+
if isinstance(v, bool):
|
|
498
|
+
v = str(v).lower()
|
|
486
499
|
if k in collection_formats:
|
|
487
500
|
collection_format = collection_formats[k]
|
|
488
501
|
if collection_format == 'multi':
|
|
489
|
-
new_params.extend(
|
|
502
|
+
new_params.extend(
|
|
503
|
+
(k, str(value).lower() if isinstance(value, bool) else value)
|
|
504
|
+
for value in v
|
|
505
|
+
)
|
|
490
506
|
else:
|
|
491
507
|
if collection_format == 'ssv':
|
|
492
508
|
delimiter = ' '
|
|
@@ -497,11 +513,20 @@ class ApiClient:
|
|
|
497
513
|
else: # csv is the default
|
|
498
514
|
delimiter = ','
|
|
499
515
|
new_params.append(
|
|
500
|
-
(k, delimiter.join(
|
|
516
|
+
(k, delimiter.join(
|
|
517
|
+
str(value).lower() if isinstance(value, bool) else str(value)
|
|
518
|
+
for value in v)))
|
|
501
519
|
else:
|
|
502
520
|
new_params.append((k, v))
|
|
503
521
|
return new_params
|
|
504
522
|
|
|
523
|
+
def explode_query_object(self, name, obj):
|
|
524
|
+
"""form style, explode: one query parameter per entry, keyed by the property name; a list repeats the name, None is left out"""
|
|
525
|
+
obj = self.sanitize_for_serialization(obj)
|
|
526
|
+
if not isinstance(obj, dict):
|
|
527
|
+
obj = {name: obj}
|
|
528
|
+
return [(k, item) for k, v in obj.items() for item in (v if isinstance(v, (list, tuple)) else [v]) if item is not None]
|
|
529
|
+
|
|
505
530
|
def parameters_to_url_query(self, params, collection_formats):
|
|
506
531
|
"""Get parameters as list of tuples, formatting collections.
|
|
507
532
|
|
|
@@ -520,10 +545,14 @@ class ApiClient:
|
|
|
520
545
|
if isinstance(v, dict):
|
|
521
546
|
v = json.dumps(v)
|
|
522
547
|
|
|
523
|
-
|
|
548
|
+
# a collection format applies only to a list; an exploded entry may share a declared array parameter's name
|
|
549
|
+
if k in collection_formats and isinstance(v, (list, tuple)):
|
|
524
550
|
collection_format = collection_formats[k]
|
|
525
551
|
if collection_format == 'multi':
|
|
526
|
-
new_params.extend(
|
|
552
|
+
new_params.extend(
|
|
553
|
+
(quote(str(k)), quote(str(value).lower() if isinstance(value, bool) else str(value)))
|
|
554
|
+
for value in v
|
|
555
|
+
)
|
|
527
556
|
else:
|
|
528
557
|
if collection_format == 'ssv':
|
|
529
558
|
delimiter = ' '
|
|
@@ -534,10 +563,13 @@ class ApiClient:
|
|
|
534
563
|
else: # csv is the default
|
|
535
564
|
delimiter = ','
|
|
536
565
|
new_params.append(
|
|
537
|
-
(k, delimiter.join(
|
|
566
|
+
(quote(str(k)), delimiter.join(
|
|
567
|
+
quote(str(value).lower() if isinstance(value, bool) else str(value))
|
|
568
|
+
for value in v))
|
|
538
569
|
)
|
|
539
570
|
else:
|
|
540
|
-
|
|
571
|
+
# names are quoted too: an exploded object's names are runtime data
|
|
572
|
+
new_params.append((quote(str(k)), quote(str(v))))
|
|
541
573
|
|
|
542
574
|
return "&".join(["=".join(map(str, item)) for item in new_params])
|
|
543
575
|
|
|
@@ -673,7 +705,13 @@ class ApiClient:
|
|
|
673
705
|
:param auth_setting: auth settings for the endpoint
|
|
674
706
|
"""
|
|
675
707
|
if auth_setting['in'] == 'cookie':
|
|
676
|
-
|
|
708
|
+
if not 'Cookie' in headers:
|
|
709
|
+
headers['Cookie'] = ""
|
|
710
|
+
else:
|
|
711
|
+
headers['Cookie'] += "; "
|
|
712
|
+
# Account for cookie value containing spaces and special characters, excluding base64 delimiters
|
|
713
|
+
cookie_value = quote(str(auth_setting['value']), safe="!#$%&'()*+-./:<=>?@[]^_`{|}~%+/=")
|
|
714
|
+
headers['Cookie'] += f"{auth_setting['key']}={cookie_value}"
|
|
677
715
|
elif auth_setting['in'] == 'header':
|
|
678
716
|
if auth_setting['type'] != 'http-signature':
|
|
679
717
|
headers[auth_setting['key']] = auth_setting['value']
|
|
@@ -16,8 +16,11 @@ import http.client as httplib
|
|
|
16
16
|
import logging
|
|
17
17
|
from logging import FileHandler
|
|
18
18
|
import multiprocessing
|
|
19
|
+
import ssl
|
|
19
20
|
import sys
|
|
20
21
|
from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
|
|
22
|
+
from urllib.parse import urlparse
|
|
23
|
+
from urllib.request import getproxies
|
|
21
24
|
from typing_extensions import NotRequired, Self
|
|
22
25
|
|
|
23
26
|
import urllib3
|
|
@@ -192,7 +195,9 @@ class Configuration:
|
|
|
192
195
|
:param tls_server_name: SSL/TLS Server Name Indication (SNI). Set this to the SNI value expected by the server.
|
|
193
196
|
:param connection_pool_maxsize: Connection pool max size. None in the constructor is coerced to 100 for async and cpu_count * 5 for sync.
|
|
194
197
|
:param proxy: Proxy URL.
|
|
198
|
+
:param no_proxy: Comma-separated hosts that bypass the proxy.
|
|
195
199
|
:param proxy_headers: Proxy headers.
|
|
200
|
+
:param proxy_ssl_context: SSL context used only for the TLS handshake with the proxy itself, independent of the destination TLS settings.
|
|
196
201
|
:param safe_chars_for_path_param: Safe characters for path parameter encoding.
|
|
197
202
|
:param client_side_validation: Enable client-side validation. Default True.
|
|
198
203
|
:param socket_options: Options to pass down to the underlying urllib3 socket.
|
|
@@ -246,7 +251,9 @@ conf = twitter_openapi_python_generated.Configuration(
|
|
|
246
251
|
tls_server_name: Optional[str]=None,
|
|
247
252
|
connection_pool_maxsize: Optional[int]=None,
|
|
248
253
|
proxy: Optional[str]=None,
|
|
254
|
+
no_proxy: Optional[str]=None,
|
|
249
255
|
proxy_headers: Optional[Any]=None,
|
|
256
|
+
proxy_ssl_context: Optional[ssl.SSLContext]=None,
|
|
250
257
|
safe_chars_for_path_param: str='',
|
|
251
258
|
client_side_validation: bool=True,
|
|
252
259
|
socket_options: Optional[Any]=None,
|
|
@@ -352,12 +359,29 @@ conf = twitter_openapi_python_generated.Configuration(
|
|
|
352
359
|
per pool. None in the constructor is coerced to cpu_count * 5.
|
|
353
360
|
"""
|
|
354
361
|
|
|
355
|
-
|
|
356
|
-
|
|
362
|
+
# urllib3 does not read proxy environment variables itself:
|
|
363
|
+
# https://github.com/urllib3/urllib3/issues/1785
|
|
364
|
+
# A proxy taken from the environment is re-resolved when the host is
|
|
365
|
+
# assigned; see the host setter.
|
|
366
|
+
self._proxy_from_env = proxy is None
|
|
367
|
+
if proxy is None or no_proxy is None:
|
|
368
|
+
proxies = getproxies()
|
|
369
|
+
if proxy is None:
|
|
370
|
+
proxy = self._env_proxy(proxies, self.host)
|
|
371
|
+
if no_proxy is None:
|
|
372
|
+
no_proxy = proxies.get("no")
|
|
373
|
+
self._proxy = proxy
|
|
374
|
+
self.no_proxy = no_proxy
|
|
375
|
+
"""Hosts that bypass the proxy
|
|
357
376
|
"""
|
|
358
377
|
self.proxy_headers = proxy_headers
|
|
359
378
|
"""Proxy headers
|
|
360
379
|
"""
|
|
380
|
+
self.proxy_ssl_context = proxy_ssl_context
|
|
381
|
+
"""SSL context used only for the TLS handshake with the proxy itself
|
|
382
|
+
(e.g. an HTTPS CONNECT tunnel), independent of the destination TLS
|
|
383
|
+
settings above.
|
|
384
|
+
"""
|
|
361
385
|
self.safe_chars_for_path_param = safe_chars_for_path_param
|
|
362
386
|
"""Safe chars for path_param
|
|
363
387
|
"""
|
|
@@ -384,13 +408,17 @@ conf = twitter_openapi_python_generated.Configuration(
|
|
|
384
408
|
result = cls.__new__(cls)
|
|
385
409
|
memo[id(self)] = result
|
|
386
410
|
for k, v in self.__dict__.items():
|
|
411
|
+
if k == 'proxy_ssl_context':
|
|
412
|
+
# ssl.SSLContext holds unpicklable C state and can't be deepcopied.
|
|
413
|
+
setattr(result, k, v)
|
|
414
|
+
continue
|
|
387
415
|
if k not in ('logger', 'logger_file_handler'):
|
|
388
416
|
setattr(result, k, copy.deepcopy(v, memo))
|
|
389
417
|
# shallow copy of loggers
|
|
390
418
|
result.logger = copy.copy(self.logger)
|
|
391
|
-
# use
|
|
419
|
+
# use setter to re-create the file handler (excluded from __dict__ copy)
|
|
392
420
|
result.logger_file = self.logger_file
|
|
393
|
-
|
|
421
|
+
|
|
394
422
|
return result
|
|
395
423
|
|
|
396
424
|
def __setattr__(self, name: str, value: Any) -> None:
|
|
@@ -527,7 +555,8 @@ conf = twitter_openapi_python_generated.Configuration(
|
|
|
527
555
|
self.refresh_api_key_hook(self)
|
|
528
556
|
key = self.api_key.get(identifier, self.api_key.get(alias) if alias is not None else None)
|
|
529
557
|
if key:
|
|
530
|
-
prefix = self.api_key_prefix.get(
|
|
558
|
+
prefix = self.api_key_prefix.get(
|
|
559
|
+
identifier, self.api_key_prefix.get(alias) if alias is not None else None)
|
|
531
560
|
if prefix:
|
|
532
561
|
return "%s %s" % (prefix, key)
|
|
533
562
|
else:
|
|
@@ -773,7 +802,7 @@ conf = twitter_openapi_python_generated.Configuration(
|
|
|
773
802
|
"OS: {env}\n"\
|
|
774
803
|
"Python Version: {pyversion}\n"\
|
|
775
804
|
"Version of the API: 0.0.1\n"\
|
|
776
|
-
"SDK Package Version: 0.0.
|
|
805
|
+
"SDK Package Version: 0.0.35".\
|
|
777
806
|
format(env=sys.platform, pyversion=sys.version)
|
|
778
807
|
|
|
779
808
|
def get_host_settings(self) -> List[HostSetting]:
|
|
@@ -847,3 +876,23 @@ conf = twitter_openapi_python_generated.Configuration(
|
|
|
847
876
|
"""Fix base path."""
|
|
848
877
|
self._base_path = value
|
|
849
878
|
self.server_index = None
|
|
879
|
+
if self._proxy_from_env:
|
|
880
|
+
# the scheme-specific proxy depends on the host, which is
|
|
881
|
+
# commonly assigned after construction
|
|
882
|
+
self._proxy = self._env_proxy(getproxies(), value)
|
|
883
|
+
|
|
884
|
+
@staticmethod
|
|
885
|
+
def _env_proxy(proxies: Dict[str, str], host: str) -> Optional[str]:
|
|
886
|
+
"""Pick the environment proxy that applies to `host`."""
|
|
887
|
+
return proxies.get(urlparse(host).scheme) or proxies.get("all")
|
|
888
|
+
|
|
889
|
+
@property
|
|
890
|
+
def proxy(self) -> Optional[str]:
|
|
891
|
+
"""Proxy URL
|
|
892
|
+
"""
|
|
893
|
+
return self._proxy
|
|
894
|
+
|
|
895
|
+
@proxy.setter
|
|
896
|
+
def proxy(self, value: Optional[str]) -> None:
|
|
897
|
+
self._proxy = value
|
|
898
|
+
self._proxy_from_env = False
|
|
@@ -34,6 +34,7 @@ from twitter_openapi_python_generated.models.article_preview import ArticlePrevi
|
|
|
34
34
|
from twitter_openapi_python_generated.models.article_result import ArticleResult
|
|
35
35
|
from twitter_openapi_python_generated.models.article_results import ArticleResults
|
|
36
36
|
from twitter_openapi_python_generated.models.author_community_relationship import AuthorCommunityRelationship
|
|
37
|
+
from twitter_openapi_python_generated.models.badge_counts import BadgeCounts
|
|
37
38
|
from twitter_openapi_python_generated.models.birdwatch_entity import BirdwatchEntity
|
|
38
39
|
from twitter_openapi_python_generated.models.birdwatch_entity_ref import BirdwatchEntityRef
|
|
39
40
|
from twitter_openapi_python_generated.models.birdwatch_pivot import BirdwatchPivot
|
|
@@ -45,12 +46,16 @@ from twitter_openapi_python_generated.models.bookmarks_response import Bookmarks
|
|
|
45
46
|
from twitter_openapi_python_generated.models.bookmarks_response_data import BookmarksResponseData
|
|
46
47
|
from twitter_openapi_python_generated.models.bookmarks_timeline import BookmarksTimeline
|
|
47
48
|
from twitter_openapi_python_generated.models.callback import Callback
|
|
49
|
+
from twitter_openapi_python_generated.models.cashtag_attachment import CashtagAttachment
|
|
48
50
|
from twitter_openapi_python_generated.models.client_event_info import ClientEventInfo
|
|
49
51
|
from twitter_openapi_python_generated.models.communities_actions import CommunitiesActions
|
|
50
52
|
from twitter_openapi_python_generated.models.community import Community
|
|
51
53
|
from twitter_openapi_python_generated.models.community_about_timeline_response import CommunityAboutTimelineResponse
|
|
52
54
|
from twitter_openapi_python_generated.models.community_actions import CommunityActions
|
|
53
55
|
from twitter_openapi_python_generated.models.community_delete_action_result import CommunityDeleteActionResult
|
|
56
|
+
from twitter_openapi_python_generated.models.community_discovery_timeline_response import CommunityDiscoveryTimelineResponse
|
|
57
|
+
from twitter_openapi_python_generated.models.community_discovery_timeline_response_data import CommunityDiscoveryTimelineResponseData
|
|
58
|
+
from twitter_openapi_python_generated.models.community_discovery_timeline_viewer import CommunityDiscoveryTimelineViewer
|
|
54
59
|
from twitter_openapi_python_generated.models.community_invites_result import CommunityInvitesResult
|
|
55
60
|
from twitter_openapi_python_generated.models.community_join_action import CommunityJoinAction
|
|
56
61
|
from twitter_openapi_python_generated.models.community_join_action_result_union import CommunityJoinActionResultUnion
|
|
@@ -68,6 +73,8 @@ from twitter_openapi_python_generated.models.community_union import CommunityUni
|
|
|
68
73
|
from twitter_openapi_python_generated.models.community_unpin_action_result import CommunityUnpinActionResult
|
|
69
74
|
from twitter_openapi_python_generated.models.community_urls import CommunityUrls
|
|
70
75
|
from twitter_openapi_python_generated.models.community_urls_permalink import CommunityUrlsPermalink
|
|
76
|
+
from twitter_openapi_python_generated.models.connect_tab_timeline_response import ConnectTabTimelineResponse
|
|
77
|
+
from twitter_openapi_python_generated.models.connect_tab_timeline_response_data import ConnectTabTimelineResponseData
|
|
71
78
|
from twitter_openapi_python_generated.models.content_disclosure import ContentDisclosure
|
|
72
79
|
from twitter_openapi_python_generated.models.content_disclosure_advertising_disclosure import ContentDisclosureAdvertisingDisclosure
|
|
73
80
|
from twitter_openapi_python_generated.models.content_disclosure_ai_generated_disclosure import ContentDisclosureAiGeneratedDisclosure
|
|
@@ -78,6 +85,9 @@ from twitter_openapi_python_generated.models.conversation_control import Convers
|
|
|
78
85
|
from twitter_openapi_python_generated.models.cover_cta import CoverCta
|
|
79
86
|
from twitter_openapi_python_generated.models.create_bookmark_response import CreateBookmarkResponse
|
|
80
87
|
from twitter_openapi_python_generated.models.create_bookmark_response_data import CreateBookmarkResponseData
|
|
88
|
+
from twitter_openapi_python_generated.models.create_draft_tweet_response import CreateDraftTweetResponse
|
|
89
|
+
from twitter_openapi_python_generated.models.create_draft_tweet_response_data import CreateDraftTweetResponseData
|
|
90
|
+
from twitter_openapi_python_generated.models.create_draft_tweet_response_tweet import CreateDraftTweetResponseTweet
|
|
81
91
|
from twitter_openapi_python_generated.models.create_retweet import CreateRetweet
|
|
82
92
|
from twitter_openapi_python_generated.models.create_retweet_response import CreateRetweetResponse
|
|
83
93
|
from twitter_openapi_python_generated.models.create_retweet_response_data import CreateRetweetResponseData
|
|
@@ -90,6 +100,10 @@ from twitter_openapi_python_generated.models.cta_client_event_info import CtaCli
|
|
|
90
100
|
from twitter_openapi_python_generated.models.cursor_type import CursorType
|
|
91
101
|
from twitter_openapi_python_generated.models.delete_bookmark_response import DeleteBookmarkResponse
|
|
92
102
|
from twitter_openapi_python_generated.models.delete_bookmark_response_data import DeleteBookmarkResponseData
|
|
103
|
+
from twitter_openapi_python_generated.models.delete_draft_tweets_response import DeleteDraftTweetsResponse
|
|
104
|
+
from twitter_openapi_python_generated.models.delete_draft_tweets_response_data import DeleteDraftTweetsResponseData
|
|
105
|
+
from twitter_openapi_python_generated.models.delete_list_response import DeleteListResponse
|
|
106
|
+
from twitter_openapi_python_generated.models.delete_list_response_data import DeleteListResponseData
|
|
93
107
|
from twitter_openapi_python_generated.models.delete_retweet import DeleteRetweet
|
|
94
108
|
from twitter_openapi_python_generated.models.delete_retweet_response import DeleteRetweetResponse
|
|
95
109
|
from twitter_openapi_python_generated.models.delete_retweet_response_data import DeleteRetweetResponseData
|
|
@@ -99,26 +113,46 @@ from twitter_openapi_python_generated.models.delete_tweet_response_data import D
|
|
|
99
113
|
from twitter_openapi_python_generated.models.delete_tweet_response_result import DeleteTweetResponseResult
|
|
100
114
|
from twitter_openapi_python_generated.models.display_treatment import DisplayTreatment
|
|
101
115
|
from twitter_openapi_python_generated.models.display_type import DisplayType
|
|
116
|
+
from twitter_openapi_python_generated.models.draft_list import DraftList
|
|
117
|
+
from twitter_openapi_python_generated.models.draft_tweet import DraftTweet
|
|
118
|
+
from twitter_openapi_python_generated.models.draft_tweet_create_request import DraftTweetCreateRequest
|
|
119
|
+
from twitter_openapi_python_generated.models.draft_tweet_user import DraftTweetUser
|
|
120
|
+
from twitter_openapi_python_generated.models.draft_tweet_user_results import DraftTweetUserResults
|
|
121
|
+
from twitter_openapi_python_generated.models.draft_tweets_viewer import DraftTweetsViewer
|
|
102
122
|
from twitter_openapi_python_generated.models.entities import Entities
|
|
103
123
|
from twitter_openapi_python_generated.models.error_extensions import ErrorExtensions
|
|
104
124
|
from twitter_openapi_python_generated.models.error_response import ErrorResponse
|
|
105
125
|
from twitter_openapi_python_generated.models.error_response_path_inner import ErrorResponsePathInner
|
|
126
|
+
from twitter_openapi_python_generated.models.explore_page import ExplorePage
|
|
127
|
+
from twitter_openapi_python_generated.models.explore_page_body import ExplorePageBody
|
|
128
|
+
from twitter_openapi_python_generated.models.explore_page_response import ExplorePageResponse
|
|
129
|
+
from twitter_openapi_python_generated.models.explore_page_response_data import ExplorePageResponseData
|
|
130
|
+
from twitter_openapi_python_generated.models.explore_timeline import ExploreTimeline
|
|
131
|
+
from twitter_openapi_python_generated.models.explore_timeline_scribe_config import ExploreTimelineScribeConfig
|
|
106
132
|
from twitter_openapi_python_generated.models.ext_media_availability import ExtMediaAvailability
|
|
107
133
|
from twitter_openapi_python_generated.models.extended_entities import ExtendedEntities
|
|
108
134
|
from twitter_openapi_python_generated.models.favorite_tweet import FavoriteTweet
|
|
109
135
|
from twitter_openapi_python_generated.models.favorite_tweet_response import FavoriteTweetResponse
|
|
110
136
|
from twitter_openapi_python_generated.models.feedback_info import FeedbackInfo
|
|
137
|
+
from twitter_openapi_python_generated.models.fetch_draft_tweets_response import FetchDraftTweetsResponse
|
|
138
|
+
from twitter_openapi_python_generated.models.fetch_draft_tweets_response_data import FetchDraftTweetsResponseData
|
|
139
|
+
from twitter_openapi_python_generated.models.fetch_scheduled_tweets_response import FetchScheduledTweetsResponse
|
|
140
|
+
from twitter_openapi_python_generated.models.fetch_scheduled_tweets_response_data import FetchScheduledTweetsResponseData
|
|
111
141
|
from twitter_openapi_python_generated.models.follow_response import FollowResponse
|
|
112
142
|
from twitter_openapi_python_generated.models.follow_response_data import FollowResponseData
|
|
113
143
|
from twitter_openapi_python_generated.models.follow_response_result import FollowResponseResult
|
|
114
144
|
from twitter_openapi_python_generated.models.follow_response_user import FollowResponseUser
|
|
115
145
|
from twitter_openapi_python_generated.models.follow_timeline import FollowTimeline
|
|
146
|
+
from twitter_openapi_python_generated.models.generic_timeline_by_id_response import GenericTimelineByIdResponse
|
|
147
|
+
from twitter_openapi_python_generated.models.generic_timeline_by_id_response_data import GenericTimelineByIdResponseData
|
|
116
148
|
from twitter_openapi_python_generated.models.grok_annotation import GrokAnnotation
|
|
117
149
|
from twitter_openapi_python_generated.models.grok_entity import GrokEntity
|
|
118
150
|
from twitter_openapi_python_generated.models.grok_entity_ref import GrokEntityRef
|
|
119
151
|
from twitter_openapi_python_generated.models.grok_image_annotation import GrokImageAnnotation
|
|
120
152
|
from twitter_openapi_python_generated.models.grok_share_attachment import GrokShareAttachment
|
|
121
153
|
from twitter_openapi_python_generated.models.grok_share_attachment_item import GrokShareAttachmentItem
|
|
154
|
+
from twitter_openapi_python_generated.models.grok_translated_bio import GrokTranslatedBio
|
|
155
|
+
from twitter_openapi_python_generated.models.grok_translated_bio_with_availability import GrokTranslatedBioWithAvailability
|
|
122
156
|
from twitter_openapi_python_generated.models.grok_translated_community_note import GrokTranslatedCommunityNote
|
|
123
157
|
from twitter_openapi_python_generated.models.grok_translated_community_note_with_availability import GrokTranslatedCommunityNoteWithAvailability
|
|
124
158
|
from twitter_openapi_python_generated.models.grok_translated_post import GrokTranslatedPost
|
|
@@ -131,7 +165,21 @@ from twitter_openapi_python_generated.models.instruction_union import Instructio
|
|
|
131
165
|
from twitter_openapi_python_generated.models.item_content_union import ItemContentUnion
|
|
132
166
|
from twitter_openapi_python_generated.models.item_result import ItemResult
|
|
133
167
|
from twitter_openapi_python_generated.models.limited_action_results_data import LimitedActionResultsData
|
|
168
|
+
from twitter_openapi_python_generated.models.list_banner_media import ListBannerMedia
|
|
169
|
+
from twitter_openapi_python_generated.models.list_banner_media_info import ListBannerMediaInfo
|
|
170
|
+
from twitter_openapi_python_generated.models.list_banner_media_salient_rect import ListBannerMediaSalientRect
|
|
134
171
|
from twitter_openapi_python_generated.models.list_latest_tweets_timeline_response import ListLatestTweetsTimelineResponse
|
|
172
|
+
from twitter_openapi_python_generated.models.list_members_list import ListMembersList
|
|
173
|
+
from twitter_openapi_python_generated.models.list_members_response import ListMembersResponse
|
|
174
|
+
from twitter_openapi_python_generated.models.list_members_response_data import ListMembersResponseData
|
|
175
|
+
from twitter_openapi_python_generated.models.list_recommended_users_list import ListRecommendedUsersList
|
|
176
|
+
from twitter_openapi_python_generated.models.list_recommended_users_response import ListRecommendedUsersResponse
|
|
177
|
+
from twitter_openapi_python_generated.models.list_recommended_users_response_data import ListRecommendedUsersResponseData
|
|
178
|
+
from twitter_openapi_python_generated.models.list_response import ListResponse
|
|
179
|
+
from twitter_openapi_python_generated.models.list_response_data import ListResponseData
|
|
180
|
+
from twitter_openapi_python_generated.models.list_subscribers_list import ListSubscribersList
|
|
181
|
+
from twitter_openapi_python_generated.models.list_subscribers_response import ListSubscribersResponse
|
|
182
|
+
from twitter_openapi_python_generated.models.list_subscribers_response_data import ListSubscribersResponseData
|
|
135
183
|
from twitter_openapi_python_generated.models.list_tweets_timeline_data import ListTweetsTimelineData
|
|
136
184
|
from twitter_openapi_python_generated.models.list_tweets_timeline_list import ListTweetsTimelineList
|
|
137
185
|
from twitter_openapi_python_generated.models.location import Location
|
|
@@ -170,6 +218,12 @@ from twitter_openapi_python_generated.models.one_factor_login_eligibility import
|
|
|
170
218
|
from twitter_openapi_python_generated.models.other_object_all import OtherObjectAll
|
|
171
219
|
from twitter_openapi_python_generated.models.post_create_bookmark_request import PostCreateBookmarkRequest
|
|
172
220
|
from twitter_openapi_python_generated.models.post_create_bookmark_request_variables import PostCreateBookmarkRequestVariables
|
|
221
|
+
from twitter_openapi_python_generated.models.post_create_draft_tweet_request import PostCreateDraftTweetRequest
|
|
222
|
+
from twitter_openapi_python_generated.models.post_create_draft_tweet_request_variables import PostCreateDraftTweetRequestVariables
|
|
223
|
+
from twitter_openapi_python_generated.models.post_create_draft_tweet_request_variables_post_tweet_request import PostCreateDraftTweetRequestVariablesPostTweetRequest
|
|
224
|
+
from twitter_openapi_python_generated.models.post_create_list_request import PostCreateListRequest
|
|
225
|
+
from twitter_openapi_python_generated.models.post_create_list_request_features import PostCreateListRequestFeatures
|
|
226
|
+
from twitter_openapi_python_generated.models.post_create_list_request_variables import PostCreateListRequestVariables
|
|
173
227
|
from twitter_openapi_python_generated.models.post_create_retweet_request import PostCreateRetweetRequest
|
|
174
228
|
from twitter_openapi_python_generated.models.post_create_retweet_request_variables import PostCreateRetweetRequestVariables
|
|
175
229
|
from twitter_openapi_python_generated.models.post_create_tweet_request import PostCreateTweetRequest
|
|
@@ -187,13 +241,22 @@ from twitter_openapi_python_generated.models.post_cta_user_results import PostCt
|
|
|
187
241
|
from twitter_openapi_python_generated.models.post_cta_user_results_avatar import PostCtaUserResultsAvatar
|
|
188
242
|
from twitter_openapi_python_generated.models.post_cta_user_results_result import PostCtaUserResultsResult
|
|
189
243
|
from twitter_openapi_python_generated.models.post_delete_bookmark_request import PostDeleteBookmarkRequest
|
|
244
|
+
from twitter_openapi_python_generated.models.post_delete_draft_tweets_request import PostDeleteDraftTweetsRequest
|
|
245
|
+
from twitter_openapi_python_generated.models.post_delete_draft_tweets_request_variables import PostDeleteDraftTweetsRequestVariables
|
|
246
|
+
from twitter_openapi_python_generated.models.post_delete_list_request import PostDeleteListRequest
|
|
247
|
+
from twitter_openapi_python_generated.models.post_delete_list_request_variables import PostDeleteListRequestVariables
|
|
190
248
|
from twitter_openapi_python_generated.models.post_delete_retweet_request import PostDeleteRetweetRequest
|
|
191
249
|
from twitter_openapi_python_generated.models.post_delete_retweet_request_variables import PostDeleteRetweetRequestVariables
|
|
192
250
|
from twitter_openapi_python_generated.models.post_delete_tweet_request import PostDeleteTweetRequest
|
|
193
251
|
from twitter_openapi_python_generated.models.post_favorite_tweet_request import PostFavoriteTweetRequest
|
|
252
|
+
from twitter_openapi_python_generated.models.post_list_add_member_request import PostListAddMemberRequest
|
|
253
|
+
from twitter_openapi_python_generated.models.post_list_add_member_request_variables import PostListAddMemberRequestVariables
|
|
254
|
+
from twitter_openapi_python_generated.models.post_list_remove_member_request import PostListRemoveMemberRequest
|
|
194
255
|
from twitter_openapi_python_generated.models.post_unfavorite_tweet_request import PostUnfavoriteTweetRequest
|
|
195
256
|
from twitter_openapi_python_generated.models.primary_community_topic import PrimaryCommunityTopic
|
|
196
257
|
from twitter_openapi_python_generated.models.profile_bio import ProfileBio
|
|
258
|
+
from twitter_openapi_python_generated.models.profile_bio_entities import ProfileBioEntities
|
|
259
|
+
from twitter_openapi_python_generated.models.profile_bio_entities_urls import ProfileBioEntitiesUrls
|
|
197
260
|
from twitter_openapi_python_generated.models.profile_response import ProfileResponse
|
|
198
261
|
from twitter_openapi_python_generated.models.profile_response_data import ProfileResponseData
|
|
199
262
|
from twitter_openapi_python_generated.models.quoted_ref_result import QuotedRefResult
|
|
@@ -204,6 +267,7 @@ from twitter_openapi_python_generated.models.ranked_community_tweet_data import
|
|
|
204
267
|
from twitter_openapi_python_generated.models.retweet import Retweet
|
|
205
268
|
from twitter_openapi_python_generated.models.retweet_legacy import RetweetLegacy
|
|
206
269
|
from twitter_openapi_python_generated.models.rich_message import RichMessage
|
|
270
|
+
from twitter_openapi_python_generated.models.scheduled_tweets_viewer import ScheduledTweetsViewer
|
|
207
271
|
from twitter_openapi_python_generated.models.search_by_raw_query import SearchByRawQuery
|
|
208
272
|
from twitter_openapi_python_generated.models.search_timeline import SearchTimeline
|
|
209
273
|
from twitter_openapi_python_generated.models.search_timeline_data import SearchTimelineData
|
|
@@ -235,8 +299,10 @@ from twitter_openapi_python_generated.models.timeline_clear_entries_unread_state
|
|
|
235
299
|
from twitter_openapi_python_generated.models.timeline_community import TimelineCommunity
|
|
236
300
|
from twitter_openapi_python_generated.models.timeline_cover_behavior import TimelineCoverBehavior
|
|
237
301
|
from twitter_openapi_python_generated.models.timeline_cover_behavior_url import TimelineCoverBehaviorUrl
|
|
302
|
+
from twitter_openapi_python_generated.models.timeline_frame import TimelineFrame
|
|
238
303
|
from twitter_openapi_python_generated.models.timeline_general_context import TimelineGeneralContext
|
|
239
304
|
from twitter_openapi_python_generated.models.timeline_half_cover import TimelineHalfCover
|
|
305
|
+
from twitter_openapi_python_generated.models.timeline_label import TimelineLabel
|
|
240
306
|
from twitter_openapi_python_generated.models.timeline_mark_entries_unread_greater_than_sort_index import TimelineMarkEntriesUnreadGreaterThanSortIndex
|
|
241
307
|
from twitter_openapi_python_generated.models.timeline_message_prompt import TimelineMessagePrompt
|
|
242
308
|
from twitter_openapi_python_generated.models.timeline_notification import TimelineNotification
|
|
@@ -256,6 +322,7 @@ from twitter_openapi_python_generated.models.timeline_tombstone import TimelineT
|
|
|
256
322
|
from twitter_openapi_python_generated.models.timeline_topic_context import TimelineTopicContext
|
|
257
323
|
from twitter_openapi_python_generated.models.timeline_trend import TimelineTrend
|
|
258
324
|
from twitter_openapi_python_generated.models.timeline_tweet import TimelineTweet
|
|
325
|
+
from twitter_openapi_python_generated.models.timeline_twitter_list import TimelineTwitterList
|
|
259
326
|
from twitter_openapi_python_generated.models.timeline_user import TimelineUser
|
|
260
327
|
from twitter_openapi_python_generated.models.timestamp import Timestamp
|
|
261
328
|
from twitter_openapi_python_generated.models.tombstone_entity import TombstoneEntity
|
|
@@ -308,6 +375,7 @@ from twitter_openapi_python_generated.models.tweet_unavailable import TweetUnava
|
|
|
308
375
|
from twitter_openapi_python_generated.models.tweet_union import TweetUnion
|
|
309
376
|
from twitter_openapi_python_generated.models.tweet_view import TweetView
|
|
310
377
|
from twitter_openapi_python_generated.models.tweet_with_visibility_results import TweetWithVisibilityResults
|
|
378
|
+
from twitter_openapi_python_generated.models.twitter_list import TwitterList
|
|
311
379
|
from twitter_openapi_python_generated.models.type_name import TypeName
|
|
312
380
|
from twitter_openapi_python_generated.models.unfavorite_tweet import UnfavoriteTweet
|
|
313
381
|
from twitter_openapi_python_generated.models.unfavorite_tweet_response import UnfavoriteTweetResponse
|
|
@@ -316,7 +384,9 @@ from twitter_openapi_python_generated.models.url import Url
|
|
|
316
384
|
from twitter_openapi_python_generated.models.urt_endpoint_options import UrtEndpointOptions
|
|
317
385
|
from twitter_openapi_python_generated.models.urt_endpoint_request_params import UrtEndpointRequestParams
|
|
318
386
|
from twitter_openapi_python_generated.models.user import User
|
|
387
|
+
from twitter_openapi_python_generated.models.user_action_counts import UserActionCounts
|
|
319
388
|
from twitter_openapi_python_generated.models.user_avatar import UserAvatar
|
|
389
|
+
from twitter_openapi_python_generated.models.user_banner import UserBanner
|
|
320
390
|
from twitter_openapi_python_generated.models.user_core import UserCore
|
|
321
391
|
from twitter_openapi_python_generated.models.user_dm_permissions import UserDmPermissions
|
|
322
392
|
from twitter_openapi_python_generated.models.user_features import UserFeatures
|
|
@@ -331,10 +401,15 @@ from twitter_openapi_python_generated.models.user_legacy_extended_profile import
|
|
|
331
401
|
from twitter_openapi_python_generated.models.user_legacy_extended_profile_birthdate import UserLegacyExtendedProfileBirthdate
|
|
332
402
|
from twitter_openapi_python_generated.models.user_location import UserLocation
|
|
333
403
|
from twitter_openapi_python_generated.models.user_media_permissions import UserMediaPermissions
|
|
404
|
+
from twitter_openapi_python_generated.models.user_notifications_settings import UserNotificationsSettings
|
|
405
|
+
from twitter_openapi_python_generated.models.user_pinned_items import UserPinnedItems
|
|
334
406
|
from twitter_openapi_python_generated.models.user_privacy import UserPrivacy
|
|
335
407
|
from twitter_openapi_python_generated.models.user_professional import UserProfessional
|
|
336
408
|
from twitter_openapi_python_generated.models.user_professional_category import UserProfessionalCategory
|
|
337
409
|
from twitter_openapi_python_generated.models.user_profile import UserProfile
|
|
410
|
+
from twitter_openapi_python_generated.models.user_profile_metadata import UserProfileMetadata
|
|
411
|
+
from twitter_openapi_python_generated.models.user_profile_translation import UserProfileTranslation
|
|
412
|
+
from twitter_openapi_python_generated.models.user_relationship_counts import UserRelationshipCounts
|
|
338
413
|
from twitter_openapi_python_generated.models.user_relationship_perspectives import UserRelationshipPerspectives
|
|
339
414
|
from twitter_openapi_python_generated.models.user_response import UserResponse
|
|
340
415
|
from twitter_openapi_python_generated.models.user_response_data import UserResponseData
|
|
@@ -347,6 +422,7 @@ from twitter_openapi_python_generated.models.user_result_privacy import UserResu
|
|
|
347
422
|
from twitter_openapi_python_generated.models.user_result_relationship_perspectives import UserResultRelationshipPerspectives
|
|
348
423
|
from twitter_openapi_python_generated.models.user_results import UserResults
|
|
349
424
|
from twitter_openapi_python_generated.models.user_tip_jar_settings import UserTipJarSettings
|
|
425
|
+
from twitter_openapi_python_generated.models.user_tweet_counts import UserTweetCounts
|
|
350
426
|
from twitter_openapi_python_generated.models.user_tweets_data import UserTweetsData
|
|
351
427
|
from twitter_openapi_python_generated.models.user_tweets_response import UserTweetsResponse
|
|
352
428
|
from twitter_openapi_python_generated.models.user_tweets_result_v1 import UserTweetsResultV1
|
|
@@ -361,6 +437,12 @@ from twitter_openapi_python_generated.models.user_verification_info_reason impor
|
|
|
361
437
|
from twitter_openapi_python_generated.models.user_verification_info_reason_description import UserVerificationInfoReasonDescription
|
|
362
438
|
from twitter_openapi_python_generated.models.user_verification_info_reason_description_entities import UserVerificationInfoReasonDescriptionEntities
|
|
363
439
|
from twitter_openapi_python_generated.models.user_verification_info_reason_description_entities_ref import UserVerificationInfoReasonDescriptionEntitiesRef
|
|
440
|
+
from twitter_openapi_python_generated.models.user_website import UserWebsite
|
|
364
441
|
from twitter_openapi_python_generated.models.users_response import UsersResponse
|
|
365
442
|
from twitter_openapi_python_generated.models.users_response_data import UsersResponseData
|
|
443
|
+
from twitter_openapi_python_generated.models.viewer_badge_counts_response import ViewerBadgeCountsResponse
|
|
444
|
+
from twitter_openapi_python_generated.models.viewer_badge_counts_response_data import ViewerBadgeCountsResponseData
|
|
445
|
+
from twitter_openapi_python_generated.models.viewer_badge_counts_result import ViewerBadgeCountsResult
|
|
446
|
+
from twitter_openapi_python_generated.models.viewer_badge_counts_user_results import ViewerBadgeCountsUserResults
|
|
447
|
+
from twitter_openapi_python_generated.models.viewer_badge_counts_viewer import ViewerBadgeCountsViewer
|
|
366
448
|
|
|
@@ -21,7 +21,6 @@ import json
|
|
|
21
21
|
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
|
|
22
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
23
|
from twitter_openapi_python_generated.models.additional_media_info_call_to_actions import AdditionalMediaInfoCallToActions
|
|
24
|
-
from twitter_openapi_python_generated.models.user_result_core import UserResultCore
|
|
25
24
|
from typing import Optional, Set
|
|
26
25
|
from typing_extensions import Self
|
|
27
26
|
from pydantic_core import to_jsonable_python
|
|
@@ -104,4 +103,7 @@ class AdditionalMediaInfo(BaseModel):
|
|
|
104
103
|
})
|
|
105
104
|
return _obj
|
|
106
105
|
|
|
106
|
+
from twitter_openapi_python_generated.models.user_result_core import UserResultCore
|
|
107
|
+
# TODO: Rewrite to not use raise_errors
|
|
108
|
+
AdditionalMediaInfo.model_rebuild(raise_errors=False)
|
|
107
109
|
|
|
@@ -36,13 +36,10 @@ class ArticleCoverMedia(BaseModel):
|
|
|
36
36
|
media_key: StrictStr
|
|
37
37
|
__properties: ClassVar[List[str]] = ["id", "media_id", "media_info", "media_key"]
|
|
38
38
|
|
|
39
|
-
@field_validator('media_id')
|
|
39
|
+
@field_validator('media_id', mode="before")
|
|
40
40
|
def media_id_validate_regular_expression(cls, value):
|
|
41
41
|
"""Validates the regular expression"""
|
|
42
|
-
if
|
|
43
|
-
value = str(value)
|
|
44
|
-
|
|
45
|
-
if not re.match(r"^[0-9]+$", value):
|
|
42
|
+
if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
|
|
46
43
|
raise ValueError(r"must validate the regular expression /^[0-9]+$/")
|
|
47
44
|
return value
|
|
48
45
|
|
|
@@ -75,8 +75,7 @@ class ArticleCoverMediaColorInfo(BaseModel):
|
|
|
75
75
|
_items = []
|
|
76
76
|
if self.palette:
|
|
77
77
|
for _item_palette in self.palette:
|
|
78
|
-
if _item_palette
|
|
79
|
-
_items.append(_item_palette.to_dict())
|
|
78
|
+
_items.append(_item_palette.to_dict() if _item_palette is not None else None)
|
|
80
79
|
_dict['palette'] = _items
|
|
81
80
|
return _dict
|
|
82
81
|
|
|
@@ -44,13 +44,10 @@ class ArticleResult(BaseModel):
|
|
|
44
44
|
title: StrictStr
|
|
45
45
|
__properties: ClassVar[List[str]] = ["content_state", "cover_media", "id", "is_grok_summary_eligible", "lifecycle_state", "media_entities", "metadata", "preview_text", "rest_id", "title"]
|
|
46
46
|
|
|
47
|
-
@field_validator('rest_id')
|
|
47
|
+
@field_validator('rest_id', mode="before")
|
|
48
48
|
def rest_id_validate_regular_expression(cls, value):
|
|
49
49
|
"""Validates the regular expression"""
|
|
50
|
-
if
|
|
51
|
-
value = str(value)
|
|
52
|
-
|
|
53
|
-
if not re.match(r"^[0-9]+$", value):
|
|
50
|
+
if isinstance(value, str) and not re.match(r"^[0-9]+$", value):
|
|
54
51
|
raise ValueError(r"must validate the regular expression /^[0-9]+$/")
|
|
55
52
|
return value
|
|
56
53
|
|
|
@@ -103,8 +100,7 @@ class ArticleResult(BaseModel):
|
|
|
103
100
|
_items = []
|
|
104
101
|
if self.media_entities:
|
|
105
102
|
for _item_media_entities in self.media_entities:
|
|
106
|
-
if _item_media_entities
|
|
107
|
-
_items.append(_item_media_entities.to_dict())
|
|
103
|
+
_items.append(_item_media_entities.to_dict() if _item_media_entities is not None else None)
|
|
108
104
|
_dict['media_entities'] = _items
|
|
109
105
|
# override the default output from pydantic by calling `to_dict()` of metadata
|
|
110
106
|
if self.metadata:
|