diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-twitwi.spec | 465 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 467 insertions, 0 deletions
@@ -0,0 +1 @@ +/twitwi-0.18.0.tar.gz diff --git a/python-twitwi.spec b/python-twitwi.spec new file mode 100644 index 0000000..37caf25 --- /dev/null +++ b/python-twitwi.spec @@ -0,0 +1,465 @@ +%global _empty_manifest_terminate_build 0 +Name: python-twitwi +Version: 0.18.0 +Release: 1 +Summary: A collection of Twitter-related helper functions for python. +License: MIT +URL: http://github.com/medialab/twitwi +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4f/cb/948f390c1ae3fe96017c96fc6cdc4246ef7ebb4b6cb958a4c1f7ea2e518a/twitwi-0.18.0.tar.gz +BuildArch: noarch + +Requires: python3-pytz +Requires: python3-twitter +Requires: python3-ural + +%description +[](https://github.com/medialab/twitwi/actions) + +# Twitwi + +A collection of Twitter-related helper functions for python. + +## Installation + +You can install `twitwi` with pip with the following command: + +``` +pip install twitwi +``` + +## Usage + +*Normalization functions* + +* [normalize_tweets_payload_v2](#normalize_tweets_payload_v2) + +*Formatting functions* + +* [transform_tweet_into_csv_dict](#transform_tweet_into_csv_dict) +* [transform_user_into_csv_dict](#transform_user_into_csv_dict) +* [format_tweet_as_csv_row](#format_tweet_as_csv_row) + +*Useful constants (under twitwi.constants)* + +* [TWEET_FIELDS](#tweet_fields) +* [USER_FIELDS](#user_fields) + +### normalize_tweets_payload_v2 + +Function taking an entire tweets payload from the v2 API and returning a list of the contained tweets normalized and structured in a way that makes further analysis of the data convenient. + +```python +from twitwi import normalize_tweets_payload_v2 + +# Normalizing an entire tweets payload to extract a list of tweets +normalize_tweets_payload_v2(payload) + +# Normalizing an entire tweets payload to extract a list of tweets +# as well as the referenced tweets (quoted, retweeted, etc.) +normalize_tweets_payload_v2(payload, extract_referenced_tweets=True) + +# Converting found dates to a chosen timezone +from pytz import timezone +paris_tz = timezone('Europe/Paris') + +normalize_tweets_payload_v2(payload, locale=paris_tz) +``` + +*Arguments* + +* **payload** *(dict)*: tweets payload coming from Twitter API v2. +* **locale** *(pytz.timezone, optional)*: timezone used to convert dates. If not given, will default to UTC. +* **extract_referenced_tweets** *(bool, optional)*: whether to keep referenced tweets (retweeted, quoted etc.) in the output. Defaults to `False`. +* **collection_source** *(string, optional): An optional information to add to the tweets to indicate whence you collected them. + +### transform_tweet_into_csv_dict + +Function transforming (i.e. mutating, so beware) a given normalized tweet into a suitable dict able to be written by a `csv.DictWriter` as a row. + +```python +from twitwi import transform_tweet_into_csv_dict + +# The function returns nothing, `normalized_tweet` has been mutated +transform_tweet_into_csv_dict(normalized_tweet) +``` + +### transform_user_into_csv_dict + +Function transforming (i.e. mutating, so beware) a given normalized Twitter user into a suitable dict able to be written by a `csv.DictWriter` as a row. + +```python +from twitwi import transform_user_into_csv_dict + +# The function returns nothing, `normalized_user` has been mutated +transform_user_into_csv_dict(normalized_user) +``` + +### format_tweet_as_csv_row + +Function formatting the given normalized tweet as a list able to be written by a `csv.writer` as a row. + +```python +from twitwi import format_tweet_as_csv_row + +row = format_tweet_as_csv_row(normalized_tweet) +``` + +### format_user_as_csv_row + +Function formatting the given normalized Twitter user as a list able to be written by a `csv.writer` as a row. + +```python +from twitwi import format_user_as_csv_row + +row = format_user_as_csv_row(normalized_user) +``` + +### TWEET_FIELDS + +List of tweet field names. Useful to declare headers with csv writers: + +```python +from twitwi.constants import TWEET_FIELDS + +# Using csv.writer +w = csv.writer(f) +w.writerow(TWEET_FIELDS) + +# Using csv.DictWriter +w = csv.DictWriter(f, fieldnames=TWEET_FIELDS) +w.writeheader() +``` + +### USER_FIELDS + +```python +from twitwi.constants import USER_FIELDS + +# Using csv.writer +w = csv.writer(f) +w.writerow(USER_FIELDS) + +# Using csv.DictWriter +w = csv.DictWriter(f, fieldnames=USER_FIELDS) +w.writeheader() +``` + + +%package -n python3-twitwi +Summary: A collection of Twitter-related helper functions for python. +Provides: python-twitwi +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-twitwi +[](https://github.com/medialab/twitwi/actions) + +# Twitwi + +A collection of Twitter-related helper functions for python. + +## Installation + +You can install `twitwi` with pip with the following command: + +``` +pip install twitwi +``` + +## Usage + +*Normalization functions* + +* [normalize_tweets_payload_v2](#normalize_tweets_payload_v2) + +*Formatting functions* + +* [transform_tweet_into_csv_dict](#transform_tweet_into_csv_dict) +* [transform_user_into_csv_dict](#transform_user_into_csv_dict) +* [format_tweet_as_csv_row](#format_tweet_as_csv_row) + +*Useful constants (under twitwi.constants)* + +* [TWEET_FIELDS](#tweet_fields) +* [USER_FIELDS](#user_fields) + +### normalize_tweets_payload_v2 + +Function taking an entire tweets payload from the v2 API and returning a list of the contained tweets normalized and structured in a way that makes further analysis of the data convenient. + +```python +from twitwi import normalize_tweets_payload_v2 + +# Normalizing an entire tweets payload to extract a list of tweets +normalize_tweets_payload_v2(payload) + +# Normalizing an entire tweets payload to extract a list of tweets +# as well as the referenced tweets (quoted, retweeted, etc.) +normalize_tweets_payload_v2(payload, extract_referenced_tweets=True) + +# Converting found dates to a chosen timezone +from pytz import timezone +paris_tz = timezone('Europe/Paris') + +normalize_tweets_payload_v2(payload, locale=paris_tz) +``` + +*Arguments* + +* **payload** *(dict)*: tweets payload coming from Twitter API v2. +* **locale** *(pytz.timezone, optional)*: timezone used to convert dates. If not given, will default to UTC. +* **extract_referenced_tweets** *(bool, optional)*: whether to keep referenced tweets (retweeted, quoted etc.) in the output. Defaults to `False`. +* **collection_source** *(string, optional): An optional information to add to the tweets to indicate whence you collected them. + +### transform_tweet_into_csv_dict + +Function transforming (i.e. mutating, so beware) a given normalized tweet into a suitable dict able to be written by a `csv.DictWriter` as a row. + +```python +from twitwi import transform_tweet_into_csv_dict + +# The function returns nothing, `normalized_tweet` has been mutated +transform_tweet_into_csv_dict(normalized_tweet) +``` + +### transform_user_into_csv_dict + +Function transforming (i.e. mutating, so beware) a given normalized Twitter user into a suitable dict able to be written by a `csv.DictWriter` as a row. + +```python +from twitwi import transform_user_into_csv_dict + +# The function returns nothing, `normalized_user` has been mutated +transform_user_into_csv_dict(normalized_user) +``` + +### format_tweet_as_csv_row + +Function formatting the given normalized tweet as a list able to be written by a `csv.writer` as a row. + +```python +from twitwi import format_tweet_as_csv_row + +row = format_tweet_as_csv_row(normalized_tweet) +``` + +### format_user_as_csv_row + +Function formatting the given normalized Twitter user as a list able to be written by a `csv.writer` as a row. + +```python +from twitwi import format_user_as_csv_row + +row = format_user_as_csv_row(normalized_user) +``` + +### TWEET_FIELDS + +List of tweet field names. Useful to declare headers with csv writers: + +```python +from twitwi.constants import TWEET_FIELDS + +# Using csv.writer +w = csv.writer(f) +w.writerow(TWEET_FIELDS) + +# Using csv.DictWriter +w = csv.DictWriter(f, fieldnames=TWEET_FIELDS) +w.writeheader() +``` + +### USER_FIELDS + +```python +from twitwi.constants import USER_FIELDS + +# Using csv.writer +w = csv.writer(f) +w.writerow(USER_FIELDS) + +# Using csv.DictWriter +w = csv.DictWriter(f, fieldnames=USER_FIELDS) +w.writeheader() +``` + + +%package help +Summary: Development documents and examples for twitwi +Provides: python3-twitwi-doc +%description help +[](https://github.com/medialab/twitwi/actions) + +# Twitwi + +A collection of Twitter-related helper functions for python. + +## Installation + +You can install `twitwi` with pip with the following command: + +``` +pip install twitwi +``` + +## Usage + +*Normalization functions* + +* [normalize_tweets_payload_v2](#normalize_tweets_payload_v2) + +*Formatting functions* + +* [transform_tweet_into_csv_dict](#transform_tweet_into_csv_dict) +* [transform_user_into_csv_dict](#transform_user_into_csv_dict) +* [format_tweet_as_csv_row](#format_tweet_as_csv_row) + +*Useful constants (under twitwi.constants)* + +* [TWEET_FIELDS](#tweet_fields) +* [USER_FIELDS](#user_fields) + +### normalize_tweets_payload_v2 + +Function taking an entire tweets payload from the v2 API and returning a list of the contained tweets normalized and structured in a way that makes further analysis of the data convenient. + +```python +from twitwi import normalize_tweets_payload_v2 + +# Normalizing an entire tweets payload to extract a list of tweets +normalize_tweets_payload_v2(payload) + +# Normalizing an entire tweets payload to extract a list of tweets +# as well as the referenced tweets (quoted, retweeted, etc.) +normalize_tweets_payload_v2(payload, extract_referenced_tweets=True) + +# Converting found dates to a chosen timezone +from pytz import timezone +paris_tz = timezone('Europe/Paris') + +normalize_tweets_payload_v2(payload, locale=paris_tz) +``` + +*Arguments* + +* **payload** *(dict)*: tweets payload coming from Twitter API v2. +* **locale** *(pytz.timezone, optional)*: timezone used to convert dates. If not given, will default to UTC. +* **extract_referenced_tweets** *(bool, optional)*: whether to keep referenced tweets (retweeted, quoted etc.) in the output. Defaults to `False`. +* **collection_source** *(string, optional): An optional information to add to the tweets to indicate whence you collected them. + +### transform_tweet_into_csv_dict + +Function transforming (i.e. mutating, so beware) a given normalized tweet into a suitable dict able to be written by a `csv.DictWriter` as a row. + +```python +from twitwi import transform_tweet_into_csv_dict + +# The function returns nothing, `normalized_tweet` has been mutated +transform_tweet_into_csv_dict(normalized_tweet) +``` + +### transform_user_into_csv_dict + +Function transforming (i.e. mutating, so beware) a given normalized Twitter user into a suitable dict able to be written by a `csv.DictWriter` as a row. + +```python +from twitwi import transform_user_into_csv_dict + +# The function returns nothing, `normalized_user` has been mutated +transform_user_into_csv_dict(normalized_user) +``` + +### format_tweet_as_csv_row + +Function formatting the given normalized tweet as a list able to be written by a `csv.writer` as a row. + +```python +from twitwi import format_tweet_as_csv_row + +row = format_tweet_as_csv_row(normalized_tweet) +``` + +### format_user_as_csv_row + +Function formatting the given normalized Twitter user as a list able to be written by a `csv.writer` as a row. + +```python +from twitwi import format_user_as_csv_row + +row = format_user_as_csv_row(normalized_user) +``` + +### TWEET_FIELDS + +List of tweet field names. Useful to declare headers with csv writers: + +```python +from twitwi.constants import TWEET_FIELDS + +# Using csv.writer +w = csv.writer(f) +w.writerow(TWEET_FIELDS) + +# Using csv.DictWriter +w = csv.DictWriter(f, fieldnames=TWEET_FIELDS) +w.writeheader() +``` + +### USER_FIELDS + +```python +from twitwi.constants import USER_FIELDS + +# Using csv.writer +w = csv.writer(f) +w.writerow(USER_FIELDS) + +# Using csv.DictWriter +w = csv.DictWriter(f, fieldnames=USER_FIELDS) +w.writeheader() +``` + + +%prep +%autosetup -n twitwi-0.18.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-twitwi -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.18.0-1 +- Package Spec generated @@ -0,0 +1 @@ +f57d256f2959111be33b3de8092834f6 twitwi-0.18.0.tar.gz |