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.187 msec |
System CPU time | 0.730 msec |
Total CPU time | 0.917 msec |
Elapsed time | 0.921 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=nba |
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 0x7b3e6659b690> |
g | <flask.g of 'app'> |
request | <Request 'https://oddize.com/anotheroddsboard/nba' [GET]> |
security | <flask_security.core._SecurityState object at 0x7b3e6fbbcc10> |
session | <SecureCookieSession {}> |
sport | 'nba' |
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.056184000000000005 | 0.0022 | 0.232275 | 0.0093 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:821(build) |
26 | 0.053724 | 0.0021 | 0.37707500000000005 | 0.0145 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:262(call) |
25 | 0.033964 | 0.0014 | 0.28707600000000005 | 0.0115 | ./venv/lib/python3.11/site-packages/flask/app.py:1917(url_for) |
50/25 | 0.03395000000000001 | 0.0007 | 0.137133 | 0.0055 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:780(_partial_build) |
2 | 0.02713 | 0.0136 | 0.02713 | 0.0136 | {built-in method posix.stat} |
42 | 0.024489000000000004 | 0.0006 | 0.35751200000000005 | 0.0085 | ./templates/shared/base.html:55(block_header) |
22 | 0.020798 | 0.0009 | 0.052598 | 0.0024 | ./venv/lib/python3.11/site-packages/werkzeug/routing/converters.py:30(to_url) |
70 | 0.020463000000000002 | 0.0003 | 0.525528 | 0.0075 | ./templates/anotheroddsboard/anotheroddsboard.html:4(root) |
107 | 0.019656000000000003 | 0.0002 | 0.019656000000000003 | 0.0002 | {built-in method builtins.hasattr} |
28 | 0.019187000000000003 | 0.0007 | 0.028089000000000003 | 0.0010 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:122(__new__) |
70 | 0.018241 | 0.0003 | 0.49342400000000003 | 0.0070 | ./templates/shared/base.html:4(root) |
27 | 0.018186 | 0.0007 | 0.04953200000000001 | 0.0018 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:24(escape) |
25 | 0.017476 | 0.0007 | 0.08600900000000002 | 0.0034 | ./venv/lib/python3.11/site-packages/werkzeug/routing/rules.py:816(build) |
26 | 0.014967000000000001 | 0.0006 | 0.014967000000000001 | 0.0006 | ./venv/lib/python3.11/site-packages/werkzeug/routing/rules.py:845(suitable_for) |
24/1 | 0.014729 | 0.0006 | 0.535899 | 0.5359 | {method 'join' of 'str' objects} |
22 | 0.013407 | 0.0006 | 0.026681 | 0.0012 | ./venv/lib/python3.11/site-packages/werkzeug/urls.py:533(quote) |
1 | 0.012625 | 0.0126 | 0.046486 | 0.0465 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:93(new_context) |
25 | 0.011375 | 0.0005 | 0.020410000000000005 | 0.0008 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:693(get_host) |
52 | 0.010101 | 0.0002 | 0.022736 | 0.0004 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:90(from_obj) |
2 | 0.010089 | 0.0050 | 0.012614000000000002 | 0.0063 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:508(__getitem__) |
22 | 0.009798 | 0.0004 | 0.009798 | 0.0004 | ./venv/lib/python3.11/site-packages/werkzeug/urls.py:534(<listcomp>) |
1 | 0.009338 | 0.0093 | 0.025578 | 0.0256 | ./venv/lib/python3.11/site-packages/flask/app.py:973(update_template_context) |
26 | 0.008915000000000001 | 0.0003 | 0.013274000000000001 | 0.0005 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:75(blueprint) |
79 | 0.007621 | 0.0001 | 0.007621 | 0.0001 | {built-in method builtins.isinstance} |
25 | 0.007183 | 0.0003 | 0.009035000000000001 | 0.0004 | ./venv/lib/python3.11/site-packages/werkzeug/_internal.py:130(_to_str) |
25 | 0.006762000000000001 | 0.0003 | 0.006762000000000001 | 0.0003 | ./venv/lib/python3.11/site-packages/flask/app.py:2237(inject_url_defaults) |
1 | 0.006523 | 0.0065 | 0.015409 | 0.0154 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:165(__init__) |
28 | 0.006296 | 0.0002 | 0.006296 | 0.0002 | {built-in method __new__ of type object at 0x927000} |
12 | 0.005561000000000001 | 0.0005 | 0.07518000000000001 | 0.0063 | ./templates/shared/base.html:125(block_footer) |
10 | 0.005518 | 0.0006 | 0.025566000000000002 | 0.0026 | <werkzeug routing>:1(<builder:'/oldizer/<sport>'>) |
1 | 0.00549 | 0.0055 | 0.7106150000000001 | 0.7106 | ./venv/lib/python3.11/site-packages/flask/templating.py:135(render_template) |
2 | 0.00548 | 0.0027 | 0.010189 | 0.0051 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:485(getattr) |
2 | 0.005399 | 0.0027 | 0.055252 | 0.0276 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:956(_load_template) |
2 | 0.005222 | 0.0026 | 0.008596000000000001 | 0.0043 | <collections/__init__.py:1014(__iter__)> |
13 | 0.005188 | 0.0004 | 0.005188 | 0.0004 | <collections/__init__.py:1000(__getitem__)> |
6 | 0.00511 | 0.0009 | 0.0057610000000000005 | 0.0010 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:509(_get_current_object) |
22 | 0.004969 | 0.0002 | 0.004969 | 0.0002 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:911(<dictcomp>) |
52 | 0.0049250000000000006 | 0.0001 | 0.0049250000000000006 | 0.0001 | {method 'pop' of 'dict' objects} |
1 | 0.004458 | 0.0045 | 0.641225 | 0.6412 | ./venv/lib/python3.11/site-packages/flask/templating.py:127(_render) |
1 | 0.004378 | 0.0044 | 0.588016 | 0.5880 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1275(render) |
26 | 0.004359 | 0.0002 | 0.004359 | 0.0002 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:60(endpoint) |
5 | 0.004337000000000001 | 0.0009 | 0.007805 | 0.0016 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:308(__get__) |
1 | 0.004118 | 0.0041 | 0.004749000000000001 | 0.0047 | ./venv/lib/python3.11/site-packages/werkzeug/utils.py:97(__get__) |
5 | 0.004067 | 0.0008 | 0.020096000000000003 | 0.0040 | <werkzeug routing>:1(<builder:'/oddizer/<sport>'>) |
3 | 0.0039570000000000004 | 0.0013 | 0.010018 | 0.0033 | ./venv/lib/python3.11/site-packages/blinker/base.py:326(receivers_for) |
8 | 0.0038369999999999997 | 0.0005 | 0.040186000000000006 | 0.0050 | ./templates/anotheroddsboard/anotheroddsboard.html:37(block_content) |
1 | 0.003758 | 0.0038 | 0.008867 | 0.0089 | ./venv/lib/python3.11/site-packages/flask/helpers.py:662(__get__) |
26 | 0.0036070000000000004 | 0.0001 | 0.0036070000000000004 | 0.0001 | {built-in method markupsafe._speedups._escape_inner} |
2 | 0.0034770000000000005 | 0.0017 | 0.023173 | 0.0116 | ./venv/lib/python3.11/site-packages/blinker/base.py:204(send) |
2 | 0.0034370000000000004 | 0.0017 | 0.030567 | 0.0153 | <frozen genericpath>:53(getmtime) |
25 | 0.003355 | 0.0001 | 0.003355 | 0.0001 | ./venv/lib/python3.11/site-packages/werkzeug/routing/map.py:355(update) |
2 | 0.0030470000000000002 | 0.0015 | 0.058829 | 0.0294 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:981(get_template) |
25 | 0.003037 | 0.0001 | 0.003037 | 0.0001 | {method 'lstrip' of 'str' objects} |
25 | 0.0029590000000000003 | 0.0001 | 0.0029590000000000003 | 0.0001 | {method 'rstrip' of 'str' objects} |
1 | 0.002937 | 0.0029 | 0.006032 | 0.0060 | ./venv/lib/python3.11/site-packages/flask_login/utils.py:367(_get_user) |
2 | 0.0029240000000000004 | 0.0015 | 0.033491 | 0.0167 | ./venv/lib/python3.11/site-packages/jinja2/loaders.py:219(uptodate) |
34 | 0.0028550000000000003 | 0.0001 | 0.0028550000000000003 | 0.0001 | {method 'get' of '_contextvars.ContextVar' objects} |
1 | 0.002824 | 0.0028 | 0.004849000000000001 | 0.0048 | ./venv/lib/python3.11/site-packages/jinja2/nodes.py:76(__init__) |
22 | 0.0028060000000000003 | 0.0001 | 0.0028060000000000003 | 0.0001 | {method 'encode' of 'str' objects} |
28 | 0.0027470000000000003 | 0.0001 | 0.0027470000000000003 | 0.0001 | {method 'get' of 'dict' objects} |
1 | 0.002585 | 0.0026 | 0.051456 | 0.0515 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1072(get_or_select_template) |
1 | 0.002576 | 0.0026 | 0.003958 | 0.0040 | <inspect.py:391(_has_code_flag)> |
14 | 0.0025640000000000003 | 0.0002 | 0.008806 | 0.0006 | <frozen _collections_abc>:835(__iter__) |
5 | 0.0024850000000000002 | 0.0005 | 0.012303000000000001 | 0.0025 | <werkzeug routing>:1(<builder:'/anotheroddsboard/<sport>'>) |
4 | 0.0022930000000000003 | 0.0006 | 0.0022930000000000003 | 0.0006 | {built-in method fromkeys} |
2 | 0.0022860000000000003 | 0.0011 | 0.035777 | 0.0179 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1491(is_up_to_date) |
24 | 0.002222 | 0.0001 | 0.002222 | 0.0001 | {method 'items' of 'dict' objects} |
1 | 0.002144 | 0.0021 | 0.002144 | 0.0021 | <weakref.py:68(__call__)> |
1 | 0.002024 | 0.0020 | 0.0030660000000000006 | 0.0031 | ./venv/lib/python3.11/site-packages/blinker/_utilities.py:42(make_id) |
4 | 0.0019830000000000004 | 0.0005 | 0.0019830000000000004 | 0.0005 | ./templates/anotheroddsboard/anotheroddsboard.html:17(block_title) |
2 | 0.0019140000000000001 | 0.0010 | 0.0019140000000000001 | 0.0010 | {method 'remove' of 'collections.deque' objects} |
3 | 0.001853 | 0.0006 | 0.001853 | 0.0006 | {built-in method builtins.getattr} |
2 | 0.0018430000000000002 | 0.0009 | 0.008546000000000002 | 0.0043 | <werkzeug routing>:1(<builder:'/static/<path:filename>'>) |
1 | 0.001773 | 0.0018 | 0.001994 | 0.0020 | ./venv/lib/python3.11/site-packages/flask/templating.py:21(_default_template_ctx_processor) |
8 | 0.0017720000000000001 | 0.0002 | 0.0017720000000000001 | 0.0002 | {method 'update' of 'dict' objects} |
5 | 0.0017540000000000001 | 0.0004 | 0.0017540000000000001 | 0.0004 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:229(resolve_or_missing) |
1 | 0.0017430000000000002 | 0.0017 | 0.0025350000000000004 | 0.0025 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:128(__getitem__) |
1 | 0.001703 | 0.0017 | 0.002294 | 0.0023 | <collections/__init__.py:1023(__bool__)> |
1 | 0.001613 | 0.0016 | 0.002164 | 0.0022 | <frozen _collections_abc>:786(keys) |
1 | 0.0015630000000000002 | 0.0016 | 0.0037170000000000003 | 0.0037 | ./venv/lib/python3.11/site-packages/flask_debugtoolbar/panels/template.py:72(is_editor_enabled) |
1 | 0.0015440000000000002 | 0.0015 | 0.004479 | 0.0045 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:379(__call__) |
1 | 0.001514 | 0.0015 | 0.001884 | 0.0019 | ./venv/lib/python3.11/site-packages/flask/app.py:960(select_jinja_autoescape) |
2 | 0.0014620000000000002 | 0.0007 | 0.014076 | 0.0070 | ./venv/lib/python3.11/site-packages/jinja2/utils.py:474(get) |
1 | 0.001453 | 0.0015 | 0.001453 | 0.0015 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:184(<dictcomp>) |
1 | 0.0013920000000000002 | 0.0014 | 0.7120070000000001 | 0.7120 | ./app.py:639(anotheroddsboard_homepage) |
5 | 0.0012840000000000002 | 0.0003 | 0.0012840000000000002 | 0.0003 | ./venv/lib/python3.11/site-packages/werkzeug/local.py:293(bind_f) |
1 | 0.0012530000000000002 | 0.0013 | 0.047739000000000004 | 0.0477 | ./venv/lib/python3.11/site-packages/jinja2/environment.py:1375(new_context) |
2 | 0.001082 | 0.0005 | 0.001082 | 0.0005 | ./templates/shared/base.html:35(block_stylesheet) |
1 | 0.0010220000000000001 | 0.0010 | 0.004829000000000001 | 0.0048 | ./venv/lib/python3.11/site-packages/flask_debugtoolbar/panels/template.py:39(_store_template_info) |
3 | 0.001001 | 0.0003 | 0.0012510000000000002 | 0.0004 | <inspect.py:300(ismethod)> |
1 | 0.000891 | 0.0009 | 0.000891 | 0.0009 | <werkzeug routing>:1(<builder:'/oddizer'>) |
1 | 0.0008810000000000001 | 0.0009 | 0.006913000000000001 | 0.0069 | ./venv/lib/python3.11/site-packages/flask_login/utils.py:404(_user_context_processor) |
1 | 0.0008410000000000001 | 0.0008 | 0.004799 | 0.0048 | <inspect.py:409(iscoroutinefunction)> |
6 | 0.0008130000000000001 | 0.0001 | 0.0008130000000000001 | 0.0001 | {method 'setdefault' of 'dict' objects} |
1 | 0.000792 | 0.0008 | 0.000792 | 0.0008 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:347(__init__) |
1 | 0.000792 | 0.0008 | 0.000792 | 0.0008 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:818(__init__) |
8 | 0.00076 | 0.0001 | 0.00076 | 0.0001 | {method 'append' of 'list' objects} |
1 | 0.0007510000000000001 | 0.0008 | 0.001883 | 0.0019 | ./venv/lib/python3.11/site-packages/flask/wrappers.py:94(blueprints) |
1 | 0.000701 | 0.0007 | 0.000701 | 0.0007 | <werkzeug routing>:1(<builder:'/anotheroddsboard'>) |
1 | 0.000651 | 0.0007 | 0.000651 | 0.0007 | {method 'copy' of 'set' objects} |
1 | 0.0006010000000000001 | 0.0006 | 0.0006010000000000001 | 0.0006 | ./venv/lib/python3.11/site-packages/flask_security/core.py:350(_context_processor) |
1 | 0.000591 | 0.0006 | 0.000591 | 0.0006 | {built-in method builtins.any} |
1 | 0.000551 | 0.0006 | 0.000551 | 0.0006 | <frozen _collections_abc>:812(__init__) |
1 | 0.000551 | 0.0006 | 0.0006110000000000001 | 0.0006 | <inspect.py:378(isfunction)> |
2 | 0.000482 | 0.0002 | 0.000482 | 0.0002 | ./templates/shared/base.html:45(block_javascripts) |
1 | 0.00043 | 0.0004 | 0.00043 | 0.0004 | <werkzeug routing>:1(<builder:'/oldizer'>) |
1 | 0.000411 | 0.0004 | 0.00046100000000000004 | 0.0005 | ./venv/lib/python3.11/site-packages/flask/ctx.py:187(has_request_context) |
1 | 0.00037 | 0.0004 | 0.00037 | 0.0004 | {method 'endswith' of 'str' objects} |
1 | 0.00036 | 0.0004 | 0.00036 | 0.0004 | {method '__exit__' of '_thread.RLock' objects} |
2 | 0.000351 | 0.0002 | 0.000351 | 0.0002 | {method '__exit__' of '_thread.lock' objects} |
1 | 0.00033 | 0.0003 | 0.00033 | 0.0003 | ./venv/lib/python3.11/site-packages/flask/ctx.py:100(__contains__) |
2 | 0.00031 | 0.0002 | 0.00031 | 0.0002 | {built-in method builtins.iter} |
1 | 0.000301 | 0.0003 | 0.000301 | 0.0003 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:125(__init__) |
1 | 0.00029099999999999997 | 0.0003 | 0.00032100000000000005 | 0.0003 | <functools.py:421(_unwrap_partial)> |
2 | 0.00026 | 0.0001 | 0.00026 | 0.0001 | {method 'append' of 'collections.deque' objects} |
1 | 0.00025100000000000003 | 0.0003 | 0.00025100000000000003 | 0.0003 | {method 'copy' of 'dict' objects} |
2 | 0.000181 | 0.0001 | 0.000181 | 0.0001 | ./venv/lib/python3.11/site-packages/markupsafe/__init__.py:133(__html__) |
1 | 0.000141 | 0.0001 | 0.000141 | 0.0001 | {built-in method builtins.callable} |
1 | 0.00014000000000000001 | 0.0001 | 0.00014000000000000001 | 0.0001 | ./venv/lib/python3.11/site-packages/jinja2/runtime.py:905(__bool__) |
1 | 0.00012100000000000001 | 0.0001 | 0.00012100000000000001 | 0.0001 | {built-in method builtins.id} |
1 | 0.00012000000000000002 | 0.0001 | 0.00012000000000000002 | 0.0001 | {method 'disable' of '_lsprof.Profiler' objects} |
1 | 9e-05 | 0.0001 | 9e-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 0x7b3e6659b690> |
debug_toolbar | <flask_debugtoolbar.DebugToolbarExtension object at 0x7b3eb4fa2190> |
identity | <AnonymousIdentity id="None" auth_type="None" provides=set()> |