diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-withings-api.spec | 290 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 292 insertions, 0 deletions
@@ -0,0 +1 @@ +/withings_api-2.4.0.tar.gz diff --git a/python-withings-api.spec b/python-withings-api.spec new file mode 100644 index 0000000..16e01c0 --- /dev/null +++ b/python-withings-api.spec @@ -0,0 +1,290 @@ +%global _empty_manifest_terminate_build 0 +Name: python-withings-api +Version: 2.4.0 +Release: 1 +Summary: Library for the Withings API +License: MIT +URL: https://github.com/vangorra/python_withings_api +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/f6/d8/30b7a5b2190a67a7266bd747eb0eedcf546105a6fa3c94cea39293ef6980/withings_api-2.4.0.tar.gz +BuildArch: noarch + +Requires: python3-arrow +Requires: python3-requests-oauth +Requires: python3-requests-oauthlib +Requires: python3-typing-extensions +Requires: python3-pydantic + +%description +# Python withings-api [](https://github.com/vangorra/python_withings_api/actions?workflow=Build) [](https://coveralls.io/github/vangorra/python_withings_api?branch=master) [](https://pypi.org/project/withings-api/) +Python library for the Withings Health API + + +Withings Health API +<https://developer.withings.com/oauth2/> + +Uses OAuth 2.0 to authenticate. You need to obtain a client id +and consumer secret from Withings by creating an application +here: <http://developer.withings.com/oauth2/> + +## Installation + + pip install withings-api + +## Usage +For a complete example, checkout the integration test in `scripts/integration_test.py`. It has a working example on how to use the API. +```python +from withings_api import WithingsAuth, WithingsApi, AuthScope +from withings_api.common import get_measure_value, MeasureType + +auth = WithingsAuth( + client_id='your client id', + consumer_secret='your consumer secret', + callback_uri='your callback uri', + mode='demo', # Used for testing. Remove this when getting real user data. + scope=( + AuthScope.USER_ACTIVITY, + AuthScope.USER_METRICS, + AuthScope.USER_INFO, + AuthScope.USER_SLEEP_EVENTS, + ) +) + +authorize_url = auth.get_authorize_url() +# Have the user goto authorize_url and authorize the app. They will be redirected back to your redirect_uri. + +credentials = auth.get_credentials('code from the url args of redirect_uri') + +# Now you are ready to make calls for data. +api = WithingsApi(credentials) + +meas_result = api.measure_get_meas() +weight_or_none = get_measure_value(meas_result, with_measure_type=MeasureType.WEIGHT) +``` + +## Building +Building, testing and lintings of the project is all done with one script. You only need a few dependencies. + +Dependencies: +- python3 in your path. +- The python3 `venv` module. + +The build script will setup the venv, dependencies, test and lint and bundle the project. +```bash +./scripts/build.sh +``` + +## Integration Testing +There exists a simple integration test that runs against Withings' demo data. It's best to run this after you have +successful builds. + +Note: after changing the source, you need to run build for the integration test to pickup the changes. + +```bash +./scripts/build.sh +source ./venv/bin/activate +./scripts/integration_test.py --client-id <your client id> --consumer-secret <your consumer secret> --callback-uri <your clalback uri> +``` +The integration test will cache the credentials in a `<project root>/.credentials` file between runs. If you get an error saying +the access token expired, then remove that credentials file and try again. + + +%package -n python3-withings-api +Summary: Library for the Withings API +Provides: python-withings-api +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-withings-api +# Python withings-api [](https://github.com/vangorra/python_withings_api/actions?workflow=Build) [](https://coveralls.io/github/vangorra/python_withings_api?branch=master) [](https://pypi.org/project/withings-api/) +Python library for the Withings Health API + + +Withings Health API +<https://developer.withings.com/oauth2/> + +Uses OAuth 2.0 to authenticate. You need to obtain a client id +and consumer secret from Withings by creating an application +here: <http://developer.withings.com/oauth2/> + +## Installation + + pip install withings-api + +## Usage +For a complete example, checkout the integration test in `scripts/integration_test.py`. It has a working example on how to use the API. +```python +from withings_api import WithingsAuth, WithingsApi, AuthScope +from withings_api.common import get_measure_value, MeasureType + +auth = WithingsAuth( + client_id='your client id', + consumer_secret='your consumer secret', + callback_uri='your callback uri', + mode='demo', # Used for testing. Remove this when getting real user data. + scope=( + AuthScope.USER_ACTIVITY, + AuthScope.USER_METRICS, + AuthScope.USER_INFO, + AuthScope.USER_SLEEP_EVENTS, + ) +) + +authorize_url = auth.get_authorize_url() +# Have the user goto authorize_url and authorize the app. They will be redirected back to your redirect_uri. + +credentials = auth.get_credentials('code from the url args of redirect_uri') + +# Now you are ready to make calls for data. +api = WithingsApi(credentials) + +meas_result = api.measure_get_meas() +weight_or_none = get_measure_value(meas_result, with_measure_type=MeasureType.WEIGHT) +``` + +## Building +Building, testing and lintings of the project is all done with one script. You only need a few dependencies. + +Dependencies: +- python3 in your path. +- The python3 `venv` module. + +The build script will setup the venv, dependencies, test and lint and bundle the project. +```bash +./scripts/build.sh +``` + +## Integration Testing +There exists a simple integration test that runs against Withings' demo data. It's best to run this after you have +successful builds. + +Note: after changing the source, you need to run build for the integration test to pickup the changes. + +```bash +./scripts/build.sh +source ./venv/bin/activate +./scripts/integration_test.py --client-id <your client id> --consumer-secret <your consumer secret> --callback-uri <your clalback uri> +``` +The integration test will cache the credentials in a `<project root>/.credentials` file between runs. If you get an error saying +the access token expired, then remove that credentials file and try again. + + +%package help +Summary: Development documents and examples for withings-api +Provides: python3-withings-api-doc +%description help +# Python withings-api [](https://github.com/vangorra/python_withings_api/actions?workflow=Build) [](https://coveralls.io/github/vangorra/python_withings_api?branch=master) [](https://pypi.org/project/withings-api/) +Python library for the Withings Health API + + +Withings Health API +<https://developer.withings.com/oauth2/> + +Uses OAuth 2.0 to authenticate. You need to obtain a client id +and consumer secret from Withings by creating an application +here: <http://developer.withings.com/oauth2/> + +## Installation + + pip install withings-api + +## Usage +For a complete example, checkout the integration test in `scripts/integration_test.py`. It has a working example on how to use the API. +```python +from withings_api import WithingsAuth, WithingsApi, AuthScope +from withings_api.common import get_measure_value, MeasureType + +auth = WithingsAuth( + client_id='your client id', + consumer_secret='your consumer secret', + callback_uri='your callback uri', + mode='demo', # Used for testing. Remove this when getting real user data. + scope=( + AuthScope.USER_ACTIVITY, + AuthScope.USER_METRICS, + AuthScope.USER_INFO, + AuthScope.USER_SLEEP_EVENTS, + ) +) + +authorize_url = auth.get_authorize_url() +# Have the user goto authorize_url and authorize the app. They will be redirected back to your redirect_uri. + +credentials = auth.get_credentials('code from the url args of redirect_uri') + +# Now you are ready to make calls for data. +api = WithingsApi(credentials) + +meas_result = api.measure_get_meas() +weight_or_none = get_measure_value(meas_result, with_measure_type=MeasureType.WEIGHT) +``` + +## Building +Building, testing and lintings of the project is all done with one script. You only need a few dependencies. + +Dependencies: +- python3 in your path. +- The python3 `venv` module. + +The build script will setup the venv, dependencies, test and lint and bundle the project. +```bash +./scripts/build.sh +``` + +## Integration Testing +There exists a simple integration test that runs against Withings' demo data. It's best to run this after you have +successful builds. + +Note: after changing the source, you need to run build for the integration test to pickup the changes. + +```bash +./scripts/build.sh +source ./venv/bin/activate +./scripts/integration_test.py --client-id <your client id> --consumer-secret <your consumer secret> --callback-uri <your clalback uri> +``` +The integration test will cache the credentials in a `<project root>/.credentials` file between runs. If you get an error saying +the access token expired, then remove that credentials file and try again. + + +%prep +%autosetup -n withings-api-2.4.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-withings-api -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2.4.0-1 +- Package Spec generated @@ -0,0 +1 @@ +4ffa9f0c4faab818c003481b28800b20 withings_api-2.4.0.tar.gz |
