Current Site Packages Directory:
/var/www/oddize/venv/lib/python3.11/site-packages
Package | Version | Homepage | Summary |
---|---|---|---|
attrs | 25.1.0 | None | Classes Without Boilerplate |
babel | 2.17.0 | https://babel.pocoo.org/ | Internationalization utilities |
bcrypt | 4.2.1 | None | Modern password hashing for your software and your servers |
blinker | 1.9.0 | None | Fast, simple object-to-object and broadcast signaling |
certifi | 2022.9.24 | https://github.com/certifi/python-certifi | Python package for providing Mozilla's CA Bundle. |
charset-normalizer | 2.1.1 | https://github.com/ousret/charset_normalizer | The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. |
click | 8.1.8 | None | Composable command line interface toolkit |
cssselect | 1.2.0 | https://github.com/scrapy/cssselect | cssselect parses CSS3 Selectors and translates them to XPath 1.0 |
Flask | 2.2.3 | https://palletsprojects.com/p/flask | A simple framework for building complex web applications. |
Flask-BabelEx | 0.9.4 | http://github.com/mrjoes/flask-babelex | Adds i18n/l10n support to Flask applications |
flask-blueprint | 1.3.0 | https://github.com/aiscenblue/flask-blueprint | Flask blueprint generator |
Flask-DebugToolbar | 0.15.1 | https://github.com/pallets-eco/flask-debugtoolbar | A toolbar overlay for debugging Flask applications. |
Flask-Login | 0.6.3 | https://github.com/maxcountryman/flask-login | User authentication and session management for Flask. |
Flask-Mail | 0.10.0 | None | Flask extension for sending email |
Flask-Principal | 0.4.0 | http://packages.python.org/Flask-Principal/ | Identity management for flask |
Flask-Security | 3.0.0 | https://github.com/mattupstate/flask-security | Simple security for Flask apps. |
Flask-WTF | 1.2.2 | None | Form rendering, validation, and CSRF protection for Flask with WTForms. |
greenlet | 2.0.1 | https://greenlet.readthedocs.io/ | Lightweight in-process concurrent programming |
gunicorn | 23.0.0 | None | WSGI HTTP Server for UNIX |
h11 | 0.14.0 | https://github.com/python-hyper/h11 | A pure-Python, bring-your-own-I/O implementation of HTTP/1.1 |
idna | 3.4 | None | Internationalized Domain Names in Applications (IDNA) |
itsdangerous | 2.2.0 | None | Safely pass data to untrusted environments and back. |
Jinja2 | 3.1.5 | None | A very fast and expressive template engine. |
joblib | 1.4.2 | None | Lightweight pipelining with Python functions |
lxml | 4.9.1 | https://lxml.de/ | Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API. |
MarkupSafe | 3.0.2 | None | Safely add untrusted strings to HTML/XML markup. |
numpy | 1.23.5 | https://www.numpy.org | NumPy is the fundamental package for array computing with Python. |
nvidia-nccl-cu12 | 2.25.1 | https://developer.nvidia.com/cuda-zone | NVIDIA Collective Communication Library (NCCL) Runtime |
outcome | 1.3.0.post0 | https://github.com/python-trio/outcome | Capture the outcome of Python function calls. |
packaging | 24.2 | None | Core utilities for Python packages |
pandas | 1.5.2 | https://pandas.pydata.org | Powerful data structures for data analysis, time series, and statistics |
passlib | 1.7.4 | https://passlib.readthedocs.io | comprehensive password hashing framework supporting over 30 schemes |
patsy | 1.0.1 | https://github.com/pydata/patsy | A Python package for describing statistical models and for building design matrices. |
pip | 24.0 | None | The PyPA recommended tool for installing Python packages. |
psutil | 7.0.0 | https://github.com/giampaolo/psutil | Cross-platform lib for process and system monitoring in Python. NOTE: the syntax of this script MUST be kept compatible with Python 2.7. |
psycopg2-binary | 2.9.10 | https://psycopg.org/ | psycopg2 - Python-PostgreSQL Database Adapter |
pyquery | 1.4.3 | https://github.com/gawel/pyquery | A jquery-like library for python |
PySocks | 1.7.1 | https://github.com/Anorov/PySocks | A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information. |
python-dateutil | 2.8.2 | https://github.com/dateutil/dateutil | Extensions to the standard Python datetime module |
python-dotenv | 1.0.1 | https://github.com/theskumar/python-dotenv | Read key-value pairs from a .env file and set them as environment variables |
pytz | 2022.6 | http://pythonhosted.org/pytz | World timezone definitions, modern and historical |
requests | 2.28.1 | https://requests.readthedocs.io | Python HTTP for Humans. |
scikit-learn | 1.5.2 | https://scikit-learn.org | A set of python modules for machine learning and data mining |
scipy | 1.14.1 | https://scipy.org/ | Fundamental algorithms for scientific computing in Python |
selenium | 4.23.1 | https://www.selenium.dev | Official Python bindings for Selenium WebDriver |
selenium-stealth | 1.0.6 | https://github.com/diprajpatra/selenium-stealth | Trying to make python selenium more stealthy. |
setuptools | 65.5.0 | https://github.com/pypa/setuptools | Easily download, build, install, upgrade, and uninstall Python packages |
six | 1.16.0 | https://github.com/benjaminp/six | Python 2 and 3 compatibility utilities |
sniffio | 1.3.1 | None | Sniff out which async library your code is running under |
sortedcontainers | 2.4.0 | http://www.grantjenks.com/docs/sortedcontainers/ | Sorted Containers -- Sorted List, Sorted Dict, Sorted Set |
speaklater | 1.3 | http://github.com/mitsuhiko/speaklater | implements a lazy string for python useful for use with gettext |
sportsipy | 0.6.0 | https://github.com/roclark/sportsipy | A free sports API written for python |
sportsreference | 0.5.2 | https://github.com/roclark/sportsreference | A free sports API written for python |
SQLAlchemy | 1.4.44 | https://www.sqlalchemy.org | Database Abstraction Library |
statsmodels | 0.14.4 | https://www.statsmodels.org/ | Statistical computations and models for Python |
threadpoolctl | 3.5.0 | https://github.com/joblib/threadpoolctl | threadpoolctl |
trio | 0.29.0 | None | A friendly Python library for async concurrency and I/O |
trio-websocket | 0.12.1 | https://github.com/python-trio/trio-websocket | WebSocket library for Trio |
typing_extensions | 4.12.2 | None | Backported and Experimental Type Hints for Python 3.8+ |
undetected-chromedriver | 3.5.5 | https://github.com/ultrafunkamsterdam/undetected-chromedriver | ('Selenium.webdriver.Chrome replacement with compatiblity for Brave, and other Chromium based browsers.', 'Not triggered by CloudFlare/Imperva/hCaptcha and such.', 'NOTE: results may vary due to many factors. No guarantees are given, except for ongoing efforts in understanding detection algorithms.') |
urllib3 | 1.26.13 | https://urllib3.readthedocs.io/ | HTTP library with thread-safe connection pooling, file post, and more. |
websocket-client | 1.8.0 | https://github.com/websocket-client/websocket-client.git | WebSocket client for Python with low level API options |
websockets | 15.0 | None | An implementation of the WebSocket Protocol (RFC 6455 & 7692) |
Werkzeug | 2.2.3 | https://palletsprojects.com/p/werkzeug/ | The comprehensive WSGI web application library. |
wsproto | 1.2.0 | https://github.com/python-hyper/wsproto/ | WebSockets state-machine based protocol implementation |
WTForms | 3.2.1 | None | Form validation and rendering for Python web development. |
xgboost | 2.1.4 | None | XGBoost Python Package |
Resource | Value |
---|---|
User CPU time | 0.912 msec |
System CPU time | 0.000 msec |
Total CPU time | 0.912 msec |
Elapsed time | 0.915 msec |
Context switches | 0 voluntary, 0 involuntary |
Key | Value |
---|---|
HTTP_ACCEPT | */* |
HTTP_ACCEPT_ENCODING | gzip, br |
HTTP_CONNECTION | close |
HTTP_HOST | oddize.com |
HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected]) |
QUERY_STRING | |
REMOTE_ADDR | |
REQUEST_METHOD | GET |
SCRIPT_NAME | |
SERVER_NAME | oddize.com |
SERVER_PORT | 443 |
SERVER_PROTOCOL | HTTP/1.0 |
SERVER_SOFTWARE | gunicorn/23.0.0 |
View Function | args | kwargs |
---|---|---|
app.anotheroddsboard_homepage | [] | sport=ncaabm |
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_PROFILER_DUMP_FILENAME | 'dump.txt' |
DEBUG_TB_PROFILER_ENABLED | True |
ENV | 'production' |
EXPLAIN_TEMPLATE_LOADING | False |
JSON_AS_ASCII | None |
JSON_SORT_KEYS | False |
JSONIFY_MIMETYPE | None |
JSONIFY_PRETTYPRINT_REGULAR | None |
MAX_CONTENT_LENGTH | None |
MAX_COOKIE_SIZE | 4093 |
PERMANENT_SESSION_LIFETIME | datetime.timedelta(days=31) |
PREFERRED_URL_SCHEME | 'http' |
PROPAGATE_EXCEPTIONS | None |
SECRET_KEY | 'super-secret-corgi123' |
SECURITY_BLUEPRINT_NAME | 'security' |
SECURITY_CHANGE_PASSWORD_TEMPLATE | 'security/change_password.html' |
SECURITY_CHANGE_SALT | 'change-salt' |
SECURITY_CHANGE_URL | '/change' |
SECURITY_CHANGEABLE | False |
SECURITY_CLI_ROLES_NAME | 'roles' |
SECURITY_CLI_USERS_NAME | 'users' |
SECURITY_CONFIRM_EMAIL_WITHIN | '5 days' |
SECURITY_CONFIRM_ERROR_VIEW | None |
SECURITY_CONFIRM_SALT | 'confirm-salt' |
SECURITY_CONFIRM_URL | '/confirm' |
SECURITY_CONFIRMABLE | False |
SECURITY_DATETIME_FACTORY | <built-in method utcnow of type object at 0xa1cf20> |
SECURITY_DEFAULT_HTTP_AUTH_REALM | 'Login Required' |
SECURITY_DEFAULT_REMEMBER_ME | False |
SECURITY_DEPRECATED_HASHING_SCHEMES | ['hex_md5'] |
SECURITY_DEPRECATED_PASSWORD_SCHEMES | ['auto'] |
SECURITY_EMAIL_HTML | True |
SECURITY_EMAIL_PLAINTEXT | True |
SECURITY_EMAIL_SENDER | 'no-reply@localhost' |
SECURITY_EMAIL_SUBJECT_CONFIRM | 'Please confirm your email' |
SECURITY_EMAIL_SUBJECT_PASSWORD_CHANGE_NOTICE | 'Your password has been changed' |
SECURITY_EMAIL_SUBJECT_PASSWORD_NOTICE | 'Your password has been reset' |
SECURITY_EMAIL_SUBJECT_PASSWORD_RESET | 'Password reset instructions' |
SECURITY_EMAIL_SUBJECT_PASSWORDLESS | 'Login instructions' |
SECURITY_EMAIL_SUBJECT_REGISTER | 'Welcome' |
SECURITY_FLASH_MESSAGES | True |
SECURITY_FORGOT_PASSWORD_TEMPLATE | 'security/forgot_password.html' |
SECURITY_HASHING_SCHEMES | ['sha256_crypt', 'hex_md5'] |
SECURITY_I18N_DOMAIN | 'flask_security' |
SECURITY_LOGIN_SALT | 'login-salt' |
SECURITY_LOGIN_URL | '/login' |
SECURITY_LOGIN_USER_TEMPLATE | 'security/login_user.html' |
SECURITY_LOGIN_WITHIN | '1 days' |
SECURITY_LOGIN_WITHOUT_CONFIRMATION | False |
SECURITY_LOGOUT_URL | '/logout' |
SECURITY_MSG_ALREADY_CONFIRMED | ('Your email has already been confirmed.', 'info') |
SECURITY_MSG_CONFIRM_REGISTRATION | ('Thank you. Confirmation instructions have been sent to %(email)s.', 'success') |
SECURITY_MSG_CONFIRMATION_EXPIRED | ('You did not confirm your email within %(within)s. New instructions to confirm your email have been sent to %(email)s.', 'error') |
SECURITY_MSG_CONFIRMATION_REQUEST | ('Confirmation instructions have been sent to %(email)s.', 'info') |
SECURITY_MSG_CONFIRMATION_REQUIRED | ('Email requires confirmation.', 'error') |
SECURITY_MSG_DISABLED_ACCOUNT | ('Account is disabled.', 'error') |
SECURITY_MSG_EMAIL_ALREADY_ASSOCIATED | ('%(email)s is already associated with an account.', 'error') |
SECURITY_MSG_EMAIL_CONFIRMED | ('Thank you. Your email has been confirmed.', 'success') |
SECURITY_MSG_EMAIL_NOT_PROVIDED | ('Email not provided', 'error') |
SECURITY_MSG_FORGOT_PASSWORD | ('Forgot password?', 'info') |
SECURITY_MSG_INVALID_CONFIRMATION_TOKEN | ('Invalid confirmation token.', 'error') |
SECURITY_MSG_INVALID_EMAIL_ADDRESS | ('Invalid email address', 'error') |
SECURITY_MSG_INVALID_LOGIN_TOKEN | ('Invalid login token.', 'error') |
SECURITY_MSG_INVALID_PASSWORD | ('Invalid password', 'error') |
SECURITY_MSG_INVALID_REDIRECT | ('Redirections outside the domain are forbidden', 'error') |
SECURITY_MSG_INVALID_RESET_PASSWORD_TOKEN | ('Invalid reset password token.', 'error') |
SECURITY_MSG_LOGIN | ('Please log in to access this page.', 'info') |
SECURITY_MSG_LOGIN_EMAIL_SENT | ('Instructions to login have been sent to %(email)s.', 'success') |
SECURITY_MSG_LOGIN_EXPIRED | ('You did not login within %(within)s. New instructions to login have been sent to %(email)s.', 'error') |
SECURITY_MSG_PASSWORD_CHANGE | ('You successfully changed your password.', 'success') |
SECURITY_MSG_PASSWORD_INVALID_LENGTH | ('Password must be at least 6 characters', 'error') |
SECURITY_MSG_PASSWORD_IS_THE_SAME | ('Your new password must be different than your previous password.', 'error') |
SECURITY_MSG_PASSWORD_MISMATCH | ('Password does not match', 'error') |
SECURITY_MSG_PASSWORD_NOT_PROVIDED | ('Password not provided', 'error') |
SECURITY_MSG_PASSWORD_NOT_SET | ('No password is set for this user', 'error') |
SECURITY_MSG_PASSWORD_RESET | ('You successfully reset your password and you have been logged in automatically.', 'success') |
SECURITY_MSG_PASSWORD_RESET_EXPIRED | ('You did not reset your password within %(within)s. New instructions have been sent to %(email)s.', 'error') |
SECURITY_MSG_PASSWORD_RESET_REQUEST | ('Instructions to reset your password have been sent to %(email)s.', 'info') |
SECURITY_MSG_PASSWORDLESS_LOGIN_SUCCESSFUL | ('You have successfully logged in.', 'success') |
SECURITY_MSG_REFRESH | ('Please reauthenticate to access this page.', 'info') |
SECURITY_MSG_RETYPE_PASSWORD_MISMATCH | ('Passwords do not match', 'error') |
SECURITY_MSG_UNAUTHORIZED | ('You do not have permission to view this resource.', 'error') |
SECURITY_MSG_USER_DOES_NOT_EXIST | ('Specified user does not exist', 'error') |
SECURITY_PASSWORD_HASH | 'bcrypt' |
SECURITY_PASSWORD_SALT | 'm0rton5' |
SECURITY_PASSWORD_SCHEMES | ['bcrypt', 'des_crypt', 'pbkdf2_sha256', 'pbkdf2_sha512', 'sha256_crypt', 'sha512_crypt', 'plaintext'] |
SECURITY_PASSWORD_SINGLE_HASH | False |
SECURITY_PASSWORDLESS | False |
SECURITY_POST_CHANGE_VIEW | None |
SECURITY_POST_CONFIRM_VIEW | None |
SECURITY_POST_LOGIN_VIEW | '/' |
SECURITY_POST_LOGOUT_VIEW | '/' |
SECURITY_POST_REGISTER_VIEW | None |
SECURITY_POST_RESET_VIEW | None |
SECURITY_RECOVERABLE | False |
SECURITY_REGISTER_URL | '/register' |
SECURITY_REGISTER_USER_TEMPLATE | 'security/register_user.html' |
SECURITY_REGISTERABLE | True |
SECURITY_REMEMBER_SALT | 'remember-salt' |
SECURITY_RESET_PASSWORD_TEMPLATE | 'security/reset_password.html' |
SECURITY_RESET_PASSWORD_WITHIN | '5 days' |
SECURITY_RESET_SALT | 'reset-salt' |
SECURITY_RESET_URL | '/reset' |
SECURITY_SEND_CONFIRMATION_TEMPLATE | 'security/send_confirmation.html' |
SECURITY_SEND_LOGIN_TEMPLATE | 'security/send_login.html' |
SECURITY_SEND_PASSWORD_CHANGE_EMAIL | True |
SECURITY_SEND_PASSWORD_RESET_EMAIL | True |
SECURITY_SEND_PASSWORD_RESET_NOTICE_EMAIL | True |
SECURITY_SEND_REGISTER_EMAIL | True |
SECURITY_SUBDOMAIN | None |
SECURITY_TOKEN_AUTHENTICATION_HEADER | 'Authentication-Token' |
SECURITY_TOKEN_AUTHENTICATION_KEY | 'auth_token' |
SECURITY_TOKEN_MAX_AGE | None |
SECURITY_TRACKABLE | False |
SECURITY_UNAUTHORIZED_VIEW | <function <lambda> at 0x7b3f112bab60> |
SECURITY_URL_PREFIX | None |
SECURITY_USER_IDENTITY_ATTRIBUTES | ['email'] |
SEND_FILE_MAX_AGE_DEFAULT | None |
SERVER_NAME | None |
SESSION_COOKIE_DOMAIN | False |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | 'session' |
SESSION_COOKIE_PATH | None |
SESSION_COOKIE_SAMESITE | None |
SESSION_COOKIE_SECURE | False |
SESSION_REFRESH_EACH_REQUEST | True |
SQLALCHEMY_RECORD_QUERIES | True |
TEMPLATES_AUTO_RELOAD | None |
TESTING | False |
TRAP_BAD_REQUEST_ERRORS | None |
TRAP_HTTP_EXCEPTIONS | False |
USE_X_SENDFILE | False |
Variable | Value |
---|---|
current_user | <flask_security.core.AnonymousUser object at 0x7b3e6dd86810> |
g | <flask.g of 'app'> |
request | <Request 'https://oddize.com/anotheroddsboard/ncaabm' [GET]> |
security | <flask_security.core._SecurityState object at 0x7b3e6fbbcc10> |
session | <SecureCookieSession {}> |
sport | 'ncaabm' |
url_for_security | <function url_for_security at 0x7b3f112a5580> |
The toolbar was unable to fetch the SQLAlchemy queries for this request. To enable the SQLAlchemy query display, please:
The Flask-SQLAlchemy extension needs to be configured for this application. Please see the Flask-SQLAlchemy documentation for details.
No messages logged.
URL route | Endpoint name | HTTP methods | Is alias | Redirect to |
---|---|---|---|---|
/ | homepage | GET, HEAD, OPTIONS | False | None |
/anotheroddsboard | anotheroddsboard_homepage | GET, HEAD, OPTIONS | False | None |
/anotheroddsboard/<sport> | anotheroddsboard_homepage | GET, HEAD, OPTIONS | False | None |
/api/anotheroddsboard/event/<event_id>/odds | get_event_odds_history | GET, HEAD, OPTIONS | False | None |
/api/anotheroddsboard/event/<sport>/<event_id>/odds | get_event_odds | GET, HEAD, OPTIONS | False | None |
/api/anotheroddsboard/events/<sport> | get_sport_events | GET, HEAD, OPTIONS | False | None |
/api/anotheroddsboard/sports | get_available_sports | GET, HEAD, OPTIONS | False | None |
/api/event/<sport>/<path:event_id> | get_event_info | GET, HEAD, OPTIONS | False | None |
/api/oddizer/events/<sport> | get_oddizer_sport_events | GET, HEAD, OPTIONS | False | None |
/api/scraper/persist | persist_scraper_data | OPTIONS, POST | False | None |
/api/stats/<sport> | get_sport_stats | GET, HEAD, OPTIONS | False | None |
/api/stats/current-season/<sport> | get_current_season | GET, HEAD, OPTIONS | False | None |
/api/stats/fields/<sport> | get_available_fields | GET, HEAD, OPTIONS | False | None |
/api/stats/sports | get_available_sports_stats | GET, HEAD, OPTIONS | False | None |
/login | security.login | GET, HEAD, OPTIONS, POST | False | None |
/logout | security.logout | GET, HEAD, OPTIONS | False | None |
/oddizer | oddizer_homepage | GET, HEAD, OPTIONS | False | None |
/oddizer/<sport> | oddizer_sport_home | GET, HEAD, OPTIONS | False | None |
/oddizer/<sport>/game/<event> | oddizer_event_home | GET, HEAD, OPTIONS | False | None |
/oldizer | oldizer_homepage | GET, HEAD, OPTIONS | False | None |
/oldizer/<sport> | oldizer_sport_home | GET, HEAD, OPTIONS | False | None |
/oldizer/<sport>/<string:team> | oldizer_team_home | GET, HEAD, OPTIONS | False | None |
/oldizer/<sport>/<string:team>/<int:year> | oldizer_team_home | GET, HEAD, OPTIONS | False | None |
/oldizer/<sport>/game/<game> | oldizer_game_home | GET, HEAD, OPTIONS | False | None |
/oldizer/<sport>/player/<player> | oldizer_player_home | GET, HEAD, OPTIONS | False | None |
/oldizer/<sport>/player/<player>/<int:year> | oldizer_player_home | GET, HEAD, OPTIONS | False | None |
/oldizer/backtest/<sport>/<game> | oldizer_backtest_from_game | GET, HEAD, OPTIONS, POST | False | None |
/register | security.register | GET, HEAD, OPTIONS, POST | False | None |
/static/<path:filename> | static | GET, HEAD, OPTIONS | False | None |
/touthouse | touthouse_homepage | GET, HEAD, OPTIONS | False | None |
Calls | Total Time (ms) | Per Call (ms) | Cumulative Time (ms) | Per Call (ms) | Function |
---|---|---|---|---|---|
25 | 0.053947 | 0.0022 | 0.220508 | 0.0088 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:821(build) |
26 | 0.052209 | 0.0020 | 0.36243500000000006 | 0.0139 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:262(call) |
25 | 0.033862 | 0.0014 | 0.276263 | 0.0111 | ./venv/lib/python3.11/site-packages/flask/app.py:1917(url_for) |
50/25 | 0.032884 | 0.0007 | 0.130033 | 0.0052 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:780(_partial_build) |
42 | 0.023613000000000002 | 0.0006 | 0.371004 | 0.0088 | ./templates/shared/base.html:55(block_header) |
70 | 0.022565 | 0.0003 | 0.5084730000000001 | 0.0073 | ./templates/anotheroddsboard/anotheroddsboard.html:4(root) |
22 | 0.019728000000000002 | 0.0009 | 0.050754 | 0.0023 | ./venv/lib/python3.11/site-packages/werkzeug/routing/converters.py:30(to_url) |
107 | 0.019493 | 0.0002 | 0.019493 | 0.0002 | {built-in method builtins.hasattr} |
28 | 0.018035000000000002 | 0.0006 | 0.02691 | 0.0010 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:122(__new__) |
70 | 0.017685 | 0.0003 | 0.47145600000000004 | 0.0067 | ./templates/shared/base.html:4(root) |
27 | 0.016857 | 0.0006 | 0.047071 | 0.0017 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:24(escape) |
25 | 0.015089 | 0.0006 | 0.081142 | 0.0032 | ./venv/lib/python3.11/site-packages/werkzeug/routing/rules.py:816(build) |
26 | 0.014076 | 0.0005 | 0.014076 | 0.0005 | ./venv/lib/python3.11/site-packages/werkzeug/routing/rules.py:845(suitable_for) |
1 | 0.013958000000000002 | 0.0140 | 0.05392 | 0.0539 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:93(new_context) |
2 | 0.012694 | 0.0063 | 0.012694 | 0.0063 | {built-in method posix.stat} |
22 | 0.012491 | 0.0006 | 0.025655 | 0.0012 | ./venv/lib/python3.11/site-packages/werkzeug/urls.py:533(quote) |
24/1 | 0.012137 | 0.0005 | 0.516903 | 0.5169 | {method 'join' of 'str' objects} |
1 | 0.012003 | 0.0120 | 0.030978000000000002 | 0.0310 | ./venv/lib/python3.11/site-packages/flask/app.py:973(update_template_context) |
25 | 0.010381000000000001 | 0.0004 | 0.018948000000000003 | 0.0008 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:693(get_host) |
52 | 0.010329000000000001 | 0.0002 | 0.023114000000000003 | 0.0004 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:90(from_obj) |
2 | 0.010139 | 0.0051 | 0.013405000000000002 | 0.0067 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:508(__getitem__) |
22 | 0.009929 | 0.0005 | 0.009929 | 0.0005 | ./venv/lib/python3.11/site-packages/werkzeug/urls.py:534(<listcomp>) |
26 | 0.009446000000000001 | 0.0004 | 0.014356 | 0.0006 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:75(blueprint) |
3 | 0.008085 | 0.0027 | 0.008085 | 0.0027 | {built-in method builtins.getattr} |
79 | 0.007675 | 0.0001 | 0.007675 | 0.0001 | {built-in method builtins.isinstance} |
1 | 0.007354 | 0.0074 | 0.017663 | 0.0177 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:165(__init__) |
25 | 0.007183 | 0.0003 | 0.007183 | 0.0003 | ./venv/lib/python3.11/site-packages/flask/app.py:2237(inject_url_defaults) |
2 | 0.006902 | 0.0035 | 0.010460000000000002 | 0.0052 | <collections/__init__.py:1014(__iter__)> |
2 | 0.006772 | 0.0034 | 0.044011 | 0.0220 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:956(_load_template) |
25 | 0.006613 | 0.0003 | 0.008567000000000002 | 0.0003 | ./venv/lib/python3.11/site-packages/werkzeug/_internal.py:130(_to_str) |
28 | 0.006261000000000001 | 0.0002 | 0.006261000000000001 | 0.0002 | {built-in method __new__ of type object at 0x927000} |
6 | 0.0059830000000000005 | 0.0010 | 0.006804 | 0.0011 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:509(_get_current_object) |
1 | 0.005932 | 0.0059 | 0.699995 | 0.7000 | ./venv/lib/python3.11/site-packages/flask/templating.py:135(render_template) |
13 | 0.00592 | 0.0005 | 0.00592 | 0.0005 | <collections/__init__.py:1000(__getitem__)> |
5 | 0.005271 | 0.0011 | 0.025208 | 0.0050 | <werkzeug routing>:1(<builder:'/oddizer/<sport>'>) |
22 | 0.005177 | 0.0002 | 0.005177 | 0.0002 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:911(<dictcomp>) |
10 | 0.00503 | 0.0005 | 0.024524 | 0.0025 | <werkzeug routing>:1(<builder:'/oldizer/<sport>'>) |
26 | 0.00491 | 0.0002 | 0.00491 | 0.0002 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:60(endpoint) |
1 | 0.004768 | 0.0048 | 0.016360000000000003 | 0.0164 | ./venv/lib/python3.11/site-packages/flask/helpers.py:662(__get__) |
52 | 0.004751 | 0.0001 | 0.004751 | 0.0001 | {method 'pop' of 'dict' objects} |
12 | 0.0046300000000000004 | 0.0004 | 0.05418300000000001 | 0.0045 | ./templates/shared/base.html:125(block_footer) |
1 | 0.004489000000000001 | 0.0045 | 0.576875 | 0.5769 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1275(render) |
1 | 0.004439 | 0.0044 | 0.634182 | 0.6342 | ./venv/lib/python3.11/site-packages/flask/templating.py:127(_render) |
5 | 0.004326000000000001 | 0.0009 | 0.008204 | 0.0016 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:308(__get__) |
1 | 0.004097 | 0.0041 | 0.011301 | 0.0113 | ./venv/lib/python3.11/site-packages/werkzeug/utils.py:97(__get__) |
2 | 0.003907 | 0.0020 | 0.008025000000000001 | 0.0040 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:485(getattr) |
3 | 0.003849 | 0.0013 | 0.009179000000000001 | 0.0031 | ./venv/lib/python3.11/site-packages/blinker/base.py:326(receivers_for) |
2 | 0.0036240000000000005 | 0.0018 | 0.021890000000000003 | 0.0109 | ./venv/lib/python3.11/site-packages/blinker/base.py:204(send) |
2 | 0.0035790000000000006 | 0.0018 | 0.04796 | 0.0240 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:981(get_template) |
14 | 0.003385 | 0.0002 | 0.010929 | 0.0008 | <frozen _collections_abc>:835(__iter__) |
2 | 0.003356 | 0.0017 | 0.016050000000000002 | 0.0080 | <frozen genericpath>:53(getmtime) |
1 | 0.0033460000000000004 | 0.0033 | 0.00566 | 0.0057 | ./venv/lib/python3.11/site-packages/jinja2/nodes.py:76(__init__) |
26 | 0.0033450000000000003 | 0.0001 | 0.0033450000000000003 | 0.0001 | {built-in method markupsafe._speedups._escape_inner} |
1 | 0.003285 | 0.0033 | 0.039403 | 0.0394 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1072(get_or_select_template) |
1 | 0.0032750000000000006 | 0.0033 | 0.006812 | 0.0068 | ./venv/lib/python3.11/site-packages/flask_login/utils.py:367(_get_user) |
2 | 0.0032370000000000003 | 0.0016 | 0.019287 | 0.0096 | ./venv/lib/python3.11/site-packages/jinja2/loaders.py:219(uptodate) |
34 | 0.0029980000000000002 | 0.0001 | 0.0029980000000000002 | 0.0001 | {method 'get' of '_contextvars.ContextVar' objects} |
22 | 0.0029170000000000003 | 0.0001 | 0.0029170000000000003 | 0.0001 | {method 'encode' of 'str' objects} |
8 | 0.0028770000000000002 | 0.0004 | 0.025989 | 0.0032 | ./templates/anotheroddsboard/anotheroddsboard.html:37(block_content) |
25 | 0.002867 | 0.0001 | 0.002867 | 0.0001 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:355(update) |
25 | 0.0028250000000000003 | 0.0001 | 0.0028250000000000003 | 0.0001 | {method 'lstrip' of 'str' objects} |
25 | 0.002743 | 0.0001 | 0.002743 | 0.0001 | {method 'rstrip' of 'str' objects} |
28 | 0.0025020000000000003 | 0.0001 | 0.0025020000000000003 | 0.0001 | {method 'get' of 'dict' objects} |
1 | 0.002484 | 0.0025 | 0.0036360000000000003 | 0.0036 | <inspect.py:391(_has_code_flag)> |
2 | 0.0024730000000000004 | 0.0012 | 0.02176 | 0.0109 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1491(is_up_to_date) |
2 | 0.002464 | 0.0012 | 0.002464 | 0.0012 | {method 'remove' of 'collections.deque' objects} |
4 | 0.002455 | 0.0006 | 0.002455 | 0.0006 | {built-in method fromkeys} |
1 | 0.002134 | 0.0021 | 0.002134 | 0.0021 | <weakref.py:68(__call__)> |
2 | 0.002074 | 0.0010 | 0.015479000000000001 | 0.0077 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:474(get) |
1 | 0.002073 | 0.0021 | 0.002905 | 0.0029 | <collections/__init__.py:1023(__bool__)> |
8 | 0.002034 | 0.0003 | 0.002034 | 0.0003 | {method 'update' of 'dict' objects} |
1 | 0.002014 | 0.0020 | 0.0025450000000000004 | 0.0025 | <frozen _collections_abc>:786(keys) |
24 | 0.001994 | 0.0001 | 0.001994 | 0.0001 | {method 'items' of 'dict' objects} |
1 | 0.001975 | 0.0020 | 0.0021950000000000003 | 0.0022 | ./venv/lib/python3.11/site-packages/flask/templating.py:21(_default_template_ctx_processor) |
5 | 0.0019020000000000003 | 0.0004 | 0.008676000000000001 | 0.0017 | <werkzeug routing>:1(<builder:'/anotheroddsboard/<sport>'>) |
1 | 0.0018630000000000003 | 0.0019 | 0.7018580000000001 | 0.7019 | ./app.py:639(anotheroddsboard_homepage) |
5 | 0.001744 | 0.0003 | 0.001744 | 0.0003 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:229(resolve_or_missing) |
1 | 0.0017430000000000002 | 0.0017 | 0.0021240000000000005 | 0.0021 | ./venv/lib/python3.11/site-packages/flask/app.py:960(select_jinja_autoescape) |
1 | 0.001623 | 0.0016 | 0.003326 | 0.0033 | ./venv/lib/python3.11/site-packages/flask_debugtoolbar/panels/template.py:72(is_editor_enabled) |
1 | 0.0016030000000000003 | 0.0016 | 0.002475 | 0.0025 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:128(__getitem__) |
1 | 0.0016030000000000003 | 0.0016 | 0.0016030000000000003 | 0.0016 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:184(<dictcomp>) |
1 | 0.0015630000000000002 | 0.0016 | 0.055483000000000005 | 0.0555 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1375(new_context) |
1 | 0.0015130000000000002 | 0.0015 | 0.002465 | 0.0025 | ./venv/lib/python3.11/site-packages/blinker/_utilities.py:42(make_id) |
8 | 0.001374 | 0.0002 | 0.001374 | 0.0002 | {method 'append' of 'list' objects} |
1 | 0.001273 | 0.0013 | 0.008085 | 0.0081 | ./venv/lib/python3.11/site-packages/flask_login/utils.py:404(_user_context_processor) |
5 | 0.001192 | 0.0002 | 0.001192 | 0.0002 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:293(bind_f) |
1 | 0.001172 | 0.0012 | 0.0045780000000000005 | 0.0046 | ./venv/lib/python3.11/site-packages/flask_debugtoolbar/panels/template.py:39(_store_template_info) |
4 | 0.0011520000000000002 | 0.0003 | 0.0011520000000000002 | 0.0003 | ./templates/anotheroddsboard/anotheroddsboard.html:17(block_title) |
1 | 0.0011510000000000001 | 0.0012 | 0.002294 | 0.0023 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:379(__call__) |
2 | 0.0010620000000000002 | 0.0005 | 0.0010620000000000002 | 0.0005 | ./templates/shared/base.html:35(block_stylesheet) |
2 | 0.001052 | 0.0005 | 0.005601 | 0.0028 | <werkzeug routing>:1(<builder:'/static/<path:filename>'>) |
3 | 0.000972 | 0.0003 | 0.001252 | 0.0004 | <inspect.py:300(ismethod)> |
6 | 0.000964 | 0.0002 | 0.000964 | 0.0002 | {method 'setdefault' of 'dict' objects} |
1 | 0.000872 | 0.0009 | 0.000872 | 0.0009 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:347(__init__) |
1 | 0.0008320000000000001 | 0.0008 | 0.0008320000000000001 | 0.0008 | {built-in method builtins.any} |
1 | 0.000773 | 0.0008 | 0.004409000000000001 | 0.0044 | <inspect.py:409(iscoroutinefunction)> |
1 | 0.000761 | 0.0008 | 0.000761 | 0.0008 | <werkzeug routing>:1(<builder:'/anotheroddsboard'>) |
1 | 0.0007120000000000001 | 0.0007 | 0.0007120000000000001 | 0.0007 | <werkzeug routing>:1(<builder:'/oddizer'>) |
1 | 0.000682 | 0.0007 | 0.0007620000000000001 | 0.0008 | ./venv/lib/python3.11/site-packages/flask/ctx.py:187(has_request_context) |
1 | 0.000661 | 0.0007 | 0.002184 | 0.0022 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:94(blueprints) |
1 | 0.000661 | 0.0007 | 0.000661 | 0.0007 | ./venv/lib/python3.11/site-packages/flask_security/core.py:350(_context_processor) |
2 | 0.000621 | 0.0003 | 0.000621 | 0.0003 | ./templates/shared/base.html:45(block_javascripts) |
1 | 0.0006110000000000001 | 0.0006 | 0.0006110000000000001 | 0.0006 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:125(__init__) |
1 | 0.000571 | 0.0006 | 0.000571 | 0.0006 | <werkzeug routing>:1(<builder:'/oldizer'>) |
1 | 0.000561 | 0.0006 | 0.000561 | 0.0006 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:818(__init__) |
1 | 0.000541 | 0.0005 | 0.000541 | 0.0005 | {method 'copy' of 'set' objects} |
1 | 0.0005310000000000001 | 0.0005 | 0.0005310000000000001 | 0.0005 | <frozen _collections_abc>:812(__init__) |
2 | 0.000471 | 0.0002 | 0.000471 | 0.0002 | {method '__exit__' of '_thread.lock' objects} |
1 | 0.00038100000000000005 | 0.0004 | 0.00038100000000000005 | 0.0004 | {method 'endswith' of 'str' objects} |
1 | 0.000371 | 0.0004 | 0.000401 | 0.0004 | <inspect.py:378(isfunction)> |
1 | 0.000341 | 0.0003 | 0.000341 | 0.0003 | ./venv/lib/python3.11/site-packages/flask/ctx.py:100(__contains__) |
2 | 0.000331 | 0.0002 | 0.000331 | 0.0002 | {built-in method builtins.iter} |
2 | 0.000331 | 0.0002 | 0.000331 | 0.0002 | {method 'append' of 'collections.deque' objects} |
1 | 0.00029099999999999997 | 0.0003 | 0.00029099999999999997 | 0.0003 | {method '__exit__' of '_thread.RLock' objects} |
1 | 0.00028100000000000005 | 0.0003 | 0.00028100000000000005 | 0.0003 | {method 'copy' of 'dict' objects} |
1 | 0.00026 | 0.0003 | 0.00029099999999999997 | 0.0003 | <functools.py:421(_unwrap_partial)> |
1 | 0.00019 | 0.0002 | 0.00019 | 0.0002 | {built-in method builtins.callable} |
1 | 0.00017 | 0.0002 | 0.00017 | 0.0002 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:905(__bool__) |
1 | 0.00014000000000000001 | 0.0001 | 0.00014000000000000001 | 0.0001 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:944(join_path) |
1 | 0.00012100000000000001 | 0.0001 | 0.00012100000000000001 | 0.0001 | {method 'disable' of '_lsprof.Profiler' objects} |
2 | 0.0001 | 0.0001 | 0.0001 | 0.0001 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:133(__html__) |
1 | 8e-05 | 0.0001 | 8e-05 | 0.0001 | {built-in method builtins.id} |
Key | Value |
---|---|
_login_user | <flask_security.core.AnonymousUser object at 0x7b3e6dd86810> |
debug_toolbar | <flask_debugtoolbar.DebugToolbarExtension object at 0x7b3eb4fa2190> |
identity | <AnonymousIdentity id="None" auth_type="None" provides=set()> |