Current Site Packages Directory:
/usr/local/lib/python3.14/site-packages
| Package | Version | Homepage | Summary |
|---|---|---|---|
| alembic | 1.17.2 | None | A database migration tool for SQLAlchemy. |
| argon2-cffi | 25.1.0 | None | Argon2 for Python |
| argon2-cffi-bindings | 25.1.0 | None | Low-level CFFI bindings for Argon2 |
| blinker | 1.9.0 | None | Fast, simple object-to-object and broadcast signaling |
| cffi | 2.0.0 | None | Foreign Function Interface for Python calling C code. |
| click | 8.3.1 | None | Composable command line interface toolkit |
| dnspython | 2.8.0 | None | DNS toolkit |
| email-validator | 2.3.0 | https://github.com/JoshData/python-email-validator | A robust email address syntax and deliverability validation library. |
| Flask | 3.1.2 | None | A simple framework for building complex web applications. |
| Flask-DebugToolbar | 0.16.0 | None | A toolbar overlay for debugging Flask applications. |
| flask-debugtoolbar-sqlalchemy | 0.2.0 | https://git.sr.ht/~ihabunek/flask_debugtoolbar_sqlalchemy | Flask Debug Toolbar panel for SQLAlchemy |
| Flask-Login | 0.6.3 | https://github.com/maxcountryman/flask-login | User authentication and session management for Flask. |
| Flask-Migrate | 4.1.0 | None | SQLAlchemy database migrations for Flask applications using Alembic. |
| Flask-SQLAlchemy | 3.1.1 | None | Add SQLAlchemy support to your Flask application. |
| Flask-WTF | 1.2.2 | None | Form rendering, validation, and CSRF protection for Flask with WTForms. |
| greenlet | 3.2.4 | https://greenlet.readthedocs.io/ | Lightweight in-process concurrent programming |
| gunicorn | 23.0.0 | None | WSGI HTTP Server for UNIX |
| idna | 3.11 | None | Internationalized Domain Names in Applications (IDNA) |
| itsdangerous | 2.2.0 | None | Safely pass data to untrusted environments and back. |
| Jinja2 | 3.1.6 | None | A very fast and expressive template engine. |
| Mako | 1.3.10 | https://www.makotemplates.org/ | A super-fast templating language that borrows the best ideas from the existing templating languages. |
| MarkupSafe | 3.0.3 | None | Safely add untrusted strings to HTML/XML markup. |
| packaging | 25.0 | None | Core utilities for Python packages |
| pip | 25.3 | None | The PyPA recommended tool for installing Python packages. |
| psycopg | 3.2.10 | https://psycopg.org/psycopg3/ | PostgreSQL database adapter for Python |
| pycparser | 2.23 | https://github.com/eliben/pycparser | C parser in Python |
| Pygments | 2.19.2 | None | Pygments is a syntax highlighting package written in Python. |
| redis | 7.0.1 | None | Python client for Redis database and key-value store |
| SQLAlchemy | 2.0.44 | https://www.sqlalchemy.org | Database Abstraction Library |
| sqlparse | 0.5.3 | None | A non-validating SQL parser. |
| typing_extensions | 4.15.0 | None | Backported and Experimental Type Hints for Python 3.9+ |
| Werkzeug | 3.1.3 | None | The comprehensive WSGI web application library. |
| WTForms | 3.2.1 | None | Form validation and rendering for Python web development. |
| Resource | Value |
|---|---|
| User CPU time | 33.541 msec |
| System CPU time | 22.239 msec |
| Total CPU time | 55.780 msec |
| Elapsed time | 190.794 msec |
| Context switches | 57 voluntary, 5 involuntary |
| Key | Value |
|---|---|
| HTTP_ACCEPT | */* |
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
| HTTP_HOST | dev.test.herolky.eu |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| QUERY_STRING | |
| REMOTE_ADDR | 216.73.216.126 |
| REQUEST_METHOD | GET |
| SCRIPT_NAME | |
| SERVER_NAME | 0.0.0.0 |
| SERVER_PORT | 5000 |
| SERVER_PROTOCOL | HTTP/1.1 |
| SERVER_SOFTWARE | gunicorn/23.0.0 |
| View Function | kwargs |
|---|---|
| page.courses.list | None |
| Variable | Value |
|---|
No SESSION data
| Variable | Value |
|---|
| Variable | Value |
|---|
| Key | Value |
|---|---|
| APPLICATION_ROOT | '/' |
| DEBUG | True |
| DEBUG_TB_ENABLED | True |
| DEBUG_TB_HOSTS | () |
| DEBUG_TB_INTERCEPT_REDIRECTS | True |
| DEBUG_TB_PANELS | ('flask_debugtoolbar.panels.versions.VersionDebugPanel', 'flask_debugtoolbar.panels.timer.TimerDebugPanel', 'flask_debugtoolbar.panels.headers.HeaderDebugPanel', 'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel', 'flask_debugtoolbar.panels.config_vars.ConfigVarsDebugPanel', 'flask_debugtoolbar.panels.template.TemplateDebugPanel', 'flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel', 'flask_debugtoolbar.panels.logger.LoggingPanel', 'flask_debugtoolbar.panels.route_list.RouteListDebugPanel', 'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel', 'flask_debugtoolbar.panels.g.GDebugPanel') |
| DEBUG_TB_ROUTES_HOST | None |
| EXPLAIN_TEMPLATE_LOADING | False |
| MAX_CONTENT_LENGTH | None |
| MAX_COOKIE_SIZE | 4093 |
| MAX_FORM_MEMORY_SIZE | 500000 |
| MAX_FORM_PARTS | 1000 |
| PERMANENT_SESSION_LIFETIME | datetime.timedelta(days=31) |
| PREFERRED_URL_SCHEME | 'http' |
| PROPAGATE_EXCEPTIONS | None |
| PROVIDE_AUTOMATIC_OPTIONS | True |
| REDIS_URL | 'redis://default:superSecretRedisPassword42@redis:6379' |
| SECRET_KEY | 'insecure_key_for_dev' |
| SECRET_KEY_FALLBACKS | None |
| SEND_FILE_MAX_AGE_DEFAULT | None |
| SERVER_NAME | 'dev.test.herolky.eu' |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'session' |
| SESSION_COOKIE_PARTITIONED | False |
| SESSION_COOKIE_PATH | None |
| SESSION_COOKIE_SAMESITE | None |
| SESSION_COOKIE_SECURE | False |
| SESSION_REFRESH_EACH_REQUEST | True |
| SQLALCHEMY_BINDS | {} |
| SQLALCHEMY_DATABASE_URI | 'postgresql+psycopg://herolky_eu:superSecretPassword42@postgres:5432/herolky_eu' |
| SQLALCHEMY_ECHO | False |
| SQLALCHEMY_ENGINE_OPTIONS | {} |
| SQLALCHEMY_RECORD_QUERIES | True |
| SQLALCHEMY_TRACK_MODIFICATIONS | True |
| TEMPLATES_AUTO_RELOAD | None |
| TESTING | False |
| TRAP_BAD_REQUEST_ERRORS | None |
| TRAP_HTTP_EXCEPTIONS | False |
| TRUSTED_HOSTS | None |
| USE_X_SENDFILE | False |
| WTF_CSRF_CHECK_DEFAULT | True |
| WTF_CSRF_ENABLED | True |
| WTF_CSRF_FIELD_NAME | 'csrf_token' |
| WTF_CSRF_HEADERS | ['X-CSRFToken', 'X-CSRF-Token'] |
| WTF_CSRF_METHODS | {'DELETE', 'POST', 'PUT', 'PATCH'} |
| WTF_CSRF_SSL_STRICT | True |
| WTF_CSRF_TIME_LIMIT | 3600 |
| Variable | Value |
|---|---|
| courses | <repr(<list object at 0x7f2efba92680>) raised TypeError: cannot use 'library.models.User' as a set element (unhashable type: 'User')> |
| csrf_token | <function generate_csrf at 0x7f2efc827950> |
| current_user | <flask_login.mixins.AnonymousUserMixin object at 0x7f2efbc1e3f0> |
| g | <flask.g of 'hello.app'> |
| request | <Request 'https://dev.test.herolky.eu/terminy-a-prihlasky' [GET]> |
| session | <SecureCookieSession {}> |
| user_is_admin | None |
| (ms) | Action | Context | Query |
|---|---|---|---|
| 9.4709 | <unknown> |
SELECT course.id AS course_id,
course.cid AS course_cid,
course.name AS course_name,
course.since AS course_since,
course.until AS course_until,
course.price AS course_price,
course.deposit AS course_deposit,
course.capacity AS course_capacity,
course.published AS course_published
FROM course
WHERE course.published = TRUE
AND course.until >= %(until_1)s::DATE
ORDER BY course.until ASC,
course.since ASC
|
|
| 2.3154 |
SELECT EXPLAIN |
<unknown> |
SELECT application.id AS application_id,
application.user_id AS application_user_id,
application.course_id AS application_course_id,
application.dogs AS application_dogs
FROM application
WHERE %(param_1)s::INTEGER = application.course_id
|
| 1.1918 |
SELECT EXPLAIN |
<unknown> |
SELECT participant.id AS participant_id,
participant.application_id AS participant_application_id,
participant.name AS participant_name,
participant.age AS participant_age,
participant.diet AS participant_diet
FROM participant
WHERE %(param_1)s::INTEGER = participant.application_id
|
| 2.2270 |
SELECT EXPLAIN |
<unknown> |
SELECT "user".id AS user_id,
"user".uid AS user_uid,
"user".email AS user_email,
"user".name AS user_name,
"user".confirmed AS user_confirmed
FROM "user"
WHERE "user".id = %(pk_1)s::INTEGER
|
| 0.2565 |
SELECT EXPLAIN |
<unknown> |
SELECT participant.id AS participant_id,
participant.application_id AS participant_application_id,
participant.name AS participant_name,
participant.age AS participant_age,
participant.diet AS participant_diet
FROM participant
WHERE %(param_1)s::INTEGER = participant.application_id
|
| 0.2582 |
SELECT EXPLAIN |
<unknown> |
SELECT "user".id AS user_id,
"user".uid AS user_uid,
"user".email AS user_email,
"user".name AS user_name,
"user".confirmed AS user_confirmed
FROM "user"
WHERE "user".id = %(pk_1)s::INTEGER
|
| 1.1187 |
SELECT EXPLAIN |
<unknown> |
SELECT "user".id AS user_id,
"user".uid AS user_uid,
"user".email AS user_email,
"user".name AS user_name,
"user".confirmed AS user_confirmed
FROM "user",
coach_course
WHERE %(param_1)s::INTEGER = coach_course.course
AND "user".id = coach_course.coach
|
| 0.4721 |
SELECT EXPLAIN |
<unknown> |
SELECT "user".id AS user_id,
"user".uid AS user_uid,
"user".email AS user_email,
"user".name AS user_name,
"user".confirmed AS user_confirmed
FROM "user",
application
WHERE %(param_1)s::INTEGER = application.course_id
AND "user".id = application.user_id
|
No messages logged.
| URL route | Endpoint name | HTTP methods | Is alias | Redirect to |
|---|---|---|---|---|
| / | page.home | GET, HEAD, OPTIONS | False | None |
| /<path:filename> | static | GET, HEAD, OPTIONS | False | None |
| /cenik | page.pricing | GET, HEAD, OPTIONS | False | None |
| /dokonceni-prihlaseni | auth.finish_login | GET, HEAD, OPTIONS | False | None |
| /dokonceni-registrace | auth.finish_registration | GET, HEAD, OPTIONS | False | None |
| /kontakt | page.contact | GET, HEAD, OPTIONS | False | None |
| /magic-login | auth.magic_login | GET, HEAD, OPTIONS | False | None |
| /muj-ucet | auth.account | GET, HEAD, OPTIONS, POST | False | None |
| /o-herolkach | page.about | GET, HEAD, OPTIONS | False | None |
| /odhlaseni | auth.logout | GET, HEAD, OPTIONS | False | None |
| /prihlaseni | auth.login | GET, HEAD, OPTIONS, POST | False | None |
| /registrace | auth.register | GET, HEAD, OPTIONS, POST | False | None |
| /termin/<string:cid>/prehled | courses.overview | GET, HEAD, OPTIONS | False | None |
| /termin/<string:cid>/prihlasit | courses.join | GET, HEAD, OPTIONS, POST | False | None |
| /termin/<string:cid>/upravit | courses.edit | GET, HEAD, OPTIONS, POST | False | None |
| /terminy-a-prihlasky | courses.list | GET, HEAD, OPTIONS | False | None |
| /terminy-a-prihlasky/novy-kurz | courses.create | GET, HEAD, OPTIONS, POST | False | None |
| Key | Value |
|---|---|
| _login_user | <flask_login.mixins.AnonymousUserMixin object at 0x7f2efbc1e3f0> |
| _sqlalchemy_queries | [_QueryInfo(statement='SELECT course.id AS course_id, course.cid AS course_cid, course.name AS course_name, course.since AS course_since, course.until AS course_until, course.price AS course_price, course.deposit AS course_deposit, course.capacity AS course_capacity, course.published AS course_published \nFROM course \nWHERE course.published = true AND course.until >= %(until_1)s::DATE ORDER BY course.until ASC, course.since ASC', parameters=[{'until_1': datetime.date(2025, 12, 6)}], start_time=422357.63766531, end_time=422357.647136258, location='<unknown>'), _QueryInfo(statement='SELECT application.id AS application_id, application.user_id AS application_user_id, application.course_id AS application_course_id, application.dogs AS application_dogs \nFROM application \nWHERE %(param_1)s::INTEGER = application.course_id', parameters=[{'param_1': 1}], start_time=422357.66939623, end_time=422357.671711593, location='<unknown>'), _QueryInfo(statement='SELECT participant.id AS participant_id, participant.application_id AS participant_application_id, participant.name AS participant_name, participant.age AS participant_age, participant.diet AS participant_diet \nFROM participant \nWHERE %(param_1)s::INTEGER = participant.application_id', parameters=[{'param_1': 1}], start_time=422357.673296316, end_time=422357.674488077, location='<unknown>'), _QueryInfo(statement='SELECT "user".id AS user_id, "user".uid AS user_uid, "user".email AS user_email, "user".name AS user_name, "user".confirmed AS user_confirmed \nFROM "user" \nWHERE "user".id = %(pk_1)s::INTEGER', parameters=[{'pk_1': 2}], start_time=422357.6756648, end_time=422357.677891776, location='<unknown>'), _QueryInfo(statement='SELECT participant.id AS participant_id, participant.application_id AS participant_application_id, participant.name AS participant_name, participant.age AS participant_age, participant.diet AS participant_diet \nFROM participant \nWHERE %(param_1)s::INTEGER = participant.application_id', parameters=[{'param_1': 2}], start_time=422357.678529981, end_time=422357.678786526, location='<unknown>'), _QueryInfo(statement='SELECT "user".id AS user_id, "user".uid AS user_uid, "user".email AS user_email, "user".name AS user_name, "user".confirmed AS user_confirmed \nFROM "user" \nWHERE "user".id = %(pk_1)s::INTEGER', parameters=[{'pk_1': 1}], start_time=422357.679246935, end_time=422357.679505183, location='<unknown>'), _QueryInfo(statement='SELECT "user".id AS user_id, "user".uid AS user_uid, "user".email AS user_email, "user".name AS user_name, "user".confirmed AS user_confirmed \nFROM "user", coach_course \nWHERE %(param_1)s::INTEGER = coach_course.course AND "user".id = coach_course.coach', parameters=[{'param_1': 1}], start_time=422357.681625297, end_time=422357.68274397, location='<unknown>'), _QueryInfo(statement='SELECT "user".id AS user_id, "user".uid AS user_uid, "user".email AS user_email, "user".name AS user_name, "user".confirmed AS user_confirmed \nFROM "user", application \nWHERE %(param_1)s::INTEGER = application.course_id AND "user".id = application.user_id', parameters=[{'param_1': 1}], start_time=422357.683939077, end_time=422357.684411149, location='<unknown>')] |
| debug_toolbar | <flask_debugtoolbar.DebugToolbarExtension object at 0x7f2efc86b380> |