diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d9d569c..3c82e0a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -19,7 +19,7 @@ jobs: - name: Python 3.10 Setup uses: astral-sh/setup-uv@v5 with: - python-version: "3.12" + python-version: "3.13" - name: Install requirements for docs run: | sudo apt-get update diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ef1c4b7..8ede26d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -32,7 +32,7 @@ jobs: - name: Python Setup uses: astral-sh/setup-uv@v5 with: - python-version: "3.12" + python-version: "3.13" - name: Install dependencies run: | sudo apt-get update diff --git a/.python-version b/.python-version index e4fba21..24ee5b1 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.12 +3.13 diff --git a/Dockerfile b/Dockerfile index 5fddebc..0f9da24 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.12-slim +FROM python:3.13-slim COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ WORKDIR /app diff --git a/docs/requirements.txt b/docs/requirements.txt index 3fbef8f..e3f5afe 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,12 +1,14 @@ # This file was autogenerated by uv via the following command: # uv pip compile docs/requirements.in -o docs/requirements.txt -babel==2.16.0 +babel==2.17.0 # via mkdocs-material -certifi==2024.8.30 +backrefs==6.1 + # via mkdocs-material +certifi==2025.11.12 # via requests -charset-normalizer==3.4.0 +charset-normalizer==3.4.4 # via requests -click==8.1.7 +click==8.3.1 # via mkdocs colorama==0.4.6 # via mkdocs-material @@ -16,19 +18,19 @@ hjson==3.1.0 # via # mkdocs-macros-plugin # super-collections -idna==3.10 +idna==3.11 # via requests jinja2==3.1.6 # via # mkdocs # mkdocs-macros-plugin # mkdocs-material -markdown==3.7 +markdown==3.10 # via # mkdocs # mkdocs-material # pymdown-extensions -markupsafe==3.0.2 +markupsafe==3.0.3 # via # jinja2 # mkdocs @@ -38,18 +40,18 @@ mergedeep==1.3.4 # mkdocs-get-deps mkdocs==1.6.1 # via - # -r requirements.in + # -r docs/requirements.in # mkdocs-macros-plugin # mkdocs-material mkdocs-get-deps==0.2.0 # via mkdocs -mkdocs-macros-plugin==1.3.7 - # via -r requirements.in -mkdocs-material==9.5.45 - # via -r requirements.in +mkdocs-macros-plugin==1.5.0 + # via -r docs/requirements.in +mkdocs-material==9.7.1 + # via -r docs/requirements.in mkdocs-material-extensions==1.3.1 # via mkdocs-material -packaging==24.2 +packaging==25.0 # via # mkdocs # mkdocs-macros-plugin @@ -59,40 +61,40 @@ pathspec==0.12.1 # via # mkdocs # mkdocs-macros-plugin -platformdirs==4.3.6 +platformdirs==4.5.1 # via mkdocs-get-deps -pygments==2.18.0 +pygments==2.19.2 # via - # -r requirements.in + # -r docs/requirements.in # mkdocs-material -pymdown-extensions==10.12 +pymdown-extensions==10.19.1 # via - # -r requirements.in + # -r docs/requirements.in # mkdocs-material python-dateutil==2.9.0.post0 # via # ghp-import # mkdocs-macros-plugin -pyyaml==6.0.2 +pyyaml==6.0.3 # via # mkdocs # mkdocs-get-deps # mkdocs-macros-plugin # pymdown-extensions # pyyaml-env-tag -pyyaml-env-tag==0.1 +pyyaml-env-tag==1.1 # via mkdocs -regex==2024.11.6 - # via mkdocs-material -requests==2.32.4 - # via mkdocs-material -six==1.16.0 +requests==2.32.5 + # via + # mkdocs-macros-plugin + # mkdocs-material +six==1.17.0 # via python-dateutil -super-collections==0.5.3 +super-collections==0.6.2 # via mkdocs-macros-plugin -termcolor==2.5.0 +termcolor==3.3.0 # via mkdocs-macros-plugin -urllib3==2.6.0 +urllib3==2.6.2 # via requests watchdog==6.0.0 # via mkdocs diff --git a/pyproject.toml b/pyproject.toml index b3e8e0c..ec23812 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "flagging" version = "0.1.0" description = "App for Charles River Watershed Assocaition's Flagging Program" readme = "README.md" -requires-python = "~=3.12" +requires-python = "~=3.13" [tool.ruff] line-length = 100 diff --git a/requirements.in b/requirements.in index cfdb569..f1b0d62 100644 --- a/requirements.in +++ b/requirements.in @@ -49,7 +49,7 @@ pytest-celery pytest-cov pytest-env pytest-postgresql -schemathesis +schemathesis<4 # ========================================================== # Misc. dev stuff diff --git a/requirements.txt b/requirements.txt index 6d5e77a..2741b49 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,50 +1,51 @@ # This file was autogenerated by uv via the following command: # uv pip compile requirements.in -o requirements.txt -alembic==1.16.1 +alembic==1.17.2 # via flask-db amqp==5.3.1 # via kombu annotated-types==0.7.0 # via pydantic -anyio==4.9.0 +anyio==4.12.0 # via # httpx # starlette -arrow==1.3.0 +arrow==1.4.0 # via isoduration -attrs==25.3.0 +attrs==25.4.0 # via - # hypothesis # jsonschema # pytest-subtests # referencing backoff==2.2.1 # via schemathesis -billiard==4.2.1 +billiard==4.2.4 # via celery blinker==1.9.0 # via # flask # flask-mail # sentry-sdk +build==1.3.0 + # via inotify cachelib==0.13.0 # via flask-caching -celery==5.5.2 +celery==5.6.1 # via # -r requirements.in # flower # pytest-celery -certifi==2025.4.26 +certifi==2025.11.12 # via # httpcore # httpx # requests # sentry-sdk -cfgv==3.4.0 +cfgv==3.5.0 # via pre-commit -charset-normalizer==3.4.2 +charset-normalizer==3.4.4 # via requests -click==8.2.1 +click==8.3.1 # via # -r requirements.in # celery @@ -56,27 +57,27 @@ click==8.2.1 # schemathesis click-didyoumean==0.3.1 # via celery -click-plugins==1.1.1 +click-plugins==1.1.1.2 # via celery click-repl==0.3.0 # via celery colorama==0.4.6 # via schemathesis -coverage[toml]==7.8.2 +coverage==7.13.1 # via pytest-cov -debugpy==1.8.14 +debugpy==1.8.19 # via pytest-celery -distlib==0.3.9 +distlib==0.4.0 # via virtualenv docker==7.1.0 # via # pytest-celery # pytest-docker-tools -filelock==3.18.0 +filelock==3.20.1 # via virtualenv flasgger==0.9.7.1 # via -r requirements.in -flask==3.1.1 +flask==3.1.2 # via # -r requirements.in # flasgger @@ -94,7 +95,7 @@ flask-basicauth==0.2.0 # via -r requirements.in flask-caching==2.3.1 # via -r requirements.in -flask-cors==6.0.0 +flask-cors==6.0.2 # via -r requirements.in flask-db==0.4.1 # via -r requirements.in @@ -110,23 +111,21 @@ flower==2.0.1 # via -r requirements.in fqdn==1.5.1 # via jsonschema -graphql-core==3.2.6 +graphql-core==3.2.7 # via hypothesis-graphql -greenlet==3.3.0 - # via sqlalchemy gunicorn==23.0.0 # via -r requirements.in h11==0.16.0 # via httpcore -harfile==0.3.0 +harfile==0.4.0 # via schemathesis httpcore==1.0.9 # via httpx httpx==0.28.1 # via schemathesis -humanize==4.12.3 +humanize==4.15.0 # via flower -hypothesis==6.131.30 +hypothesis==6.148.8 # via # hypothesis-graphql # hypothesis-jsonschema @@ -135,18 +134,18 @@ hypothesis-graphql==0.11.1 # via schemathesis hypothesis-jsonschema==0.23.1 # via schemathesis -identify==2.6.12 +identify==2.6.15 # via pre-commit -idna==3.10 +idna==3.11 # via # anyio # httpx # jsonschema # requests # yarl -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest -inotify==0.2.10 +inotify==0.2.12 # via -r requirements.in isoduration==20.11.0 # via jsonschema @@ -159,26 +158,26 @@ jinja2==3.1.6 # flask-admin jsonpointer==3.0.0 # via jsonschema -jsonschema[format]==4.24.0 +jsonschema==4.25.1 # via # flasgger # hypothesis-jsonschema # schemathesis -jsonschema-specifications==2025.4.1 +jsonschema-specifications==2025.9.1 # via jsonschema junit-xml==1.9 # via schemathesis -kombu==5.5.3 +kombu==5.6.2 # via # celery # pytest-celery mako==1.3.10 # via alembic -markdown==3.8 +markdown==3.10 # via -r requirements.in -markdown-it-py==3.0.0 +markdown-it-py==4.0.0 # via rich -markupsafe==3.0.2 +markupsafe==3.0.3 # via # flask # flask-admin @@ -189,69 +188,75 @@ markupsafe==3.0.2 # wtforms mdurl==0.1.2 # via markdown-it-py -mirakuru==2.6.0 +mirakuru==3.0.1 # via pytest-postgresql -mistune==3.1.3 +mistune==3.2.0 # via flasgger -multidict==6.4.4 +multidict==6.7.0 # via yarl -nodeenv==1.9.1 +nodeenv==1.10.0 # via pre-commit -nose==1.3.7 - # via inotify -numpy==2.2.6 +numpy==2.4.0 # via pandas -oauthlib==3.2.2 +oauthlib==3.3.1 # via # requests-oauthlib # tweepy packaging==25.0 # via + # build # flasgger # gunicorn + # kombu # pytest # pytest-postgresql -pandas==2.2.3 +pandas==2.3.3 # via -r requirements.in -platformdirs==4.3.8 +platformdirs==4.5.1 # via virtualenv pluggy==1.6.0 - # via pytest -port-for==0.7.4 + # via + # pytest + # pytest-cov +port-for==1.0.0 # via pytest-postgresql -pre-commit==4.2.0 +pre-commit==4.5.1 # via -r requirements.in -prometheus-client==0.22.0 +prometheus-client==0.23.1 # via flower -prompt-toolkit==3.0.51 +prompt-toolkit==3.0.52 # via click-repl -propcache==0.3.1 +propcache==0.4.1 # via yarl -psutil==7.0.0 +psutil==7.2.1 # via # mirakuru # pytest-celery -psycopg[binary]==3.2.9 +psycopg==3.3.2 # via # -r requirements.in # pytest-postgresql -psycopg-binary==3.2.9 +psycopg-binary==3.3.2 # via psycopg -pyarrow==20.0.0 +pyarrow==22.0.0 # via -r requirements.in -pydantic==2.11.5 +pydantic==2.12.5 # via # -r requirements.in # pydantic-settings -pydantic-core==2.33.2 +pydantic-core==2.41.5 # via pydantic -pydantic-settings==2.9.1 +pydantic-settings==2.12.0 # via -r requirements.in -pygments==2.19.1 - # via rich -pyrate-limiter==3.7.0 +pygments==2.19.2 + # via + # pytest + # rich +pyproject-hooks==1.2.0 + # via build +pyrate-limiter==3.9.0 # via schemathesis -pytest==8.3.5 +pytest==8.4.2 # via # -r requirements.in # pytest-cov @@ -260,24 +265,24 @@ pytest==8.3.5 # pytest-postgresql # pytest-subtests # schemathesis -pytest-celery==1.2.0 +pytest-celery==1.2.1 # via -r requirements.in -pytest-cov==6.1.1 +pytest-cov==7.0.0 # via -r requirements.in pytest-docker-tools==3.1.9 # via pytest-celery -pytest-env==1.1.5 +pytest-env==1.2.0 # via -r requirements.in pytest-postgresql==7.0.2 # via -r requirements.in -pytest-subtests==0.14.1 +pytest-subtests==0.14.2 # via schemathesis python-dateutil==2.9.0.post0 # via # arrow # celery # pandas -python-dotenv==1.1.0 +python-dotenv==1.2.1 # via # -r requirements.in # pydantic-settings @@ -286,19 +291,19 @@ pytz==2025.2 # -r requirements.in # flower # pandas -pyyaml==6.0.2 +pyyaml==6.0.3 # via # -r requirements.in # flasgger # pre-commit # schemathesis -redis==6.1.0 +redis==7.1.0 # via -r requirements.in -referencing==0.36.2 +referencing==0.37.0 # via # jsonschema # jsonschema-specifications -requests==2.32.3 +requests==2.32.5 # via # -r requirements.in # docker @@ -312,40 +317,42 @@ rfc3339-validator==0.1.4 # via jsonschema rfc3987==1.3.8 # via jsonschema -rich==14.0.0 +rich==14.2.0 # via rich-click -rich-click==1.8.9 +rich-click==1.9.5 # via -r requirements.in -rpds-py==0.25.1 +rpds-py==0.30.0 # via # jsonschema # referencing -ruff==0.11.11 +ruff==0.14.10 # via -r requirements.in schemathesis==3.39.16 # via -r requirements.in -sentry-sdk[flask]==2.29.1 +sentry-sdk==2.48.0 # via -r requirements.in +setuptools==80.9.0 + # via + # flask-db + # pytest-celery six==1.17.0 # via # flasgger # junit-xml # python-dateutil # rfc3339-validator -sniffio==1.3.1 - # via anyio sortedcontainers==2.4.0 # via hypothesis -sqlalchemy==2.0.41 +sqlalchemy==2.0.45 # via # -r requirements.in # alembic # flask-db # flask-sqlalchemy # sqlalchemy-utils -sqlalchemy-utils==0.41.2 +sqlalchemy-utils==0.42.1 # via flask-db -starlette==0.46.2 +starlette==0.50.0 # via # schemathesis # starlette-testclient @@ -355,17 +362,15 @@ tenacity==9.1.2 # via # -r requirements.in # pytest-celery -tomli==2.2.1 +tomli==2.3.0 # via schemathesis tomli-w==1.2.0 # via schemathesis -tornado==6.5.1 +tornado==6.5.4 # via flower -tweepy==4.15.0 +tweepy==4.16.0 # via -r requirements.in -types-python-dateutil==2.9.0.20250516 - # via arrow -typing-extensions==4.13.2 +typing-extensions==4.15.0 # via # alembic # anyio @@ -373,38 +378,41 @@ typing-extensions==4.13.2 # pydantic # pydantic-core # referencing - # rich-click # sqlalchemy + # starlette # typing-inspection -typing-inspection==0.4.1 +typing-inspection==0.4.2 # via # pydantic # pydantic-settings -tzdata==2025.2 +tzdata==2025.3 # via + # arrow # kombu # pandas +tzlocal==5.3.1 + # via celery uri-template==1.3.0 # via jsonschema -urllib3==2.6.0 +urllib3==2.6.2 # via # docker # requests # sentry-sdk -uv==0.7.8 +uv==0.9.21 # via -r requirements.in vine==5.1.0 # via # amqp # celery # kombu -virtualenv==20.31.2 +virtualenv==20.35.4 # via pre-commit -wcwidth==0.2.13 +wcwidth==0.2.14 # via prompt-toolkit -webcolors==24.11.1 +webcolors==25.10.0 # via jsonschema -werkzeug==3.1.3 +werkzeug==3.1.4 # via # flask # flask-admin @@ -414,5 +422,5 @@ wtforms==3.1.2 # via # -r requirements.in # flask-admin -yarl==1.20.0 +yarl==1.22.0 # via schemathesis