This commit is contained in:
Iliyan Angelov
2025-09-14 23:24:25 +03:00
commit c67067a2a4
71311 changed files with 6800714 additions and 0 deletions

View File

@@ -0,0 +1,194 @@
Metadata-Version: 2.4
Name: oauthlib
Version: 3.3.1
Summary: A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
Home-page: https://github.com/oauthlib/oauthlib
Author: The OAuthlib Community
Maintainer: Jonathan Huot
Maintainer-email: jonathan.huot@gmail.com
License: BSD-3-Clause
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: LICENSE
Provides-Extra: rsa
Requires-Dist: cryptography>=3.0.0; extra == "rsa"
Provides-Extra: signedtoken
Requires-Dist: cryptography>=3.0.0; extra == "signedtoken"
Requires-Dist: pyjwt<3,>=2.0.0; extra == "signedtoken"
Provides-Extra: signals
Requires-Dist: blinker>=1.4.0; extra == "signals"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: platform
Dynamic: provides-extra
Dynamic: requires-python
Dynamic: summary
OAuthLib - Python Framework for OAuth1 & OAuth2
===============================================
*A generic, spec-compliant, thorough implementation of the OAuth request-signing
logic for Python 3.8+*
.. image:: https://github.com/oauthlib/oauthlib/actions/workflows/python-build.yml/badge.svg
:target: https://github.com/oauthlib/oauthlib/actions
:alt: GitHub Actions
.. image:: https://coveralls.io/repos/oauthlib/oauthlib/badge.svg?branch=master
:target: https://coveralls.io/r/oauthlib/oauthlib
:alt: Coveralls
.. image:: https://img.shields.io/pypi/pyversions/oauthlib.svg
:target: https://pypi.org/project/oauthlib/
:alt: Download from PyPI
.. image:: https://img.shields.io/pypi/l/oauthlib.svg
:target: https://pypi.org/project/oauthlib/
:alt: License
.. image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Foauthlib%2Foauthlib.svg?type=shield
:target: https://app.fossa.io/projects/git%2Bgithub.com%2Foauthlib%2Foauthlib?ref=badge_shield
:alt: FOSSA Status
.. image:: https://img.shields.io/readthedocs/oauthlib.svg
:target: https://oauthlib.readthedocs.io/en/latest/index.html
:alt: Read the Docs
.. image:: https://badges.gitter.im/oauthlib/oauthlib.svg
:target: https://gitter.im/oauthlib/Lobby
:alt: Chat on Gitter
.. image:: https://raw.githubusercontent.com/oauthlib/oauthlib/8d71b161fd145d11c40d55c9ab66ac134a303253/docs/logo/oauthlib-banner-700x192.png
:target: https://github.com/oauthlib/oauthlib/
:alt: OAuth + Python = OAuthlib Python Framework
OAuth often seems complicated and difficult-to-implement. There are several
prominent libraries for handling OAuth requests, but they all suffer from one or
both of the following:
1. They predate the `OAuth 1.0 spec`_, AKA RFC 5849.
2. They predate the `OAuth 2.0 spec`_, AKA RFC 6749.
3. They assume the usage of a specific HTTP request library.
.. _`OAuth 1.0 spec`: https://tools.ietf.org/html/rfc5849
.. _`OAuth 2.0 spec`: https://tools.ietf.org/html/rfc6749
OAuthLib is a framework which implements the logic of OAuth1 or OAuth2 without
assuming a specific HTTP request object or web framework. Use it to graft OAuth
client support onto your favorite HTTP library, or provide support onto your
favourite web framework. If you're a maintainer of such a library, write a thin
veneer on top of OAuthLib and get OAuth support for very little effort.
Documentation
--------------
Full documentation is available on `Read the Docs`_. All contributions are very
welcome! The documentation is still quite sparse, please open an issue for what
you'd like to know, or discuss it in our `Gitter community`_, or even better, send a
pull request!
.. _`Gitter community`: https://gitter.im/oauthlib/Lobby
.. _`Read the Docs`: https://oauthlib.readthedocs.io/en/latest/index.html
Interested in making OAuth requests?
------------------------------------
Then you might be more interested in using `requests`_ which has OAuthLib
powered OAuth support provided by the `requests-oauthlib`_ library.
.. _`requests`: https://github.com/requests/requests
.. _`requests-oauthlib`: https://github.com/requests/requests-oauthlib
Which web frameworks are supported?
-----------------------------------
The following packages provide OAuth support using OAuthLib.
- For Django there is:
- `django-oauth-toolkit`_, which includes `Django REST framework`_ support.
- `django-allauth`_, which includes `Django REST framework`_ as well as `Django Ninja`_ support.
- For Flask there is `flask-oauthlib`_ and `Flask-Dance`_.
- For Pyramid there is `pyramid-oauthlib`_.
- For Bottle there is `bottle-oauthlib`_.
If you have written an OAuthLib package that supports your favorite framework,
please open a Pull Request, updating the documentation.
.. _`django-oauth-toolkit`: https://github.com/evonove/django-oauth-toolkit
.. _`flask-oauthlib`: https://github.com/lepture/flask-oauthlib
.. _`Django REST framework`: http://django-rest-framework.org
.. _`Flask-Dance`: https://github.com/singingwolfboy/flask-dance
.. _`pyramid-oauthlib`: https://github.com/tilgovi/pyramid-oauthlib
.. _`bottle-oauthlib`: https://github.com/thomsonreuters/bottle-oauthlib
.. _`django-allauth`: https://allauth.org/
.. _`Django Ninja`: https://django-ninja.dev/
Using OAuthLib? Please get in touch!
------------------------------------
Patching OAuth support onto an http request framework? Creating an OAuth
provider extension for a web framework? Simply using OAuthLib to Get Things Done
or to learn?
No matter which we'd love to hear from you in our `Gitter community`_ or if you have
anything in particular you would like to have, change or comment on don't
hesitate for a second to send a pull request or open an issue. We might be quite
busy and therefore slow to reply but we love feedback!
Chances are you have run into something annoying that you wish there was
documentation for, if you wish to gain eternal fame and glory, and a drink if we
have the pleasure to run into each other, please send a docs pull request =)
.. _`Gitter community`: https://gitter.im/oauthlib/Lobby
License
-------
OAuthLib is yours to use and abuse according to the terms of the BSD-3-Clause license.
Check the LICENSE file for full details.
Credits
-------
OAuthLib has been started and maintained several years by Idan Gazit and other
amazing `AUTHORS`_. Thanks to their wonderful work, the open-source `community`_
creation has been possible and the project can stay active and reactive to users
requests.
.. _`AUTHORS`: https://github.com/oauthlib/oauthlib/blob/master/AUTHORS
.. _`community`: https://github.com/oauthlib/
Changelog
---------
*OAuthLib is in active development, with the core of both OAuth1 and OAuth2
completed, for providers as well as clients.* See `supported features`_ for
details.
.. _`supported features`: https://oauthlib.readthedocs.io/en/latest/feature_matrix.html
For a full changelog see ``CHANGELOG.rst``.

View File

@@ -0,0 +1,156 @@
oauthlib-3.3.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
oauthlib-3.3.1.dist-info/METADATA,sha256=TyjUwFSdCWrsQCgOkJ0MmWY9LdynHmrFKkR2bapkM6E,7898
oauthlib-3.3.1.dist-info/RECORD,,
oauthlib-3.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
oauthlib-3.3.1.dist-info/licenses/LICENSE,sha256=ACiqR2OooLCcpMaNWFJjR0z5qqbsaf--86ManszdO5E,1534
oauthlib-3.3.1.dist-info/top_level.txt,sha256=gz2py0fFs1AhG1O7KpHPcIXOgXOwdIiCaSnmLkiR12Q,9
oauthlib/__init__.py,sha256=zL-KQLdQshkx-EKxtBbgu1yyTpf1TRJ7QtfaOOsdXcQ,724
oauthlib/__pycache__/__init__.cpython-312.pyc,,
oauthlib/__pycache__/common.cpython-312.pyc,,
oauthlib/__pycache__/signals.cpython-312.pyc,,
oauthlib/__pycache__/uri_validate.cpython-312.pyc,,
oauthlib/common.py,sha256=OeaG-SiwDXAEsK1fkh5GabgSPGjG4AcuwuqwB5hrG_A,13439
oauthlib/oauth1/__init__.py,sha256=47hEQ7s_FZXLyUt6XVE-DPC8vUMVsJl7_-HCkNM2IlM,822
oauthlib/oauth1/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/__init__.py,sha256=aXt9PJ6XHU2uYR9a3wtkmGCQYbAN73JWQdbOPByrMcE,16773
oauthlib/oauth1/rfc5849/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/__pycache__/errors.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/__pycache__/parameters.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/__pycache__/request_validator.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/__pycache__/signature.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/__pycache__/utils.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__init__.py,sha256=SeIECziJ-Sv_NCGnowG3P9UnX_VdFNldRqRywEaJvxY,327
oauthlib/oauth1/rfc5849/endpoints/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__pycache__/access_token.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__pycache__/authorization.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__pycache__/base.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__pycache__/pre_configured.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__pycache__/request_token.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__pycache__/resource.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/__pycache__/signature_only.cpython-312.pyc,,
oauthlib/oauth1/rfc5849/endpoints/access_token.py,sha256=CRgLV5DqDiwVvbo8MiHySbTEKrxETJV29-VGu-2kQ7Y,9347
oauthlib/oauth1/rfc5849/endpoints/authorization.py,sha256=zbU7TzO6nB6853UIqtTkhxUV-JTHOdOc-CvdQsIQKWk,6724
oauthlib/oauth1/rfc5849/endpoints/base.py,sha256=6zvL13RbAEO7t_ZOdmenkkD28FektdEnvyBNM25YYbs,11534
oauthlib/oauth1/rfc5849/endpoints/pre_configured.py,sha256=Ie5oBUq_JTsXQdvfWhcMRjhH3OOxS_mRHbKBQ9TpsGg,543
oauthlib/oauth1/rfc5849/endpoints/request_token.py,sha256=1eljiIUPkObutaNDD6J7Kx5Ens1bknqHIEnnEkQGF7k,9291
oauthlib/oauth1/rfc5849/endpoints/resource.py,sha256=F6f2AecZ1fTdrC7DOERrIFUp2YQ5MLq8-a6VbQLM2ds,7374
oauthlib/oauth1/rfc5849/endpoints/signature_only.py,sha256=MX5zV66v4-wrR4cu7OmOd_GF3L8ysM60HmEiHtRR0l8,3327
oauthlib/oauth1/rfc5849/errors.py,sha256=WPvKVjPlgkCYp6TXvcwC8VETkhsZBzphKCkTJKDPNfM,2474
oauthlib/oauth1/rfc5849/parameters.py,sha256=Abnxpix_Yy7P3A3vbkrV2bkFxtnR5TRTTKdOu9MKydo,4802
oauthlib/oauth1/rfc5849/request_validator.py,sha256=7Tt1uyt4LAWhKCMrQc9GR_EShZyckPigDXkxDNvxiBE,30987
oauthlib/oauth1/rfc5849/signature.py,sha256=RJjRA31C0uCtwx_pevvXx3KyKwJEuwNeUxnF5uV2zf4,32109
oauthlib/oauth1/rfc5849/utils.py,sha256=nv90MM04_gPHS0hTLgGyoE07_gfjGcKNOetewzH2OVM,2638
oauthlib/oauth2/__init__.py,sha256=K7IHw_BNCZLSTQqAfQqsLK0K0zA6_KrQDCzc4S-33iQ,1885
oauthlib/oauth2/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/__init__.py,sha256=sJcxfdG6HTloXzhkG8-PTJTVQWoCeNtnw6ODNCJNw58,404
oauthlib/oauth2/rfc6749/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/__pycache__/errors.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/__pycache__/parameters.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/__pycache__/request_validator.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/__pycache__/tokens.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/__pycache__/utils.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/__init__.py,sha256=TuYtiErfo0_Ej0816tIv5rBsrwA9BjYz3tu_ZM0X364,504
oauthlib/oauth2/rfc6749/clients/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/__pycache__/backend_application.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/__pycache__/base.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/__pycache__/legacy_application.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/__pycache__/mobile_application.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/__pycache__/service_application.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/__pycache__/web_application.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/clients/backend_application.py,sha256=2kEw6T5Ii2TMSpvHlvi697_eMV9fXjkjqc8DY5sG310,3224
oauthlib/oauth2/rfc6749/clients/base.py,sha256=LbPA9x3rtsI2V8TsQGYrtBVGceEdQa8NpmcKKH97anQ,26368
oauthlib/oauth2/rfc6749/clients/legacy_application.py,sha256=9V-PGgToIoQcvmG14g9WiQjsDgWs7OnvLpZfmiA2Z24,4032
oauthlib/oauth2/rfc6749/clients/mobile_application.py,sha256=5eBA_9GcivMwQiuq0rOM3TKAcmWnvLbpGfgmZ51r9fc,8874
oauthlib/oauth2/rfc6749/clients/service_application.py,sha256=8G8TC0O7La3mHmuC6aZPTH9D3udlzua4M9pQfz6j7MI,7836
oauthlib/oauth2/rfc6749/clients/web_application.py,sha256=9ipzAKihE4y_RcEDrTDNH0EnIKoFn2HqdR_NOqQnSlk,12082
oauthlib/oauth2/rfc6749/endpoints/__init__.py,sha256=RL_txhULl35A74dbvlJ7nvqwp3GMCSCpg_4TvjoO-Xk,553
oauthlib/oauth2/rfc6749/endpoints/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/authorization.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/base.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/introspect.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/metadata.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/pre_configured.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/resource.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/revocation.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/__pycache__/token.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/endpoints/authorization.py,sha256=2N2Cb_TQtpUPcqDIclsJnZERtaMKmH9uSgGoMZLFnUI,4584
oauthlib/oauth2/rfc6749/endpoints/base.py,sha256=fSVQAiOiVYH9trIzzKKUMCErpqIo06MeohI36F0PPAQ,4119
oauthlib/oauth2/rfc6749/endpoints/introspect.py,sha256=AmRbazioFljCCaca6ppWSi38koZhYlz_PrgHLgMcAHA,4946
oauthlib/oauth2/rfc6749/endpoints/metadata.py,sha256=aZDPlzTulQK2XK69f3bku3NU8GCC-0pmsZViW_d6Fh0,10558
oauthlib/oauth2/rfc6749/endpoints/pre_configured.py,sha256=b-By4p6U8Ltvplv4oiOJOycC6Nd8UklLOJ91uz68YxY,11665
oauthlib/oauth2/rfc6749/endpoints/resource.py,sha256=QtMiVVIUvUYzVTfdVw7BFn5n6_dRsoadQCx4dm3RRYo,3243
oauthlib/oauth2/rfc6749/endpoints/revocation.py,sha256=68Ukipz7UOdeBCmO5KTRo0vwbUFd8tTG22Ck0hFlumw,5212
oauthlib/oauth2/rfc6749/endpoints/token.py,sha256=iJDlaSkVR8U6s1_T9fiyVnLgfCgOWsq9PFDcmzL74H4,4595
oauthlib/oauth2/rfc6749/errors.py,sha256=BP0N3lS8_2Xx2GrSGT5lVRAHFMNfkU1gTv5VGI19wo4,12934
oauthlib/oauth2/rfc6749/grant_types/__init__.py,sha256=im_XwEWmw3dhmzcdfyhkN38xZopBhL3cRShmmCtqQs0,368
oauthlib/oauth2/rfc6749/grant_types/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/grant_types/__pycache__/authorization_code.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/grant_types/__pycache__/base.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/grant_types/__pycache__/client_credentials.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/grant_types/__pycache__/implicit.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/grant_types/__pycache__/refresh_token.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/grant_types/__pycache__/resource_owner_password_credentials.cpython-312.pyc,,
oauthlib/oauth2/rfc6749/grant_types/authorization_code.py,sha256=DWkxYBxOiKB4-zzPXwUsA1rWpLshce-5whjgiKcnLcY,26086
oauthlib/oauth2/rfc6749/grant_types/base.py,sha256=UrBKri89mxVHkLBi47OEa34NOaOylBAl_rZbI9wD3lc,10909
oauthlib/oauth2/rfc6749/grant_types/client_credentials.py,sha256=vIQ956Mq2IHOP3DLPndP--HYKeLFml5dPJdjgb3jx3Y,5051
oauthlib/oauth2/rfc6749/grant_types/implicit.py,sha256=oLufSBEX5m1_kE4NCj1dmaSLjyKMZdsvBrSn05ik0H4,16810
oauthlib/oauth2/rfc6749/grant_types/refresh_token.py,sha256=WDVae--UmQt1cJkhO0bwZtoEdgZnSfrr5RfLEj2-aak,6077
oauthlib/oauth2/rfc6749/grant_types/resource_owner_password_credentials.py,sha256=Bs3kNx1qdTHZVOa7Mn2GpiOzgpdGmfeT_iB6uxPoIO4,8484
oauthlib/oauth2/rfc6749/parameters.py,sha256=gtZOiG6fT2K3Coy8RHncu9K41ao6AdwAhjvDeLA3rBw,21355
oauthlib/oauth2/rfc6749/request_validator.py,sha256=TnMSojtirMu2DkTYwhjc_rXL2IabLWYnyokkxzOWGM8,28848
oauthlib/oauth2/rfc6749/tokens.py,sha256=KVCC64_NTup0BvfojFuzdtbsO6bXsOcyECj55Dg1AmY,11015
oauthlib/oauth2/rfc6749/utils.py,sha256=EKlU_U-FcYkdd8PvXo1irtHTqBXF7gKqdFKBadteZ64,2207
oauthlib/oauth2/rfc8628/__init__.py,sha256=S2qH3aljQLTnAAOeeNolAooaaSY7Gqtg9yjCOA948uY,353
oauthlib/oauth2/rfc8628/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/__pycache__/errors.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/__pycache__/request_validator.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/clients/__init__.py,sha256=indCdGycy9cekvLOBxYbCwtyezEVhl3uKZzoShml-aY,201
oauthlib/oauth2/rfc8628/clients/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/clients/__pycache__/device.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/clients/device.py,sha256=v4MZoZAkeKtsTugPn28L0C3cQ02T7EMznmRMal18Rs8,4046
oauthlib/oauth2/rfc8628/endpoints/__init__.py,sha256=NuVzRnUpdSS2BiVzglloMqAVCRwgjYJQaXLbycYL-vs,297
oauthlib/oauth2/rfc8628/endpoints/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/endpoints/__pycache__/device_authorization.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/endpoints/__pycache__/pre_configured.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/endpoints/device_authorization.py,sha256=tbyeQZ83DpZlcCRSgbtJiQT8ywqvkGA384r0KmaC39o,9721
oauthlib/oauth2/rfc8628/endpoints/pre_configured.py,sha256=BT7KKFW-Ym0iY5YRxs3ILTSEx3kWlp5VgKuCosWrx8s,1403
oauthlib/oauth2/rfc8628/errors.py,sha256=wuXMEv2b6Syytoc4xQZoxech4XBfaWRtmZBi7W1t0ao,1684
oauthlib/oauth2/rfc8628/grant_types/__init__.py,sha256=9jwg_aNcLlqHZ_YsE6jQC8QbWnsG5iv35NnJGtouE9w,76
oauthlib/oauth2/rfc8628/grant_types/__pycache__/__init__.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/grant_types/__pycache__/device_code.cpython-312.pyc,,
oauthlib/oauth2/rfc8628/grant_types/device_code.py,sha256=Dj6cCV1Crrct1FohOeQY8Oj8t9ZkQ33lerOOdtFxAtE,4265
oauthlib/oauth2/rfc8628/request_validator.py,sha256=vbpIIMjUvDCIVbZ31OydUCN2bcaWsV_-DLS2QCA302g,1161
oauthlib/openid/__init__.py,sha256=qZQCKCdQt40myte_nxSYrWvzf1VVADqRl8om0-t6LzE,162
oauthlib/openid/__pycache__/__init__.cpython-312.pyc,,
oauthlib/openid/connect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
oauthlib/openid/connect/__pycache__/__init__.cpython-312.pyc,,
oauthlib/openid/connect/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
oauthlib/openid/connect/core/__pycache__/__init__.cpython-312.pyc,,
oauthlib/openid/connect/core/__pycache__/exceptions.cpython-312.pyc,,
oauthlib/openid/connect/core/__pycache__/request_validator.cpython-312.pyc,,
oauthlib/openid/connect/core/__pycache__/tokens.cpython-312.pyc,,
oauthlib/openid/connect/core/endpoints/__init__.py,sha256=nQ6mGniUaM9X1ENG0tZlPgWgbLdlFESWGK-5_e8mp5Y,229
oauthlib/openid/connect/core/endpoints/__pycache__/__init__.cpython-312.pyc,,
oauthlib/openid/connect/core/endpoints/__pycache__/pre_configured.cpython-312.pyc,,
oauthlib/openid/connect/core/endpoints/__pycache__/userinfo.cpython-312.pyc,,
oauthlib/openid/connect/core/endpoints/pre_configured.py,sha256=vG_xpfojwtzDp4ISXhPZM1XnOr8uT63EBrhuvOEh5-4,5449
oauthlib/openid/connect/core/endpoints/userinfo.py,sha256=kc1Q3DN8xByk3Qe_S0LAlmJR2MkXnCnNFqLqVr8y3zU,4096
oauthlib/openid/connect/core/exceptions.py,sha256=YdkjNSPAensGEZdR9_s6KMxldB4hKFp7R6QlM3YTb8E,4783
oauthlib/openid/connect/core/grant_types/__init__.py,sha256=geSZh6OFlupoC2tg9Bqqsnd31nu1-EheWNobzu86ZqU,426
oauthlib/openid/connect/core/grant_types/__pycache__/__init__.cpython-312.pyc,,
oauthlib/openid/connect/core/grant_types/__pycache__/authorization_code.cpython-312.pyc,,
oauthlib/openid/connect/core/grant_types/__pycache__/base.cpython-312.pyc,,
oauthlib/openid/connect/core/grant_types/__pycache__/dispatchers.cpython-312.pyc,,
oauthlib/openid/connect/core/grant_types/__pycache__/hybrid.cpython-312.pyc,,
oauthlib/openid/connect/core/grant_types/__pycache__/implicit.cpython-312.pyc,,
oauthlib/openid/connect/core/grant_types/__pycache__/refresh_token.cpython-312.pyc,,
oauthlib/openid/connect/core/grant_types/authorization_code.py,sha256=WOlS5RlSjIk2VNNmC5O4svxfTeUJiXpL3o5Mqn5EULk,1441
oauthlib/openid/connect/core/grant_types/base.py,sha256=Jy7IE9P977yLufKL89h6NhzI4v1yWy4TXoYFncLFQbM,15503
oauthlib/openid/connect/core/grant_types/dispatchers.py,sha256=vd0svo-ZvdCME4hwXhQpDfL82iMX4m4QKKjF5iL2vTY,3960
oauthlib/openid/connect/core/grant_types/hybrid.py,sha256=zUnWGu5H2kRmiOBAjDDL2Ehkrqd1lVlaT4WEB6IsYrI,2714
oauthlib/openid/connect/core/grant_types/implicit.py,sha256=UICxnDNoePZfTUbL5QCBWA231o8XIQEnxocSrPp9gzw,1971
oauthlib/openid/connect/core/grant_types/refresh_token.py,sha256=8X0i1EHLgBIrlqP10rwJ5lXWO3f8iupmfn2E6DlLmnw,1035
oauthlib/openid/connect/core/request_validator.py,sha256=ukfRscjG0zvksOqGhXEDQSX8mk4nfFxRJYKOSZVI1Io,13766
oauthlib/openid/connect/core/tokens.py,sha256=mynCra3XHwv_MJmt3pBYyHaAU-zP_eLXbGd1o3kNqqA,1558
oauthlib/signals.py,sha256=-W_28gjwm_sVbn9HCLUcI9xRwe9284GuOIGUAlvOCq0,1496
oauthlib/uri_validate.py,sha256=vNzraCfSqYLoGbPq5kq-rAxTQ98S4RIcy5g9cRDI3qM,6125

View File

@@ -0,0 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (80.9.0)
Root-Is-Purelib: true
Tag: py3-none-any

View File

@@ -0,0 +1,27 @@
Copyright (c) The OAuthlib Community
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1 @@
oauthlib