{ "info": { "author": "fluffy", "author_email": "fluffy@beesbuzz.biz", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9" ], "description": "# Authl\nA Python library for managing federated identity\n\n[![Documentation Status](https://readthedocs.org/projects/authl/badge/?version=latest)](https://authl.readthedocs.io/en/latest/?badge=latest)\n\n## About\n\nAuthl is intended to make it easy to add federated identity to Python-based web\napps without requiring the creation of site-specific user accounts, but also\nwithout requiring the user to choose from a myriad of buttons or links to select\nany specific login provider.\n\nAll it should take is a single login form that asks for how the user wants to be\nidentified.\n\n## Current state\n\nThe basic API works, and provides an easy drop-in set of endpoints for\n[Flask](http://flask.pocoo.org).\n\nCurrently supported authentication mechanisms:\n\n* Directly authenticating against email using a magic link\n* Federated authentication against Fediverse providers\n ([Mastodon](https://joinmastodon.org/), [Pleroma](https://pleroma.social))\n* Federated authentication against [IndieAuth](https://indieauth.net/)\n* Silo authentication against [Twitter](https://twitter.com/)\n* Test/loopback authentication for development purposes\n\nPlanned functionality:\n\n* Pluggable OAuth mechanism to easily support additional identity providers such as:\n * OpenID Connect (Google et al)\n * Facebook\n * GitHub\n* OpenID 1.x (Wordpress, LiveJournal, Dreamwidth, etc.)\n* A more flexible configuration system\n\n## Rationale\n\nIdentity is hard, and there are so many competing standards which try to be the\nbe-all end-all Single Solution. OAuth and OpenID Connect want lock-in to silos,\nIndieAuth wants every user to self-host their own identity site, and OpenID 1.x\nhas fallen by the wayside. Meanwhile, users just want to be able to log in with\nthe social media they're already using (siloed or not).\n\nAny solution which requires all users to have a certain minimum level of\ntechnical ability is not a workable solution.\n\nAll of these solutions are prone to the so-called \"[NASCAR\nproblem](https://indieweb.org/NASCAR_problem)\" where every supported login\nprovider needs its own UI. But being able to experiment with a more unified UX\nmight help to fix some of that.\n\n## Documentation\n\nFull API documentation is hosted on [readthedocs](https://authl.readthedocs.io).\n\n## Usage\n\nBasic usage is as follows:\n\n1. Create an Authl object with your configured handlers\n\n This can be done by instancing individual handlers yourself, or you can use\n `authl.from_config`\n\n2. Make endpoints for initiation and progress callbacks\n\n The initiation callback receives an identity string (email address/URL/etc.)\n from the user, queries Authl for the handler and its ID, and builds a\n callback URL for that handler to use. Typically you'll have a single\n callback endpoint that includes the handler's ID as part of the URL scheme.\n\n The callback endpoint needs to be able to receive a `GET` or `POST` request\n and use that to validate the returned data from the authorization handler.\n\n Your callback endpoint (and generated URL thereof) should also include\n whatever intended forwarding destination.\n\n3. Handle the `authl.disposition` object types accordingly\n\n A `disposition` is what should be done with the agent that initiated the\n endpoint call. Currently there are the following:\n\n * `Redirect`: return an HTTP redirection to forward it along to another URL\n * `Notify`: return a notification to the user that they must take another\n action (e.g. check their email)\n * `Verified`: indicates that the user has been verified; set a session\n cookie (or whatever) and forward them along to their intended destination\n * `Error`: An error occurred; return it to the user as appropriate\n\n## Flask usage\n\nTo make life easier with Flask, Authl provides an `authl.flask.AuthlFlask`\nwrapper. You can use it from a Flask app with something like the below:\n\n```python\nimport uuid\nimport logging\n\nimport flask\nimport authl.flask\n\nlogging.basicConfig(level=logging.INFO)\nLOGGER = logging.getLogger(__name__)\n\napp = flask.Flask('authl-test')\n\napp.secret_key = str(uuid.uuid4())\nauthl = authl.flask.AuthlFlask(\n app,\n {\n 'SMTP_HOST': 'localhost',\n 'SMTP_PORT': 25,\n 'EMAIL_FROM': 'authl@example.com',\n 'EMAIL_SUBJECT': 'Login attempt for Authl test',\n 'INDIELOGIN_CLIENT_ID': authl.flask.client_id,\n 'TEST_ENABLED': True,\n 'MASTODON_NAME': 'authl testing',\n 'MASTODON_HOMEPAGE': 'https://github.com/PlaidWeb/Authl'\n },\n tester_path='/check_url'\n)\n\n\n@app.route('/')\n@app.route('/some-page')\ndef index():\n \"\"\" Just displays a very basic login form \"\"\"\n LOGGER.info(\"Session: %s\", flask.session)\n LOGGER.info(\"Request path: %s\", flask.request.path)\n\n if 'me' in flask.session:\n return 'Hello {me}. Want to log out?'.format(\n me=flask.session['me'], logout=flask.url_for(\n 'logout', redir=flask.request.path[1:])\n )\n\n return 'You are not logged in. Want to log in?'.format(\n login=flask.url_for('authl.login', redir=flask.request.path[1:]))\n\n\n@app.route('/logout/')\n@app.route('/logout/')\ndef logout(redir=''):\n \"\"\" Log out from the thing \"\"\"\n LOGGER.info(\"Logging out\")\n LOGGER.info(\"Redir: %s\", redir)\n LOGGER.info(\"Request path: %s\", flask.request.path)\n\n flask.session.clear()\n return flask.redirect('/' + redir)\n```\n\nThis will configure the Flask app to allow IndieLogin, Mastodon, and email-based\nauthentication (using the server's local sendmail), and use the default login\nendpoint of `/login/`. The `index()` endpoint handler always redirects logins\nand logouts back to the same page when you log in or log out (the `[1:]` is to\ntrim off the initial `/` from the path). The logout handler simply clears the\nsession and redirects back to the redirection path.\n\nThe above configuration uses Flask's default session lifetime of one month (this\ncan be configured by setting `app.permanent_session_lifetime` to a `timedelta`\nobject, e.g. `app.permanent_session_lifetime = datetime.timedelta(hours=20)`).\nSessions will also implicitly expire whenever the application server is\nrestarted, as `app.secret_key` is generated randomly at every startup.\n\n### Accessing the default stylesheet\n\nIf you would like to access `authl.flask`'s default stylesheet, you can do it by\npassing the argument `asset='css'` to the login endpoint. For example, if you\nare using the default endpoint name of `authl.login`, you can use:\n\n```python\nflask.url_for('authl.login', asset='css')\n```\n\nfrom Python, or e.g.\n\n```html\n\n```\n\nfrom a Jinja template.\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://plaidweb.site/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "authl", "package_url": "https://pypi.org/project/authl/", "platform": "", "project_url": "https://pypi.org/project/authl/", "project_urls": { "Documentation": "https://authl.readthedocs.io/", "Homepage": "https://plaidweb.site/", "Repository": "https://github.com/PlaidWeb/Authl" }, "release_url": "https://pypi.org/project/authl/0.6.0/", "requires_dist": [ "beautifulsoup4 (>=4.9.1,<5.0.0)", "expiringdict (>=1.2.1,<2.0.0)", "itsdangerous (>=1.1.0)", "requests (>=2.24.0,<3.0.0)", "requests_oauthlib (>=1.3.0,<2.0.0)", "validate_email (>=1.3,<2.0)", "mf2py (>=1.1.2,<2.0.0)", "mastodon.py (>=1.5.1,<2.0.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Framework-agnostic authentication wrapper", "version": "0.6.0", "yanked": false, "yanked_reason": null }, "last_serial": 11728237, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "e06df6d0101110298fa034d1f1ff1b32", "sha256": "5219e869f97d1a278f3b951c781ff26d00652596f014cf613f01cf7ed5ff671f" }, "downloads": -1, "filename": "Authl-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e06df6d0101110298fa034d1f1ff1b32", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5043, "upload_time": "2019-07-04T07:32:31", "upload_time_iso_8601": "2019-07-04T07:32:31.826439Z", "url": "https://files.pythonhosted.org/packages/af/24/18a356de0b5c86c4e3c366d7729cb82554640d617f7d7cbbfd76ac4f1c8b/Authl-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7351b1683a0745113550e5d1a856d875", "sha256": "1ec849545582dee8ea137a83de08c480dfd5a63dadced8e1879736a9754b9f05" }, "downloads": -1, "filename": "Authl-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7351b1683a0745113550e5d1a856d875", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4744, "upload_time": "2019-07-04T07:32:33", "upload_time_iso_8601": "2019-07-04T07:32:33.983118Z", "url": "https://files.pythonhosted.org/packages/22/2e/06d908fc5c114bda0eae0c4f3b10af62611ebbe948364a9914ec64671a83/Authl-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7e206718c53dd70482aea4641f89e3b2", "sha256": "6ffe48494a14e59131dc37e8322629bacf754ced7bcd1f49bf933b9f39a464aa" }, "downloads": -1, "filename": "Authl-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7e206718c53dd70482aea4641f89e3b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 8278, "upload_time": "2019-07-05T05:44:02", "upload_time_iso_8601": "2019-07-05T05:44:02.048489Z", "url": "https://files.pythonhosted.org/packages/76/cc/48281591e834c94eb4ad32aeb1fbca031a78683a47fbcbb6bc7e62808834/Authl-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f12b7a4f4f5e7bba65811f8c3363506e", "sha256": "70c29c6178221a45aa0d7b78c7bf4ba3a279faf81b73b65844ec9df48aae2b26" }, "downloads": -1, "filename": "Authl-0.0.2.tar.gz", "has_sig": false, "md5_digest": "f12b7a4f4f5e7bba65811f8c3363506e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8039, "upload_time": "2019-07-05T05:44:03", "upload_time_iso_8601": "2019-07-05T05:44:03.734979Z", "url": "https://files.pythonhosted.org/packages/cf/75/a06ed33e3cad50eb57ca3b2790c56609495fc30203e00bb9bf499e14a779/Authl-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "61afe62d223cfb22760b8ef4de218fde", "sha256": "d7d9693228faedfe39ad572d4bb4e4d7697422cfac4e7c3e806b8dee7a26e753" }, "downloads": -1, "filename": "Authl-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "61afe62d223cfb22760b8ef4de218fde", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 8819, "upload_time": "2019-07-07T00:50:05", "upload_time_iso_8601": "2019-07-07T00:50:05.931893Z", "url": "https://files.pythonhosted.org/packages/e1/4c/87548f067b19f9af0e5aa272effc4b1e6c3047c1cb65d7c194b6e0b585c6/Authl-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cd0ea5a514e1fe2ad0ad4f763769d07d", "sha256": "7bf51842e2f4b6cf06f3336ed1cb5060d9faf847a9509cfaeab3110e1cd34789" }, "downloads": -1, "filename": "Authl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "cd0ea5a514e1fe2ad0ad4f763769d07d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8333, "upload_time": "2019-07-07T00:50:07", "upload_time_iso_8601": "2019-07-07T00:50:07.742385Z", "url": "https://files.pythonhosted.org/packages/ab/e8/725f3850122a59ed5dd2dd4950ee557c1fe2aff01762df0912d8627d567b/Authl-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "93172201307e23b62f8cfc5c0e98f096", "sha256": "ce14877e14072278fb051eb452c6adf25e9f182ff71e9ddd15e6995e5c44e702" }, "downloads": -1, "filename": "Authl-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "93172201307e23b62f8cfc5c0e98f096", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 8899, "upload_time": "2019-07-08T18:53:15", "upload_time_iso_8601": "2019-07-08T18:53:15.365675Z", "url": "https://files.pythonhosted.org/packages/cf/29/c4e3879adf9601c9d33edecd0ce058f1c26b03dc43d67372f81dd3035d61/Authl-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "43b2e173ac6aa9266259396bc76446dc", "sha256": "95f37df69881f7e43a6e7267ab80ce8ecd8fbea1e44b29746a25e159f000e830" }, "downloads": -1, "filename": "Authl-0.1.1.tar.gz", "has_sig": false, "md5_digest": "43b2e173ac6aa9266259396bc76446dc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8285, "upload_time": "2019-07-08T18:53:16", "upload_time_iso_8601": "2019-07-08T18:53:16.975027Z", "url": "https://files.pythonhosted.org/packages/f8/8a/bb425b6b9d86ad485ed6e6381c0f1b53c7b27573b359ac53e5f9498c0245/Authl-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ab3af47accb28dbb86fb50d2737d4601", "sha256": "b3797fe8e64231aafd00b0a6870037062ab5138fafcecd6aa6d718e24bddbf0b" }, "downloads": -1, "filename": "Authl-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ab3af47accb28dbb86fb50d2737d4601", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 10449, "upload_time": "2019-07-09T07:25:25", "upload_time_iso_8601": "2019-07-09T07:25:25.092465Z", "url": "https://files.pythonhosted.org/packages/9b/80/1444f2bc41f68e14207cdef878e8ccde25be7331e3791bf18ba40c2c14d3/Authl-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f37991ff769a5dc612a0981eb9fa90dc", "sha256": "7b8ae8eac36db8276914a3c14f3745dbb281de6d3cb1292d9642ff2db678be13" }, "downloads": -1, "filename": "Authl-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f37991ff769a5dc612a0981eb9fa90dc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9816, "upload_time": "2019-07-09T07:25:26", "upload_time_iso_8601": "2019-07-09T07:25:26.514333Z", "url": "https://files.pythonhosted.org/packages/bb/3f/5bcc176dff03c5de3e23d6f57014a6d13afe524f854ee062950296ec072e/Authl-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "64b5cee03b05a445929d88684c7f369a", "sha256": "62b9515f9f967e1a0fc1469d4204d011d976c73aeb86c59b83dff0127ded1e7c" }, "downloads": -1, "filename": "Authl-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "64b5cee03b05a445929d88684c7f369a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 18971, "upload_time": "2019-07-09T07:32:59", "upload_time_iso_8601": "2019-07-09T07:32:59.794716Z", "url": "https://files.pythonhosted.org/packages/c1/1e/98f017187b31a160281f0bec72fd6b43387645662678fac537352e20e9fb/Authl-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "46e8c9176309bd7cc2ce6ccdbdf39600", "sha256": "7ca0cd88c8ccb74188930d65c42680777df23b8115e33bd820a0f4afedef722c" }, "downloads": -1, "filename": "Authl-0.1.3.tar.gz", "has_sig": false, "md5_digest": "46e8c9176309bd7cc2ce6ccdbdf39600", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 15570, "upload_time": "2019-07-09T07:33:01", "upload_time_iso_8601": "2019-07-09T07:33:01.395616Z", "url": "https://files.pythonhosted.org/packages/36/80/f887539d756b5027e8ab28a16afc1d0a9c5bc544b7a9eec4d855a0990be6/Authl-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "e00bb50412aca43c4db0268b3ced8d49", "sha256": "9451110f0a00387049a0d8d5a46d042807319db5833c055fb6d2a19001fa00b3" }, "downloads": -1, "filename": "Authl-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "e00bb50412aca43c4db0268b3ced8d49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 20086, "upload_time": "2019-07-21T09:15:43", "upload_time_iso_8601": "2019-07-21T09:15:43.815342Z", "url": "https://files.pythonhosted.org/packages/e7/ee/95cdfec98facd2c50fa8d4d9993818cecfb9732c81bb46ec288d37b94fd6/Authl-0.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ae8d28ca364f0c51dcfa7156a03e262d", "sha256": "4dd0e801f8703b6bbe21baa83bcd0c1d80156d740f529959fbbba6fa0ca9cded" }, "downloads": -1, "filename": "Authl-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ae8d28ca364f0c51dcfa7156a03e262d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16444, "upload_time": "2019-07-21T09:15:45", "upload_time_iso_8601": "2019-07-21T09:15:45.681953Z", "url": "https://files.pythonhosted.org/packages/89/eb/d9dfe0158fadad8d66cdd340b892ce7fd7266daa9610818e64d535b62d5e/Authl-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2b4ca827cd8c3c2e37e9a18ffb0baf28", "sha256": "bdaeb7553babbee8f4e2a18cd2e226b7eb2b17a56f9371cce84d3e6a803cc923" }, "downloads": -1, "filename": "Authl-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "2b4ca827cd8c3c2e37e9a18ffb0baf28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 20088, "upload_time": "2019-07-26T06:24:18", "upload_time_iso_8601": "2019-07-26T06:24:18.958472Z", "url": "https://files.pythonhosted.org/packages/42/bf/18e68d4ce5d39634a046874d8ca882e52e959c4e4fcb9119682ac3cf2305/Authl-0.1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a22eb28802fccaab6f0e9cb14bec636e", "sha256": "7e28805d11043ae991357e358d9564a9de3167779fa8bb77c3775ada9197a276" }, "downloads": -1, "filename": "Authl-0.1.5.tar.gz", "has_sig": false, "md5_digest": "a22eb28802fccaab6f0e9cb14bec636e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16451, "upload_time": "2019-07-26T06:24:20", "upload_time_iso_8601": "2019-07-26T06:24:20.958781Z", "url": "https://files.pythonhosted.org/packages/a4/42/a64b022ab8551e555fe8095f280edfd782c67bbcd1986e68f3d384c1dd5e/Authl-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "7331e695a0554dd7614c3912a07042e3", "sha256": "a5f597983db502581a319e706f249aac38843f7f3b994ffee588da87f142ad50" }, "downloads": -1, "filename": "Authl-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "7331e695a0554dd7614c3912a07042e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 21426, "upload_time": "2019-08-09T05:26:11", "upload_time_iso_8601": "2019-08-09T05:26:11.261263Z", "url": "https://files.pythonhosted.org/packages/b2/02/5ce9f8710264d24e2fb6ecd85c0a0c93a453a0a313b1650bf62acabdf4da/Authl-0.1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1cee4647933ed2eaa86472fe6252c64d", "sha256": "c676af8d32bda180f22be52fc2c9c1bdbc8b52d2af9670eb6a5e92eee114a0b5" }, "downloads": -1, "filename": "Authl-0.1.6.tar.gz", "has_sig": false, "md5_digest": "1cee4647933ed2eaa86472fe6252c64d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 17079, "upload_time": "2019-08-09T05:26:13", "upload_time_iso_8601": "2019-08-09T05:26:13.066650Z", "url": "https://files.pythonhosted.org/packages/e1/1d/4ae8adee7e1f7ad7222b115cf0ff1967f772a6e3fc743c0fa7125b6cdbb5/Authl-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "66900c07c96eb6bdf1e01a80be2c5514", "sha256": "d2ff049ab63604f0acabb09b5394113f672b99c6446fa76451fdd4e2c74a0a3d" }, "downloads": -1, "filename": "Authl-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "66900c07c96eb6bdf1e01a80be2c5514", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 25230, "upload_time": "2019-08-12T08:13:21", "upload_time_iso_8601": "2019-08-12T08:13:21.110551Z", "url": "https://files.pythonhosted.org/packages/7e/2d/e54190d588654740564a58a3c4d11ac38a45692ffefd03644967fc390a60/Authl-0.1.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "30b9bd001954b9236977c9861289ed01", "sha256": "fb011e92767f62ca0137bb960177c13202e1eb990b7f32fbdb924e8e13465e69" }, "downloads": -1, "filename": "Authl-0.1.7.tar.gz", "has_sig": false, "md5_digest": "30b9bd001954b9236977c9861289ed01", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19215, "upload_time": "2019-08-12T08:13:22", "upload_time_iso_8601": "2019-08-12T08:13:22.889165Z", "url": "https://files.pythonhosted.org/packages/62/b9/3dacc41b149783d8ad770dde5cc9c88228f42f0e09f69678e126ab3a8874/Authl-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "e9d946c72b8bd1a37ac4d4f379db55bf", "sha256": "f8fa72f12f3ee6287a86993a5fee0d9d60543ab1a5c8dfa96483cb22068f3ece" }, "downloads": -1, "filename": "Authl-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "e9d946c72b8bd1a37ac4d4f379db55bf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 25169, "upload_time": "2019-08-17T07:26:57", "upload_time_iso_8601": "2019-08-17T07:26:57.866933Z", "url": "https://files.pythonhosted.org/packages/58/b8/e97cb42890bf6e01f6ddca3d57e121f099627eede0265a4ac0dad8e0067f/Authl-0.1.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6339238ed0fba317dda8c66858791341", "sha256": "9e499df8320c85128eb6db454a0d42599486d3f8b4c759785d11f21e60eb69d3" }, "downloads": -1, "filename": "Authl-0.1.8.tar.gz", "has_sig": false, "md5_digest": "6339238ed0fba317dda8c66858791341", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19643, "upload_time": "2019-08-17T07:26:59", "upload_time_iso_8601": "2019-08-17T07:26:59.729539Z", "url": "https://files.pythonhosted.org/packages/27/0b/aa5e1fa8b105abf53e257aafd50d6289fc0a1db9efc3ebb89d961ba9b09a/Authl-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d87dc7a94f06c107b4894cbb5373cec5", "sha256": "981713a37405122e7dfaa83c3c6be9802aa878494bb41537a8af47d696b014ce" }, "downloads": -1, "filename": "Authl-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d87dc7a94f06c107b4894cbb5373cec5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 25166, "upload_time": "2019-08-19T08:20:46", "upload_time_iso_8601": "2019-08-19T08:20:46.807571Z", "url": "https://files.pythonhosted.org/packages/98/12/7ba875d105f8c2114cdfd4fe2df8200c9d4168162ffc40209adaf79d4069/Authl-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "06256e036a92233d5c8393bd687bd000", "sha256": "c2654b228d6303f2c448885f1013a2954478097c07dc90e483aeed57b94a91ec" }, "downloads": -1, "filename": "Authl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "06256e036a92233d5c8393bd687bd000", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 19634, "upload_time": "2019-08-19T08:20:48", "upload_time_iso_8601": "2019-08-19T08:20:48.962783Z", "url": "https://files.pythonhosted.org/packages/09/05/c1118dfb83e21210026c2506728e1ef5340db510d8557e9549984ca01192/Authl-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0.post1": [ { "comment_text": "", "digests": { "md5": "6939afc0ab7fb5c3a6460203cffdff72", "sha256": "89691270ab39a7923d41a1723232206db71f334f8e0bf999c6ecc63d51d2441e" }, "downloads": -1, "filename": "Authl-0.2.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "6939afc0ab7fb5c3a6460203cffdff72", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27096, "upload_time": "2019-08-19T08:22:45", "upload_time_iso_8601": "2019-08-19T08:22:45.670979Z", "url": "https://files.pythonhosted.org/packages/57/00/711a09ec5340e80747c675187739bb17f2835616fd4815ff6cf3b446b78a/Authl-0.2.0.post1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "957b3edaf04ba748028752f100e9d84a", "sha256": "856b2fb47d0f33cec902d94335f5b137d2260674d29717dfc93471b280718161" }, "downloads": -1, "filename": "Authl-0.2.0.post1.tar.gz", "has_sig": false, "md5_digest": "957b3edaf04ba748028752f100e9d84a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 20822, "upload_time": "2019-08-19T08:22:47", "upload_time_iso_8601": "2019-08-19T08:22:47.437843Z", "url": "https://files.pythonhosted.org/packages/49/3f/4748cb15369cda09c5c96dcce43248cc108cc942c401329084c72a5fadfa/Authl-0.2.0.post1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d18c9ba92f4ad1affe16f69ca922dd73", "sha256": "5ea0c6b539e1e4073bd72315ade237d22a248d57bb056d4948ec39f5cfb7ec7c" }, "downloads": -1, "filename": "Authl-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d18c9ba92f4ad1affe16f69ca922dd73", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 27907, "upload_time": "2019-08-23T21:47:26", "upload_time_iso_8601": "2019-08-23T21:47:26.406952Z", "url": "https://files.pythonhosted.org/packages/ec/cd/d621d175fc1bf93083dca9541af9be9cb598428031ceb8d5ef68e2907353/Authl-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e7e28e6da3cd0b71a927ef21323f2155", "sha256": "487d9001a8c3305d8d1ef8f5687386e7a765e0f6da86b5f39e24ee8065344d90" }, "downloads": -1, "filename": "Authl-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e7e28e6da3cd0b71a927ef21323f2155", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 21698, "upload_time": "2019-08-23T21:47:28", "upload_time_iso_8601": "2019-08-23T21:47:28.113061Z", "url": "https://files.pythonhosted.org/packages/b8/53/23bab07df5dc40831090b33d9a844ed10aeb2597177be97a384bcb7799db/Authl-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "6569b9213936ff1e784f9d1d0375d08b", "sha256": "0cbabc9f6c7e5712cf34765d17ba9841d4ce1e5127ad2f3bae3f67c9b4063072" }, "downloads": -1, "filename": "Authl-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6569b9213936ff1e784f9d1d0375d08b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 28276, "upload_time": "2019-08-26T22:07:03", "upload_time_iso_8601": "2019-08-26T22:07:03.555022Z", "url": "https://files.pythonhosted.org/packages/6e/c4/887d16a95368a2a570e15049c8cbfdb81c89edca6d641f20eff2db0d3f78/Authl-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "50360198f8efe7bd2868a362029a6cf3", "sha256": "3a857452240aa24db8c1fce54f005e9aa71fcfc134ed07efae0b6c379985e160" }, "downloads": -1, "filename": "Authl-0.2.2.tar.gz", "has_sig": false, "md5_digest": "50360198f8efe7bd2868a362029a6cf3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22092, "upload_time": "2019-08-26T22:07:05", "upload_time_iso_8601": "2019-08-26T22:07:05.483704Z", "url": "https://files.pythonhosted.org/packages/e2/9e/226a59a835c033a9ded07b36212de0910cd803fff07708ba6d45c84e4bec/Authl-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ac2e398532dd373486eaf983a156f541", "sha256": "4a26a35a30a799336a58e8feaea8595dde1206951e3ef1f33cb41fb96e42f240" }, "downloads": -1, "filename": "Authl-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ac2e398532dd373486eaf983a156f541", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 28848, "upload_time": "2019-10-29T05:16:30", "upload_time_iso_8601": "2019-10-29T05:16:30.937512Z", "url": "https://files.pythonhosted.org/packages/9f/90/47b879cf700db9e8233ea7c9b998c21ed03031ed5567f99ccf3754134319/Authl-0.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8afbb931d6a915fd40fd6dcea2b142ba", "sha256": "ca1d15e53f95bb8527cebf96bb72f0fb183b262a0888567f5bd99b7c1201771c" }, "downloads": -1, "filename": "Authl-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8afbb931d6a915fd40fd6dcea2b142ba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22770, "upload_time": "2019-10-29T05:16:32", "upload_time_iso_8601": "2019-10-29T05:16:32.734744Z", "url": "https://files.pythonhosted.org/packages/d3/b0/b0d7ef08b1f1deea37aa6ef635f270adec6634353f876ca24ddc5a786d26/Authl-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "2f5caba5f170674e72d76b359e4fbb1e", "sha256": "6ff578f91dc61fb51554dc488be539520f15d18d28fe4b8e6f6aa231d3fb9fcf" }, "downloads": -1, "filename": "Authl-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "2f5caba5f170674e72d76b359e4fbb1e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 28905, "upload_time": "2019-10-30T00:54:03", "upload_time_iso_8601": "2019-10-30T00:54:03.974725Z", "url": "https://files.pythonhosted.org/packages/bc/b5/6fcc42af6e7dfef34559f2447f021c0a35cec4efe868ebd34dde99c78fb6/Authl-0.2.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "232dca0aa345d3a076808fcb6a65ce20", "sha256": "bd0548c07b4ce71547e52d90c01bc3da1aef274459fe551ff22bc27060e57c02" }, "downloads": -1, "filename": "Authl-0.2.4.tar.gz", "has_sig": false, "md5_digest": "232dca0aa345d3a076808fcb6a65ce20", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22831, "upload_time": "2019-10-30T00:54:05", "upload_time_iso_8601": "2019-10-30T00:54:05.686843Z", "url": "https://files.pythonhosted.org/packages/4a/08/435f560a1971a5e86c3d5568755b566e6bcaa228cb1223748a06e470c2a7/Authl-0.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "accb41fe4c9237fa8acccc69f3250016", "sha256": "063b5563d0114b0196221bccbdb3a8a339846f961f7e273f725f0e17dd9cc244" }, "downloads": -1, "filename": "Authl-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "accb41fe4c9237fa8acccc69f3250016", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29161, "upload_time": "2019-10-30T09:20:51", "upload_time_iso_8601": "2019-10-30T09:20:51.926509Z", "url": "https://files.pythonhosted.org/packages/d5/61/9d1ab48f69d3f5d1320fb330e2f5f0ce097b3fbe6784f8a9247f4e0e55a5/Authl-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "208434cf987ad666cfdc046866747e95", "sha256": "92e78d486f8d915b8e8e6288578cc25b5c709db8a55cc93ea1549f05ea003ec6" }, "downloads": -1, "filename": "Authl-0.3.0.tar.gz", "has_sig": false, "md5_digest": "208434cf987ad666cfdc046866747e95", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 22989, "upload_time": "2019-10-30T09:20:53", "upload_time_iso_8601": "2019-10-30T09:20:53.471797Z", "url": "https://files.pythonhosted.org/packages/8f/46/b597e0404ffe3805cbd5366e7e29328c9d55fa9f23380ace3897c9b02e92/Authl-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "aa41006260e4452d0a605e40ade60158", "sha256": "6b615781e385a77d9e1ce064b055e3c79a5faad4e3476bd1daef172c0c081135" }, "downloads": -1, "filename": "Authl-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "aa41006260e4452d0a605e40ade60158", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29800, "upload_time": "2019-10-30T21:49:12", "upload_time_iso_8601": "2019-10-30T21:49:12.283160Z", "url": "https://files.pythonhosted.org/packages/74/f6/10e5698595d48834d22f1566c5cdedea48c701f6f5a533d84792651bc4c2/Authl-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "32d6e5fa828cae5035214111048ce8a2", "sha256": "41be0e6cba06e275674b497f2a6d0d9dd389ddeb1a55396db42ee4ef9ec3388e" }, "downloads": -1, "filename": "Authl-0.3.1.tar.gz", "has_sig": false, "md5_digest": "32d6e5fa828cae5035214111048ce8a2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 23553, "upload_time": "2019-10-30T21:49:13", "upload_time_iso_8601": "2019-10-30T21:49:13.972432Z", "url": "https://files.pythonhosted.org/packages/0f/02/8c6cb699723a36fbe132e260e157d1c0b05cddf81aad1cf80035f1e7fbd2/Authl-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "50e9e015848054f3b11f881037cb802b", "sha256": "b2ae281371f58eea7e2234f1dbeac7555122672b6f0771332dc8ddcc86763ac6" }, "downloads": -1, "filename": "Authl-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "50e9e015848054f3b11f881037cb802b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29923, "upload_time": "2019-11-04T22:54:56", "upload_time_iso_8601": "2019-11-04T22:54:56.206951Z", "url": "https://files.pythonhosted.org/packages/d1/9b/79993c47f8ef321f66fc7930a305499b7f0e7398802fb58c346a2b17d1a9/Authl-0.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "98cbf1f8ab3953f45c1c77cdcee06bf4", "sha256": "ad58d6db909ee41dcb98fcc788623a928855420bac34b63b7dca6abc552e58e3" }, "downloads": -1, "filename": "Authl-0.3.2.tar.gz", "has_sig": false, "md5_digest": "98cbf1f8ab3953f45c1c77cdcee06bf4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 23677, "upload_time": "2019-11-04T22:54:58", "upload_time_iso_8601": "2019-11-04T22:54:58.428637Z", "url": "https://files.pythonhosted.org/packages/e8/55/2daa31fdbb08945011da7a2e1579488d76b89c37b91c2235a93fb486748b/Authl-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "ea84b703966303b75b932ee0c5a1e460", "sha256": "183a2b0a8bfeb3d1e3db593c6e58ab5aeb1939f621e6f932bb776da176f57604" }, "downloads": -1, "filename": "Authl-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ea84b703966303b75b932ee0c5a1e460", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 29992, "upload_time": "2019-11-15T06:19:34", "upload_time_iso_8601": "2019-11-15T06:19:34.906422Z", "url": "https://files.pythonhosted.org/packages/3e/ea/488b1320a889393fb29ee9334f9dc7ae3c13f0f45e68c286e03a6055df11/Authl-0.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0ab7fcc628d66b8bb253ac19f3251f96", "sha256": "e02c39f042087a1a86b44a7422b58e20a0bc5d12d75a2b290ddff5ed5bf8b9c0" }, "downloads": -1, "filename": "Authl-0.3.3.tar.gz", "has_sig": false, "md5_digest": "0ab7fcc628d66b8bb253ac19f3251f96", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 23763, "upload_time": "2019-11-15T06:19:36", "upload_time_iso_8601": "2019-11-15T06:19:36.699379Z", "url": "https://files.pythonhosted.org/packages/65/6f/518b8f1ceb82a0c957b9421911526432c2ad51a273c91ffb836392cda2e5/Authl-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "b1152a3509169e7553ce619a103a13ac", "sha256": "a9d679ba6254aeabc458ac3aa4dfae3b4019d2b0ae8212b1301d65d57582db8b" }, "downloads": -1, "filename": "Authl-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b1152a3509169e7553ce619a103a13ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 30778, "upload_time": "2019-12-04T04:03:04", "upload_time_iso_8601": "2019-12-04T04:03:04.892780Z", "url": "https://files.pythonhosted.org/packages/6c/54/271a8c75165ea5c831ce1106b8b885b222f1711db25ed8ffa3fc652199b3/Authl-0.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8a765f6030acf505d12412cc12a64b0e", "sha256": "5df4eed57878cca1b5dfd92e741b61342732fda0d67833f0eb8e4f1065738649" }, "downloads": -1, "filename": "Authl-0.3.4.tar.gz", "has_sig": false, "md5_digest": "8a765f6030acf505d12412cc12a64b0e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 24426, "upload_time": "2019-12-04T04:03:06", "upload_time_iso_8601": "2019-12-04T04:03:06.772927Z", "url": "https://files.pythonhosted.org/packages/d6/46/2ad607696c87b352872e7dd8c0dfc8a20196a7926fd25751dd29eb822c89/Authl-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "903839f73685dd08d17403c05c1036bb", "sha256": "a240ae1fdbc93f351ed07c888cbcb99bf9ed7184b43e920823f8fb58d3a91c71" }, "downloads": -1, "filename": "Authl-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "903839f73685dd08d17403c05c1036bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 31026, "upload_time": "2019-12-14T22:03:42", "upload_time_iso_8601": "2019-12-14T22:03:42.189036Z", "url": "https://files.pythonhosted.org/packages/4b/b3/e6e138c2f64ea84043f687af4157788e20ef28b6224c71e63bca446f6576/Authl-0.3.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4a1e71f887d7322841f9ff7a1dfd2bcd", "sha256": "1eb8e5a2d25d87b915850ead529dfe58cd3bd279eaac17d5fdb25069ed6db111" }, "downloads": -1, "filename": "Authl-0.3.5.tar.gz", "has_sig": false, "md5_digest": "4a1e71f887d7322841f9ff7a1dfd2bcd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 24695, "upload_time": "2019-12-14T22:03:43", "upload_time_iso_8601": "2019-12-14T22:03:43.809455Z", "url": "https://files.pythonhosted.org/packages/66/a3/3eb1fa979783a3b25bfd7bdb2ec46af29e3a1ce382315dab60b2b17d4daa/Authl-0.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "f05c0a86fe8c3cc4afb515bac1a36160", "sha256": "f3ac402fe1681c84fd9e1eb42400cf8ce1dcdcd6e5c491003938a701fd020b7b" }, "downloads": -1, "filename": "Authl-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "f05c0a86fe8c3cc4afb515bac1a36160", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 31026, "upload_time": "2020-04-16T21:38:22", "upload_time_iso_8601": "2020-04-16T21:38:22.100972Z", "url": "https://files.pythonhosted.org/packages/dd/00/e1ec4beca7d74a636a1ae08be6c3094612b953ca6b48ae7f2ad0b42685ec/Authl-0.3.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a9560d84442988b3b729ccf330535bf8", "sha256": "c9ff7985260d2e236f6d94c00d19fd944fcd83fa5d07ebef76ec6e81deb642fd" }, "downloads": -1, "filename": "Authl-0.3.6.tar.gz", "has_sig": false, "md5_digest": "a9560d84442988b3b729ccf330535bf8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 24725, "upload_time": "2020-04-16T21:38:24", "upload_time_iso_8601": "2020-04-16T21:38:24.057635Z", "url": "https://files.pythonhosted.org/packages/de/a7/361f317828ebedb305c6bab2031bbd590b78c0aa857451cdacd7aa445f04/Authl-0.3.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "fe61656969fd33316b02647c7995e37a", "sha256": "3b78864f0e521c2a68ab8e9de52a9a00093e205816d3d58c17d372225e5a0a89" }, "downloads": -1, "filename": "Authl-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fe61656969fd33316b02647c7995e37a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 33512, "upload_time": "2020-05-31T08:57:37", "upload_time_iso_8601": "2020-05-31T08:57:37.482395Z", "url": "https://files.pythonhosted.org/packages/54/d8/4aa8822bb202b36f6ffa7e8c4293c6ac326889c5992a7cfb3881a50eb422/Authl-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8b0f1df52aae32f7a997a85b16db38f6", "sha256": "803d9975362dd8edf171ffd105401fae0783ca9058cde63c78e3f4e2e6f1cd48" }, "downloads": -1, "filename": "Authl-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8b0f1df52aae32f7a997a85b16db38f6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 26303, "upload_time": "2020-05-31T08:57:38", "upload_time_iso_8601": "2020-05-31T08:57:38.889658Z", "url": "https://files.pythonhosted.org/packages/5f/5c/9160acd7ce1f0f60c47edf3ca664aebb8765f46ae7649edcdb01b7237322/Authl-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0.post1": [ { "comment_text": "", "digests": { "md5": "8887a0a0ae7c23f05f1437b9afcfbe58", "sha256": "e601aa800b6485c0f5d24ecc00cff8bf19c24f16d05d8551b293866c98620be1" }, "downloads": -1, "filename": "Authl-0.4.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "8887a0a0ae7c23f05f1437b9afcfbe58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 38705, "upload_time": "2020-05-31T09:09:06", "upload_time_iso_8601": "2020-05-31T09:09:06.393784Z", "url": "https://files.pythonhosted.org/packages/73/c3/576830477b6a31b6287881b1f286c86001e66e89c44aecefaeb289eb5dcf/Authl-0.4.0.post1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3aa5f96509b07ab5eb17d3806e94e362", "sha256": "871288f31f0d9c50e0fdd72642845e2828ed99b68a98fd9c525cafe1cd713ed7" }, "downloads": -1, "filename": "Authl-0.4.0.post1.tar.gz", "has_sig": false, "md5_digest": "3aa5f96509b07ab5eb17d3806e94e362", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 30850, "upload_time": "2020-05-31T09:09:07", "upload_time_iso_8601": "2020-05-31T09:09:07.465467Z", "url": "https://files.pythonhosted.org/packages/f0/06/b1309ec2e9dc150be0e1cb72a7531b7f1809515bd3838e8c747e3068f001/Authl-0.4.0.post1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "f303808b0d4b7cb4003d8fd3efea384a", "sha256": "d26a50bae97142fc12a56ab2e1293780fa34ffc2313d0ab40e15add77ee94cde" }, "downloads": -1, "filename": "Authl-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f303808b0d4b7cb4003d8fd3efea384a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 50682, "upload_time": "2020-07-05T08:43:53", "upload_time_iso_8601": "2020-07-05T08:43:53.520489Z", "url": "https://files.pythonhosted.org/packages/f3/c9/079d051e6a1c20f499c2bd1b538f4662ae5dd010578b6a380d2ec0e71be2/Authl-0.4.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f1a2ff71278a4a83dd0e3ef974b432e6", "sha256": "071a236402363bcdf69edeef7a32b076db949a13e5d7b948ca59b35866787007" }, "downloads": -1, "filename": "Authl-0.4.1.tar.gz", "has_sig": false, "md5_digest": "f1a2ff71278a4a83dd0e3ef974b432e6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 38890, "upload_time": "2020-07-05T08:43:55", "upload_time_iso_8601": "2020-07-05T08:43:55.406938Z", "url": "https://files.pythonhosted.org/packages/f5/02/d1451f4258cd53d96235ce0d62e141899f6e02ae2e9944333327f3a402cf/Authl-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "000f56f4877f43857c71c6c19d14da1c", "sha256": "16da58d8c8b2e8f01d6c11b7de7a415da8532a2f5f723c47c59e73a31e26d7b6" }, "downloads": -1, "filename": "Authl-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "000f56f4877f43857c71c6c19d14da1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 40209, "upload_time": "2020-07-22T03:23:18", "upload_time_iso_8601": "2020-07-22T03:23:18.624346Z", "url": "https://files.pythonhosted.org/packages/ed/23/83c3f5e03136d43f38304f767f6e21970d653a86f16c864259cb960ce53e/Authl-0.4.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d9ff4350f30046a00502e8825949acde", "sha256": "5499965ba04eba6f2b4907147c6e977f30f75d2d04853ae4a3bec35a916965ee" }, "downloads": -1, "filename": "Authl-0.4.2.tar.gz", "has_sig": false, "md5_digest": "d9ff4350f30046a00502e8825949acde", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 35964, "upload_time": "2020-07-22T03:23:19", "upload_time_iso_8601": "2020-07-22T03:23:19.965865Z", "url": "https://files.pythonhosted.org/packages/38/b5/088e6260e25d9e090e81df7dc8106ea428add17d8090aea5531dea2dcc58/Authl-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "f81fab976922bef499d38c6778482464", "sha256": "c035aadb66afe717bd3fd2ab1acf043bbc7c9e4f65c1ae2e5936f45062553779" }, "downloads": -1, "filename": "Authl-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f81fab976922bef499d38c6778482464", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 42019, "upload_time": "2020-08-01T21:09:25", "upload_time_iso_8601": "2020-08-01T21:09:25.460678Z", "url": "https://files.pythonhosted.org/packages/0d/3b/e2bcda0f2adba2d1f9317617b895c059cc233fa2a3b5353df9992595e953/Authl-0.4.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a4435316c14c4473a645586b467a8a37", "sha256": "d9ed646b50b31cac7604d8c6ab7ef83dd531be5bfba02cb79e220b929303516e" }, "downloads": -1, "filename": "Authl-0.4.3.tar.gz", "has_sig": false, "md5_digest": "a4435316c14c4473a645586b467a8a37", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 37672, "upload_time": "2020-08-01T21:09:26", "upload_time_iso_8601": "2020-08-01T21:09:26.647303Z", "url": "https://files.pythonhosted.org/packages/cc/8a/79e432c6b53df3f79960d9ada3515e885d17dbf7c63b7e3fecfc6b50cc21/Authl-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "795ff5e9e7928730db10c2d2012cb624", "sha256": "1102b47997ea10887e0b66cf183a042c9fba3a373b4b33022533a4928adc7eb4" }, "downloads": -1, "filename": "Authl-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "795ff5e9e7928730db10c2d2012cb624", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 42208, "upload_time": "2020-08-12T06:55:19", "upload_time_iso_8601": "2020-08-12T06:55:19.646046Z", "url": "https://files.pythonhosted.org/packages/37/0d/8a08815df364c878e4bbb3cdb8686288d6ba5ed6388021b28191a5c5c1ef/Authl-0.4.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7b2d6879a48564ba2597f2d2952102c0", "sha256": "650225bb06ba216a444e36d4ffef767e1523813f6faaf7e86c6eeb4370b78ab7" }, "downloads": -1, "filename": "Authl-0.4.4.tar.gz", "has_sig": false, "md5_digest": "7b2d6879a48564ba2597f2d2952102c0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 37738, "upload_time": "2020-08-12T06:55:21", "upload_time_iso_8601": "2020-08-12T06:55:21.402781Z", "url": "https://files.pythonhosted.org/packages/49/1e/4c29e485ab5b24b19b1c40a87ca8cda28ebac6051e4f781e4a26739dd370/Authl-0.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "bdcc0063d8168ddf4b5d1f1864d378e8", "sha256": "7291237cf3c5d0ac5df8d9df390bb443f872144ed6ef91935ac310adf3caf798" }, "downloads": -1, "filename": "Authl-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "bdcc0063d8168ddf4b5d1f1864d378e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 42843, "upload_time": "2020-09-08T00:30:57", "upload_time_iso_8601": "2020-09-08T00:30:57.998103Z", "url": "https://files.pythonhosted.org/packages/d4/c9/39ed7386f85112bd2a53d3969e1de9ab882b0a1bafd85accfbcc14129e30/Authl-0.4.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bf1bb6e8bf967769ba79acec281acd0a", "sha256": "55d71239f009d7c3a663d120d2834b65f7d135b0e82e80e3b8b208de2955bffa" }, "downloads": -1, "filename": "Authl-0.4.5.tar.gz", "has_sig": false, "md5_digest": "bf1bb6e8bf967769ba79acec281acd0a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 38315, "upload_time": "2020-09-08T00:30:59", "upload_time_iso_8601": "2020-09-08T00:30:59.407095Z", "url": "https://files.pythonhosted.org/packages/0d/85/9455d9b9a06d809854fd0c662cbeb03109240e021edd9da11edf8c9155e9/Authl-0.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "e40f4a9c3687cfad8e19905f9d532423", "sha256": "a8f4dfbad5d38d36b4406b9036f83ef04bf07d777cb50481b5ad85e92bcebaca" }, "downloads": -1, "filename": "Authl-0.4.6-py3-none-any.whl", "has_sig": false, "md5_digest": "e40f4a9c3687cfad8e19905f9d532423", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 42654, "upload_time": "2020-12-04T07:53:28", "upload_time_iso_8601": "2020-12-04T07:53:28.957159Z", "url": "https://files.pythonhosted.org/packages/d5/28/adc795561d45f439ce6700039c227d7d310c97b1abfee16e2ff1a887ffab/Authl-0.4.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "82a5a71155e8f7ca594f703c86f13ed3", "sha256": "a5937f8281a0d97d32faa7bb75fb313bca87cffd70074399ee13a5887d0f0c52" }, "downloads": -1, "filename": "Authl-0.4.6.tar.gz", "has_sig": false, "md5_digest": "82a5a71155e8f7ca594f703c86f13ed3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 38189, "upload_time": "2020-12-04T07:53:30", "upload_time_iso_8601": "2020-12-04T07:53:30.434924Z", "url": "https://files.pythonhosted.org/packages/bb/19/ddbeb592195a1649185df16d46416f9c320e7e132440dd61c3b79b3b6e96/Authl-0.4.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "70c5de1d767aa83a4e2f84cd550058a7", "sha256": "a9b46a62c46f7431df2445ad0e94dc6e19b676482923956128f65186edf3b1da" }, "downloads": -1, "filename": "Authl-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "70c5de1d767aa83a4e2f84cd550058a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 42910, "upload_time": "2021-07-06T19:54:22", "upload_time_iso_8601": "2021-07-06T19:54:22.620731Z", "url": "https://files.pythonhosted.org/packages/e4/20/bc28319279b80bcdf865ac44122c636979a1deb4773f0249dfe354f9ba4d/Authl-0.5.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2ed5f6713447ee0d4d93be2942499119", "sha256": "df096f057dca048d641224d80e0df2daa31826726dcb7fd3b88c4f6aac10bf2b" }, "downloads": -1, "filename": "Authl-0.5.0.tar.gz", "has_sig": false, "md5_digest": "2ed5f6713447ee0d4d93be2942499119", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 38268, "upload_time": "2021-07-06T19:54:24", "upload_time_iso_8601": "2021-07-06T19:54:24.150805Z", "url": "https://files.pythonhosted.org/packages/97/71/29d77366d1d47fbfa44f8a10cd4d941b8c9dfeb8a9100d3f5eae76adf7d4/Authl-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "2a5b3295b1a03eac264dc435c17f82e6", "sha256": "6f11ec2a13caddece204db97504d438672ff05185fc1d57a879539051a7f4c40" }, "downloads": -1, "filename": "Authl-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2a5b3295b1a03eac264dc435c17f82e6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 43199, "upload_time": "2021-08-29T08:20:25", "upload_time_iso_8601": "2021-08-29T08:20:25.286782Z", "url": "https://files.pythonhosted.org/packages/d5/ec/473bede4213909061f032a94183a1881a9c800b6b5c5183a5d2418fd4471/Authl-0.5.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ca938cae8f3c8621031f68dbd6626775", "sha256": "18a317a9fbe89899d6833820e95d439328b92963b8e9cb65b26ce960047d0fe2" }, "downloads": -1, "filename": "Authl-0.5.1.tar.gz", "has_sig": false, "md5_digest": "ca938cae8f3c8621031f68dbd6626775", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 38556, "upload_time": "2021-08-29T08:20:26", "upload_time_iso_8601": "2021-08-29T08:20:26.660516Z", "url": "https://files.pythonhosted.org/packages/19/6f/85eb998eff9702591d3b12bbda19b11bcfe99c2d6e9892440c769859e9db/Authl-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "f271bdf9b9da9c5f27fa4364bf55bd2e", "sha256": "d092859766b76b4666036f90645abfd02a6eed922b7f6a539cdce42cc8ffa286" }, "downloads": -1, "filename": "Authl-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f271bdf9b9da9c5f27fa4364bf55bd2e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 43522, "upload_time": "2021-08-31T05:47:01", "upload_time_iso_8601": "2021-08-31T05:47:01.966379Z", "url": "https://files.pythonhosted.org/packages/dc/ea/562a95ce3a808cbecf5866f38406d207aebdf1a8f7b115729d1b2b3daa7b/Authl-0.5.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ad3229ef8ba941d6b66b53d2d220aa5f", "sha256": "c4a737c976f0a8c0e6b2b8f4b79c29cfcbf75a93e58ee26b4a1e509f48595393" }, "downloads": -1, "filename": "Authl-0.5.2.tar.gz", "has_sig": false, "md5_digest": "ad3229ef8ba941d6b66b53d2d220aa5f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 38907, "upload_time": "2021-08-31T05:47:03", "upload_time_iso_8601": "2021-08-31T05:47:03.663722Z", "url": "https://files.pythonhosted.org/packages/09/95/4ca12d7c189fb8cbb4271be2a47c1d1700d860cfc6a4ba102cdf595536be/Authl-0.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "9d3d575d69d402f636c11dabc6024f2d", "sha256": "aae4f219c7b998ef25bfd0e594e45a0d808150d70c1441f823d08ae025e507f5" }, "downloads": -1, "filename": "Authl-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9d3d575d69d402f636c11dabc6024f2d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 43827, "upload_time": "2021-10-14T20:20:45", "upload_time_iso_8601": "2021-10-14T20:20:45.256883Z", "url": "https://files.pythonhosted.org/packages/ff/21/388449a832e52114741c3fb2ff772a440be7bc59ddf9601dd813d9951262/Authl-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a8e76470bb85e04eaab49208ae58cc39", "sha256": "e275adcc7bec5705f7098dfe8d154a7e616a248e3f0e5fc53a6dae63b7aaceda" }, "downloads": -1, "filename": "Authl-0.6.0.tar.gz", "has_sig": false, "md5_digest": "a8e76470bb85e04eaab49208ae58cc39", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 39212, "upload_time": "2021-10-14T20:20:47", "upload_time_iso_8601": "2021-10-14T20:20:47.448816Z", "url": "https://files.pythonhosted.org/packages/d0/4b/db42ccb360924ef16ecd92d435428a952e314b3bcd47f411e890155e0abd/Authl-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9d3d575d69d402f636c11dabc6024f2d", "sha256": "aae4f219c7b998ef25bfd0e594e45a0d808150d70c1441f823d08ae025e507f5" }, "downloads": -1, "filename": "Authl-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9d3d575d69d402f636c11dabc6024f2d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 43827, "upload_time": "2021-10-14T20:20:45", "upload_time_iso_8601": "2021-10-14T20:20:45.256883Z", "url": "https://files.pythonhosted.org/packages/ff/21/388449a832e52114741c3fb2ff772a440be7bc59ddf9601dd813d9951262/Authl-0.6.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a8e76470bb85e04eaab49208ae58cc39", "sha256": "e275adcc7bec5705f7098dfe8d154a7e616a248e3f0e5fc53a6dae63b7aaceda" }, "downloads": -1, "filename": "Authl-0.6.0.tar.gz", "has_sig": false, "md5_digest": "a8e76470bb85e04eaab49208ae58cc39", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 39212, "upload_time": "2021-10-14T20:20:47", "upload_time_iso_8601": "2021-10-14T20:20:47.448816Z", "url": "https://files.pythonhosted.org/packages/d0/4b/db42ccb360924ef16ecd92d435428a952e314b3bcd47f411e890155e0abd/Authl-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }