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.
Files changed (118) hide show
  1. twitter_openapi_python_generated/__init__.py +22 -3
  2. twitter_openapi_python_generated/api/default_api.py +35 -16
  3. twitter_openapi_python_generated/api/other_api.py +9 -8
  4. twitter_openapi_python_generated/api/post_api.py +737 -115
  5. twitter_openapi_python_generated/api/tweet_api.py +99 -88
  6. twitter_openapi_python_generated/api/user_api.py +18 -16
  7. twitter_openapi_python_generated/api/user_list_api.py +45 -40
  8. twitter_openapi_python_generated/api/users_api.py +9 -8
  9. twitter_openapi_python_generated/api/v11_get_api.py +6 -6
  10. twitter_openapi_python_generated/api/v11_post_api.py +6 -6
  11. twitter_openapi_python_generated/api/v20_get_api.py +3 -3
  12. twitter_openapi_python_generated/api_client.py +59 -29
  13. twitter_openapi_python_generated/configuration.py +35 -17
  14. twitter_openapi_python_generated/models/__init__.py +21 -2
  15. twitter_openapi_python_generated/models/allow_download_status.py +88 -0
  16. twitter_openapi_python_generated/models/article_cover_media_color_info.py +3 -3
  17. twitter_openapi_python_generated/models/article_lifecycle_state.py +88 -0
  18. twitter_openapi_python_generated/models/article_metadata.py +88 -0
  19. twitter_openapi_python_generated/models/article_result.py +14 -2
  20. twitter_openapi_python_generated/models/birdwatch_pivot_footer.py +3 -3
  21. twitter_openapi_python_generated/models/birdwatch_pivot_subtitle.py +3 -3
  22. twitter_openapi_python_generated/models/community_data.py +6 -6
  23. twitter_openapi_python_generated/models/content_union.py +2 -2
  24. twitter_openapi_python_generated/models/cover_cta.py +3 -3
  25. twitter_openapi_python_generated/models/{extensions.py → create_bookmark_response.py} +12 -20
  26. twitter_openapi_python_generated/models/create_bookmark_response_data.py +88 -0
  27. twitter_openapi_python_generated/models/delete_bookmark_response.py +92 -0
  28. twitter_openapi_python_generated/models/delete_bookmark_response_data.py +88 -0
  29. twitter_openapi_python_generated/models/delete_retweet.py +3 -3
  30. twitter_openapi_python_generated/models/entities.py +9 -9
  31. twitter_openapi_python_generated/models/error.py +5 -5
  32. twitter_openapi_python_generated/models/error_extensions.py +2 -2
  33. twitter_openapi_python_generated/models/errors.py +3 -3
  34. twitter_openapi_python_generated/models/extended_entities.py +3 -3
  35. twitter_openapi_python_generated/models/get_bookmarks200_response.py +2 -2
  36. twitter_openapi_python_generated/models/get_favoriters200_response.py +2 -2
  37. twitter_openapi_python_generated/models/get_followers200_response.py +2 -2
  38. twitter_openapi_python_generated/models/get_home_latest_timeline200_response.py +2 -2
  39. twitter_openapi_python_generated/models/get_likes200_response.py +2 -2
  40. twitter_openapi_python_generated/models/get_list_latest_tweets_timeline200_response.py +2 -2
  41. twitter_openapi_python_generated/models/get_profile_spotlights_query200_response.py +2 -2
  42. twitter_openapi_python_generated/models/get_retweeters200_response.py +2 -2
  43. twitter_openapi_python_generated/models/get_search_timeline200_response.py +2 -2
  44. twitter_openapi_python_generated/models/get_tweet_detail200_response.py +2 -2
  45. twitter_openapi_python_generated/models/get_tweet_result_by_rest_id200_response.py +2 -2
  46. twitter_openapi_python_generated/models/get_user_by_rest_id200_response.py +2 -2
  47. twitter_openapi_python_generated/models/get_user_highlights_tweets200_response.py +2 -2
  48. twitter_openapi_python_generated/models/get_users_by_rest_ids200_response.py +2 -2
  49. twitter_openapi_python_generated/models/highlight.py +3 -3
  50. twitter_openapi_python_generated/models/instruction_union.py +2 -2
  51. twitter_openapi_python_generated/models/item_content_union.py +2 -2
  52. twitter_openapi_python_generated/models/media.py +25 -5
  53. twitter_openapi_python_generated/models/media_extended.py +13 -1
  54. twitter_openapi_python_generated/models/media_original_info.py +3 -3
  55. twitter_openapi_python_generated/models/media_result.py +88 -0
  56. twitter_openapi_python_generated/models/{error_response.py → media_results.py} +11 -11
  57. twitter_openapi_python_generated/models/media_video_info.py +3 -3
  58. twitter_openapi_python_generated/models/media_visibility_results.py +92 -0
  59. twitter_openapi_python_generated/models/media_visibility_results_blurred_image_interstitial.py +99 -0
  60. twitter_openapi_python_generated/models/note_tweet_result_media.py +3 -3
  61. twitter_openapi_python_generated/models/note_tweet_result_rich_text.py +3 -3
  62. twitter_openapi_python_generated/models/other200_response.py +2 -2
  63. twitter_openapi_python_generated/models/post_create_bookmark200_response.py +138 -0
  64. twitter_openapi_python_generated/models/post_create_bookmark_request.py +94 -0
  65. twitter_openapi_python_generated/models/post_create_bookmark_request_variables.py +88 -0
  66. twitter_openapi_python_generated/models/post_create_retweet200_response.py +2 -2
  67. twitter_openapi_python_generated/models/post_create_tweet200_response.py +2 -2
  68. twitter_openapi_python_generated/models/post_create_tweet_request.py +1 -1
  69. twitter_openapi_python_generated/models/post_create_tweet_request_features.py +9 -5
  70. twitter_openapi_python_generated/models/post_create_tweet_request_variables.py +3 -1
  71. twitter_openapi_python_generated/models/post_create_tweet_request_variables_media.py +3 -3
  72. twitter_openapi_python_generated/models/post_delete_bookmark200_response.py +138 -0
  73. twitter_openapi_python_generated/models/post_delete_bookmark_request.py +94 -0
  74. twitter_openapi_python_generated/models/post_delete_retweet200_response.py +2 -2
  75. twitter_openapi_python_generated/models/post_delete_tweet200_response.py +2 -2
  76. twitter_openapi_python_generated/models/post_favorite_tweet200_response.py +2 -2
  77. twitter_openapi_python_generated/models/post_favorite_tweet_request.py +3 -3
  78. twitter_openapi_python_generated/models/post_unfavorite_tweet200_response.py +2 -2
  79. twitter_openapi_python_generated/models/sensitive_media_warning.py +3 -3
  80. twitter_openapi_python_generated/models/social_context_union.py +2 -2
  81. twitter_openapi_python_generated/models/text.py +3 -3
  82. twitter_openapi_python_generated/models/timeline.py +3 -3
  83. twitter_openapi_python_generated/models/timeline_add_entries.py +3 -3
  84. twitter_openapi_python_generated/models/timeline_add_to_module.py +3 -3
  85. twitter_openapi_python_generated/models/timeline_cover_behavior.py +11 -5
  86. twitter_openapi_python_generated/models/timeline_cover_behavior_url.py +97 -0
  87. twitter_openapi_python_generated/models/timeline_half_cover.py +3 -3
  88. twitter_openapi_python_generated/models/timeline_show_alert.py +3 -3
  89. twitter_openapi_python_generated/models/timeline_timeline_cursor.py +2 -2
  90. twitter_openapi_python_generated/models/timeline_timeline_module.py +3 -3
  91. twitter_openapi_python_generated/models/timeline_v2.py +2 -2
  92. twitter_openapi_python_generated/models/tweet.py +9 -3
  93. twitter_openapi_python_generated/models/tweet_card_legacy.py +6 -6
  94. twitter_openapi_python_generated/models/tweet_interstitial_reveal_text.py +3 -3
  95. twitter_openapi_python_generated/models/tweet_interstitial_text.py +3 -3
  96. twitter_openapi_python_generated/models/tweet_legacy.py +4 -4
  97. twitter_openapi_python_generated/models/tweet_unavailable.py +91 -0
  98. twitter_openapi_python_generated/models/tweet_union.py +28 -9
  99. twitter_openapi_python_generated/models/tweet_with_visibility_results.py +7 -1
  100. twitter_openapi_python_generated/models/url.py +2 -2
  101. twitter_openapi_python_generated/models/urt_endpoint_options.py +3 -3
  102. twitter_openapi_python_generated/models/user.py +26 -10
  103. twitter_openapi_python_generated/models/user_legacy.py +31 -31
  104. twitter_openapi_python_generated/models/user_legacy_extended_profile.py +92 -0
  105. twitter_openapi_python_generated/models/user_legacy_extended_profile_birthdate.py +110 -0
  106. twitter_openapi_python_generated/models/user_professional.py +3 -3
  107. twitter_openapi_python_generated/models/user_tip_jar_settings.py +102 -0
  108. twitter_openapi_python_generated/models/user_union.py +2 -2
  109. twitter_openapi_python_generated/models/user_verification_info.py +1 -1
  110. twitter_openapi_python_generated/models/user_verification_info_reason_description.py +3 -3
  111. twitter_openapi_python_generated/models/users_response_data.py +3 -3
  112. twitter_openapi_python_generated/rest.py +2 -0
  113. {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/METADATA +5 -5
  114. {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/RECORD +118 -99
  115. {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/WHEEL +1 -1
  116. {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/LICENSE +0 -0
  117. {twitter_openapi_python_generated-0.0.15.dist-info → twitter_openapi_python_generated-0.0.17.dist-info}/LICENSE.AGPL +0 -0
  118. {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
- _header_params['Accept'] = self.api_client.select_header_accept(
306
- [
307
- 'application/json'
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
- 'Pragma',
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
- _header_params['Accept'] = self.api_client.select_header_accept(
617
- [
618
- 'application/json'
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
- 'Pragma',
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
- _header_params['Accept'] = self.api_client.select_header_accept(
928
- [
929
- 'application/json'
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
- 'Pragma',
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
- _header_params['Accept'] = self.api_client.select_header_accept(
1239
- [
1240
- 'application/json'
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
- 'Pragma',
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
- _header_params['Accept'] = self.api_client.select_header_accept(
1550
- [
1551
- 'application/json'
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
- 'Pragma',
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
- _header_params['Accept'] = self.api_client.select_header_accept(
304
- [
305
- 'application/json'
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
- 'Pragma',
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
- 'Pragma',
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
- 'Pragma',
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
- 'Pragma',
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
- 'Pragma',
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
- 'Pragma',
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.15/python'
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
- post_params.extend(self.files_parameters(files))
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
- obj_dict = obj.to_dict()
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
- try:
388
- data = json.loads(response_text)
389
- except ValueError:
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=None):
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
- if files:
517
- for k, v in files.items():
518
- if not v:
519
- continue
520
- file_names = v if type(v) is list else [v]
521
- for n in file_names:
522
- with open(n, 'rb') as f:
523
- filename = os.path.basename(f.name)
524
- filedata = f.read()
525
- mimetype = (
526
- mimetypes.guess_type(filename)[0]
527
- or 'application/octet-stream'
528
- )
529
- params.append(
530
- tuple([k, tuple([filename, filedata, mimetype])])
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]: