%global _empty_manifest_terminate_build 0 Name: python-asana Version: 3.2.0 Release: 1 Summary: Asana API client License: MIT URL: http://github.com/asana/python-asana Source0: https://mirrors.nju.edu.cn/pypi/web/packages/61/84/7dcdb78f3ddb1011f628812cab45a5616e572099f42e9279756e92ad7230/asana-3.2.0.tar.gz BuildArch: noarch Requires: python3-requests Requires: python3-requests-oauthlib %description ### Personal Access Token Create a client using your Asana Personal Access Token: client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') ### OAuth 2 Asana supports OAuth 2. `asana` handles some of the details of the OAuth flow for you. Create a client using your OAuth Client ID and secret: client = asana.Client.oauth( client_id='ASANA_CLIENT_ID', client_secret='ASANA_CLIENT_SECRET', redirect_uri='https://yourapp.com/auth/asana/callback' ) Redirect the user to the authorization URL obtained from the client's `session` object: (url, state) = client.session.authorization_url() When the user is redirected back to your callback, check the `state` URL parameter matches, then pass the `code` parameter to obtain a bearer token: if request.params['state'] == state: token = client.session.fetch_token(code=request.params['code']) # ... else: # error! possible CSRF attack Note: if you're writing a non-browser-based application (e.x. a command line tool) you can use the special redirect URI `urn:ietf:wg:oauth:2.0:oob` to prompt the user to copy and paste the code into the application. %package -n python3-asana Summary: Asana API client Provides: python-asana BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-asana ### Personal Access Token Create a client using your Asana Personal Access Token: client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') ### OAuth 2 Asana supports OAuth 2. `asana` handles some of the details of the OAuth flow for you. Create a client using your OAuth Client ID and secret: client = asana.Client.oauth( client_id='ASANA_CLIENT_ID', client_secret='ASANA_CLIENT_SECRET', redirect_uri='https://yourapp.com/auth/asana/callback' ) Redirect the user to the authorization URL obtained from the client's `session` object: (url, state) = client.session.authorization_url() When the user is redirected back to your callback, check the `state` URL parameter matches, then pass the `code` parameter to obtain a bearer token: if request.params['state'] == state: token = client.session.fetch_token(code=request.params['code']) # ... else: # error! possible CSRF attack Note: if you're writing a non-browser-based application (e.x. a command line tool) you can use the special redirect URI `urn:ietf:wg:oauth:2.0:oob` to prompt the user to copy and paste the code into the application. %package help Summary: Development documents and examples for asana Provides: python3-asana-doc %description help ### Personal Access Token Create a client using your Asana Personal Access Token: client = asana.Client.access_token('PERSONAL_ACCESS_TOKEN') ### OAuth 2 Asana supports OAuth 2. `asana` handles some of the details of the OAuth flow for you. Create a client using your OAuth Client ID and secret: client = asana.Client.oauth( client_id='ASANA_CLIENT_ID', client_secret='ASANA_CLIENT_SECRET', redirect_uri='https://yourapp.com/auth/asana/callback' ) Redirect the user to the authorization URL obtained from the client's `session` object: (url, state) = client.session.authorization_url() When the user is redirected back to your callback, check the `state` URL parameter matches, then pass the `code` parameter to obtain a bearer token: if request.params['state'] == state: token = client.session.fetch_token(code=request.params['code']) # ... else: # error! possible CSRF attack Note: if you're writing a non-browser-based application (e.x. a command line tool) you can use the special redirect URI `urn:ietf:wg:oauth:2.0:oob` to prompt the user to copy and paste the code into the application. %prep %autosetup -n asana-3.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-asana -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon Apr 10 2023 Python_Bot - 3.2.0-1 - Package Spec generated