Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tweet_model
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
serpucga
tweet_model
Commits
0f8c92a7
Commit
0f8c92a7
authored
May 15, 2019
by
Serbaf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added typing conversions for most used fields
parent
ed8cd597
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
137 additions
and
28 deletions
+137
-28
tweet_model.py
tweet_model/tweet_model.py
+137
-28
No files found.
tweet_model/tweet_model.py
View file @
0f8c92a7
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment