fix expansions in tweet block

This commit is contained in:
abhi1992002
2024-12-19 09:13:50 +05:30
parent ce591cefda
commit 3c264f162c
9 changed files with 120 additions and 133 deletions

View File

@@ -1,3 +1,4 @@
from datetime import datetime
from typing import Any, Dict
from backend.blocks.twitter._mappers import (
@@ -37,7 +38,7 @@ class TweetExpansionsBuilder:
def __init__(self, param: Dict[str, Any]):
self.params: Dict[str, Any] = param
def add_expansions(self, expansions: ExpansionFilter):
def add_expansions(self, expansions: ExpansionFilter | None):
if expansions:
filtered_expansions = [
name for name, value in expansions.dict().items() if value is True
@@ -48,10 +49,9 @@ class TweetExpansionsBuilder:
[get_backend_expansion(exp) for exp in filtered_expansions]
)
print("all_expansions : ", self.params["expansions"])
return self
def add_media_fields(self, media_fields: TweetMediaFieldsFilter):
def add_media_fields(self, media_fields: TweetMediaFieldsFilter | None):
if media_fields:
filtered_fields = [
name for name, value in media_fields.dict().items() if value is True
@@ -62,7 +62,7 @@ class TweetExpansionsBuilder:
)
return self
def add_place_fields(self, place_fields: TweetPlaceFieldsFilter):
def add_place_fields(self, place_fields: TweetPlaceFieldsFilter | None):
if place_fields:
filtered_fields = [
name for name, value in place_fields.dict().items() if value is True
@@ -73,7 +73,7 @@ class TweetExpansionsBuilder:
)
return self
def add_poll_fields(self, poll_fields: TweetPollFieldsFilter):
def add_poll_fields(self, poll_fields: TweetPollFieldsFilter | None):
if poll_fields:
filtered_fields = [
name for name, value in poll_fields.dict().items() if value is True
@@ -84,7 +84,7 @@ class TweetExpansionsBuilder:
)
return self
def add_tweet_fields(self, tweet_fields: TweetFieldsFilter):
def add_tweet_fields(self, tweet_fields: TweetFieldsFilter | None):
if tweet_fields:
filtered_fields = [
name for name, value in tweet_fields.dict().items() if value is True
@@ -95,7 +95,7 @@ class TweetExpansionsBuilder:
)
return self
def add_user_fields(self, user_fields: TweetUserFieldsFilter):
def add_user_fields(self, user_fields: TweetUserFieldsFilter | None):
if user_fields:
filtered_fields = [
name for name, value in user_fields.dict().items() if value is True
@@ -114,7 +114,7 @@ class UserExpansionsBuilder:
def __init__(self, param: Dict[str, Any]):
self.params: Dict[str, Any] = param
def add_expansions(self, expansions: UserExpansionsFilter):
def add_expansions(self, expansions: UserExpansionsFilter | None):
if expansions:
filtered_expansions = [
name for name, value in expansions.dict().items() if value is True
@@ -123,7 +123,7 @@ class UserExpansionsBuilder:
self.params["expansions"] = ",".join(filtered_expansions)
return self
def add_tweet_fields(self, tweet_fields: TweetFieldsFilter):
def add_tweet_fields(self, tweet_fields: TweetFieldsFilter | None):
if tweet_fields:
filtered_fields = [
name for name, value in tweet_fields.dict().items() if value is True
@@ -134,7 +134,7 @@ class UserExpansionsBuilder:
)
return self
def add_user_fields(self, user_fields: TweetUserFieldsFilter):
def add_user_fields(self, user_fields: TweetUserFieldsFilter | None):
if user_fields:
filtered_fields = [
name for name, value in user_fields.dict().items() if value is True
@@ -235,27 +235,27 @@ class TweetDurationBuilder:
def __init__(self, param: Dict[str, Any]):
self.params: Dict[str, Any] = param
def add_start_time(self, start_time: str):
def add_start_time(self, start_time: datetime | None):
if start_time:
self.params["start_time"] = start_time
return self
def add_end_time(self, end_time: str):
def add_end_time(self, end_time: datetime | None):
if end_time:
self.params["end_time"] = end_time
return self
def add_since_id(self, since_id: str):
def add_since_id(self, since_id: str | None):
if since_id:
self.params["since_id"] = since_id
return self
def add_until_id(self, until_id: str):
def add_until_id(self, until_id: str | None):
if until_id:
self.params["until_id"] = until_id
return self
def add_sort_order(self, sort_order: str):
def add_sort_order(self, sort_order: str | None):
if sort_order:
self.params["sort_order"] = sort_order
return self
@@ -327,7 +327,7 @@ class TweetSearchBuilder:
self.params["query"] = query
return self
def add_pagination(self, max_results: int, pagination: str):
def add_pagination(self, max_results: int, pagination: str | None):
if max_results:
self.params["max_results"] = max_results
if pagination:

View File

@@ -269,7 +269,6 @@ class TweetExpansionInputs(BlockSchema):
placeholder="Choose what media details you want to see",
default=None,
advanced=True,
depends_on=["expansions"]
)
place_fields: TweetPlaceFieldsFilter | None = SchemaField(
@@ -277,7 +276,6 @@ class TweetExpansionInputs(BlockSchema):
placeholder="Choose what location details you want to see",
default=None,
advanced=True,
depends_on=["expansions"]
)
poll_fields: TweetPollFieldsFilter | None = SchemaField(
@@ -285,7 +283,6 @@ class TweetExpansionInputs(BlockSchema):
placeholder="Choose what poll details you want to see",
default=None,
advanced=True,
depends_on=["expansions"]
)
tweet_fields: TweetFieldsFilter | None = SchemaField(
@@ -293,7 +290,6 @@ class TweetExpansionInputs(BlockSchema):
placeholder="Choose what tweet details you want to see",
default=None,
advanced=True,
depends_on=["expansions"]
)
user_fields: TweetUserFieldsFilter | None = SchemaField(
@@ -301,7 +297,6 @@ class TweetExpansionInputs(BlockSchema):
placeholder="Choose what user details you want to see",
default=None,
advanced=True,
depends_on=["expansions"]
)
@@ -318,7 +313,6 @@ class DMEventExpansionInputs(BlockSchema):
placeholder="Enter event types",
default=None,
advanced=True,
depends_on=["expansions"]
)
media_fields: DMMediaFieldFilter | None = SchemaField(
@@ -326,7 +320,6 @@ class DMEventExpansionInputs(BlockSchema):
placeholder="Enter media fields",
default=None,
advanced=True,
depends_on=["expansions"]
)
tweet_fields: DMTweetFieldFilter | None = SchemaField(
@@ -334,7 +327,6 @@ class DMEventExpansionInputs(BlockSchema):
placeholder="Enter tweet fields",
default=None,
advanced=True,
depends_on=["expansions"]
)
user_fields: TweetUserFieldsFilter | None = SchemaField(
@@ -342,7 +334,6 @@ class DMEventExpansionInputs(BlockSchema):
placeholder="Enter user fields",
default=None,
advanced=True,
depends_on=["expansions"]
)
@@ -359,7 +350,6 @@ class UserExpansionInputs(BlockSchema):
placeholder="Choose what details to see in pinned tweets",
default=None,
advanced=True,
depends_on=["expansions"]
)
user_fields: TweetUserFieldsFilter | None = SchemaField(
@@ -367,7 +357,6 @@ class UserExpansionInputs(BlockSchema):
placeholder="Choose what user details you want to see",
default=None,
advanced=True,
depends_on=["expansions"]
)
@@ -384,7 +373,6 @@ class SpaceExpansionInputs(BlockSchema):
placeholder="Choose what Space information you want to get",
default=SpaceFieldsFilter(Space_Title=True, Host_User_IDs=True),
advanced=True,
depends_on=["expansions"]
)
user_fields: TweetUserFieldsFilter | None = SchemaField(
@@ -392,7 +380,6 @@ class SpaceExpansionInputs(BlockSchema):
placeholder="Pick what details you want to see about the users",
default=None,
advanced=True,
depends_on=["expansions"]
)
@@ -409,7 +396,6 @@ class ListExpansionInputs(BlockSchema):
placeholder="Select what details you want to see about list owners",
default=TweetUserFieldsFilter(User_ID=True, Username=True),
advanced=True,
depends_on=["expansions"]
)
list_fields: ListFieldsFilter | None = SchemaField(
@@ -417,7 +403,6 @@ class ListExpansionInputs(BlockSchema):
placeholder="Pick what list details you want to see",
default=ListFieldsFilter(Owner_ID=True),
advanced=True,
depends_on=["expansions"]
)

View File

@@ -184,13 +184,13 @@ class TwitterGetBookmarkedTweetsBlock(Block):
def get_bookmarked_tweets(
credentials: TwitterCredentials,
max_results: int,
pagination_token: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
pagination_token: str | None,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter |None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(

View File

@@ -190,11 +190,11 @@ class TwitterGetLikingUsersBlock(Block):
def get_liking_users(
credentials: TwitterCredentials,
tweet_id: str,
max_results: int,
pagination_token: str,
expansions: UserExpansionsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
max_results: int ,
pagination_token: str | None,
expansions: UserExpansionsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(
@@ -385,13 +385,13 @@ class TwitterGetLikedTweetsBlock(Block):
credentials: TwitterCredentials,
user_id: str,
max_results: int,
pagination_token: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
pagination_token: str | None,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter |None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(

View File

@@ -1,3 +1,4 @@
from datetime import datetime
from typing import cast
import tweepy
@@ -372,18 +373,18 @@ class TwitterSearchRecentTweetsBlock(Block):
"query": "from:twitterapi #twitterapi",
"credentials": TEST_CREDENTIALS_INPUT,
"max_results": 10,
"start_time": "",
"end_time": "",
"since_id": "",
"until_id": "",
"sort_order": "",
"pagination": "",
"expansions": [],
"media_fields": [],
"place_fields": [],
"poll_fields": [],
"tweet_fields": [],
"user_fields": [],
"start_time": None,
"end_time": None,
"since_id": None,
"until_id": None,
"sort_order": None,
"pagination": None,
"expansions": None,
"media_fields": None,
"place_fields": None,
"poll_fields": None,
"tweet_fields": None,
"user_fields": None,
},
test_credentials=TEST_CREDENTIALS,
test_output=[
@@ -438,18 +439,18 @@ class TwitterSearchRecentTweetsBlock(Block):
credentials: TwitterCredentials,
query: str,
max_results: int,
start_time: str,
end_time: str,
since_id: str,
until_id: str,
sort_order: str,
pagination: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
start_time: datetime | None,
end_time: datetime | None,
since_id: str | None,
until_id: str | None,
sort_order: str | None,
pagination: str | None,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(

View File

@@ -128,14 +128,14 @@ class TwitterGetQuoteTweetsBlock(Block):
credentials: TwitterCredentials,
tweet_id: str,
max_results: int,
exclude: TweetExcludesFilter,
pagination_token: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
exclude: TweetExcludesFilter | None,
pagination_token: str | None,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter |None,
):
try:
client = tweepy.Client(

View File

@@ -272,9 +272,9 @@ class TwitterGetRetweetersBlock(Block):
tweet_id: str,
max_results: int,
pagination_token: str,
expansions: UserExpansionsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
expansions: UserExpansionsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(

View File

@@ -1,3 +1,4 @@
from datetime import datetime
from typing import cast
import tweepy
@@ -143,18 +144,18 @@ class TwitterGetUserMentionsBlock(Block):
credentials: TwitterCredentials,
user_id: str,
max_results: int,
start_time: str,
end_time: str,
since_id: str,
until_id: str,
sort_order: str,
pagination: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
start_time: datetime | None,
end_time: datetime | None,
since_id: str | None,
until_id: str | None,
sort_order: str | None,
pagination: str | None,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(
@@ -376,18 +377,18 @@ class TwitterGetHomeTimelineBlock(Block):
def get_timeline(
credentials: TwitterCredentials,
max_results: int,
start_time: str,
end_time: str,
since_id: str,
until_id: str,
sort_order: str,
pagination: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
start_time: datetime | None,
end_time: datetime | None,
since_id: str | None,
until_id: str | None,
sort_order: str | None,
pagination: str | None,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(
@@ -620,18 +621,18 @@ class TwitterGetUserTweetsBlock(Block):
credentials: TwitterCredentials,
user_id: str,
max_results: int,
start_time: str,
end_time: str,
since_id: str,
until_id: str,
sort_order: str,
pagination: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
start_time: datetime | None,
end_time: datetime | None,
since_id: str | None,
until_id: str | None,
sort_order: str | None,
pagination: str | None,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None ,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter |None,
):
try:
client = tweepy.Client(

View File

@@ -102,12 +102,12 @@ class TwitterGetTweetBlock(Block):
def get_tweet(
credentials: TwitterCredentials,
tweet_id: str,
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(
@@ -268,12 +268,12 @@ class TwitterGetTweetsBlock(Block):
def get_tweets(
credentials: TwitterCredentials,
tweet_ids: list[str],
expansions: ExpansionFilter,
media_fields: TweetMediaFieldsFilter,
place_fields: TweetPlaceFieldsFilter,
poll_fields: TweetPollFieldsFilter,
tweet_fields: TweetFieldsFilter,
user_fields: TweetUserFieldsFilter,
expansions: ExpansionFilter | None,
media_fields: TweetMediaFieldsFilter | None,
place_fields: TweetPlaceFieldsFilter | None,
poll_fields: TweetPollFieldsFilter | None,
tweet_fields: TweetFieldsFilter | None,
user_fields: TweetUserFieldsFilter | None,
):
try:
client = tweepy.Client(