{"info":{"author":"Joakim Uddholm","author_email":"tethik@gmail.com","bugtrack_url":null,"classifiers":["Development Status :: 4 - Beta","Environment :: Web Environment","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Topic :: Internet :: WWW/HTTP :: Dynamic Content","Topic :: Security","Topic :: Software Development :: Libraries :: Python Modules"],"description":"\n# flask-session-captcha\n\n[![Latest version](https://img.shields.io/pypi/v/flask-session-captcha.svg)](https://pypi.python.org/pypi/flask-session-captcha)\n[![Supported python versions](https://img.shields.io/pypi/pyversions/flask-session-captcha.svg)](https://pypi.python.org/pypi/flask-session-captcha)\n[![License](https://img.shields.io/github/license/Tethik/flask-session-captcha.svg)](https://github.com/Tethik/flask-session-captcha/blob/master/LICENSE)\n\n[![Downloads](https://static.pepy.tech/badge/flask-session-captcha)](https://pepy.tech/project/flask-session-captcha)\n[![Downloads](https://static.pepy.tech/badge/flask-session-captcha/month)](https://pepy.tech/project/flask-session-captcha)\n[![Downloads](https://static.pepy.tech/badge/flask-session-captcha/week)](https://pepy.tech/project/flask-session-captcha)\n\n****\nA captcha implemention for flask using [flask-session](https://pypi.python.org/pypi/Flask-Session/) and [captcha](https://pypi.python.org/pypi/captcha/) packages. \nEach captcha challenge answer is saved in the server side session of the challenged client.\nSupport for different types of captchas such as numeric/letter/symbol captchas.\n\n## Requirements\n* [Flask](https://pypi.python.org/pypi/Flask/)\n* [flask-session](https://pypi.python.org/pypi/Flask-Session/) with packages depending on which SESSION_TYPE you use. E.g. sqlalchemy requires flask-sqlalchemy.\n* [captcha](https://pypi.python.org/pypi/captcha/)\n\n## Changelog\n\n* **1.4.2** - Bump pillow from 10.2.0 to 10.3.0 by @dependabot in #49\n* **1.4.1** - Fix error thrown when flask-session-captcha is init-ed without a Flask app object. Rename CAPTCHA_LOG environment variable to CAPTCHA_DEBUG_LOG.\n* **1.4.0** - Migrated from `flask-sessionstore` to `flask-session`. Added functionality for alphabetic and punctuation characters to be included in the captcha (thanks @alisharify7). Support moved to python 3.8, 3.9, 3.10, 3.11.\n\n## Usage\n```python\nimport uuid\nimport logging\nfrom flask import Flask, request, render_template\nfrom flask_session import Session\nfrom flask_session_captcha import FlaskSessionCaptcha\n\napp = Flask(__name__)\napp.config[\"SECRET_KEY\"] = uuid.uuid4().hex\n\n# captcha configs:\napp.config['CAPTCHA_ENABLE'] = True\napp.config['CAPTCHA_LENGTH'] = 5\napp.config['CAPTCHA_WIDTH'] = 200\napp.config['CAPTCHA_HEIGHT'] = 160\n# app.config['CAPTCHA_LOG'] = False # log information to terminal\n# app.config['CAPTCHA_INCLUDE_ALPHABET'] = False\n# app.config['CAPTCHA_INCLUDE_NUMERIC'] = True\n# app.config['CAPTCHA_INCLUDE_PUNCTUATION'] = False\n# app.config['CAPTCHA_SESSION_KEY'] = 'captcha_image' # In case you want to use another key in your session to store the captcha\n\n# session config\napp.config['SESSION_TYPE'] = 'redis' # or other type of drivers for session, see https://flask-session.readthedocs.io/en/latest/\nSession(app)\ncaptcha = FlaskSessionCaptcha(app)\n\n@app.route('/', methods=['POST','GET'])\ndef some_route():\n    if request.method == \"POST\":\n        if captcha.validate():\n            return \"captcha validated successfully\"\n        else:\n            return \"invalid captcha/answer\"\n\n    return render_template(\"form.html\")\n\nif __name__ == \"__main__\":\n    app.run(debug=True)\n```\n\n\nTemplate can look as follows. `captcha.validate()` will be default try to validate against a form input with name \"captcha\".\n\n```html\n<form method=\"POST\">\n    {{ captcha() }} <!-- This renders an <img> tag with the captcha img. -->\n    <input type=\"text\" name=\"captcha\">\n    <input type=\"submit\">\n</form>\n```\n\nIt can also take a `css_class` argument to add classes to the generated DOM:\n\n```html\n<form method=\"POST\">\n    {{ captcha(css_class=\"captcha\") }}\n    <input type=\"text\" name=\"captcha\">\n    <input type=\"submit\">\n</form>\n```\n\nYou can also override settings for the captcha contents itself, via `include_alphabet`, `include_numeric` and `include_punctuation`.\nLike so:\n\n```html\n<form method=\"POST\">\n    {{ captcha(include_alphabet=True) }}\n    <input type=\"text\" name=\"captcha\">\n    <input type=\"submit\">\n</form>\n```\n","description_content_type":"text/markdown","docs_url":null,"download_url":null,"downloads":{"last_day":-1,"last_month":-1,"last_week":-1},"dynamic":null,"home_page":"https://github.com/Tethik/flask-session-captcha","keywords":null,"license":"MIT","license_expression":null,"license_files":null,"maintainer":null,"maintainer_email":null,"name":"flask-session-captcha","package_url":"https://pypi.org/project/flask-session-captcha/","platform":null,"project_url":"https://pypi.org/project/flask-session-captcha/","project_urls":{"Homepage":"https://github.com/Tethik/flask-session-captcha"},"provides_extra":null,"release_url":"https://pypi.org/project/flask-session-captcha/1.5.0/","requires_dist":["captcha","Flask","markupsafe"],"requires_python":null,"summary":"Captcha implementation for flask and flask-session.","version":"1.5.0","yanked":false,"yanked_reason":null},"last_serial":25505931,"ownership":{"organization":null,"roles":[{"role":"Owner","user":"tethik"}]},"releases":{"1.0.0":[{"comment_text":"","core-metadata":{"sha256":"5c1e2deba85b113188676841037a28e7adf9467417c22ade72f3d9d2e5d5a624"},"digests":{"blake2b_256":"0431dedc6bf9121d1edf98ad823f6d9afb59515e49aa172d5b77a3194a8989ab","md5":"f2412c7db6db3f9d03cf24d49a40401e","sha256":"8af12b433457714a0b43cd037d4297726e17dd639c3ffd3b6b433611cda5d0d2"},"downloads":-1,"filename":"flask_session_captcha-1.0.0-py2.py3-none-any.whl","has_sig":false,"md5_digest":"f2412c7db6db3f9d03cf24d49a40401e","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6945,"upload_time":"2017-07-09T01:54:32","upload_time_iso_8601":"2017-07-09T01:54:32.096115Z","url":"https://files.pythonhosted.org/packages/04/31/dedc6bf9121d1edf98ad823f6d9afb59515e49aa172d5b77a3194a8989ab/flask_session_captcha-1.0.0-py2.py3-none-any.whl","yanked":false,"yanked_reason":null}],"1.0.1":[{"comment_text":"","core-metadata":{"sha256":"528ceb6e5d1ad4c454be98228aecde55d9ab2f35a2262666e46b3e7d84360762"},"digests":{"blake2b_256":"3e71c371a838e135e0d2ad9ebf12dcff967af29e4e9f47dd5c757ff07877ac9f","md5":"e7727d976b1e38adbdb0ae4590c81698","sha256":"6e29a5010600e6870e23b02ef550bc82436192917ebf736f753d13af9488a2f2"},"downloads":-1,"filename":"flask_session_captcha-1.0.1-py2.py3-none-any.whl","has_sig":false,"md5_digest":"e7727d976b1e38adbdb0ae4590c81698","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6041,"upload_time":"2017-07-09T05:04:33","upload_time_iso_8601":"2017-07-09T05:04:33.452788Z","url":"https://files.pythonhosted.org/packages/3e/71/c371a838e135e0d2ad9ebf12dcff967af29e4e9f47dd5c757ff07877ac9f/flask_session_captcha-1.0.1-py2.py3-none-any.whl","yanked":false,"yanked_reason":null}],"1.0.2":[{"comment_text":"","core-metadata":{"sha256":"13582490f70b41e181c570f42e6126773d9bd4ae57d53f7f57983cafc179d217"},"digests":{"blake2b_256":"3c301e2b000b88b162b6e168c1abec47235fc8cef1b5d2af2da8ae4b4d339250","md5":"f3233abf1d8db66b55a274b37984cad7","sha256":"7cc5740e83bff49120a6d6f1e57ea503fd045736f1c6402c215037831f0880d1"},"downloads":-1,"filename":"flask_session_captcha-1.0.2-py2.py3-none-any.whl","has_sig":false,"md5_digest":"f3233abf1d8db66b55a274b37984cad7","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6004,"upload_time":"2017-07-15T09:29:26","upload_time_iso_8601":"2017-07-15T09:29:26.521823Z","url":"https://files.pythonhosted.org/packages/3c/30/1e2b000b88b162b6e168c1abec47235fc8cef1b5d2af2da8ae4b4d339250/flask_session_captcha-1.0.2-py2.py3-none-any.whl","yanked":false,"yanked_reason":null}],"1.0.3":[{"comment_text":"","core-metadata":{"sha256":"44dd58828de5109553a89dab16fef481f8cd6799aec4549de5bd81ea97416d47"},"digests":{"blake2b_256":"9792597b8a7295a0c2f126e111e59a015b231669076eacb1df0d8ad2ab12b838","md5":"2cee37f1da12acd12936e4d2ba1263e5","sha256":"47ddfcfe8db253ea3128c5786c6dea4fc856f36b0ad4eb17c30a5a31cc7f8cc9"},"downloads":-1,"filename":"flask_session_captcha-1.0.3-py2.py3-none-any.whl","has_sig":false,"md5_digest":"2cee37f1da12acd12936e4d2ba1263e5","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6030,"upload_time":"2017-07-16T16:24:01","upload_time_iso_8601":"2017-07-16T16:24:01.293811Z","url":"https://files.pythonhosted.org/packages/97/92/597b8a7295a0c2f126e111e59a015b231669076eacb1df0d8ad2ab12b838/flask_session_captcha-1.0.3-py2.py3-none-any.whl","yanked":false,"yanked_reason":null}],"1.1.0":[{"comment_text":"","core-metadata":{"sha256":"255fba9dad36c7a5532934ed12c66e8ad597d481f2544208405edafa3a463609"},"digests":{"blake2b_256":"cc81bd8837aea807db9ced9e32a6fb45fef72d318c7338e39b4c00f1bd30f1bb","md5":"49f9deeb2fcd7582d66d45ea624a9526","sha256":"e65ddd3c269f6a27b64b5badb3aa6ff31642f044863dd33240ba810e69705159"},"downloads":-1,"filename":"flask_session_captcha-1.1.0-py2.py3-none-any.whl","has_sig":false,"md5_digest":"49f9deeb2fcd7582d66d45ea624a9526","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6048,"upload_time":"2017-08-12T19:20:26","upload_time_iso_8601":"2017-08-12T19:20:26.527745Z","url":"https://files.pythonhosted.org/packages/cc/81/bd8837aea807db9ced9e32a6fb45fef72d318c7338e39b4c00f1bd30f1bb/flask_session_captcha-1.1.0-py2.py3-none-any.whl","yanked":false,"yanked_reason":null}],"1.2.0":[{"comment_text":"","core-metadata":{"sha256":"101f6c90c54d88d605d47645a0ac595a2429d0b42d17873ba140450ba9c985c1"},"digests":{"blake2b_256":"f7779722ba9462a57b664442f5e8762bb55d1654c40884ba2d82b8dd4f868050","md5":"4062883321bd1f1382a61caadbc08e0d","sha256":"7a2f5789efefb1b83a63f6ab5e0acf9f18c5f0d0ad2ba4a8687a30a4ec289038"},"downloads":-1,"filename":"flask_session_captcha-1.2.0-py2.py3-none-any.whl","has_sig":false,"md5_digest":"4062883321bd1f1382a61caadbc08e0d","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":4870,"upload_time":"2019-12-01T16:56:13","upload_time_iso_8601":"2019-12-01T16:56:13.470218Z","url":"https://files.pythonhosted.org/packages/f7/77/9722ba9462a57b664442f5e8762bb55d1654c40884ba2d82b8dd4f868050/flask_session_captcha-1.2.0-py2.py3-none-any.whl","yanked":false,"yanked_reason":null}],"1.2.1":[{"comment_text":"","core-metadata":{"sha256":"fd0bf5933bde7e9d6013eb99f853af620d6e05dbe1f4e95f0a783df9bb2f9fcf"},"digests":{"blake2b_256":"a850db5046cdc8c12e175ae983556ea986d581bc159077748c2aa6087cf07491","md5":"af66e7427da802179d7d159afd4d3799","sha256":"325e4c0cbd0b70bf243d420633eecab0de7867179fbb9f0f62b4a4938c50e071"},"downloads":-1,"filename":"flask_session_captcha-1.2.1-py2.py3-none-any.whl","has_sig":false,"md5_digest":"af66e7427da802179d7d159afd4d3799","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":4798,"upload_time":"2022-04-23T22:49:34","upload_time_iso_8601":"2022-04-23T22:49:34.822833Z","url":"https://files.pythonhosted.org/packages/a8/50/db5046cdc8c12e175ae983556ea986d581bc159077748c2aa6087cf07491/flask_session_captcha-1.2.1-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"05228ccbc7d4ff626cafd5cb6bd0b770ec7e1097cae35a145f730e75daee4867","md5":"d6bb7e5da475941ae89d96b9a10ca764","sha256":"daee7e3bd96787ecf3e74843e605414adb708fbb9ac6847dd49e16903001ee11"},"downloads":-1,"filename":"flask_session_captcha-1.2.1.tar.gz","has_sig":false,"md5_digest":"d6bb7e5da475941ae89d96b9a10ca764","packagetype":"sdist","python_version":"source","requires_python":null,"size":4488,"upload_time":"2022-04-23T22:49:36","upload_time_iso_8601":"2022-04-23T22:49:36.438550Z","url":"https://files.pythonhosted.org/packages/05/22/8ccbc7d4ff626cafd5cb6bd0b770ec7e1097cae35a145f730e75daee4867/flask_session_captcha-1.2.1.tar.gz","yanked":false,"yanked_reason":null}],"1.2.2":[{"comment_text":"","core-metadata":{"sha256":"45d31967ec6d115c85b32ee817cdb414f139a86cea86234c17eb200d65bbbd59"},"digests":{"blake2b_256":"00c2cb7512d6c75b98e582e2ea4e5b6c46b0ee9eba4bdee82b84ce51f347048b","md5":"da2d1c87a13089cdf6d1b78b64551f5d","sha256":"bf9b7a7ac35396d2557ae65059837181277968738eb6ba985cb814f06a99468d"},"downloads":-1,"filename":"flask_session_captcha-1.2.2-py2.py3-none-any.whl","has_sig":false,"md5_digest":"da2d1c87a13089cdf6d1b78b64551f5d","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":4880,"upload_time":"2022-04-24T15:23:54","upload_time_iso_8601":"2022-04-24T15:23:54.513318Z","url":"https://files.pythonhosted.org/packages/00/c2/cb7512d6c75b98e582e2ea4e5b6c46b0ee9eba4bdee82b84ce51f347048b/flask_session_captcha-1.2.2-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"946edb0ab064ee468abbfb5fce4bfa5e22555b76fe9fcba7084250b7fb8644ce","md5":"afad790ab229befff1b7ff6b13e423c6","sha256":"c637b78f5d42b5f33042de9712389c4771b04ad9514c3f56513ac9dabf321909"},"downloads":-1,"filename":"flask_session_captcha-1.2.2.tar.gz","has_sig":false,"md5_digest":"afad790ab229befff1b7ff6b13e423c6","packagetype":"sdist","python_version":"source","requires_python":null,"size":4558,"upload_time":"2022-04-24T15:23:55","upload_time_iso_8601":"2022-04-24T15:23:55.775858Z","url":"https://files.pythonhosted.org/packages/94/6e/db0ab064ee468abbfb5fce4bfa5e22555b76fe9fcba7084250b7fb8644ce/flask_session_captcha-1.2.2.tar.gz","yanked":false,"yanked_reason":null}],"1.3.0":[{"comment_text":"","core-metadata":{"sha256":"e6d2e9af0768bf3b4701917f6536143295c50e838a88f963a17a4f20ed1bce8a"},"digests":{"blake2b_256":"9547147605dcdfc1c1968ff6e2e4a01572c3d9887ef119d12b3ab39a61eacaa2","md5":"c6e762413c8bdc4216b2e5bf6092cd92","sha256":"1cc82dc7eb70385882c051c783702f29cbd06a840bb139734497c2bd564b4e41"},"downloads":-1,"filename":"flask_session_captcha-1.3.0-py2.py3-none-any.whl","has_sig":false,"md5_digest":"c6e762413c8bdc4216b2e5bf6092cd92","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":4969,"upload_time":"2022-04-26T23:19:12","upload_time_iso_8601":"2022-04-26T23:19:12.060479Z","url":"https://files.pythonhosted.org/packages/95/47/147605dcdfc1c1968ff6e2e4a01572c3d9887ef119d12b3ab39a61eacaa2/flask_session_captcha-1.3.0-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"aefc2f4c5d41173011531b4d94814dafc1146d11f365cec45b293ec2b1b5065d","md5":"0a025b4700ea1a8905cbbdaaa778de76","sha256":"24c7d34b00d3d5378221e727f2f500af897296c07192c06b95807b5ff3a90f5e"},"downloads":-1,"filename":"flask_session_captcha-1.3.0.tar.gz","has_sig":false,"md5_digest":"0a025b4700ea1a8905cbbdaaa778de76","packagetype":"sdist","python_version":"source","requires_python":null,"size":4628,"upload_time":"2022-04-26T23:19:13","upload_time_iso_8601":"2022-04-26T23:19:13.413627Z","url":"https://files.pythonhosted.org/packages/ae/fc/2f4c5d41173011531b4d94814dafc1146d11f365cec45b293ec2b1b5065d/flask_session_captcha-1.3.0.tar.gz","yanked":false,"yanked_reason":null}],"1.4.0":[{"comment_text":"","core-metadata":{"sha256":"d18f464f014db9d7c324f6e58db1940c5ce879c9d9f721d024d5b9b487c5b989"},"digests":{"blake2b_256":"8ff298175d6edd8678f9ec11b8f41d15720ef1d031d5f432bdd57334d6cc73bc","md5":"ff6dbf1aad008a6d96ffeb9eb5082c8e","sha256":"1335e4b5c687c70515dcbebcc8b4e09d4428ffca9b973af1dec15d3ecf1b0a6b"},"downloads":-1,"filename":"flask_session_captcha-1.4.0-py2.py3-none-any.whl","has_sig":false,"md5_digest":"ff6dbf1aad008a6d96ffeb9eb5082c8e","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6294,"upload_time":"2024-02-26T20:59:42","upload_time_iso_8601":"2024-02-26T20:59:42.318967Z","url":"https://files.pythonhosted.org/packages/8f/f2/98175d6edd8678f9ec11b8f41d15720ef1d031d5f432bdd57334d6cc73bc/flask_session_captcha-1.4.0-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"6a3c3c2edcc720a9bd31a183b49da4150b5606f60a4ba37bf476b75a975779d9","md5":"22a9c66a2cf726871dc6aca5778a0aab","sha256":"69d2cb1b1b03006d7768a15a97c29daa601a12ef6cc2d2917adf550ff78d857a"},"downloads":-1,"filename":"flask_session_captcha-1.4.0.tar.gz","has_sig":false,"md5_digest":"22a9c66a2cf726871dc6aca5778a0aab","packagetype":"sdist","python_version":"source","requires_python":null,"size":6947,"upload_time":"2024-02-26T20:59:43","upload_time_iso_8601":"2024-02-26T20:59:43.990821Z","url":"https://files.pythonhosted.org/packages/6a/3c/3c2edcc720a9bd31a183b49da4150b5606f60a4ba37bf476b75a975779d9/flask_session_captcha-1.4.0.tar.gz","yanked":false,"yanked_reason":null}],"1.4.1":[{"comment_text":"","core-metadata":{"sha256":"986105b9da4b495536a067ef7aa3b294ecdd609fabd2ceffcafa3136b826c368"},"digests":{"blake2b_256":"ab03a5a268ddc0411e8b90a808a79c0202846aa0680677522786c1dba8013903","md5":"5166b7c0ea397708387d6a1124ea98bd","sha256":"348417bb5790137e578963811a70c89b7b24e1e5f83845d7748b0900d1ac0356"},"downloads":-1,"filename":"flask_session_captcha-1.4.1-py2.py3-none-any.whl","has_sig":false,"md5_digest":"5166b7c0ea397708387d6a1124ea98bd","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6103,"upload_time":"2024-03-18T20:26:51","upload_time_iso_8601":"2024-03-18T20:26:51.608625Z","url":"https://files.pythonhosted.org/packages/ab/03/a5a268ddc0411e8b90a808a79c0202846aa0680677522786c1dba8013903/flask_session_captcha-1.4.1-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"5467b442e12bb66888e938965ec30b407e453a95795aa01625564829557f388d","md5":"a877b3c0460b4c00fe5bdbfd65f7c0d4","sha256":"336c7706e4f4620b43790e6573e0e1883cad73ca3fea1c37c8a05283e736d219"},"downloads":-1,"filename":"flask_session_captcha-1.4.1.tar.gz","has_sig":false,"md5_digest":"a877b3c0460b4c00fe5bdbfd65f7c0d4","packagetype":"sdist","python_version":"source","requires_python":null,"size":6952,"upload_time":"2024-03-18T20:26:53","upload_time_iso_8601":"2024-03-18T20:26:53.471499Z","url":"https://files.pythonhosted.org/packages/54/67/b442e12bb66888e938965ec30b407e453a95795aa01625564829557f388d/flask_session_captcha-1.4.1.tar.gz","yanked":false,"yanked_reason":null}],"1.4.2":[{"comment_text":"","core-metadata":{"sha256":"aac839ac6b31a5a5e93194a9f69436a5495974961a9a650b6c527723d4bb7a13"},"digests":{"blake2b_256":"ce9491b837fc95715b0536bbe6888de80bb5004c6aa5ebedadd8c795749bc12e","md5":"6d6a573d0055b1f5fc194861a8022176","sha256":"06cc465e1bd332cad36b082654b6f01056144a0ff657bd710315a89b34df4944"},"downloads":-1,"filename":"flask_session_captcha-1.4.2-py2.py3-none-any.whl","has_sig":false,"md5_digest":"6d6a573d0055b1f5fc194861a8022176","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6107,"upload_time":"2024-04-03T17:30:46","upload_time_iso_8601":"2024-04-03T17:30:46.132284Z","url":"https://files.pythonhosted.org/packages/ce/94/91b837fc95715b0536bbe6888de80bb5004c6aa5ebedadd8c795749bc12e/flask_session_captcha-1.4.2-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"82be6cfcb5118148389e6039f032cf0713c368e5eeed41b52d68ad8a30dad7ce","md5":"bc3f8649c406627a2b9f3dab692e40e6","sha256":"eccf92c0ca3b2b88fc84787d8b9dc7eb844989fc23754d0075aba9403b16ba39"},"downloads":-1,"filename":"flask_session_captcha-1.4.2.tar.gz","has_sig":false,"md5_digest":"bc3f8649c406627a2b9f3dab692e40e6","packagetype":"sdist","python_version":"source","requires_python":null,"size":6958,"upload_time":"2024-04-03T17:30:47","upload_time_iso_8601":"2024-04-03T17:30:47.306106Z","url":"https://files.pythonhosted.org/packages/82/be/6cfcb5118148389e6039f032cf0713c368e5eeed41b52d68ad8a30dad7ce/flask_session_captcha-1.4.2.tar.gz","yanked":false,"yanked_reason":null}],"1.5.0":[{"comment_text":"","core-metadata":{"sha256":"3392516602e259f95d4f62af95adaa7647a50f24ed0e4b99a9819b589a770dcc"},"digests":{"blake2b_256":"5f5da31deb554246d7ab36dd56d1ae1539896a59c21c5331edf911176340f4c1","md5":"c883e5aa23a124f55836fdd3b4f1bd57","sha256":"d6b4e37c03f8a24459b3320efd941ce1d8967f0979be295829240aa89248b453"},"downloads":-1,"filename":"flask_session_captcha-1.5.0-py2.py3-none-any.whl","has_sig":false,"md5_digest":"c883e5aa23a124f55836fdd3b4f1bd57","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6244,"upload_time":"2024-10-16T09:34:31","upload_time_iso_8601":"2024-10-16T09:34:31.847022Z","url":"https://files.pythonhosted.org/packages/5f/5d/a31deb554246d7ab36dd56d1ae1539896a59c21c5331edf911176340f4c1/flask_session_captcha-1.5.0-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"c5d56e38c5687da421bea78f84aff4afd308f5c3dbaf93238f5117ccab1d473a","md5":"399d6a5d4452af7ef885f155d8f34940","sha256":"2f5e92b75c0506851e8c48f7bc034c521a9f4b64614a66e7724ee8b67ae59c93"},"downloads":-1,"filename":"flask_session_captcha-1.5.0.tar.gz","has_sig":false,"md5_digest":"399d6a5d4452af7ef885f155d8f34940","packagetype":"sdist","python_version":"source","requires_python":null,"size":7146,"upload_time":"2024-10-16T09:34:32","upload_time_iso_8601":"2024-10-16T09:34:32.780929Z","url":"https://files.pythonhosted.org/packages/c5/d5/6e38c5687da421bea78f84aff4afd308f5c3dbaf93238f5117ccab1d473a/flask_session_captcha-1.5.0.tar.gz","yanked":false,"yanked_reason":null}]},"urls":[{"comment_text":"","core-metadata":{"sha256":"3392516602e259f95d4f62af95adaa7647a50f24ed0e4b99a9819b589a770dcc"},"digests":{"blake2b_256":"5f5da31deb554246d7ab36dd56d1ae1539896a59c21c5331edf911176340f4c1","md5":"c883e5aa23a124f55836fdd3b4f1bd57","sha256":"d6b4e37c03f8a24459b3320efd941ce1d8967f0979be295829240aa89248b453"},"downloads":-1,"filename":"flask_session_captcha-1.5.0-py2.py3-none-any.whl","has_sig":false,"md5_digest":"c883e5aa23a124f55836fdd3b4f1bd57","packagetype":"bdist_wheel","python_version":"py2.py3","requires_python":null,"size":6244,"upload_time":"2024-10-16T09:34:31","upload_time_iso_8601":"2024-10-16T09:34:31.847022Z","url":"https://files.pythonhosted.org/packages/5f/5d/a31deb554246d7ab36dd56d1ae1539896a59c21c5331edf911176340f4c1/flask_session_captcha-1.5.0-py2.py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","core-metadata":false,"digests":{"blake2b_256":"c5d56e38c5687da421bea78f84aff4afd308f5c3dbaf93238f5117ccab1d473a","md5":"399d6a5d4452af7ef885f155d8f34940","sha256":"2f5e92b75c0506851e8c48f7bc034c521a9f4b64614a66e7724ee8b67ae59c93"},"downloads":-1,"filename":"flask_session_captcha-1.5.0.tar.gz","has_sig":false,"md5_digest":"399d6a5d4452af7ef885f155d8f34940","packagetype":"sdist","python_version":"source","requires_python":null,"size":7146,"upload_time":"2024-10-16T09:34:32","upload_time_iso_8601":"2024-10-16T09:34:32.780929Z","url":"https://files.pythonhosted.org/packages/c5/d5/6e38c5687da421bea78f84aff4afd308f5c3dbaf93238f5117ccab1d473a/flask_session_captcha-1.5.0.tar.gz","yanked":false,"yanked_reason":null}],"vulnerabilities":[]}
