diff --git a/src/app.py b/src/app.py index 70d51cc..8c2e59f 100644 --- a/src/app.py +++ b/src/app.py @@ -166,7 +166,11 @@ app.index_string = """ {%metas%} {%title%} - {%favicon%} + + + + + {%css%} diff --git a/src/assets/colibre.png b/src/assets/colibre.png index f2e91b5..70c7f34 100644 Binary files a/src/assets/colibre.png and b/src/assets/colibre.png differ diff --git a/uv.lock b/uv.lock index 6580b31..2845f72 100644 --- a/uv.lock +++ b/uv.lock @@ -580,6 +580,99 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fb/e2/79c688af8b210d232694e31e59da9f6ec747bae31c3f5946e4e9b98860d5/click-8.4.2-py3-none-any.whl", hash = "sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76", size = 119243, upload-time = "2026-06-24T17:45:13.73Z" }, ] +[[package]] +name = "colibre" +version = "2.8.1" +source = { virtual = "." } +dependencies = [ + { name = "authlib" }, + { name = "boto3" }, + { name = "brevo-python" }, + { name = "cryptography" }, + { name = "dash", extra = ["compress"] }, + { name = "dash-bootstrap-components" }, + { name = "dash-extensions", version = "1.0.20", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "dash-extensions", version = "2.0.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "dash-leaflet", version = "1.0.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "dash-leaflet", version = "1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "duckdb" }, + { name = "email-validator" }, + { name = "flask-caching" }, + { name = "flask-cors" }, + { name = "flask-login" }, + { name = "flask-smorest" }, + { name = "flask-wtf" }, + { name = "gunicorn" }, + { name = "httpx" }, + { name = "marshmallow" }, + { name = "orjson" }, + { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pandas", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "plotly", extra = ["express"] }, + { name = "polars" }, + { name = "pyarrow" }, + { name = "python-dotenv" }, + { name = "unidecode" }, + { name = "xlsxwriter" }, +] + +[package.dev-dependencies] +dev = [ + { name = "dash", extra = ["testing"] }, + { name = "fastexcel" }, + { name = "moto", extra = ["s3"] }, + { name = "openpyxl" }, + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-env" }, + { name = "selenium" }, + { name = "webdriver-manager" }, +] + +[package.metadata] +requires-dist = [ + { name = "authlib" }, + { name = "boto3" }, + { name = "brevo-python", specifier = "==5.0.0rc1" }, + { name = "cryptography" }, + { name = "dash", specifier = "==3.4.0" }, + { name = "dash", extras = ["compress"] }, + { name = "dash-bootstrap-components" }, + { name = "dash-extensions" }, + { name = "dash-leaflet" }, + { name = "duckdb" }, + { name = "email-validator" }, + { name = "flask-caching" }, + { name = "flask-cors", specifier = ">=6.0.2" }, + { name = "flask-login" }, + { name = "flask-smorest", specifier = ">=0.46.0" }, + { name = "flask-wtf" }, + { name = "gunicorn" }, + { name = "httpx" }, + { name = "marshmallow", specifier = ">=3.20.0" }, + { name = "orjson" }, + { name = "pandas" }, + { name = "plotly", extras = ["express"] }, + { name = "polars" }, + { name = "pyarrow", specifier = ">=23.0.1" }, + { name = "python-dotenv" }, + { name = "unidecode" }, + { name = "xlsxwriter" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "dash", extras = ["testing"] }, + { name = "fastexcel" }, + { name = "moto", extras = ["s3"] }, + { name = "openpyxl" }, + { name = "pre-commit" }, + { name = "pytest" }, + { name = "pytest-env" }, + { name = "selenium" }, + { name = "webdriver-manager" }, +] + [[package]] name = "colorama" version = "0.4.6" @@ -862,99 +955,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/27/a0/a221942b3fbbafaea4e211744d298366b6a9712c1aa336b05fc1c865ac0c/dataclass_wizard-0.39.1-py3-none-any.whl", hash = "sha256:3324e59eca705882eb34e2b3989b2beadd8c2b523e6269d4002cf1a4a5bf703b", size = 215344, upload-time = "2026-01-06T03:30:54.915Z" }, ] -[[package]] -name = "decp-info" -version = "2.8.1" -source = { virtual = "." } -dependencies = [ - { name = "authlib" }, - { name = "boto3" }, - { name = "brevo-python" }, - { name = "cryptography" }, - { name = "dash", extra = ["compress"] }, - { name = "dash-bootstrap-components" }, - { name = "dash-extensions", version = "1.0.20", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "dash-extensions", version = "2.0.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "dash-leaflet", version = "1.0.15", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "dash-leaflet", version = "1.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "duckdb" }, - { name = "email-validator" }, - { name = "flask-caching" }, - { name = "flask-cors" }, - { name = "flask-login" }, - { name = "flask-smorest" }, - { name = "flask-wtf" }, - { name = "gunicorn" }, - { name = "httpx" }, - { name = "marshmallow" }, - { name = "orjson" }, - { name = "pandas", version = "2.3.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "pandas", version = "3.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "plotly", extra = ["express"] }, - { name = "polars" }, - { name = "pyarrow" }, - { name = "python-dotenv" }, - { name = "unidecode" }, - { name = "xlsxwriter" }, -] - -[package.dev-dependencies] -dev = [ - { name = "dash", extra = ["testing"] }, - { name = "fastexcel" }, - { name = "moto", extra = ["s3"] }, - { name = "openpyxl" }, - { name = "pre-commit" }, - { name = "pytest" }, - { name = "pytest-env" }, - { name = "selenium" }, - { name = "webdriver-manager" }, -] - -[package.metadata] -requires-dist = [ - { name = "authlib" }, - { name = "boto3" }, - { name = "brevo-python", specifier = "==5.0.0rc1" }, - { name = "cryptography" }, - { name = "dash", specifier = "==3.4.0" }, - { name = "dash", extras = ["compress"] }, - { name = "dash-bootstrap-components" }, - { name = "dash-extensions" }, - { name = "dash-leaflet" }, - { name = "duckdb" }, - { name = "email-validator" }, - { name = "flask-caching" }, - { name = "flask-cors", specifier = ">=6.0.2" }, - { name = "flask-login" }, - { name = "flask-smorest", specifier = ">=0.46.0" }, - { name = "flask-wtf" }, - { name = "gunicorn" }, - { name = "httpx" }, - { name = "marshmallow", specifier = ">=3.20.0" }, - { name = "orjson" }, - { name = "pandas" }, - { name = "plotly", extras = ["express"] }, - { name = "polars" }, - { name = "pyarrow", specifier = ">=23.0.1" }, - { name = "python-dotenv" }, - { name = "unidecode" }, - { name = "xlsxwriter" }, -] - -[package.metadata.requires-dev] -dev = [ - { name = "dash", extras = ["testing"] }, - { name = "fastexcel" }, - { name = "moto", extras = ["s3"] }, - { name = "openpyxl" }, - { name = "pre-commit" }, - { name = "pytest" }, - { name = "pytest-env" }, - { name = "selenium" }, - { name = "webdriver-manager" }, -] - [[package]] name = "dill" version = "0.4.1"