authx


Nameauthx JSON
Version 1.1.2 PyPI version JSON
download
home_pageNone
SummaryReady to use and customizable Authentications and Oauth2 management for FastAPI
upload_time2024-05-02 20:49:03
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords authentication cookie fastapi jwt oauth2 pydantic
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Authx

<p align="center">
<a href="https://authx.yezz.me" target="_blank">
    <img src="https://user-images.githubusercontent.com/52716203/136962014-280d82b0-0640-4ee5-9a11-b451b338f6d8.png" alt="AuthX">
</a>
<p align="center">
    <em>Ready-to-use and customizable Authentications and Oauth2 management for FastAPI ⚑</em>
</p>
</p>

---

| Project | Status                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| CI      | [ ![ CI ]( https://github.com/yezz123/authx/actions/workflows/ci.yml/badge.svg ) ]( https://github.com/yezz123/authx/actions/workflows/ci.yml )  [ ![ pre-commit.ci status ]( https://results.pre-commit.ci/badge/github/yezz123/authx/main.svg )   ]( https://results.pre-commit.ci/latest/github/yezz123/authx/main )  [ ![ Codecov ]( https://codecov.io/gh/yezz123/authx/branch/main/graph/badge.svg )   ]( https://codecov.io/gh/yezz123/authx ) |
| Meta    | [ ![ Package version ]( https://img.shields.io/pypi/v/authx?color=%2334D058&label=pypi%20package )   ]( https://pypi.org/project/authx )  [ ![ Downloads ]( https://static.pepy.tech/badge/authx )   ]( https://pepy.tech/project/authx )  [ ![ Pydantic Version 2 ]( https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json )   ]( https://pydantic.dev )  [ ![ Ruff ]( https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json ) ]( https://github.com/astral-sh/ruff )                                                                                                                                                 |

---

**Source Code**: <https://github.com/yezz123/authx>

**Documentation**: <https://authx.yezz.me/>

---

Add a Fully registration and authentication or authorization system to your
[FastAPI](https://fastapi.tiangolo.com/) project. **AuthX** is designed to be as
customizable and adaptable as possible.

## Features

- [x] Support Python 3.8+ & Pydantic 2.0+.
- [x] Multiple customizable authentication backend:
  - [x] JWT authentication backend included
    - [x] JWT encoding/decoding for application authentication
    - [x] Automatic detection of JWTs in requests:
      - [x] JWTs in headers
      - [x] JWTs in cookies
      - [x] JWTs in query parameters
      - [x] JWTs in request bodies
  - [x] Cookie authentication backend included
- [x] Middleware for authentication and authorization through JWT.
- [x] Extensible Error Handling System.

### Extra Features

AuthX is designed to be as customizable and adaptable as possible.

So you need to install [`authx-extra`](https://github.com/yezz123/authx-extra) to get extra features.

- [x] Using Redis as a session store & cache.
- [x] Support HTTPCache.
- [x] Support Sessions and Pre-built CRUD functions and Instance to launch Redis.
- [x] Support Middleware of [pyinstrument](https://pyinstrument.readthedocs.io/) to check your service performance.
- [x] Support Middleware for collecting and exposing [Prometheus](https://prometheus.io/) metrics.

**Note:** Check [Release Notes](https://authx.yezz.me/release/).

## Project using

Here is a simple way to kickstart your project with AuthX:

```python
from fastapi import FastAPI, Depends, HTTPException
from authx import AuthX, AuthXConfig, RequestToken

app = FastAPI()

config = AuthXConfig(
     JWT_ALGORITHM = "HS256",
     JWT_SECRET_KEY = "SECRET_KEY",
     JWT_TOKEN_LOCATION = ["headers"],
)

auth = AuthX(config=config)
auth.handle_errors(app)

@app.get('/login')
def login(username: str, password: str):
     if username == "xyz" and password == "xyz":
          token = auth.create_access_token(uid=username)
          return {"access_token": token}
     raise HTTPException(401, detail={"message": "Invalid credentials"})

@app.get("/protected", dependencies=[Depends(auth.get_token_from_request)])
def get_protected(token: RequestToken = Depends()):
     try:
          auth.verify_token(token=token)
          return {"message": "Hello world !"}
     except Exception as e:
          raise HTTPException(401, detail={"message": str(e)}) from e
```

## Contributors and sponsors

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-10-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->

Thanks goes to these wonderful people
([emoji key](https://allcontributors.org/docs/en/emoji-key)):

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
  <tbody>
    <tr>
      <td align="center" valign="top" width="14.28%"><a href="http://yezz.me"><img src="https://avatars.githubusercontent.com/u/52716203?v=4?s=100" width="100px;" alt="Yasser Tahiri"/><br /><sub><b>Yasser Tahiri</b></sub></a><br /><a href="https://github.com/yezz123/authx/commits?author=yezz123" title="Code">πŸ’»</a> <a href="https://github.com/yezz123/authx/commits?author=yezz123" title="Documentation">πŸ“–</a> <a href="#maintenance-yezz123" title="Maintenance">🚧</a> <a href="#infra-yezz123" title="Infrastructure (Hosting, Build-Tools, etc)">πŸš‡</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://soubai.me"><img src="https://avatars.githubusercontent.com/u/11523791?v=4?s=100" width="100px;" alt="Abderrahim SOUBAI-ELIDRISI"/><br /><sub><b>Abderrahim SOUBAI-ELIDRISI</b></sub></a><br /><a href="https://github.com/yezz123/authx/pulls?q=is%3Apr+reviewed-by%3AAbderrahimSoubaiElidrissi" title="Reviewed Pull Requests">πŸ‘€</a> <a href="https://github.com/yezz123/authx/commits?author=AbderrahimSoubaiElidrissi" title="Documentation">πŸ“–</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://smakosh.com"><img src="https://avatars.githubusercontent.com/u/20082141?v=4?s=100" width="100px;" alt="Ismail Ghallou "/><br /><sub><b>Ismail Ghallou </b></sub></a><br /><a href="https://github.com/yezz123/authx/commits?author=smakosh" title="Code">πŸ’»</a> <a href="#security-smakosh" title="Security">πŸ›‘οΈ</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/MojixCoder"><img src="https://avatars.githubusercontent.com/u/76670309?v=4?s=100" width="100px;" alt="MojixCoder"/><br /><sub><b>MojixCoder</b></sub></a><br /><a href="https://github.com/yezz123/authx/commits?author=MojixCoder" title="Code">πŸ’»</a> <a href="https://github.com/yezz123/authx/issues?q=author%3AMojixCoder" title="Bug reports">πŸ›</a></td>
      <td align="center" valign="top" width="14.28%"><a href="http://sralab.com"><img src="https://avatars.githubusercontent.com/u/1815?v=4?s=100" width="100px;" alt="StΓ©phane Raimbault"/><br /><sub><b>StΓ©phane Raimbault</b></sub></a><br /><a href="https://github.com/yezz123/authx/commits?author=stephane" title="Code">πŸ’»</a> <a href="#plugin-stephane" title="Plugin/utility libraries">πŸ”Œ</a></td>
    </tr>
    <tr>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/theoohoho"><img src="https://avatars.githubusercontent.com/u/31537466?v=4?s=100" width="100px;" alt="theoohoho"/><br /><sub><b>theoohoho</b></sub></a><br /><a href="https://github.com/yezz123/authx/commits?author=theoohoho" title="Documentation">πŸ“–</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://yogeshupadhyay.netlify.app/"><img src="https://avatars.githubusercontent.com/u/53992168?v=4?s=100" width="100px;" alt="Yogesh Upadhyay"/><br /><sub><b>Yogesh Upadhyay</b></sub></a><br /><a href="https://github.com/yezz123/authx/issues?q=author%3AYogeshUpdhyay" title="Bug reports">πŸ›</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/iftenet"><img src="https://avatars.githubusercontent.com/u/1397880?v=4?s=100" width="100px;" alt="Roman"/><br /><sub><b>Roman</b></sub></a><br /><a href="https://github.com/yezz123/authx/issues?q=author%3Aiftenet" title="Bug reports">πŸ›</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/today/author/alobbs"><img src="https://avatars.githubusercontent.com/u/170559?v=4?s=100" width="100px;" alt="Alvaro Lopez Ortega"/><br /><sub><b>Alvaro Lopez Ortega</b></sub></a><br /><a href="https://github.com/yezz123/authx/commits?author=alobbs" title="Documentation">πŸ“–</a></td>
      <td align="center" valign="top" width="14.28%"><a href="https://github.com/pinchXOXO"><img src="https://avatars.githubusercontent.com/u/68501799?v=4?s=100" width="100px;" alt="Devy Santo"/><br /><sub><b>Devy Santo</b></sub></a><br /><a href="#infra-pinchXOXO" title="Infrastructure (Hosting, Build-Tools, etc)">πŸš‡</a></td>
    </tr>
  </tbody>
</table>

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->

<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!

## License

This project is licensed under the terms of the MIT License.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "authx",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Authentication, Cookie, FastAPI, JWT, Oauth2, Pydantic",
    "author": null,
    "author_email": "Yasser Tahiri <hello@yezz.me>",
    "download_url": "https://files.pythonhosted.org/packages/00/45/8ebbc935230fac8eb43f4cecb784d51a664936844bc06662068ec4eb720a/authx-1.1.2.tar.gz",
    "platform": null,
    "description": "# Authx\n\n<p align=\"center\">\n<a href=\"https://authx.yezz.me\" target=\"_blank\">\n    <img src=\"https://user-images.githubusercontent.com/52716203/136962014-280d82b0-0640-4ee5-9a11-b451b338f6d8.png\" alt=\"AuthX\">\n</a>\n<p align=\"center\">\n    <em>Ready-to-use and customizable Authentications and Oauth2 management for FastAPI \u26a1</em>\n</p>\n</p>\n\n---\n\n| Project | Status                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |\n|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| CI      | [ ![ CI ]( https://github.com/yezz123/authx/actions/workflows/ci.yml/badge.svg ) ]( https://github.com/yezz123/authx/actions/workflows/ci.yml )  [ ![ pre-commit.ci status ]( https://results.pre-commit.ci/badge/github/yezz123/authx/main.svg )   ]( https://results.pre-commit.ci/latest/github/yezz123/authx/main )  [ ![ Codecov ]( https://codecov.io/gh/yezz123/authx/branch/main/graph/badge.svg )   ]( https://codecov.io/gh/yezz123/authx ) |\n| Meta    | [ ![ Package version ]( https://img.shields.io/pypi/v/authx?color=%2334D058&label=pypi%20package )   ]( https://pypi.org/project/authx )  [ ![ Downloads ]( https://static.pepy.tech/badge/authx )   ]( https://pepy.tech/project/authx )  [ ![ Pydantic Version 2 ]( https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json )   ]( https://pydantic.dev )  [ ![ Ruff ]( https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json ) ]( https://github.com/astral-sh/ruff )                                                                                                                                                 |\n\n---\n\n**Source Code**: <https://github.com/yezz123/authx>\n\n**Documentation**: <https://authx.yezz.me/>\n\n---\n\nAdd a Fully registration and authentication or authorization system to your\n[FastAPI](https://fastapi.tiangolo.com/) project. **AuthX** is designed to be as\ncustomizable and adaptable as possible.\n\n## Features\n\n- [x] Support Python 3.8+ & Pydantic 2.0+.\n- [x] Multiple customizable authentication backend:\n  - [x] JWT authentication backend included\n    - [x] JWT encoding/decoding for application authentication\n    - [x] Automatic detection of JWTs in requests:\n      - [x] JWTs in headers\n      - [x] JWTs in cookies\n      - [x] JWTs in query parameters\n      - [x] JWTs in request bodies\n  - [x] Cookie authentication backend included\n- [x] Middleware for authentication and authorization through JWT.\n- [x] Extensible Error Handling System.\n\n### Extra Features\n\nAuthX is designed to be as customizable and adaptable as possible.\n\nSo you need to install [`authx-extra`](https://github.com/yezz123/authx-extra) to get extra features.\n\n- [x] Using Redis as a session store & cache.\n- [x] Support HTTPCache.\n- [x] Support Sessions and Pre-built CRUD functions and Instance to launch Redis.\n- [x] Support Middleware of [pyinstrument](https://pyinstrument.readthedocs.io/) to check your service performance.\n- [x] Support Middleware for collecting and exposing [Prometheus](https://prometheus.io/) metrics.\n\n**Note:** Check [Release Notes](https://authx.yezz.me/release/).\n\n## Project using\n\nHere is a simple way to kickstart your project with AuthX:\n\n```python\nfrom fastapi import FastAPI, Depends, HTTPException\nfrom authx import AuthX, AuthXConfig, RequestToken\n\napp = FastAPI()\n\nconfig = AuthXConfig(\n     JWT_ALGORITHM = \"HS256\",\n     JWT_SECRET_KEY = \"SECRET_KEY\",\n     JWT_TOKEN_LOCATION = [\"headers\"],\n)\n\nauth = AuthX(config=config)\nauth.handle_errors(app)\n\n@app.get('/login')\ndef login(username: str, password: str):\n     if username == \"xyz\" and password == \"xyz\":\n          token = auth.create_access_token(uid=username)\n          return {\"access_token\": token}\n     raise HTTPException(401, detail={\"message\": \"Invalid credentials\"})\n\n@app.get(\"/protected\", dependencies=[Depends(auth.get_token_from_request)])\ndef get_protected(token: RequestToken = Depends()):\n     try:\n          auth.verify_token(token=token)\n          return {\"message\": \"Hello world !\"}\n     except Exception as e:\n          raise HTTPException(401, detail={\"message\": str(e)}) from e\n```\n\n## Contributors and sponsors\n\n<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https://img.shields.io/badge/all_contributors-10-orange.svg?style=flat-square)](#contributors-)\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\nThanks goes to these wonderful people\n([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://yezz.me\"><img src=\"https://avatars.githubusercontent.com/u/52716203?v=4?s=100\" width=\"100px;\" alt=\"Yasser Tahiri\"/><br /><sub><b>Yasser Tahiri</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/commits?author=yezz123\" title=\"Code\">\ud83d\udcbb</a> <a href=\"https://github.com/yezz123/authx/commits?author=yezz123\" title=\"Documentation\">\ud83d\udcd6</a> <a href=\"#maintenance-yezz123\" title=\"Maintenance\">\ud83d\udea7</a> <a href=\"#infra-yezz123\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">\ud83d\ude87</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://soubai.me\"><img src=\"https://avatars.githubusercontent.com/u/11523791?v=4?s=100\" width=\"100px;\" alt=\"Abderrahim SOUBAI-ELIDRISI\"/><br /><sub><b>Abderrahim SOUBAI-ELIDRISI</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/pulls?q=is%3Apr+reviewed-by%3AAbderrahimSoubaiElidrissi\" title=\"Reviewed Pull Requests\">\ud83d\udc40</a> <a href=\"https://github.com/yezz123/authx/commits?author=AbderrahimSoubaiElidrissi\" title=\"Documentation\">\ud83d\udcd6</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://smakosh.com\"><img src=\"https://avatars.githubusercontent.com/u/20082141?v=4?s=100\" width=\"100px;\" alt=\"Ismail Ghallou \"/><br /><sub><b>Ismail Ghallou </b></sub></a><br /><a href=\"https://github.com/yezz123/authx/commits?author=smakosh\" title=\"Code\">\ud83d\udcbb</a> <a href=\"#security-smakosh\" title=\"Security\">\ud83d\udee1\ufe0f</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/MojixCoder\"><img src=\"https://avatars.githubusercontent.com/u/76670309?v=4?s=100\" width=\"100px;\" alt=\"MojixCoder\"/><br /><sub><b>MojixCoder</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/commits?author=MojixCoder\" title=\"Code\">\ud83d\udcbb</a> <a href=\"https://github.com/yezz123/authx/issues?q=author%3AMojixCoder\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"http://sralab.com\"><img src=\"https://avatars.githubusercontent.com/u/1815?v=4?s=100\" width=\"100px;\" alt=\"St\u00e9phane Raimbault\"/><br /><sub><b>St\u00e9phane Raimbault</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/commits?author=stephane\" title=\"Code\">\ud83d\udcbb</a> <a href=\"#plugin-stephane\" title=\"Plugin/utility libraries\">\ud83d\udd0c</a></td>\n    </tr>\n    <tr>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/theoohoho\"><img src=\"https://avatars.githubusercontent.com/u/31537466?v=4?s=100\" width=\"100px;\" alt=\"theoohoho\"/><br /><sub><b>theoohoho</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/commits?author=theoohoho\" title=\"Documentation\">\ud83d\udcd6</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://yogeshupadhyay.netlify.app/\"><img src=\"https://avatars.githubusercontent.com/u/53992168?v=4?s=100\" width=\"100px;\" alt=\"Yogesh Upadhyay\"/><br /><sub><b>Yogesh Upadhyay</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/issues?q=author%3AYogeshUpdhyay\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/iftenet\"><img src=\"https://avatars.githubusercontent.com/u/1397880?v=4?s=100\" width=\"100px;\" alt=\"Roman\"/><br /><sub><b>Roman</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/issues?q=author%3Aiftenet\" title=\"Bug reports\">\ud83d\udc1b</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://www.linkedin.com/today/author/alobbs\"><img src=\"https://avatars.githubusercontent.com/u/170559?v=4?s=100\" width=\"100px;\" alt=\"Alvaro Lopez Ortega\"/><br /><sub><b>Alvaro Lopez Ortega</b></sub></a><br /><a href=\"https://github.com/yezz123/authx/commits?author=alobbs\" title=\"Documentation\">\ud83d\udcd6</a></td>\n      <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/pinchXOXO\"><img src=\"https://avatars.githubusercontent.com/u/68501799?v=4?s=100\" width=\"100px;\" alt=\"Devy Santo\"/><br /><sub><b>Devy Santo</b></sub></a><br /><a href=\"#infra-pinchXOXO\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">\ud83d\ude87</a></td>\n    </tr>\n  </tbody>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the\n[all-contributors](https://github.com/all-contributors/all-contributors)\nspecification. Contributions of any kind welcome!\n\n## License\n\nThis project is licensed under the terms of the MIT License.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Ready to use and customizable Authentications and Oauth2 management for FastAPI",
    "version": "1.1.2",
    "project_urls": {
        "Documentation": "https://authx.yezz.me/",
        "Funding": "https://github.com/sponsors/yezz123",
        "Homepage": "https://github.com/yezz123/authx"
    },
    "split_keywords": [
        "authentication",
        " cookie",
        " fastapi",
        " jwt",
        " oauth2",
        " pydantic"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "50e467873ef8515724eb2e72666288703f387c1ab0362ea3de827d6655a51d7e",
                "md5": "e62d1665c40659a44caefc4b1981b43a",
                "sha256": "1f9ab0109bf6fae8d0fd729bf495ab5119cef450ce554b35a372c7df67e6c373"
            },
            "downloads": -1,
            "filename": "authx-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e62d1665c40659a44caefc4b1981b43a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 24286,
            "upload_time": "2024-05-02T20:49:01",
            "upload_time_iso_8601": "2024-05-02T20:49:01.775463Z",
            "url": "https://files.pythonhosted.org/packages/50/e4/67873ef8515724eb2e72666288703f387c1ab0362ea3de827d6655a51d7e/authx-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "00458ebbc935230fac8eb43f4cecb784d51a664936844bc06662068ec4eb720a",
                "md5": "7bf0868531b721034161328d127a97a3",
                "sha256": "c956f305c41a3fbc8e089fbc2ed8209d39715a7b10c3472845eedb8cf79307f1"
            },
            "downloads": -1,
            "filename": "authx-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "7bf0868531b721034161328d127a97a3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 313870,
            "upload_time": "2024-05-02T20:49:03",
            "upload_time_iso_8601": "2024-05-02T20:49:03.793626Z",
            "url": "https://files.pythonhosted.org/packages/00/45/8ebbc935230fac8eb43f4cecb784d51a664936844bc06662068ec4eb720a/authx-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-02 20:49:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sponsors",
    "github_project": "yezz123",
    "github_not_found": true,
    "lcname": "authx"
}
        
Elapsed time: 0.25143s