From 8da03005d0fa8903093ce927ad7f6e6b504ce4f2 Mon Sep 17 00:00:00 2001 From: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com> Date: Sun, 7 Jun 2026 16:31:24 +0200 Subject: [PATCH 1/5] Upgrade dependencies --- requirements-dev.txt | 16 ++++++++-------- requirements.txt | 36 ++++++++++++++++++------------------ 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index a44d33b8da..f43d426c9d 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,17 +1,17 @@ -r requirements.txt aiosqlite==0.22.1 -boto3-stubs[essential]==1.42.91 +boto3-stubs[essential]==1.43.24 google-auth-stubs==0.3.0 mypy[faster-cache]==1.20.1 pytest-alembic==0.12.1 -pytest-asyncio==1.3.0 +pytest-asyncio==1.4.0 pytest-cov==7.1.0 pytest-mock==3.15.1 pytest==9.0.3 -ruff==0.15.10 -ty==0.0.29 -types-Authlib==1.6.11.20260418 -types-fpdf2==2.8.4.20260408 -types-psutil==7.2.2.20260408 +ruff==0.15.16 +ty==0.0.44 +types-Authlib==1.6.11.20260518 +types-fpdf2==2.8.4.20260518 +types-psutil==7.2.2.20260518 types-redis==4.6.0.20241004 -types-requests==2.33.0.20260408 \ No newline at end of file +types-requests==2.33.0.20260518 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 6f6094eb64..839bda19a0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,37 +2,37 @@ alembic==1.18.4 # database migrations anyio==4.13.0 arq==0.28.0 # Scheduler asyncpg==0.31.0 # PostgreSQL adapter for asynchronous operations -authlib==1.7.0 +authlib==1.7.2 bcrypt==5.0.0 # password hashing -boto3==1.42.91 # S3 storage +boto3==1.43.24 # S3 storage broadcaster==0.3.1 # Working with websockets with multiple workers. calypsso==2.7.0 email-validator==2.3.0 -Faker==40.15.0 -fastapi[standard]==0.136.0 +Faker==40.21.0 +fastapi[standard]==0.136.3 firebase-admin==7.4.0 # Firebase is used for push notification -google-api-python-client==2.194.0 -google-auth-oauthlib==1.3.1 +google-api-python-client==2.197.0 +google-auth-oauthlib==1.4.0 helloasso-python==1.0.8 httpx==0.28.1 icalendar==7.0.3 jellyfish==1.2.1 # String Matching Jinja2==3.1.6 # template engine for html files -phonenumbers==9.0.28 # Used for phone number validation +phonenumbers==9.0.32 # Used for phone number validation psutil==7.2.2 # psutil is used to determine the number of Hyperion workers -psycopg[binary]==3.3.3 # PostgreSQL adapter for *synchronous* operations at startup (database initializations & migrations) +psycopg[binary]==3.3.4 # PostgreSQL adapter for *synchronous* operations at startup (database initializations & migrations) pydantic-extra-types==2.11.1 -pydantic-settings==2.13.1 -pydantic==2.13.2 -pyjwt[crypto]==2.12.0 # generate and verify the JWT tokens, imported as `jwt` -PyMuPDF==1.27.2.2 # PDF processing, imported as `fitz` -pypdf==6.10.2 -python-multipart==0.0.26 # a form data parser, as oauth flow requires form-data parameters +pydantic-settings==2.14.1 +pydantic==2.13.4 +pyjwt[crypto]==2.13.0 # generate and verify the JWT tokens, imported as `jwt` +PyMuPDF==1.27.2.3 # PDF processing, imported as `fitz` +pypdf==6.13.0 +python-multipart==0.0.32 # a form data parser, as oauth flow requires form-data parameters redis==5.3.1 -requests==2.33.1 +requests==2.34.2 sqlalchemy-utils == 0.42.1 # used to identify foreign keys when merging users -SQLAlchemy[asyncio]==2.0.49 # [asyncio] allows greenlet to be installed on Apple M1 devices. +SQLAlchemy[asyncio]==2.0.50 # [asyncio] allows greenlet to be installed on Apple M1 devices. unidecode==1.4.0 -uvicorn[standard]==0.44.0 -weasyprint==68.1 # HTML to PDF converter +uvicorn[standard]==0.49.0 +weasyprint==69.0 # HTML to PDF converter xlsxwriter==3.2.9 From e9ad9c6ced409ba637469e5acd89f2647d759eff Mon Sep 17 00:00:00 2001 From: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com> Date: Sun, 7 Jun 2026 16:39:19 +0200 Subject: [PATCH 2/5] Ty --- app/core/checkout/payment_tool.py | 6 +++--- pyproject.toml | 1 + tests/core/test_checkout.py | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/core/checkout/payment_tool.py b/app/core/checkout/payment_tool.py index e5f0284c7d..4daa04f8f6 100644 --- a/app/core/checkout/payment_tool.py +++ b/app/core/checkout/payment_tool.py @@ -166,10 +166,10 @@ async def init_checkout( payer: HelloAssoApiV5ModelsCartsCheckoutPayer | None = None if payer_user is not None: payer = HelloAssoApiV5ModelsCartsCheckoutPayer( - first_name=payer_user.firstname, - last_name=payer_user.name, + first_name=payer_user.firstname, # ty:ignore[unknown-argument] + last_name=payer_user.name, # ty:ignore[unknown-argument] email=payer_user.email, - date_of_birth=datetime.combine( + date_of_birth=datetime.combine( # ty:ignore[unknown-argument] payer_user.birthday, datetime.min.time(), tzinfo=UTC, diff --git a/pyproject.toml b/pyproject.toml index 2d1f26cda7..73da92e5c2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -203,3 +203,4 @@ show_missing = true [tool.ty.rules] all = "error" +missing-override-decorator = "ignore" diff --git a/tests/core/test_checkout.py b/tests/core/test_checkout.py index 5b0922a819..201460c0ff 100644 --- a/tests/core/test_checkout.py +++ b/tests/core/test_checkout.py @@ -440,7 +440,7 @@ async def test_payment_tool_init_checkout( mock_checkout_api = mocker.MagicMock() mock_checkout_api.organizations_organization_slug_checkout_intents_post.return_value = HelloAssoApiV5ModelsCartsInitCheckoutResponse( id=7, - redirect_url=redirect_url, + redirect_url=redirect_url, # ty:ignore[unknown-argument] ) mocker.patch( "app.core.checkout.payment_tool.CheckoutApi", @@ -502,7 +502,7 @@ def init_a_checkout_side_effect( raise UnauthorizedException return HelloAssoApiV5ModelsCartsInitCheckoutResponse( id=7, - redirect_url=redirect_url, + redirect_url=redirect_url, # ty:ignore[unknown-argument] ) mocker.patch.object( From b68bc51f09c42cb2653708c2033368c117846c9b Mon Sep 17 00:00:00 2001 From: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com> Date: Sun, 7 Jun 2026 16:47:42 +0200 Subject: [PATCH 3/5] Mypy --- app/types/websocket.py | 2 +- requirements-dev.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/types/websocket.py b/app/types/websocket.py index f9d2f7a02f..81ec37a23f 100644 --- a/app/types/websocket.py +++ b/app/types/websocket.py @@ -96,7 +96,7 @@ async def add_connection_to_room( see incoming messages from other workers that need to be send over websocket """ if room_id not in self.connections: - self.connections[room_id] = set({ws_connection}) # type: ignore[unreachable] + self.connections[room_id] = set({ws_connection}) # This worker wasn't listening to this room over the broadcaster yet because it didn't had any open websocket connection for this room. # We will start to listen to the room over the broadcaster. diff --git a/requirements-dev.txt b/requirements-dev.txt index f43d426c9d..17435ee4ed 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,7 +2,7 @@ aiosqlite==0.22.1 boto3-stubs[essential]==1.43.24 google-auth-stubs==0.3.0 -mypy[faster-cache]==1.20.1 +mypy[faster-cache]==2.1.0 pytest-alembic==0.12.1 pytest-asyncio==1.4.0 pytest-cov==7.1.0 From 03fe18da9f2925f26746b146735d04b9fae1d051 Mon Sep 17 00:00:00 2001 From: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com> Date: Sun, 7 Jun 2026 16:50:51 +0200 Subject: [PATCH 4/5] httpx2 --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 839bda19a0..9769112ea8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,8 +14,8 @@ firebase-admin==7.4.0 # Firebase is used for push notification google-api-python-client==2.197.0 google-auth-oauthlib==1.4.0 helloasso-python==1.0.8 -httpx==0.28.1 -icalendar==7.0.3 +httpx2==2.3.0 +icalendar==7.1.2 jellyfish==1.2.1 # String Matching Jinja2==3.1.6 # template engine for html files phonenumbers==9.0.32 # Used for phone number validation From 6d167c05134c123afd7ad347ef3de2f83b5cc4fe Mon Sep 17 00:00:00 2001 From: armanddidierjean <95971503+armanddidierjean@users.noreply.github.com> Date: Sun, 7 Jun 2026 16:58:29 +0200 Subject: [PATCH 5/5] CI --- .github/workflows/lintandformat.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lintandformat.yml b/.github/workflows/lintandformat.yml index 34f73e81ba..e7c30fe993 100644 --- a/.github/workflows/lintandformat.yml +++ b/.github/workflows/lintandformat.yml @@ -47,7 +47,7 @@ jobs: ruff format --check - name: Type checking using Ty - run: ty check --output-format=github --error=all + run: ty check --output-format=github - name: Cache .mypy_cache folder id: mypy_cache