Commit 0f8c92a7 by Serbaf

added typing conversions for most used fields

parent ed8cd597
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
"""Main module.""" """Main module."""
import logging import logging
import datetime
import json
from tweet_manager.lib import format_csv from tweet_manager.lib import format_csv
...@@ -140,25 +142,63 @@ class Tweet(): ...@@ -140,25 +142,63 @@ class Tweet():
extended_entities__media__url=None): extended_entities__media__url=None):
# Basic attributes # Basic attributes
try:
self.created_at =\
datetime.datetime.strptime(created_at, "%Y-%m-%d %H:%M:%S")
except ValueError:
self.created_at = created_at self.created_at = created_at
try:
self.id = int(id)
except TypeError:
self.id = id self.id = id
self.id_str = id_str
self.text = text try:
self.source = source self.truncated = bool(truncated)
except TypeError:
self.truncated = truncated self.truncated = truncated
try:
self.in_reply_to_status_id = int(in_reply_to_status_id)
except TypeError:
self.in_reply_to_status_id = in_reply_to_status_id self.in_reply_to_status_id = in_reply_to_status_id
self.in_reply_to_status_id_str = in_reply_to_status_id_str
try:
self.in_reply_to_user_id = int(in_reply_to_user_id)
except TypeError:
self.in_reply_to_user_id = in_reply_to_user_id self.in_reply_to_user_id = in_reply_to_user_id
self.in_reply_to_screen_name = in_reply_to_screen_name
try:
self.quoted_status_id = int(quoted_status_id)
except TypeError:
self.quoted_status_id = quoted_status_id self.quoted_status_id = quoted_status_id
self.quoted_status_id_str = quoted_status_id_str
try:
self.is_quote_status = bool(is_quote_status)
except TypeError:
self.is_quote_status = is_quote_status self.is_quote_status = is_quote_status
try:
self.retweet_count = int(retweet_count)
except TypeError:
self.retweet_count = retweet_count
try:
self.favorite_count = int(favorite_count)
except TypeError:
self.favorite_count = favorite_count
self.text = text
self.source = source
self.in_reply_to_screen_name = in_reply_to_screen_name
self.id_str = id_str
self.in_reply_to_status_id_str = in_reply_to_status_id_str
self.quoted_status_id_str = quoted_status_id_str
self.quoted_status = quoted_status self.quoted_status = quoted_status
self.retweeted_status = retweeted_status self.retweeted_status = retweeted_status
self.quote_count = quote_count self.quote_count = quote_count
self.reply_count = reply_count self.reply_count = reply_count
self.retweet_count = retweet_count
self.favorite_count = favorite_count
self.favorited = favorited self.favorited = favorited
self.retweeted = retweeted self.retweeted = retweeted
self.possibly_sensitive = possibly_sensitive self.possibly_sensitive = possibly_sensitive
...@@ -174,26 +214,66 @@ class Tweet(): ...@@ -174,26 +214,66 @@ class Tweet():
# User object # User object
self.user = {} self.user = {}
try:
self.user["id"] = int(user__id)
except TypeError:
self.user["id"] = user__id self.user["id"] = user__id
self.user["id_str"] = user__id_str
try:
self.user["created_at"] = datetime.datetime.strptime(
user__created_at, "%Y-%m-%d %H:%M:%S")
except ValueError:
self.user["created_at"] = user__created_at
try:
self.user["verified"] = bool(user__verified)
except TypeError:
self.user["verified"] = user__verified
try:
self.user["followers_count"] = int(user__followers_count)
except TypeError:
self.user["followers_count"] = user__followers_count
try:
self.user["friends_count"] = int(user__friends_count)
except TypeError:
self.user["friends_count"] = user__friends_count
try:
self.user["listed_count"] = int(user__listed_count)
except TypeError:
self.user["listed_count"] = user__listed_count
try:
self.user["favourites_count"] = int(user__favourites_count)
except TypeError:
self.user["favourites_count"] = user__favourites_count
try:
self.user["statuses_count"] = int(user__statuses_count)
except TypeError:
self.user["statuses_count"] = user__statuses_count
try:
self.user["geo_enabled"] = bool(user__geo_enabled)
except TypeError:
self.user["geo_enabled"] = user__geo_enabled
self.user["name"] = user__name self.user["name"] = user__name
self.user["screen_name"] = user__screen_name self.user["screen_name"] = user__screen_name
self.user["location"] = user__location self.user["location"] = user__location
self.user["profile_image_url"] = user__profile_image_url
self.user["lang"] = user__lang
self.user["id_str"] = user__id_str
self.user["url"] = user__url self.user["url"] = user__url
self.user["description"] = user__description self.user["description"] = user__description
self.user["derived"] = user__derived self.user["derived"] = user__derived
self.user["protected"] = user__protected self.user["protected"] = user__protected
self.user["verified"] = user__verified
self.user["followers_count"] = user__followers_count
self.user["friends_count"] = user__friends_count
self.user["listed_count"] = user__listed_count
self.user["favourites_count"] = user__favourites_count
self.user["statuses_count"] = user__statuses_count
self.user["created_at"] = user__created_at
self.user["utc_offset"] = user__utc_offset self.user["utc_offset"] = user__utc_offset
self.user["time_zone"] = user__time_zone self.user["time_zone"] = user__time_zone
self.user["geo_enabled"] = user__geo_enabled
self.user["lang"] = user__lang
self.user["contributors_enabled"] = user__contributors_enabled self.user["contributors_enabled"] = user__contributors_enabled
self.user["profile_background_color"] = user__profile_background_color self.user["profile_background_color"] = user__profile_background_color
self.user["profile_background_image_url"] =\ self.user["profile_background_image_url"] =\
...@@ -202,7 +282,6 @@ class Tweet(): ...@@ -202,7 +282,6 @@ class Tweet():
user__profile_background_image_url_https user__profile_background_image_url_https
self.user["profile_background_tile"] = user__profile_background_tile self.user["profile_background_tile"] = user__profile_background_tile
self.user["profile_banner_url"] = user__profile_banner_url self.user["profile_banner_url"] = user__profile_banner_url
self.user["profile_image_url"] = user__profile_image_url
self.user["profile_image_url_https"] = user__profile_image_url_https self.user["profile_image_url_https"] = user__profile_image_url_https
self.user["profile_link_color"] = user__profile_link_color self.user["profile_link_color"] = user__profile_link_color
self.user["profile_sidebar_border_color"] =\ self.user["profile_sidebar_border_color"] =\
...@@ -222,21 +301,34 @@ class Tweet(): ...@@ -222,21 +301,34 @@ class Tweet():
# Coordinates object # Coordinates object
self.coordinates = {} self.coordinates = {}
self.coordinates["coordinates"] = coordinates__coordinates
self.coordinates["type"] = coordinates__type self.coordinates["type"] = coordinates__type
try:
self.coordinates["coordinates"] =\
[float(coords) for coords in coordinates__coordinates]
except (TypeError, IndexError):
self.coordinates["coordinates"] = coordinates__coordinates
# Place object # Place object
self.place = {} self.place = {}
self.place["id"] = place__id self.place["id"] = place__id
self.place["url"] = place__url
self.place["place_type"] = place__place_type
self.place["name"] = place__name self.place["name"] = place__name
self.place["full_name"] = place__full_name self.place["full_name"] = place__full_name
self.place["country_code"] = place__country_code
self.place["country"] = place__country self.place["country"] = place__country
self.place["country_code"] = place__country_code
self.place["place_type"] = place__place_type
self.place["url"] = place__url
self.place["attributes"] = place__attributes self.place["attributes"] = place__attributes
# Place-Bounding box # Place-Bounding box
self.place["bounding_box"] = {} self.place["bounding_box"] = {}
try:
coords = json.loads(place__bounding_box__coordinates)
self.place["bounding_box"]["coordinates"] =\
[[[float(coords[x][y][z])
for z in range(len(coords[x][y]))]
for y in range(len(coords[x]))]
for x in range(len(coords))]
except (TypeError, IndexError):
self.place["bounding_box"]["coordinates"] =\ self.place["bounding_box"]["coordinates"] =\
place__bounding_box__coordinates place__bounding_box__coordinates
self.place["bounding_box"]["type"] = place__bounding_box__type self.place["bounding_box"]["type"] = place__bounding_box__type
...@@ -245,16 +337,24 @@ class Tweet(): ...@@ -245,16 +337,24 @@ class Tweet():
self.entities = {} self.entities = {}
# Entities hashtags # Entities hashtags
self.entities["hashtags"] = {} self.entities["hashtags"] = {}
self.entities["hashtags"]["indices"] = entities__hashtags__indices try:
self.entities["hashtags"]["text"] = list(entities__hashtags__text)
except TypeError:
self.entities["hashtags"]["text"] = entities__hashtags__text self.entities["hashtags"]["text"] = entities__hashtags__text
self.entities["hashtags"]["indices"] = entities__hashtags__indices
# Entities media # Entities media
self.entities["media"] = {} self.entities["media"] = {}
try:
self.entities["media"]["media_url"] =\
list(entities__media__media_url)
except TypeError:
self.entities["media"]["media_url"] = entities__media__media_url
self.entities["media"]["display_url"] = entities__media__display_url self.entities["media"]["display_url"] = entities__media__display_url
self.entities["media"]["expanded_url"] = entities__media__expanded_url self.entities["media"]["expanded_url"] = entities__media__expanded_url
self.entities["media"]["id"] = entities__media__id self.entities["media"]["id"] = entities__media__id
self.entities["media"]["id_str"] = entities__media__id_str self.entities["media"]["id_str"] = entities__media__id_str
self.entities["media"]["indices"] = entities__media__indices self.entities["media"]["indices"] = entities__media__indices
self.entities["media"]["media_url"] = entities__media__media_url
self.entities["media"]["media_url_https"] =\ self.entities["media"]["media_url_https"] =\
entities__media__media_url_https entities__media__media_url_https
self.entities["media"]["source_status_id"] =\ self.entities["media"]["source_status_id"] =\
...@@ -295,8 +395,13 @@ class Tweet(): ...@@ -295,8 +395,13 @@ class Tweet():
entities__media__sizes__small__w entities__media__sizes__small__w
# Entities urls # Entities urls
self.entities["urls"] = {} self.entities["urls"] = {}
try:
self.entities["urls"]["expanded_url"] =\
list(entities__urls__expanded_url)
except TypeError:
self.entities["urls"]["expanded_url"] =\
entities__urls__expanded_url
self.entities["urls"]["display_url"] = entities__urls__display_url self.entities["urls"]["display_url"] = entities__urls__display_url
self.entities["urls"]["expanded_url"] = entities__urls__expanded_url
self.entities["urls"]["indices"] = entities__urls__indices self.entities["urls"]["indices"] = entities__urls__indices
self.entities["urls"]["url"] = entities__urls__url self.entities["urls"]["url"] = entities__urls__url
# Entities urls unwound # Entities urls unwound
...@@ -310,14 +415,18 @@ class Tweet(): ...@@ -310,14 +415,18 @@ class Tweet():
entities__urls__unwound__description entities__urls__unwound__description
# Entities user_mentions # Entities user_mentions
self.entities["user_mentions"] = {} self.entities["user_mentions"] = {}
try:
self.entities["user_mentions"]["screen_name"] =\
list(entities__user_mentions__screen_name)
except TypeError:
self.entities["user_mentions"]["screen_name"] =\
entities__user_mentions__screen_name
self.entities["user_mentions"]["id"] = entities__user_mentions__id self.entities["user_mentions"]["id"] = entities__user_mentions__id
self.entities["user_mentions"]["id_str"] =\ self.entities["user_mentions"]["id_str"] =\
entities__user_mentions__id_str entities__user_mentions__id_str
self.entities["user_mentions"]["indices"] =\ self.entities["user_mentions"]["indices"] =\
entities__user_mentions__indices entities__user_mentions__indices
self.entities["user_mentions"]["name"] = entities__user_mentions__name self.entities["user_mentions"]["name"] = entities__user_mentions__name
self.entities["user_mentions"]["screen_name"] =\
entities__user_mentions__screen_name
# Entities symbols # Entities symbols
self.entities["symbols"] = {} self.entities["symbols"] = {}
self.entities["symbols"]["indices"] = entities__symbols__indices self.entities["symbols"]["indices"] = entities__symbols__indices
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment