# This file was autogenerated by uv via the following command: # uv export --format requirements-txt -o requirements.txt --no-hashes async-timeout==5.0.1 ; python_full_version < '3.11.3' # via redis bcrypt==5.0.0 # via flask-bcrypt bidict==0.23.1 # via python-socketio blinker==1.9.0 # via flask brotli==1.2.0 # via geventhttpclient cachetools==6.2.6 ; python_full_version < '3.10' # via tutor-tool cachetools==7.0.1 ; python_full_version >= '3.10' # via tutor-tool certifi==2026.1.4 # via # geventhttpclient # requests cffi==2.0.0 ; (implementation_name == 'pypy' and platform_python_implementation != 'CPython') or (implementation_name == 'pypy' and sys_platform != 'win32') or (platform_python_implementation == 'CPython' and sys_platform == 'win32') # via # gevent # pyzmq charset-normalizer==3.4.4 # via requests click==8.1.8 ; python_full_version < '3.10' # via flask click==8.2.1 ; python_full_version >= '3.10' # via flask colorama==0.4.6 ; sys_platform == 'win32' # via # click # pytest configargparse==1.7.1 # via locust dnspython==2.7.0 ; python_full_version < '3.10' # via eventlet dnspython==2.8.0 ; python_full_version >= '3.10' # via eventlet eventlet==0.40.3 # via tutor-tool exceptiongroup==1.3.1 ; python_full_version == '3.10.*' # via pytest flask==3.1.2 # via # flask-bcrypt # flask-cors # flask-login # flask-socketio # flask-sqlalchemy # flask-wtf # locust # tutor-tool flask-bcrypt==1.0.1 # via tutor-tool flask-cors==6.0.2 # via locust flask-login==0.6.3 # via # locust # tutor-tool flask-socketio==5.5.1 # via tutor-tool flask-sqlalchemy==3.1.1 # via tutor-tool flask-wtf==1.2.2 # via tutor-tool gevent==25.9.1 # via # geventhttpclient # locust geventhttpclient==2.3.7 # via locust greenlet==3.2.4 # via # eventlet # gevent # sqlalchemy gunicorn==23.0.0 # via tutor-tool h11==0.16.0 # via wsproto idna==3.11 # via requests importlib-metadata==8.7.0 ; python_full_version < '3.10' # via # flask # markdown iniconfig==2.3.0 ; python_full_version >= '3.10' # via pytest itsdangerous==2.2.0 # via # flask # flask-wtf jinja2==3.1.6 # via flask locust==2.34.0 ; python_full_version < '3.10' # via tutor-tool locust==2.43.3 ; python_full_version >= '3.10' # via tutor-tool markdown==3.9 ; python_full_version < '3.10' # via tutor-tool markdown==3.10.2 ; python_full_version >= '3.10' # via tutor-tool markupsafe==3.0.2 # via # flask # jinja2 # werkzeug # wtforms msgpack==1.1.2 # via locust packaging==25.0 # via # gunicorn # pytest pluggy==1.6.0 ; python_full_version >= '3.10' # via pytest psutil==7.2.2 # via locust psycopg2-binary==2.9.11 # via tutor-tool pycparser==2.23 ; (python_full_version < '3.10' and implementation_name == 'pypy' and platform_python_implementation != 'CPython') or (python_full_version < '3.10' and implementation_name != 'PyPy' and platform_python_implementation == 'CPython' and sys_platform == 'win32') or (python_full_version < '3.10' and implementation_name == 'pypy' and sys_platform != 'win32') # via cffi pycparser==3.0 ; (python_full_version >= '3.10' and implementation_name == 'pypy' and platform_python_implementation != 'CPython') or (python_full_version >= '3.10' and implementation_name != 'PyPy' and platform_python_implementation == 'CPython' and sys_platform == 'win32') or (python_full_version >= '3.10' and implementation_name == 'pypy' and sys_platform != 'win32') # via cffi pygments==2.19.2 ; python_full_version >= '3.10' # via pytest pytest==9.0.2 ; python_full_version >= '3.10' # via locust python-engineio==4.12.2 # via # locust # python-socketio python-socketio==5.13.0 # via # flask-socketio # locust pytz==2025.2 # via tutor-tool pywin32==311 ; sys_platform == 'win32' # via locust pyzmq==27.1.0 # via locust redis==7.0.1 ; python_full_version < '3.10' # via tutor-tool redis==7.2.0 ; python_full_version >= '3.10' # via tutor-tool requests==2.32.5 # via # locust # python-socketio setuptools==82.0.0 ; python_full_version < '3.10' # via # locust # zope-event simple-websocket==1.1.0 # via python-engineio sqlalchemy==2.0.43 # via flask-sqlalchemy tomli==2.4.0 ; python_full_version < '3.11' # via # locust # pytest typing-extensions==4.15.0 # via # exceptiongroup # locust # sqlalchemy urllib3==2.6.3 # via # geventhttpclient # requests websocket-client==1.9.0 ; python_full_version >= '3.10' # via python-socketio werkzeug==3.1.3 # via # flask # flask-cors # flask-login # locust wsproto==1.2.0 # via simple-websocket wtforms==3.2.1 # via flask-wtf xkcdpass==1.20.0 # via tutor-tool zipp==3.23.0 ; python_full_version < '3.10' # via importlib-metadata zope-event==6.0 ; python_full_version < '3.10' # via gevent zope-event==6.1 ; python_full_version >= '3.10' # via gevent zope-interface==8.0.1 ; python_full_version < '3.10' # via gevent zope-interface==8.2 ; python_full_version >= '3.10' # via gevent