summaryrefslogtreecommitdiff
path: root/python-analytix.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-analytix.spec')
-rw-r--r--python-analytix.spec553
1 files changed, 553 insertions, 0 deletions
diff --git a/python-analytix.spec b/python-analytix.spec
new file mode 100644
index 0000000..0d86542
--- /dev/null
+++ b/python-analytix.spec
@@ -0,0 +1,553 @@
+%global _empty_manifest_terminate_build 0
+Name: python-analytix
+Version: 4.2.0
+Release: 1
+Summary: A simple yet powerful wrapper for the YouTube Analytics API.
+License: BSD 3-Clause 'New' or 'Revised' License
+URL: https://github.com/parafoxia/analytix
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/af/7a/e6cafa1a0fcd18ac924c659dec60eb0d6125846bf3e5ba83f6df318ecbb7/analytix-4.2.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-aiofiles
+Requires: python3-aiohttp
+Requires: python3-dateutil
+Requires: python3-openpyxl
+Requires: python3-types-aiofiles
+Requires: python3-types-python-dateutil
+Requires: python3-types-setuptools
+
+%description
+# analytix
+
+[![PyPi version](https://img.shields.io/pypi/v/analytix.svg)](https://pypi.python.org/pypi/analytix/)
+[![PyPI - Status](https://img.shields.io/pypi/status/analytix)](https://pypi.python.org/pypi/analytix/)
+[![Downloads](https://pepy.tech/badge/analytix)](https://pepy.tech/project/analytix)
+[![GitHub last commit](https://img.shields.io/github/last-commit/parafoxia/analytix)](https://github.com/parafoxia/analytix)
+[![License](https://img.shields.io/github/license/parafoxia/analytix.svg)](https://github.com/parafoxia/analytix/blob/main/LICENSE)
+
+[![CI](https://github.com/parafoxia/analytix/actions/workflows/ci.yml/badge.svg)](https://github.com/parafoxia/analytix/actions/workflows/ci.yml)
+[![Docs](https://github.com/parafoxia/analytix/actions/workflows/pages/pages-build-deployment/badge.svg)](https://parafoxia.github.io/analytix)
+[![Maintainability](https://api.codeclimate.com/v1/badges/8819bdebb2d4aa8dfcb7/maintainability)](https://codeclimate.com/github/parafoxia/analytix/maintainability)
+[![Test Coverage](https://api.codeclimate.com/v1/badges/8819bdebb2d4aa8dfcb7/test_coverage)](https://codeclimate.com/github/parafoxia/analytix/test_coverage)
+
+A simple yet powerful wrapper for the YouTube Analytics API.
+
+CPython versions 3.7 through 3.11 and PyPy versions 3.7 through 3.9 are officially supported.
+Python 3.12 will be supported once AIOHTTP supports it.
+
+Windows, MacOS, and Linux are all supported.
+
+## Features
+
+- Pythonic syntax lets you feel right at home
+- Dynamic error handling saves hours of troubleshooting and makes sure only valid requests count toward your API quota
+- A clever interface allows you to make multiple requests across multiple sessions without reauthorising
+- Extra support allows the native saving of CSV files and conversion to DataFrame objects
+- Easy enough for beginners, but powerful enough for advanced users
+
+## What does *analytix* do?
+
+The YouTube Studio provides a fantastic interface where creators can view some incredibly detailed analytics for their channel.
+However, there's no way to perform programmatical operations on the data to do some proper analysis on it.
+This is where analytix comes in.
+
+The process of analysing data on the YouTube Studio is comprised of two steps:
+
+1. Retrieving the data to be analysed and visualised
+2. Presenting that data to the user
+
+analytix aims to handle step one as comprehensively as possible, allowing analysts to use tools such as *pandas* and *Matplotlib* to work on the data without having to faff around with Google's offerings.
+
+## Installation
+
+To install the latest stable version of analytix, use the following command:
+
+```sh
+pip install analytix
+```
+
+You can also install the latest development version using the following command:
+
+```sh
+pip install git+https://github.com/parafoxia/analytix
+```
+
+You may need to prefix these commands with a call to the Python interpreter depending on your OS and Python configuration.
+
+## Additional support
+
+You can also install analytix with additional libraries to provide extra functionality:
+
+* `analytix[excel]` — support for exporting reports to Excel spreadsheets
+* `analytix[types]` — type stubs for type-hinted projects
+
+To install multiple at once, use commas:
+
+```sh
+pip install "analytix[excel,types]"
+```
+
+Support for DataFrame and Arrow table conversions is also present.
+analytix supports these libraries natively:
+
+* `pandas` — 0.23.2 or greater
+* `pyarrow` — 2.0.0 or greater
+* `polars` — 0.15.17 or greater
+
+Note: You will need to install your library of choice manually to be able to use it.
+
+## OAuth authentication
+
+All requests to the YouTube Analytics API need to be authorised through OAuth 2.
+In order to do this, you will need a Google Developers project with the YouTube Analytics API enabled.
+You can find instructions on how to do that in the [API setup guide](https://parafoxia.github.io/analytix/starting/googleapp/), or on [this video](https://www.youtube.com/watch?v=1Xday10ZWeg).
+
+When analytix boots up for the first time, it will display a link.
+You'll need to follow that link and run through the OAuth workflow.
+Once that's done, analytix saves the tokens to the disk (if you plan to run analytix on a server, make sure these are in a safe place).
+This includes your refresh token, which analytix will automatically use to refresh your access token when needed.
+
+This means you should only have to authorise analytix, at most, every week.
+More details regarding how and when refresh tokens expire can be found on the [Google Identity documentation](https://developers.google.com/identity/protocols/oauth2#expiration).
+
+## Logging
+
+If you want to see what analytix is doing, you can enable the packaged logger:
+
+```py
+import analytix
+
+analytix.enable_logging()
+```
+
+If anything is going wrong, or analytix appears to be taking a long time to fetch data, try enabling the logger in DEBUG mode.
+
+## Usage
+
+### Retrieving reports
+
+Retrieving reports from the YouTube Analytics API is easy.
+The below example loads credentials from a secrets file, and gets day-by-day data on views, likes, and comments from the US over the last 28 days:
+
+```py
+from analytix import Client # or AsyncClient
+
+client = Client("./secrets.json")
+report = client.retrieve_report(
+ dimensions=("day",),
+ filters={"country": "US"},
+ metrics=("views", "likes", "comments"),
+)
+report.to_csv("./analytics.csv")
+```
+
+If you want to analyse this data using additional tools such as *pandas*, you can directly export the report as a DataFrame or table.
+
+```py
+df = report.to_pandas()
+table = report.to_arrow()
+df = report.to_polars()
+```
+
+### Fetching group information
+
+You can also fetch groups and group items:
+
+```py
+from analytix import Client
+
+client = Client("./secrets.json")
+groups = client.fetch_groups()
+
+# If you want to get the items within a group:
+items = client.fetch_group_items(groups[0].id)
+```
+
+To read up further, [have a look at the documentation](https://parafoxia.github.io/analytix), or [have a look at some examples](https://github.com/parafoxia/analytix/tree/main/examples).
+
+## Contributing
+
+Contributions are very much welcome! To get started:
+
+* Familiarise yourself with the [code of conduct](https://github.com/parafoxia/analytix/blob/main/CODE_OF_CONDUCT.md)
+* Have a look at the [contributing guide](https://github.com/parafoxia/analytix/blob/main/CONTRIBUTING.md)
+
+## License
+
+The analytix module for Python is licensed under the [BSD 3-Clause License](https://github.com/parafoxia/analytix/blob/main/LICENSE).
+
+
+%package -n python3-analytix
+Summary: A simple yet powerful wrapper for the YouTube Analytics API.
+Provides: python-analytix
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-analytix
+# analytix
+
+[![PyPi version](https://img.shields.io/pypi/v/analytix.svg)](https://pypi.python.org/pypi/analytix/)
+[![PyPI - Status](https://img.shields.io/pypi/status/analytix)](https://pypi.python.org/pypi/analytix/)
+[![Downloads](https://pepy.tech/badge/analytix)](https://pepy.tech/project/analytix)
+[![GitHub last commit](https://img.shields.io/github/last-commit/parafoxia/analytix)](https://github.com/parafoxia/analytix)
+[![License](https://img.shields.io/github/license/parafoxia/analytix.svg)](https://github.com/parafoxia/analytix/blob/main/LICENSE)
+
+[![CI](https://github.com/parafoxia/analytix/actions/workflows/ci.yml/badge.svg)](https://github.com/parafoxia/analytix/actions/workflows/ci.yml)
+[![Docs](https://github.com/parafoxia/analytix/actions/workflows/pages/pages-build-deployment/badge.svg)](https://parafoxia.github.io/analytix)
+[![Maintainability](https://api.codeclimate.com/v1/badges/8819bdebb2d4aa8dfcb7/maintainability)](https://codeclimate.com/github/parafoxia/analytix/maintainability)
+[![Test Coverage](https://api.codeclimate.com/v1/badges/8819bdebb2d4aa8dfcb7/test_coverage)](https://codeclimate.com/github/parafoxia/analytix/test_coverage)
+
+A simple yet powerful wrapper for the YouTube Analytics API.
+
+CPython versions 3.7 through 3.11 and PyPy versions 3.7 through 3.9 are officially supported.
+Python 3.12 will be supported once AIOHTTP supports it.
+
+Windows, MacOS, and Linux are all supported.
+
+## Features
+
+- Pythonic syntax lets you feel right at home
+- Dynamic error handling saves hours of troubleshooting and makes sure only valid requests count toward your API quota
+- A clever interface allows you to make multiple requests across multiple sessions without reauthorising
+- Extra support allows the native saving of CSV files and conversion to DataFrame objects
+- Easy enough for beginners, but powerful enough for advanced users
+
+## What does *analytix* do?
+
+The YouTube Studio provides a fantastic interface where creators can view some incredibly detailed analytics for their channel.
+However, there's no way to perform programmatical operations on the data to do some proper analysis on it.
+This is where analytix comes in.
+
+The process of analysing data on the YouTube Studio is comprised of two steps:
+
+1. Retrieving the data to be analysed and visualised
+2. Presenting that data to the user
+
+analytix aims to handle step one as comprehensively as possible, allowing analysts to use tools such as *pandas* and *Matplotlib* to work on the data without having to faff around with Google's offerings.
+
+## Installation
+
+To install the latest stable version of analytix, use the following command:
+
+```sh
+pip install analytix
+```
+
+You can also install the latest development version using the following command:
+
+```sh
+pip install git+https://github.com/parafoxia/analytix
+```
+
+You may need to prefix these commands with a call to the Python interpreter depending on your OS and Python configuration.
+
+## Additional support
+
+You can also install analytix with additional libraries to provide extra functionality:
+
+* `analytix[excel]` — support for exporting reports to Excel spreadsheets
+* `analytix[types]` — type stubs for type-hinted projects
+
+To install multiple at once, use commas:
+
+```sh
+pip install "analytix[excel,types]"
+```
+
+Support for DataFrame and Arrow table conversions is also present.
+analytix supports these libraries natively:
+
+* `pandas` — 0.23.2 or greater
+* `pyarrow` — 2.0.0 or greater
+* `polars` — 0.15.17 or greater
+
+Note: You will need to install your library of choice manually to be able to use it.
+
+## OAuth authentication
+
+All requests to the YouTube Analytics API need to be authorised through OAuth 2.
+In order to do this, you will need a Google Developers project with the YouTube Analytics API enabled.
+You can find instructions on how to do that in the [API setup guide](https://parafoxia.github.io/analytix/starting/googleapp/), or on [this video](https://www.youtube.com/watch?v=1Xday10ZWeg).
+
+When analytix boots up for the first time, it will display a link.
+You'll need to follow that link and run through the OAuth workflow.
+Once that's done, analytix saves the tokens to the disk (if you plan to run analytix on a server, make sure these are in a safe place).
+This includes your refresh token, which analytix will automatically use to refresh your access token when needed.
+
+This means you should only have to authorise analytix, at most, every week.
+More details regarding how and when refresh tokens expire can be found on the [Google Identity documentation](https://developers.google.com/identity/protocols/oauth2#expiration).
+
+## Logging
+
+If you want to see what analytix is doing, you can enable the packaged logger:
+
+```py
+import analytix
+
+analytix.enable_logging()
+```
+
+If anything is going wrong, or analytix appears to be taking a long time to fetch data, try enabling the logger in DEBUG mode.
+
+## Usage
+
+### Retrieving reports
+
+Retrieving reports from the YouTube Analytics API is easy.
+The below example loads credentials from a secrets file, and gets day-by-day data on views, likes, and comments from the US over the last 28 days:
+
+```py
+from analytix import Client # or AsyncClient
+
+client = Client("./secrets.json")
+report = client.retrieve_report(
+ dimensions=("day",),
+ filters={"country": "US"},
+ metrics=("views", "likes", "comments"),
+)
+report.to_csv("./analytics.csv")
+```
+
+If you want to analyse this data using additional tools such as *pandas*, you can directly export the report as a DataFrame or table.
+
+```py
+df = report.to_pandas()
+table = report.to_arrow()
+df = report.to_polars()
+```
+
+### Fetching group information
+
+You can also fetch groups and group items:
+
+```py
+from analytix import Client
+
+client = Client("./secrets.json")
+groups = client.fetch_groups()
+
+# If you want to get the items within a group:
+items = client.fetch_group_items(groups[0].id)
+```
+
+To read up further, [have a look at the documentation](https://parafoxia.github.io/analytix), or [have a look at some examples](https://github.com/parafoxia/analytix/tree/main/examples).
+
+## Contributing
+
+Contributions are very much welcome! To get started:
+
+* Familiarise yourself with the [code of conduct](https://github.com/parafoxia/analytix/blob/main/CODE_OF_CONDUCT.md)
+* Have a look at the [contributing guide](https://github.com/parafoxia/analytix/blob/main/CONTRIBUTING.md)
+
+## License
+
+The analytix module for Python is licensed under the [BSD 3-Clause License](https://github.com/parafoxia/analytix/blob/main/LICENSE).
+
+
+%package help
+Summary: Development documents and examples for analytix
+Provides: python3-analytix-doc
+%description help
+# analytix
+
+[![PyPi version](https://img.shields.io/pypi/v/analytix.svg)](https://pypi.python.org/pypi/analytix/)
+[![PyPI - Status](https://img.shields.io/pypi/status/analytix)](https://pypi.python.org/pypi/analytix/)
+[![Downloads](https://pepy.tech/badge/analytix)](https://pepy.tech/project/analytix)
+[![GitHub last commit](https://img.shields.io/github/last-commit/parafoxia/analytix)](https://github.com/parafoxia/analytix)
+[![License](https://img.shields.io/github/license/parafoxia/analytix.svg)](https://github.com/parafoxia/analytix/blob/main/LICENSE)
+
+[![CI](https://github.com/parafoxia/analytix/actions/workflows/ci.yml/badge.svg)](https://github.com/parafoxia/analytix/actions/workflows/ci.yml)
+[![Docs](https://github.com/parafoxia/analytix/actions/workflows/pages/pages-build-deployment/badge.svg)](https://parafoxia.github.io/analytix)
+[![Maintainability](https://api.codeclimate.com/v1/badges/8819bdebb2d4aa8dfcb7/maintainability)](https://codeclimate.com/github/parafoxia/analytix/maintainability)
+[![Test Coverage](https://api.codeclimate.com/v1/badges/8819bdebb2d4aa8dfcb7/test_coverage)](https://codeclimate.com/github/parafoxia/analytix/test_coverage)
+
+A simple yet powerful wrapper for the YouTube Analytics API.
+
+CPython versions 3.7 through 3.11 and PyPy versions 3.7 through 3.9 are officially supported.
+Python 3.12 will be supported once AIOHTTP supports it.
+
+Windows, MacOS, and Linux are all supported.
+
+## Features
+
+- Pythonic syntax lets you feel right at home
+- Dynamic error handling saves hours of troubleshooting and makes sure only valid requests count toward your API quota
+- A clever interface allows you to make multiple requests across multiple sessions without reauthorising
+- Extra support allows the native saving of CSV files and conversion to DataFrame objects
+- Easy enough for beginners, but powerful enough for advanced users
+
+## What does *analytix* do?
+
+The YouTube Studio provides a fantastic interface where creators can view some incredibly detailed analytics for their channel.
+However, there's no way to perform programmatical operations on the data to do some proper analysis on it.
+This is where analytix comes in.
+
+The process of analysing data on the YouTube Studio is comprised of two steps:
+
+1. Retrieving the data to be analysed and visualised
+2. Presenting that data to the user
+
+analytix aims to handle step one as comprehensively as possible, allowing analysts to use tools such as *pandas* and *Matplotlib* to work on the data without having to faff around with Google's offerings.
+
+## Installation
+
+To install the latest stable version of analytix, use the following command:
+
+```sh
+pip install analytix
+```
+
+You can also install the latest development version using the following command:
+
+```sh
+pip install git+https://github.com/parafoxia/analytix
+```
+
+You may need to prefix these commands with a call to the Python interpreter depending on your OS and Python configuration.
+
+## Additional support
+
+You can also install analytix with additional libraries to provide extra functionality:
+
+* `analytix[excel]` — support for exporting reports to Excel spreadsheets
+* `analytix[types]` — type stubs for type-hinted projects
+
+To install multiple at once, use commas:
+
+```sh
+pip install "analytix[excel,types]"
+```
+
+Support for DataFrame and Arrow table conversions is also present.
+analytix supports these libraries natively:
+
+* `pandas` — 0.23.2 or greater
+* `pyarrow` — 2.0.0 or greater
+* `polars` — 0.15.17 or greater
+
+Note: You will need to install your library of choice manually to be able to use it.
+
+## OAuth authentication
+
+All requests to the YouTube Analytics API need to be authorised through OAuth 2.
+In order to do this, you will need a Google Developers project with the YouTube Analytics API enabled.
+You can find instructions on how to do that in the [API setup guide](https://parafoxia.github.io/analytix/starting/googleapp/), or on [this video](https://www.youtube.com/watch?v=1Xday10ZWeg).
+
+When analytix boots up for the first time, it will display a link.
+You'll need to follow that link and run through the OAuth workflow.
+Once that's done, analytix saves the tokens to the disk (if you plan to run analytix on a server, make sure these are in a safe place).
+This includes your refresh token, which analytix will automatically use to refresh your access token when needed.
+
+This means you should only have to authorise analytix, at most, every week.
+More details regarding how and when refresh tokens expire can be found on the [Google Identity documentation](https://developers.google.com/identity/protocols/oauth2#expiration).
+
+## Logging
+
+If you want to see what analytix is doing, you can enable the packaged logger:
+
+```py
+import analytix
+
+analytix.enable_logging()
+```
+
+If anything is going wrong, or analytix appears to be taking a long time to fetch data, try enabling the logger in DEBUG mode.
+
+## Usage
+
+### Retrieving reports
+
+Retrieving reports from the YouTube Analytics API is easy.
+The below example loads credentials from a secrets file, and gets day-by-day data on views, likes, and comments from the US over the last 28 days:
+
+```py
+from analytix import Client # or AsyncClient
+
+client = Client("./secrets.json")
+report = client.retrieve_report(
+ dimensions=("day",),
+ filters={"country": "US"},
+ metrics=("views", "likes", "comments"),
+)
+report.to_csv("./analytics.csv")
+```
+
+If you want to analyse this data using additional tools such as *pandas*, you can directly export the report as a DataFrame or table.
+
+```py
+df = report.to_pandas()
+table = report.to_arrow()
+df = report.to_polars()
+```
+
+### Fetching group information
+
+You can also fetch groups and group items:
+
+```py
+from analytix import Client
+
+client = Client("./secrets.json")
+groups = client.fetch_groups()
+
+# If you want to get the items within a group:
+items = client.fetch_group_items(groups[0].id)
+```
+
+To read up further, [have a look at the documentation](https://parafoxia.github.io/analytix), or [have a look at some examples](https://github.com/parafoxia/analytix/tree/main/examples).
+
+## Contributing
+
+Contributions are very much welcome! To get started:
+
+* Familiarise yourself with the [code of conduct](https://github.com/parafoxia/analytix/blob/main/CODE_OF_CONDUCT.md)
+* Have a look at the [contributing guide](https://github.com/parafoxia/analytix/blob/main/CONTRIBUTING.md)
+
+## License
+
+The analytix module for Python is licensed under the [BSD 3-Clause License](https://github.com/parafoxia/analytix/blob/main/LICENSE).
+
+
+%prep
+%autosetup -n analytix-4.2.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-analytix -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 4.2.0-1
+- Package Spec generated