diff options
Diffstat (limited to 'python-analytix.spec')
| -rw-r--r-- | python-analytix.spec | 553 |
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 + +[](https://pypi.python.org/pypi/analytix/) +[](https://pypi.python.org/pypi/analytix/) +[](https://pepy.tech/project/analytix) +[](https://github.com/parafoxia/analytix) +[](https://github.com/parafoxia/analytix/blob/main/LICENSE) + +[](https://github.com/parafoxia/analytix/actions/workflows/ci.yml) +[](https://parafoxia.github.io/analytix) +[](https://codeclimate.com/github/parafoxia/analytix/maintainability) +[](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 + +[](https://pypi.python.org/pypi/analytix/) +[](https://pypi.python.org/pypi/analytix/) +[](https://pepy.tech/project/analytix) +[](https://github.com/parafoxia/analytix) +[](https://github.com/parafoxia/analytix/blob/main/LICENSE) + +[](https://github.com/parafoxia/analytix/actions/workflows/ci.yml) +[](https://parafoxia.github.io/analytix) +[](https://codeclimate.com/github/parafoxia/analytix/maintainability) +[](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 + +[](https://pypi.python.org/pypi/analytix/) +[](https://pypi.python.org/pypi/analytix/) +[](https://pepy.tech/project/analytix) +[](https://github.com/parafoxia/analytix) +[](https://github.com/parafoxia/analytix/blob/main/LICENSE) + +[](https://github.com/parafoxia/analytix/actions/workflows/ci.yml) +[](https://parafoxia.github.io/analytix) +[](https://codeclimate.com/github/parafoxia/analytix/maintainability) +[](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 |
