Skip to content

Commit eb1a259

Browse files
authored
♻️Maintenance: mypy notifications-library, osparc-gateway-server, invitations (#6120)
1 parent 65b4267 commit eb1a259

File tree

17 files changed

+76
-33
lines changed

17 files changed

+76
-33
lines changed

.github/workflows/ci-testing-deploy.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,6 @@ jobs:
10321032
source .venv/bin/activate && \
10331033
pushd services/osparc-gateway-server && \
10341034
make mypy
1035-
continue-on-error: true
10361035
- name: test
10371036
if: always()
10381037
run: |
@@ -1428,7 +1427,6 @@ jobs:
14281427
run: ./ci/github/unit-testing/invitations.bash install
14291428
- name: typecheck
14301429
run: ./ci/github/unit-testing/invitations.bash typecheck
1431-
continue-on-error: true
14321430
- name: test
14331431
if: always()
14341432
run: ./ci/github/unit-testing/invitations.bash test
@@ -1644,7 +1642,6 @@ jobs:
16441642
run: ./ci/github/unit-testing/notifications-library.bash install
16451643
- name: typecheck
16461644
run: ./ci/github/unit-testing/notifications-library.bash typecheck
1647-
continue-on-error: true
16481645
- name: test
16491646
if: always()
16501647
run: ./ci/github/unit-testing/notifications-library.bash test

packages/notifications-library/requirements/_test.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ pytest-sugar
2222
python-dotenv
2323
pyyaml
2424
tenacity
25+
sqlalchemy[mypy]
26+
types-aiofiles

packages/notifications-library/requirements/_test.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ exceptiongroup==1.2.2
1414
# via pytest
1515
faker==26.0.0
1616
# via -r requirements/_test.in
17+
greenlet==3.0.3
18+
# via
19+
# -c requirements/_base.txt
20+
# sqlalchemy
1721
icdiff==2.0.7
1822
# via pytest-icdiff
1923
idna==3.7
@@ -22,6 +26,10 @@ idna==3.7
2226
# requests
2327
iniconfig==2.0.0
2428
# via pytest
29+
mypy==1.11.0
30+
# via sqlalchemy
31+
mypy-extensions==1.0.0
32+
# via mypy
2533
packaging==24.1
2634
# via
2735
# pytest
@@ -71,14 +79,29 @@ six==1.16.0
7179
# via
7280
# -c requirements/_base.txt
7381
# python-dateutil
82+
sqlalchemy==1.4.52
83+
# via
84+
# -c requirements/../../../requirements/constraints.txt
85+
# -c requirements/_base.txt
86+
# -r requirements/_test.in
87+
sqlalchemy2-stubs==0.0.2a38
88+
# via sqlalchemy
7489
tenacity==8.5.0
7590
# via -r requirements/_test.in
7691
termcolor==2.4.0
7792
# via pytest-sugar
7893
tomli==2.0.1
7994
# via
8095
# coverage
96+
# mypy
8197
# pytest
98+
types-aiofiles==24.1.0.20240626
99+
# via -r requirements/_test.in
100+
typing-extensions==4.12.2
101+
# via
102+
# -c requirements/_base.txt
103+
# mypy
104+
# sqlalchemy2-stubs
82105
urllib3==2.2.2
83106
# via
84107
# -c requirements/../../../requirements/constraints.txt

packages/notifications-library/requirements/_tools.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,12 @@ isort==5.13.2
2828
mccabe==0.7.0
2929
# via pylint
3030
mypy==1.11.0
31-
# via -r requirements/../../../requirements/devenv.txt
31+
# via
32+
# -c requirements/_test.txt
33+
# -r requirements/../../../requirements/devenv.txt
3234
mypy-extensions==1.0.0
3335
# via
36+
# -c requirements/_test.txt
3437
# black
3538
# mypy
3639
nodeenv==1.9.1
@@ -81,6 +84,7 @@ tomlkit==0.13.0
8184
typing-extensions==4.12.2
8285
# via
8386
# -c requirements/_base.txt
87+
# -c requirements/_test.txt
8488
# astroid
8589
# black
8690
# mypy

packages/notifications-library/setup.cfg

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,8 @@ test = pytest
1515

1616
[tool:pytest]
1717
asyncio_mode = auto
18+
19+
[mypy]
20+
plugins =
21+
pydantic.mypy
22+
sqlalchemy.ext.mypy.plugin

packages/notifications-library/src/notifications_library/_email.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from contextlib import asynccontextmanager
55
from email.headerregistry import Address
66
from email.message import EmailMessage
7-
from typing import cast
87

98
from aiosmtplib import SMTP
109
from settings_library.email import EmailProtocol, SMTPSettings
@@ -86,4 +85,4 @@ async def create_email_session(
8685
settings.SMTP_PASSWORD.get_secret_value(),
8786
)
8887

89-
yield cast(SMTP, smtp)
88+
yield smtp

services/invitations/setup.cfg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,7 @@ commit_args = --no-verify
1111
asyncio_mode = auto
1212
markers =
1313
testit: "marks test to run during development"
14+
15+
[mypy]
16+
plugins =
17+
pydantic.mypy

services/invitations/src/simcore_service_invitations/_meta.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
""" Application's metadata
22
33
"""
4+
45
from typing import Final
56

67
from packaging.version import Version
78
from servicelib.utils_meta import PackageInfo
9+
from settings_library.basic_types import VersionTag
810

911
info: Final = PackageInfo(package_name="simcore-service-invitations")
1012
__version__: Final[str] = info.__version__
@@ -13,7 +15,7 @@
1315
PROJECT_NAME: Final[str] = info.project_name
1416
VERSION: Final[Version] = info.version
1517
API_VERSION: Final[str] = info.__version__
16-
API_VTAG: Final[str] = info.api_prefix_path_tag
18+
API_VTAG: Final[VersionTag] = VersionTag(info.api_prefix_path_tag)
1719
SUMMARY: Final[str] = info.get_summary()
1820

1921

services/invitations/src/simcore_service_invitations/api/_dependencies.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# mypy: disable-error-code=truthy-function
12
import logging
23
import secrets
34

services/invitations/src/simcore_service_invitations/cli.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from cryptography.fernet import Fernet
66
from models_library.emails import LowerCaseEmailStr
77
from models_library.invitations import InvitationContent, InvitationInputs
8-
from pydantic import HttpUrl, ValidationError, parse_obj_as
8+
from pydantic import EmailStr, HttpUrl, ValidationError, parse_obj_as
99
from rich.console import Console
1010
from servicelib.utils_secrets import generate_password
1111
from settings_library.utils_cli import (
@@ -117,7 +117,7 @@ def invite(
117117

118118
invitation_data = InvitationInputs(
119119
issuer=issuer,
120-
guest=email,
120+
guest=parse_obj_as(EmailStr, email),
121121
trial_account_days=trial_account_days,
122122
extra_credits_in_usd=None,
123123
product=product,

0 commit comments

Comments
 (0)