twitter-openapi-python-generated 0.0.15__py3-none-any.whl → 0.0.17__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 +22 -3
- twitter_openapi_python_generated/api/default_api.py +35 -16
- twitter_openapi_python_generated/api/other_api.py +9 -8
- twitter_openapi_python_generated/api/post_api.py +737 -115
- twitter_openapi_python_generated/api/tweet_api.py +99 -88
- twitter_openapi_python_generated/api/user_api.py +18 -16
- twitter_openapi_python_generated/api/user_list_api.py +45 -40
- twitter_openapi_python_generated/api/users_api.py +9 -8
- twitter_openapi_python_generated/api/v11_get_api.py +6 -6
- twitter_openapi_python_generated/api/v11_post_api.py +6 -6
- twitter_openapi_python_generated/api/v20_get_api.py +3 -3
- twitter_openapi_python_generated/api_client.py +59 -29
- twitter_openapi_python_generated/configuration.py +35 -17
- twitter_openapi_python_generated/models/__init__.py +21 -2
- twitter_openapi_python_generated/models/allow_download_status.py +88 -0
- twitter_openapi_python_generated/models/article_cover_media_color_info.py +3 -3
- twitter_openapi_python_generated/models/article_lifecycle_state.py +88 -0
- twitter_openapi_python_generated/models/article_metadata.py +88 -0
- twitter_openapi_python_generated/models/article_result.py +14 -2
- twitter_openapi_python_generated/models/birdwatch_pivot_footer.py +3 -3
- twitter_openapi_python_generated/models/birdwatch_pivot_subtitle.py +3 -3
- twitter_openapi_python_generated/models/community_data.py +6 -6
- twitter_openapi_python_generated/models/content_union.py +2 -2
- twitter_openapi_python_generated/models/cover_cta.py +3 -3
- twitter_openapi_python_generated/models/{extensions.py → create_bookmark_response.py} +12 -20
- twitter_openapi_python_generated/models/create_bookmark_response_data.py +88 -0
- twitter_openapi_python_generated/models/delete_bookmark_response.py +92 -0
- twitter_openapi_python_generated/models/delete_bookmark_response_data.py +88 -0
- twitter_openapi_python_generated/models/delete_retweet.py +3 -3
- twitter_openapi_python_generated/models/entities.py +9 -9
- twitter_openapi_python_generated/models/error.py +5 -5
- twitter_openapi_python_generated/models/error_extensions.py +2 -2
- twitter_openapi_python_generated/models/errors.py +3 -3
- twitter_openapi_python_generated/models/extended_entities.py +3 -3
- twitter_openapi_python_generated/models/get_bookmarks200_response.py +2 -2
- twitter_openapi_python_generated/models/get_favoriters200_response.py +2 -2
- twitter_openapi_python_generated/models/get_followers200_response.py +2 -2
- twitter_openapi_python_generated/models/get_home_latest_timeline200_response.py +2 -2
- twitter_openapi_python_generated/models/get_likes200_response.py +2 -2
- twitter_openapi_python_generated/models/get_list_latest_tweets_timeline200_response.py +2 -2
- twitter_openapi_python_generated/models/get_profile_spotlights_query200_response.py +2 -2
- twitter_openapi_python_generated/models/get_retweeters200_response.py +2 -2
- twitter_openapi_python_generated/models/get_search_timeline200_response.py +2 -2
- twitter_openapi_python_generated/models/get_tweet_detail200_response.py +2 -2
- twitter_openapi_python_generated/models/get_tweet_result_by_rest_id200_response.py +2 -2
- twitter_openapi_python_generated/models/get_user_by_rest_id200_response.py +2 -2
- twitter_openapi_python_generated/models/get_user_highlights_tweets200_response.py +2 -2
- twitter_openapi_python_generated/models/get_users_by_rest_ids200_response.py +2 -2
- twitter_openapi_python_generated/models/highlight.py +3 -3
- twitter_openapi_python_generated/models/instruction_union.py +2 -2
- twitter_openapi_python_generated/models/item_content_union.py +2 -2
- twitter_openapi_python_generated/models/media.py +25 -5
- twitter_openapi_python_generated/models/media_extended.py +13 -1
- twitter_openapi_python_generated/models/media_original_info.py +3 -3
- twitter_openapi_python_generated/models/media_result.py +88 -0
- twitter_openapi_python_generated/models/{error_response.py → media_results.py} +11 -11
- twitter_openapi_python_generated/models/media_video_info.py +3 -3
- twitter_openapi_python_generated/models/media_visibility_results.py +92 -0
- twitter_openapi_python_generated/models/media_visibility_results_blurred_image_interstitial.py +99 -0
- twitter_openapi_python_generated/models/note_tweet_result_media.py +3 -3
- twitter_openapi_python_generated/models/note_tweet_result_rich_text.py +3 -3
- twitter_openapi_python_generated/models/other200_response.py +2 -2
- twitter_openapi_python_generated/models/post_create_bookmark200_response.py +138 -0
- twitter_openapi_python_generated/models/post_create_bookmark_request.py +94 -0
- twitter_openapi_python_generated/models/post_create_bookmark_request_variables.py +88 -0
- twitter_openapi_python_generated/models/post_create_retweet200_response.py +2 -2
- twitter_openapi_python_generated/models/post_create_tweet200_response.py +2 -2
- twitter_openapi_python_generated/models/post_create_tweet_request.py +1 -1
- twitter_openapi_python_generated/models/post_create_tweet_request_features.py +9 -5
- twitter_openapi_python_generated/models/post_create_tweet_request_variables.py +3 -1
- twitter_openapi_python_generated/models/post_create_tweet_request_variables_media.py +3 -3
- twitter_openapi_python_generated/models/post_delete_bookmark200_response.py +138 -0
- twitter_openapi_python_generated/models/post_delete_bookmark_request.py +94 -0
- twitter_openapi_python_generated/models/post_delete_retweet200_response.py +2 -2
- twitter_openapi_python_generated/models/post_delete_tweet200_response.py +2 -2
- twitter_openapi_python_generated/models/post_favorite_tweet200_response.py +2 -2
- twitter_openapi_python_generated/models/post_favorite_tweet_request.py +3 -3
- twitter_openapi_python_generated/models/post_unfavorite_tweet200_response.py +2 -2
- twitter_openapi_python_generated/models/sensitive_media_warning.py +3 -3
- twitter_openapi_python_generated/models/social_context_union.py +2 -2
- twitter_openapi_python_generated/models/text.py +3 -3
- twitter_openapi_python_generated/models/timeline.py +3 -3
- twitter_openapi_python_generated/models/timeline_add_entries.py +3 -3
- twitter_openapi_python_generated/models/timeline_add_to_module.py +3 -3
- twitter_openapi_python_generated/models/timeline_cover_behavior.py +11 -5
- twitter_openapi_python_generated/models/timeline_cover_behavior_url.py +97 -0
- twitter_openapi_python_generated/models/timeline_half_cover.py +3 -3
- twitter_openapi_python_generated/models/timeline_show_alert.py +3 -3
- twitter_openapi_python_generated/models/timeline_timeline_cursor.py +2 -2
- twitter_openapi_python_generated/models/timeline_timeline_module.py +3 -3
- twitter_openapi_python_generated/models/timeline_v2.py +2 -2
- twitter_openapi_python_generated/models/tweet.py +9 -3
- twitter_openapi_python_generated/models/tweet_card_legacy.py +6 -6
- twitter_openapi_python_generated/models/tweet_interstitial_reveal_text.py +3 -3
- twitter_openapi_python_generated/models/tweet_interstitial_text.py +3 -3
- twitter_openapi_python_generated/models/tweet_legacy.py +4 -4
- twitter_openapi_python_generated/models/tweet_unavailable.py +91 -0
- twitter_openapi_python_generated/models/tweet_union.py +28 -9
- twitter_openapi_python_generated/models/tweet_with_visibility_results.py +7 -1
- twitter_openapi_python_generated/models/url.py +2 -2
- twitter_openapi_python_generated/models/urt_endpoint_options.py +3 -3
- twitter_openapi_python_generated/models/user.py +26 -10
- twitter_openapi_python_generated/models/user_legacy.py +31 -31
- twitter_openapi_python_generated/models/user_legacy_extended_profile.py +92 -0
- twitter_openapi_python_generated/models/user_legacy_extended_profile_birthdate.py +110 -0
- twitter_openapi_python_generated/models/user_professional.py +3 -3
- twitter_openapi_python_generated/models/user_tip_jar_settings.py +102 -0
- twitter_openapi_python_generated/models/user_union.py +2 -2
- twitter_openapi_python_generated/models/user_verification_info.py +1 -1
- twitter_openapi_python_generated/models/user_verification_info_reason_description.py +3 -3
- twitter_openapi_python_generated/models/users_response_data.py +3 -3
- twitter_openapi_python_generated/rest.py +2 -0
- {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/METADATA +5 -5
- {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/RECORD +118 -99
- {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/WHEEL +1 -1
- {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/LICENSE +0 -0
- {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/LICENSE.AGPL +0 -0
- {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/top_level.txt +0 -0
|
@@ -281,7 +281,7 @@ class UserListApi:
|
|
|
281
281
|
_query_params: List[Tuple[str, str]] = []
|
|
282
282
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
283
283
|
_form_params: List[Tuple[str, str]] = []
|
|
284
|
-
_files: Dict[str, str] = {}
|
|
284
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
285
285
|
_body_params: Optional[bytes] = None
|
|
286
286
|
|
|
287
287
|
# process the path parameters
|
|
@@ -302,19 +302,21 @@ class UserListApi:
|
|
|
302
302
|
|
|
303
303
|
|
|
304
304
|
# set the HTTP header `Accept`
|
|
305
|
-
|
|
306
|
-
[
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
305
|
+
if 'Accept' not in _header_params:
|
|
306
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
307
|
+
[
|
|
308
|
+
'application/json'
|
|
309
|
+
]
|
|
310
|
+
)
|
|
310
311
|
|
|
311
312
|
|
|
312
313
|
# authentication setting
|
|
313
314
|
_auth_settings: List[str] = [
|
|
314
315
|
'ClientLanguage',
|
|
315
316
|
'Accept',
|
|
317
|
+
'Priority',
|
|
316
318
|
'SecFetchDest',
|
|
317
|
-
'
|
|
319
|
+
'Referer',
|
|
318
320
|
'SecChUaPlatform',
|
|
319
321
|
'SecFetchMode',
|
|
320
322
|
'CsrfToken',
|
|
@@ -328,7 +330,6 @@ class UserListApi:
|
|
|
328
330
|
'SecFetchSite',
|
|
329
331
|
'CookieAuthToken',
|
|
330
332
|
'AuthType',
|
|
331
|
-
'CacheControl',
|
|
332
333
|
'SecChUaMobile',
|
|
333
334
|
'AcceptEncoding'
|
|
334
335
|
]
|
|
@@ -592,7 +593,7 @@ class UserListApi:
|
|
|
592
593
|
_query_params: List[Tuple[str, str]] = []
|
|
593
594
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
594
595
|
_form_params: List[Tuple[str, str]] = []
|
|
595
|
-
_files: Dict[str, str] = {}
|
|
596
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
596
597
|
_body_params: Optional[bytes] = None
|
|
597
598
|
|
|
598
599
|
# process the path parameters
|
|
@@ -613,19 +614,21 @@ class UserListApi:
|
|
|
613
614
|
|
|
614
615
|
|
|
615
616
|
# set the HTTP header `Accept`
|
|
616
|
-
|
|
617
|
-
[
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
617
|
+
if 'Accept' not in _header_params:
|
|
618
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
619
|
+
[
|
|
620
|
+
'application/json'
|
|
621
|
+
]
|
|
622
|
+
)
|
|
621
623
|
|
|
622
624
|
|
|
623
625
|
# authentication setting
|
|
624
626
|
_auth_settings: List[str] = [
|
|
625
627
|
'ClientLanguage',
|
|
626
628
|
'Accept',
|
|
629
|
+
'Priority',
|
|
627
630
|
'SecFetchDest',
|
|
628
|
-
'
|
|
631
|
+
'Referer',
|
|
629
632
|
'SecChUaPlatform',
|
|
630
633
|
'SecFetchMode',
|
|
631
634
|
'CsrfToken',
|
|
@@ -639,7 +642,6 @@ class UserListApi:
|
|
|
639
642
|
'SecFetchSite',
|
|
640
643
|
'CookieAuthToken',
|
|
641
644
|
'AuthType',
|
|
642
|
-
'CacheControl',
|
|
643
645
|
'SecChUaMobile',
|
|
644
646
|
'AcceptEncoding'
|
|
645
647
|
]
|
|
@@ -903,7 +905,7 @@ class UserListApi:
|
|
|
903
905
|
_query_params: List[Tuple[str, str]] = []
|
|
904
906
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
905
907
|
_form_params: List[Tuple[str, str]] = []
|
|
906
|
-
_files: Dict[str, str] = {}
|
|
908
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
907
909
|
_body_params: Optional[bytes] = None
|
|
908
910
|
|
|
909
911
|
# process the path parameters
|
|
@@ -924,19 +926,21 @@ class UserListApi:
|
|
|
924
926
|
|
|
925
927
|
|
|
926
928
|
# set the HTTP header `Accept`
|
|
927
|
-
|
|
928
|
-
[
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
929
|
+
if 'Accept' not in _header_params:
|
|
930
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
931
|
+
[
|
|
932
|
+
'application/json'
|
|
933
|
+
]
|
|
934
|
+
)
|
|
932
935
|
|
|
933
936
|
|
|
934
937
|
# authentication setting
|
|
935
938
|
_auth_settings: List[str] = [
|
|
936
939
|
'ClientLanguage',
|
|
937
940
|
'Accept',
|
|
941
|
+
'Priority',
|
|
938
942
|
'SecFetchDest',
|
|
939
|
-
'
|
|
943
|
+
'Referer',
|
|
940
944
|
'SecChUaPlatform',
|
|
941
945
|
'SecFetchMode',
|
|
942
946
|
'CsrfToken',
|
|
@@ -950,7 +954,6 @@ class UserListApi:
|
|
|
950
954
|
'SecFetchSite',
|
|
951
955
|
'CookieAuthToken',
|
|
952
956
|
'AuthType',
|
|
953
|
-
'CacheControl',
|
|
954
957
|
'SecChUaMobile',
|
|
955
958
|
'AcceptEncoding'
|
|
956
959
|
]
|
|
@@ -1214,7 +1217,7 @@ class UserListApi:
|
|
|
1214
1217
|
_query_params: List[Tuple[str, str]] = []
|
|
1215
1218
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1216
1219
|
_form_params: List[Tuple[str, str]] = []
|
|
1217
|
-
_files: Dict[str, str] = {}
|
|
1220
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
1218
1221
|
_body_params: Optional[bytes] = None
|
|
1219
1222
|
|
|
1220
1223
|
# process the path parameters
|
|
@@ -1235,19 +1238,21 @@ class UserListApi:
|
|
|
1235
1238
|
|
|
1236
1239
|
|
|
1237
1240
|
# set the HTTP header `Accept`
|
|
1238
|
-
|
|
1239
|
-
[
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1241
|
+
if 'Accept' not in _header_params:
|
|
1242
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
1243
|
+
[
|
|
1244
|
+
'application/json'
|
|
1245
|
+
]
|
|
1246
|
+
)
|
|
1243
1247
|
|
|
1244
1248
|
|
|
1245
1249
|
# authentication setting
|
|
1246
1250
|
_auth_settings: List[str] = [
|
|
1247
1251
|
'ClientLanguage',
|
|
1248
1252
|
'Accept',
|
|
1253
|
+
'Priority',
|
|
1249
1254
|
'SecFetchDest',
|
|
1250
|
-
'
|
|
1255
|
+
'Referer',
|
|
1251
1256
|
'SecChUaPlatform',
|
|
1252
1257
|
'SecFetchMode',
|
|
1253
1258
|
'CsrfToken',
|
|
@@ -1261,7 +1266,6 @@ class UserListApi:
|
|
|
1261
1266
|
'SecFetchSite',
|
|
1262
1267
|
'CookieAuthToken',
|
|
1263
1268
|
'AuthType',
|
|
1264
|
-
'CacheControl',
|
|
1265
1269
|
'SecChUaMobile',
|
|
1266
1270
|
'AcceptEncoding'
|
|
1267
1271
|
]
|
|
@@ -1525,7 +1529,7 @@ class UserListApi:
|
|
|
1525
1529
|
_query_params: List[Tuple[str, str]] = []
|
|
1526
1530
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1527
1531
|
_form_params: List[Tuple[str, str]] = []
|
|
1528
|
-
_files: Dict[str, str] = {}
|
|
1532
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
1529
1533
|
_body_params: Optional[bytes] = None
|
|
1530
1534
|
|
|
1531
1535
|
# process the path parameters
|
|
@@ -1546,19 +1550,21 @@ class UserListApi:
|
|
|
1546
1550
|
|
|
1547
1551
|
|
|
1548
1552
|
# set the HTTP header `Accept`
|
|
1549
|
-
|
|
1550
|
-
[
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1553
|
+
if 'Accept' not in _header_params:
|
|
1554
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
1555
|
+
[
|
|
1556
|
+
'application/json'
|
|
1557
|
+
]
|
|
1558
|
+
)
|
|
1554
1559
|
|
|
1555
1560
|
|
|
1556
1561
|
# authentication setting
|
|
1557
1562
|
_auth_settings: List[str] = [
|
|
1558
1563
|
'ClientLanguage',
|
|
1559
1564
|
'Accept',
|
|
1565
|
+
'Priority',
|
|
1560
1566
|
'SecFetchDest',
|
|
1561
|
-
'
|
|
1567
|
+
'Referer',
|
|
1562
1568
|
'SecChUaPlatform',
|
|
1563
1569
|
'SecFetchMode',
|
|
1564
1570
|
'CsrfToken',
|
|
@@ -1572,7 +1578,6 @@ class UserListApi:
|
|
|
1572
1578
|
'SecFetchSite',
|
|
1573
1579
|
'CookieAuthToken',
|
|
1574
1580
|
'AuthType',
|
|
1575
|
-
'CacheControl',
|
|
1576
1581
|
'SecChUaMobile',
|
|
1577
1582
|
'AcceptEncoding'
|
|
1578
1583
|
]
|
|
@@ -279,7 +279,7 @@ class UsersApi:
|
|
|
279
279
|
_query_params: List[Tuple[str, str]] = []
|
|
280
280
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
281
281
|
_form_params: List[Tuple[str, str]] = []
|
|
282
|
-
_files: Dict[str, str] = {}
|
|
282
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
283
283
|
_body_params: Optional[bytes] = None
|
|
284
284
|
|
|
285
285
|
# process the path parameters
|
|
@@ -300,19 +300,21 @@ class UsersApi:
|
|
|
300
300
|
|
|
301
301
|
|
|
302
302
|
# set the HTTP header `Accept`
|
|
303
|
-
|
|
304
|
-
[
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
303
|
+
if 'Accept' not in _header_params:
|
|
304
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
305
|
+
[
|
|
306
|
+
'application/json'
|
|
307
|
+
]
|
|
308
|
+
)
|
|
308
309
|
|
|
309
310
|
|
|
310
311
|
# authentication setting
|
|
311
312
|
_auth_settings: List[str] = [
|
|
312
313
|
'ClientLanguage',
|
|
313
314
|
'Accept',
|
|
315
|
+
'Priority',
|
|
314
316
|
'SecFetchDest',
|
|
315
|
-
'
|
|
317
|
+
'Referer',
|
|
316
318
|
'SecChUaPlatform',
|
|
317
319
|
'SecFetchMode',
|
|
318
320
|
'CsrfToken',
|
|
@@ -326,7 +328,6 @@ class UsersApi:
|
|
|
326
328
|
'SecFetchSite',
|
|
327
329
|
'CookieAuthToken',
|
|
328
330
|
'AuthType',
|
|
329
|
-
'CacheControl',
|
|
330
331
|
'SecChUaMobile',
|
|
331
332
|
'AcceptEncoding'
|
|
332
333
|
]
|
|
@@ -460,7 +460,7 @@ class V11GetApi:
|
|
|
460
460
|
_query_params: List[Tuple[str, str]] = []
|
|
461
461
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
462
462
|
_form_params: List[Tuple[str, str]] = []
|
|
463
|
-
_files: Dict[str, str] = {}
|
|
463
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
464
464
|
_body_params: Optional[bytes] = None
|
|
465
465
|
|
|
466
466
|
# process the path parameters
|
|
@@ -544,8 +544,9 @@ class V11GetApi:
|
|
|
544
544
|
_auth_settings: List[str] = [
|
|
545
545
|
'ClientLanguage',
|
|
546
546
|
'Accept',
|
|
547
|
+
'Priority',
|
|
547
548
|
'SecFetchDest',
|
|
548
|
-
'
|
|
549
|
+
'Referer',
|
|
549
550
|
'SecChUaPlatform',
|
|
550
551
|
'SecFetchMode',
|
|
551
552
|
'CsrfToken',
|
|
@@ -559,7 +560,6 @@ class V11GetApi:
|
|
|
559
560
|
'SecFetchSite',
|
|
560
561
|
'CookieAuthToken',
|
|
561
562
|
'AuthType',
|
|
562
|
-
'CacheControl',
|
|
563
563
|
'SecChUaMobile',
|
|
564
564
|
'AcceptEncoding'
|
|
565
565
|
]
|
|
@@ -862,7 +862,7 @@ class V11GetApi:
|
|
|
862
862
|
_query_params: List[Tuple[str, str]] = []
|
|
863
863
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
864
864
|
_form_params: List[Tuple[str, str]] = []
|
|
865
|
-
_files: Dict[str, str] = {}
|
|
865
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
866
866
|
_body_params: Optional[bytes] = None
|
|
867
867
|
|
|
868
868
|
# process the path parameters
|
|
@@ -902,8 +902,9 @@ class V11GetApi:
|
|
|
902
902
|
_auth_settings: List[str] = [
|
|
903
903
|
'ClientLanguage',
|
|
904
904
|
'Accept',
|
|
905
|
+
'Priority',
|
|
905
906
|
'SecFetchDest',
|
|
906
|
-
'
|
|
907
|
+
'Referer',
|
|
907
908
|
'SecChUaPlatform',
|
|
908
909
|
'SecFetchMode',
|
|
909
910
|
'CsrfToken',
|
|
@@ -917,7 +918,6 @@ class V11GetApi:
|
|
|
917
918
|
'SecFetchSite',
|
|
918
919
|
'CookieAuthToken',
|
|
919
920
|
'AuthType',
|
|
920
|
-
'CacheControl',
|
|
921
921
|
'SecChUaMobile',
|
|
922
922
|
'AcceptEncoding'
|
|
923
923
|
]
|
|
@@ -421,7 +421,7 @@ class V11PostApi:
|
|
|
421
421
|
_query_params: List[Tuple[str, str]] = []
|
|
422
422
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
423
423
|
_form_params: List[Tuple[str, str]] = []
|
|
424
|
-
_files: Dict[str, str] = {}
|
|
424
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
425
425
|
_body_params: Optional[bytes] = None
|
|
426
426
|
|
|
427
427
|
# process the path parameters
|
|
@@ -478,8 +478,9 @@ class V11PostApi:
|
|
|
478
478
|
_auth_settings: List[str] = [
|
|
479
479
|
'ClientLanguage',
|
|
480
480
|
'Accept',
|
|
481
|
+
'Priority',
|
|
481
482
|
'SecFetchDest',
|
|
482
|
-
'
|
|
483
|
+
'Referer',
|
|
483
484
|
'SecChUaPlatform',
|
|
484
485
|
'SecFetchMode',
|
|
485
486
|
'CsrfToken',
|
|
@@ -493,7 +494,6 @@ class V11PostApi:
|
|
|
493
494
|
'SecFetchSite',
|
|
494
495
|
'CookieAuthToken',
|
|
495
496
|
'AuthType',
|
|
496
|
-
'CacheControl',
|
|
497
497
|
'SecChUaMobile',
|
|
498
498
|
'AcceptEncoding'
|
|
499
499
|
]
|
|
@@ -900,7 +900,7 @@ class V11PostApi:
|
|
|
900
900
|
_query_params: List[Tuple[str, str]] = []
|
|
901
901
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
902
902
|
_form_params: List[Tuple[str, str]] = []
|
|
903
|
-
_files: Dict[str, str] = {}
|
|
903
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
904
904
|
_body_params: Optional[bytes] = None
|
|
905
905
|
|
|
906
906
|
# process the path parameters
|
|
@@ -957,8 +957,9 @@ class V11PostApi:
|
|
|
957
957
|
_auth_settings: List[str] = [
|
|
958
958
|
'ClientLanguage',
|
|
959
959
|
'Accept',
|
|
960
|
+
'Priority',
|
|
960
961
|
'SecFetchDest',
|
|
961
|
-
'
|
|
962
|
+
'Referer',
|
|
962
963
|
'SecChUaPlatform',
|
|
963
964
|
'SecFetchMode',
|
|
964
965
|
'CsrfToken',
|
|
@@ -972,7 +973,6 @@ class V11PostApi:
|
|
|
972
973
|
'SecFetchSite',
|
|
973
974
|
'CookieAuthToken',
|
|
974
975
|
'AuthType',
|
|
975
|
-
'CacheControl',
|
|
976
976
|
'SecChUaMobile',
|
|
977
977
|
'AcceptEncoding'
|
|
978
978
|
]
|
|
@@ -720,7 +720,7 @@ class V20GetApi:
|
|
|
720
720
|
_query_params: List[Tuple[str, str]] = []
|
|
721
721
|
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
722
722
|
_form_params: List[Tuple[str, str]] = []
|
|
723
|
-
_files: Dict[str, str] = {}
|
|
723
|
+
_files: Dict[str, Union[str, bytes]] = {}
|
|
724
724
|
_body_params: Optional[bytes] = None
|
|
725
725
|
|
|
726
726
|
# process the path parameters
|
|
@@ -884,8 +884,9 @@ class V20GetApi:
|
|
|
884
884
|
_auth_settings: List[str] = [
|
|
885
885
|
'ClientLanguage',
|
|
886
886
|
'Accept',
|
|
887
|
+
'Priority',
|
|
887
888
|
'SecFetchDest',
|
|
888
|
-
'
|
|
889
|
+
'Referer',
|
|
889
890
|
'SecChUaPlatform',
|
|
890
891
|
'SecFetchMode',
|
|
891
892
|
'CsrfToken',
|
|
@@ -899,7 +900,6 @@ class V20GetApi:
|
|
|
899
900
|
'SecFetchSite',
|
|
900
901
|
'CookieAuthToken',
|
|
901
902
|
'AuthType',
|
|
902
|
-
'CacheControl',
|
|
903
903
|
'SecChUaMobile',
|
|
904
904
|
'AcceptEncoding'
|
|
905
905
|
]
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
import datetime
|
|
17
17
|
from dateutil.parser import parse
|
|
18
18
|
from enum import Enum
|
|
19
|
+
import decimal
|
|
19
20
|
import json
|
|
20
21
|
import mimetypes
|
|
21
22
|
import os
|
|
@@ -23,7 +24,8 @@ import re
|
|
|
23
24
|
import tempfile
|
|
24
25
|
|
|
25
26
|
from urllib.parse import quote
|
|
26
|
-
from typing import Tuple, Optional, List, Dict
|
|
27
|
+
from typing import Tuple, Optional, List, Dict, Union
|
|
28
|
+
from pydantic import SecretStr
|
|
27
29
|
|
|
28
30
|
from twitter_openapi_python_generated.configuration import Configuration
|
|
29
31
|
from twitter_openapi_python_generated.api_response import ApiResponse, T as ApiResponseT
|
|
@@ -66,6 +68,7 @@ class ApiClient:
|
|
|
66
68
|
'bool': bool,
|
|
67
69
|
'date': datetime.date,
|
|
68
70
|
'datetime': datetime.datetime,
|
|
71
|
+
'decimal': decimal.Decimal,
|
|
69
72
|
'object': object,
|
|
70
73
|
}
|
|
71
74
|
_pool = None
|
|
@@ -88,7 +91,7 @@ class ApiClient:
|
|
|
88
91
|
self.default_headers[header_name] = header_value
|
|
89
92
|
self.cookie = cookie
|
|
90
93
|
# Set default User-Agent.
|
|
91
|
-
self.user_agent = 'OpenAPI-Generator/0.0.
|
|
94
|
+
self.user_agent = 'OpenAPI-Generator/0.0.17/python'
|
|
92
95
|
self.client_side_validation = configuration.client_side_validation
|
|
93
96
|
|
|
94
97
|
def __enter__(self):
|
|
@@ -208,7 +211,8 @@ class ApiClient:
|
|
|
208
211
|
post_params,
|
|
209
212
|
collection_formats
|
|
210
213
|
)
|
|
211
|
-
|
|
214
|
+
if files:
|
|
215
|
+
post_params.extend(self.files_parameters(files))
|
|
212
216
|
|
|
213
217
|
# auth setting
|
|
214
218
|
self.update_params_for_auth(
|
|
@@ -226,7 +230,7 @@ class ApiClient:
|
|
|
226
230
|
body = self.sanitize_for_serialization(body)
|
|
227
231
|
|
|
228
232
|
# request url
|
|
229
|
-
if _host is None:
|
|
233
|
+
if _host is None or self.configuration.ignore_operation_servers:
|
|
230
234
|
url = self.configuration.host + resource_path
|
|
231
235
|
else:
|
|
232
236
|
# use server/host defined in path or operation instead
|
|
@@ -313,7 +317,7 @@ class ApiClient:
|
|
|
313
317
|
match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
|
|
314
318
|
encoding = match.group(1) if match else "utf-8"
|
|
315
319
|
response_text = response_data.data.decode(encoding)
|
|
316
|
-
return_data = self.deserialize(response_text, response_type)
|
|
320
|
+
return_data = self.deserialize(response_text, response_type, content_type)
|
|
317
321
|
finally:
|
|
318
322
|
if not 200 <= response_data.status <= 299:
|
|
319
323
|
raise ApiException.from_response(
|
|
@@ -333,9 +337,11 @@ class ApiClient:
|
|
|
333
337
|
"""Builds a JSON POST object.
|
|
334
338
|
|
|
335
339
|
If obj is None, return None.
|
|
340
|
+
If obj is SecretStr, return obj.get_secret_value()
|
|
336
341
|
If obj is str, int, long, float, bool, return directly.
|
|
337
342
|
If obj is datetime.datetime, datetime.date
|
|
338
343
|
convert to string in iso8601 format.
|
|
344
|
+
If obj is decimal.Decimal return string representation.
|
|
339
345
|
If obj is list, sanitize each element in the list.
|
|
340
346
|
If obj is dict, return the dict.
|
|
341
347
|
If obj is OpenAPI model, return the properties dict.
|
|
@@ -345,6 +351,10 @@ class ApiClient:
|
|
|
345
351
|
"""
|
|
346
352
|
if obj is None:
|
|
347
353
|
return None
|
|
354
|
+
elif isinstance(obj, Enum):
|
|
355
|
+
return obj.value
|
|
356
|
+
elif isinstance(obj, SecretStr):
|
|
357
|
+
return obj.get_secret_value()
|
|
348
358
|
elif isinstance(obj, self.PRIMITIVE_TYPES):
|
|
349
359
|
return obj
|
|
350
360
|
elif isinstance(obj, list):
|
|
@@ -357,6 +367,8 @@ class ApiClient:
|
|
|
357
367
|
)
|
|
358
368
|
elif isinstance(obj, (datetime.datetime, datetime.date)):
|
|
359
369
|
return obj.isoformat()
|
|
370
|
+
elif isinstance(obj, decimal.Decimal):
|
|
371
|
+
return str(obj)
|
|
360
372
|
|
|
361
373
|
elif isinstance(obj, dict):
|
|
362
374
|
obj_dict = obj
|
|
@@ -366,28 +378,45 @@ class ApiClient:
|
|
|
366
378
|
# and attributes which value is not None.
|
|
367
379
|
# Convert attribute name to json key in
|
|
368
380
|
# model definition for request.
|
|
369
|
-
|
|
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__
|
|
370
385
|
|
|
371
386
|
return {
|
|
372
387
|
key: self.sanitize_for_serialization(val)
|
|
373
388
|
for key, val in obj_dict.items()
|
|
374
389
|
}
|
|
375
390
|
|
|
376
|
-
def deserialize(self, response_text, response_type):
|
|
391
|
+
def deserialize(self, response_text: str, response_type: str, content_type: Optional[str]):
|
|
377
392
|
"""Deserializes response into an object.
|
|
378
393
|
|
|
379
394
|
:param response: RESTResponse object to be deserialized.
|
|
380
395
|
:param response_type: class literal for
|
|
381
396
|
deserialized object, or string of class name.
|
|
397
|
+
:param content_type: content type of response.
|
|
382
398
|
|
|
383
399
|
:return: deserialized object.
|
|
384
400
|
"""
|
|
385
401
|
|
|
386
402
|
# fetch data from response object
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
403
|
+
if content_type is None:
|
|
404
|
+
try:
|
|
405
|
+
data = json.loads(response_text)
|
|
406
|
+
except ValueError:
|
|
407
|
+
data = response_text
|
|
408
|
+
elif content_type.startswith("application/json"):
|
|
409
|
+
if response_text == "":
|
|
410
|
+
data = ""
|
|
411
|
+
else:
|
|
412
|
+
data = json.loads(response_text)
|
|
413
|
+
elif content_type.startswith("text/plain"):
|
|
390
414
|
data = response_text
|
|
415
|
+
else:
|
|
416
|
+
raise ApiException(
|
|
417
|
+
status=0,
|
|
418
|
+
reason="Unsupported content type: {0}".format(content_type)
|
|
419
|
+
)
|
|
391
420
|
|
|
392
421
|
return self.__deserialize(data, response_type)
|
|
393
422
|
|
|
@@ -431,6 +460,8 @@ class ApiClient:
|
|
|
431
460
|
return self.__deserialize_date(data)
|
|
432
461
|
elif klass == datetime.datetime:
|
|
433
462
|
return self.__deserialize_datetime(data)
|
|
463
|
+
elif klass == decimal.Decimal:
|
|
464
|
+
return decimal.Decimal(data)
|
|
434
465
|
elif issubclass(klass, Enum):
|
|
435
466
|
return self.__deserialize_enum(data, klass)
|
|
436
467
|
else:
|
|
@@ -505,31 +536,30 @@ class ApiClient:
|
|
|
505
536
|
|
|
506
537
|
return "&".join(["=".join(map(str, item)) for item in new_params])
|
|
507
538
|
|
|
508
|
-
def files_parameters(self, files
|
|
539
|
+
def files_parameters(self, files: Dict[str, Union[str, bytes]]):
|
|
509
540
|
"""Builds form parameters.
|
|
510
541
|
|
|
511
542
|
:param files: File parameters.
|
|
512
543
|
:return: Form parameters with files.
|
|
513
544
|
"""
|
|
514
545
|
params = []
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
546
|
+
for k, v in files.items():
|
|
547
|
+
if isinstance(v, str):
|
|
548
|
+
with open(v, 'rb') as f:
|
|
549
|
+
filename = os.path.basename(f.name)
|
|
550
|
+
filedata = f.read()
|
|
551
|
+
elif isinstance(v, bytes):
|
|
552
|
+
filename = k
|
|
553
|
+
filedata = v
|
|
554
|
+
else:
|
|
555
|
+
raise ValueError("Unsupported file value")
|
|
556
|
+
mimetype = (
|
|
557
|
+
mimetypes.guess_type(filename)[0]
|
|
558
|
+
or 'application/octet-stream'
|
|
559
|
+
)
|
|
560
|
+
params.append(
|
|
561
|
+
tuple([k, tuple([filename, filedata, mimetype])])
|
|
562
|
+
)
|
|
533
563
|
return params
|
|
534
564
|
|
|
535
565
|
def select_header_accept(self, accepts: List[str]) -> Optional[str]:
|