Twitter API Client for Typed Python.
BSD-3-CLAUSE License
pip install twitter_api_py
The simplest way to use the library is as follows:
from twitter_api import TwitterApiClient
with TwitterApiClient.from_oauth2_app_env() as twitter_client:
response_body = (
twitter_client.chain()
.request("https://api.twitter.com/2/tweets")
.get({
"ids": "1460323737035677698",
"expansions": ["referenced_tweets.id"]
})
)
As a characteristic feature of the library, it explicitly prompts the user to write the Endpoint URL, which makes it clear from the source code which Twitter API is being called.
A mock client is provided by the library to simplify the writing of test code.
This client has the same interface as TwitterApiClient
/TwitterApiAsyncClient
, and also provides methods (inject_*_response_body
) for injecting test data.
from twitter_api import TwitterApiClient, TwitterApiMockClient
def your_logic(twitter_client: TwitterApiClient):
...
def test_your_logic():
twitter_client = (
TwitterApiMockClient.from_oauth2_app_env()
.inject_post_response_body("https://api.twitter.com/2/tweets", post_response_body)
.inject_get_response_body("https://api.twitter.com/2/tweets/:id", get_response_body)
.inject_delete_response_body("https://api.twitter.com/2/tweets", delete_response_body)
)
assert your_logic(twitter_client) is True