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.604 msec |
System CPU time | 0.122 msec |
Total CPU time | 0.726 msec |
Elapsed time | 0.714 msec |
Context switches | 2 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=nfl |
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 0x7b3f112b6ac0> |
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 0x7b3e683e3590> |
g | <flask.g of 'app'> |
request | <Request 'https://oddize.com/anotheroddsboard/nfl' [GET]> |
security | <flask_security.core._SecurityState object at 0x7b3e6fbb9b50> |
session | <SecureCookieSession {}> |
sport | 'nfl' |
url_for_security | <function url_for_security at 0x7b3f112a14e0> |
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.04004100000000001 | 0.0016 | 0.162385 | 0.0065 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:821(build) |
26 | 0.03800100000000001 | 0.0015 | 0.261886 | 0.0101 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:262(call) |
50/25 | 0.023622 | 0.0005 | 0.09751000000000001 | 0.0039 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:780(_partial_build) |
25 | 0.022534000000000002 | 0.0009 | 0.198772 | 0.0080 | ./venv/lib/python3.11/site-packages/flask/app.py:1917(url_for) |
42 | 0.018896 | 0.0004 | 0.254541 | 0.0061 | ./templates/shared/base.html:55(block_header) |
70 | 0.016737000000000002 | 0.0002 | 0.377574 | 0.0054 | ./templates/anotheroddsboard/anotheroddsboard.html:4(root) |
22 | 0.01438 | 0.0007 | 0.036378 | 0.0017 | ./venv/lib/python3.11/site-packages/werkzeug/routing/converters.py:30(to_url) |
28 | 0.014027000000000001 | 0.0005 | 0.020579 | 0.0007 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:122(__new__) |
70 | 0.013333000000000001 | 0.0002 | 0.349987 | 0.0050 | ./templates/shared/base.html:4(root) |
27 | 0.012902000000000002 | 0.0005 | 0.035565 | 0.0013 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:24(escape) |
107 | 0.012771 | 0.0001 | 0.012771 | 0.0001 | {built-in method builtins.hasattr} |
25 | 0.012717000000000001 | 0.0005 | 0.061947999999999996 | 0.0025 | ./venv/lib/python3.11/site-packages/werkzeug/routing/rules.py:816(build) |
24/1 | 0.011031 | 0.0005 | 0.385488 | 0.3855 | {method 'join' of 'str' objects} |
2 | 0.01055 | 0.0053 | 0.01055 | 0.0053 | {built-in method posix.stat} |
26 | 0.010526 | 0.0004 | 0.010526 | 0.0004 | ./venv/lib/python3.11/site-packages/werkzeug/routing/rules.py:845(suitable_for) |
22 | 0.009248000000000001 | 0.0004 | 0.018524000000000002 | 0.0008 | ./venv/lib/python3.11/site-packages/werkzeug/urls.py:533(quote) |
1 | 0.009128 | 0.0091 | 0.03705900000000001 | 0.0371 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:93(new_context) |
2 | 0.008325 | 0.0042 | 0.009578 | 0.0048 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:508(__getitem__) |
1 | 0.007332 | 0.0073 | 0.020338000000000002 | 0.0203 | ./venv/lib/python3.11/site-packages/flask/app.py:973(update_template_context) |
52 | 0.007274 | 0.0001 | 0.015495 | 0.0003 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:90(from_obj) |
25 | 0.007097000000000001 | 0.0003 | 0.012783000000000001 | 0.0005 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:693(get_host) |
22 | 0.006912 | 0.0003 | 0.006912 | 0.0003 | ./venv/lib/python3.11/site-packages/werkzeug/urls.py:534(<listcomp>) |
26 | 0.006098000000000001 | 0.0002 | 0.008945 | 0.0003 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:75(blueprint) |
79 | 0.005476000000000001 | 0.0001 | 0.005476000000000001 | 0.0001 | {built-in method builtins.isinstance} |
2 | 0.00519 | 0.0026 | 0.009558 | 0.0048 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:485(getattr) |
1 | 0.00508 | 0.0051 | 0.012724000000000001 | 0.0127 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:165(__init__) |
2 | 0.005048 | 0.0025 | 0.033913000000000006 | 0.0170 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:956(_load_template) |
28 | 0.004927000000000001 | 0.0002 | 0.004927000000000001 | 0.0002 | {built-in method __new__ of type object at 0x927000} |
25 | 0.004396 | 0.0002 | 0.005686 | 0.0002 | ./venv/lib/python3.11/site-packages/werkzeug/_internal.py:130(_to_str) |
25 | 0.004257 | 0.0002 | 0.004257 | 0.0002 | ./venv/lib/python3.11/site-packages/flask/app.py:2237(inject_url_defaults) |
2 | 0.004227000000000001 | 0.0021 | 0.006773 | 0.0034 | <collections/__init__.py:1014(__iter__)> |
3 | 0.004067 | 0.0014 | 0.009878000000000001 | 0.0033 | ./venv/lib/python3.11/site-packages/blinker/base.py:326(receivers_for) |
1 | 0.003976 | 0.0040 | 0.518456 | 0.5185 | ./venv/lib/python3.11/site-packages/flask/templating.py:135(render_template) |
1 | 0.003939 | 0.0039 | 0.47508600000000006 | 0.4751 | ./venv/lib/python3.11/site-packages/flask/templating.py:127(_render) |
12 | 0.003895 | 0.0003 | 0.051245 | 0.0043 | ./templates/shared/base.html:125(block_footer) |
1 | 0.003827 | 0.0038 | 0.42737600000000003 | 0.4274 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1275(render) |
6 | 0.003546 | 0.0006 | 0.004007 | 0.0007 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:509(_get_current_object) |
10 | 0.0035080000000000003 | 0.0004 | 0.016812 | 0.0017 | <werkzeug routing>:1(<builder:'/oldizer/<sport>'>) |
5 | 0.0034750000000000002 | 0.0007 | 0.014556000000000001 | 0.0029 | <werkzeug routing>:1(<builder:'/oddizer/<sport>'>) |
13 | 0.0034660000000000003 | 0.0003 | 0.0034660000000000003 | 0.0003 | <collections/__init__.py:1000(__getitem__)> |
52 | 0.003367 | 0.0001 | 0.003367 | 0.0001 | {method 'pop' of 'dict' objects} |
22 | 0.003327 | 0.0002 | 0.003327 | 0.0002 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:911(<dictcomp>) |
2 | 0.003295 | 0.0016 | 0.023433000000000002 | 0.0117 | ./venv/lib/python3.11/site-packages/blinker/base.py:204(send) |
1 | 0.0032750000000000006 | 0.0033 | 0.0038570000000000006 | 0.0039 | ./venv/lib/python3.11/site-packages/werkzeug/utils.py:97(__get__) |
1 | 0.0032170000000000002 | 0.0032 | 0.007224 | 0.0072 | ./venv/lib/python3.11/site-packages/flask/helpers.py:662(__get__) |
8 | 0.0029760000000000003 | 0.0004 | 0.028824 | 0.0036 | ./templates/anotheroddsboard/anotheroddsboard.html:37(block_content) |
2 | 0.0028740000000000003 | 0.0014 | 0.013424 | 0.0067 | <frozen genericpath>:53(getmtime) |
26 | 0.002847 | 0.0001 | 0.002847 | 0.0001 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:60(endpoint) |
1 | 0.0028150000000000002 | 0.0028 | 0.004829000000000001 | 0.0048 | ./venv/lib/python3.11/site-packages/jinja2/nodes.py:76(__init__) |
5 | 0.002808 | 0.0006 | 0.0053 | 0.0011 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:308(__get__) |
14 | 0.002563 | 0.0002 | 0.007643000000000001 | 0.0005 | <frozen _collections_abc>:835(__iter__) |
26 | 0.0024950000000000003 | 0.0001 | 0.0024950000000000003 | 0.0001 | {built-in method markupsafe._speedups._escape_inner} |
2 | 0.0024850000000000002 | 0.0012 | 0.036598000000000006 | 0.0183 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:981(get_template) |
1 | 0.002454 | 0.0025 | 0.029755000000000004 | 0.0298 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1072(get_or_select_template) |
2 | 0.002396 | 0.0012 | 0.01582 | 0.0079 | ./venv/lib/python3.11/site-packages/jinja2/loaders.py:219(uptodate) |
1 | 0.0023260000000000004 | 0.0023 | 0.004308 | 0.0043 | <inspect.py:391(_has_code_flag)> |
2 | 0.002284 | 0.0011 | 0.018104000000000002 | 0.0091 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1491(is_up_to_date) |
1 | 0.002125 | 0.0021 | 0.004379 | 0.0044 | ./venv/lib/python3.11/site-packages/flask_login/utils.py:367(_get_user) |
1 | 0.0020940000000000004 | 0.0021 | 0.0020940000000000004 | 0.0021 | <weakref.py:68(__call__)> |
28 | 0.002065 | 0.0001 | 0.002065 | 0.0001 | {method 'get' of 'dict' objects} |
25 | 0.0020610000000000003 | 0.0001 | 0.0020610000000000003 | 0.0001 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:355(update) |
2 | 0.002053 | 0.0010 | 0.006492 | 0.0032 | <werkzeug routing>:1(<builder:'/static/<path:filename>'>) |
5 | 0.002043 | 0.0004 | 0.009597 | 0.0019 | <werkzeug routing>:1(<builder:'/anotheroddsboard/<sport>'>) |
1 | 0.002043 | 0.0020 | 0.003106 | 0.0031 | ./venv/lib/python3.11/site-packages/blinker/_utilities.py:42(make_id) |
34 | 0.002033 | 0.0001 | 0.002033 | 0.0001 | {method 'get' of '_contextvars.ContextVar' objects} |
1 | 0.0019850000000000002 | 0.0020 | 0.0033770000000000002 | 0.0034 | ./venv/lib/python3.11/site-packages/flask_debugtoolbar/panels/template.py:72(is_editor_enabled) |
22 | 0.001873 | 0.0001 | 0.001873 | 0.0001 | {method 'encode' of 'str' objects} |
25 | 0.0018350000000000003 | 0.0001 | 0.0018350000000000003 | 0.0001 | {method 'lstrip' of 'str' objects} |
4 | 0.0017840000000000002 | 0.0004 | 0.0017840000000000002 | 0.0004 | {built-in method fromkeys} |
4 | 0.0017310000000000001 | 0.0004 | 0.0017310000000000001 | 0.0004 | ./templates/anotheroddsboard/anotheroddsboard.html:17(block_title) |
25 | 0.001703 | 0.0001 | 0.001703 | 0.0001 | {method 'rstrip' of 'str' objects} |
3 | 0.0016640000000000001 | 0.0006 | 0.0016640000000000001 | 0.0006 | {built-in method builtins.getattr} |
1 | 0.0015630000000000002 | 0.0016 | 0.00502 | 0.0050 | ./venv/lib/python3.11/site-packages/flask_debugtoolbar/panels/template.py:39(_store_template_info) |
1 | 0.001553 | 0.0016 | 0.0017130000000000001 | 0.0017 | ./venv/lib/python3.11/site-packages/flask/templating.py:21(_default_template_ctx_processor) |
24 | 0.001531 | 0.0001 | 0.001531 | 0.0001 | {method 'items' of 'dict' objects} |
1 | 0.001463 | 0.0015 | 0.0019140000000000001 | 0.0019 | ./venv/lib/python3.11/site-packages/flask/app.py:960(select_jinja_autoescape) |
1 | 0.0013920000000000002 | 0.0014 | 0.002114 | 0.0021 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:128(__getitem__) |
1 | 0.001322 | 0.0013 | 0.002144 | 0.0021 | <collections/__init__.py:1023(__bool__)> |
1 | 0.001273 | 0.0013 | 0.519729 | 0.5197 | ./app.py:639(anotheroddsboard_homepage) |
1 | 0.001252 | 0.0013 | 0.0019540000000000004 | 0.0020 | <frozen _collections_abc>:786(keys) |
8 | 0.001203 | 0.0002 | 0.001203 | 0.0002 | {method 'update' of 'dict' objects} |
5 | 0.001192 | 0.0002 | 0.001192 | 0.0002 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:229(resolve_or_missing) |
2 | 0.0011830000000000002 | 0.0006 | 0.010761000000000001 | 0.0054 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:474(get) |
1 | 0.001122 | 0.0011 | 0.0033760000000000005 | 0.0034 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:379(__call__) |
1 | 0.001111 | 0.0011 | 0.00549 | 0.0055 | ./venv/lib/python3.11/site-packages/flask_login/utils.py:404(_user_context_processor) |
3 | 0.001061 | 0.0004 | 0.0013520000000000001 | 0.0005 | <inspect.py:300(ismethod)> |
1 | 0.001032 | 0.0010 | 0.001032 | 0.0010 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:184(<dictcomp>) |
1 | 0.001002 | 0.0010 | 0.038061 | 0.0381 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1375(new_context) |
1 | 0.0009220000000000001 | 0.0009 | 0.0009220000000000001 | 0.0009 | <werkzeug routing>:1(<builder:'/oddizer'>) |
1 | 0.000902 | 0.0009 | 0.00521 | 0.0052 | <inspect.py:409(iscoroutinefunction)> |
1 | 0.000901 | 0.0009 | 0.000901 | 0.0009 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:818(__init__) |
5 | 0.0009000000000000001 | 0.0002 | 0.0009000000000000001 | 0.0002 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:293(bind_f) |
2 | 0.0008920000000000001 | 0.0004 | 0.0008920000000000001 | 0.0004 | {method 'remove' of 'collections.deque' objects} |
1 | 0.0008820000000000001 | 0.0009 | 0.0008820000000000001 | 0.0009 | ./venv/lib/python3.11/site-packages/flask_security/core.py:350(_context_processor) |
1 | 0.000822 | 0.0008 | 0.000822 | 0.0008 | {built-in method builtins.any} |
6 | 0.000812 | 0.0001 | 0.000812 | 0.0001 | {method 'setdefault' of 'dict' objects} |
1 | 0.0007820000000000001 | 0.0008 | 0.001503 | 0.0015 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:94(blueprints) |
1 | 0.000722 | 0.0007 | 0.000722 | 0.0007 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:347(__init__) |
1 | 0.000711 | 0.0007 | 0.000781 | 0.0008 | <functools.py:421(_unwrap_partial)> |
1 | 0.000702 | 0.0007 | 0.000702 | 0.0007 | <frozen _collections_abc>:812(__init__) |
2 | 0.000682 | 0.0003 | 0.000682 | 0.0003 | ./templates/shared/base.html:35(block_stylesheet) |
1 | 0.0006810000000000001 | 0.0007 | 0.0007210000000000001 | 0.0007 | <inspect.py:378(isfunction)> |
8 | 0.0006410000000000001 | 0.0001 | 0.0006410000000000001 | 0.0001 | {method 'append' of 'list' objects} |
2 | 0.000571 | 0.0003 | 0.000571 | 0.0003 | ./templates/shared/base.html:45(block_javascripts) |
1 | 0.0005210000000000001 | 0.0005 | 0.0005210000000000001 | 0.0005 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:125(__init__) |
1 | 0.000451 | 0.0005 | 0.000451 | 0.0005 | {method 'endswith' of 'str' objects} |
1 | 0.000451 | 0.0005 | 0.000451 | 0.0005 | <werkzeug routing>:1(<builder:'/anotheroddsboard'>) |
1 | 0.00042100000000000004 | 0.0004 | 0.00042100000000000004 | 0.0004 | {method 'copy' of 'set' objects} |
1 | 0.00042100000000000004 | 0.0004 | 0.00046100000000000004 | 0.0005 | ./venv/lib/python3.11/site-packages/flask/ctx.py:187(has_request_context) |
1 | 0.000401 | 0.0004 | 0.000401 | 0.0004 | <werkzeug routing>:1(<builder:'/oldizer'>) |
2 | 0.00023000000000000003 | 0.0001 | 0.00023000000000000003 | 0.0001 | {built-in method builtins.iter} |
1 | 0.000201 | 0.0002 | 0.000201 | 0.0002 | ./venv/lib/python3.11/site-packages/flask/ctx.py:100(__contains__) |
2 | 0.000191 | 0.0001 | 0.000191 | 0.0001 | {method '__exit__' of '_thread.lock' objects} |
1 | 0.000171 | 0.0002 | 0.000171 | 0.0002 | {method 'copy' of 'dict' objects} |
2 | 0.00017 | 0.0001 | 0.00017 | 0.0001 | {method 'append' of 'collections.deque' objects} |
1 | 0.00015000000000000001 | 0.0002 | 0.00015000000000000001 | 0.0002 | {method '__exit__' of '_thread.RLock' objects} |
1 | 0.00013099999999999999 | 0.0001 | 0.00013099999999999999 | 0.0001 | {method 'disable' of '_lsprof.Profiler' objects} |
1 | 0.00012100000000000001 | 0.0001 | 0.00012100000000000001 | 0.0001 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:905(__bool__) |
1 | 0.000111 | 0.0001 | 0.000111 | 0.0001 | {built-in method builtins.id} |
1 | 0.0001 | 0.0001 | 0.0001 | 0.0001 | {built-in method builtins.callable} |
2 | 0.0001 | 0.0001 | 0.0001 | 0.0001 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:133(__html__) |
1 | 6.000000000000001e-05 | 0.0001 | 6.000000000000001e-05 | 0.0001 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:944(join_path) |
Key | Value |
---|---|
_login_user | <flask_security.core.AnonymousUser object at 0x7b3e683e3590> |
debug_toolbar | <flask_debugtoolbar.DebugToolbarExtension object at 0x7b3e72cd8150> |
identity | <AnonymousIdentity id="None" auth_type="None" provides=set()> |