Skip to content

Commit 0866c1c

Browse files
committed
Remove Optional
1 parent c711eaa commit 0866c1c

File tree

4 files changed

+19
-29
lines changed

4 files changed

+19
-29
lines changed

.github/workflows/test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
cache: "poetry"
8181

8282
- name: Start MongoDB
83-
uses: supercharge/mongodb-github-action@1.8.0
83+
uses: supercharge/mongodb-github-action@1.11.0
8484
with:
8585
mongodb-version: ${{ env.MONGODB_VERSION }}
8686

backend/app/models/users.py

+6-14
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,17 @@
1-
from typing import Annotated, Optional
1+
from typing import Annotated
22
from uuid import UUID, uuid4
33

44
from beanie import Document, Indexed
55
from pydantic import EmailStr, Field
6-
from pymongo import IndexModel
76

87

98
class User(Document):
109
uuid: Annotated[UUID, Field(default_factory=uuid4), Indexed(unique=True)]
1110
email: Annotated[EmailStr, Indexed(unique=True)]
12-
first_name: Optional[str] = None
13-
last_name: Optional[str] = None
14-
hashed_password: Optional[str] = None
15-
provider: Optional[str] = None
16-
picture: Optional[str] = None
11+
first_name: str | None = None
12+
last_name: str | None = None
13+
hashed_password: str | None = None
14+
provider: str | None = None
15+
picture: str | None = None
1716
is_active: bool = True
1817
is_superuser: bool = False
19-
20-
class Settings:
21-
# Set unique index on uuid here instead of using Indexed
22-
# because of https://github.com/roman-right/beanie/issues/701
23-
indexes = [
24-
IndexModel("uuid", unique=True),
25-
]

backend/app/schemas/tokens.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from typing import Optional
21
from uuid import UUID
32

43
from pydantic import BaseModel
@@ -10,4 +9,4 @@ class Token(BaseModel):
109

1110

1211
class TokenPayload(BaseModel):
13-
uuid: Optional[UUID] = None
12+
uuid: UUID | None = None

backend/app/schemas/users.py

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from typing import Optional
21
from uuid import UUID
32

43
from beanie import PydanticObjectId
@@ -10,31 +9,31 @@ class UserBase(BaseModel):
109
Shared User properties. Visible by anyone.
1110
"""
1211

13-
first_name: Optional[str] = None
14-
last_name: Optional[str] = None
15-
picture: Optional[str] = None
12+
first_name: str | None = None
13+
last_name: str | None = None
14+
picture: str | None = None
1615

1716

1817
class PrivateUserBase(UserBase):
1918
"""
2019
Shared User properties. Visible only by admins and self.
2120
"""
2221

23-
email: Optional[EmailStr] = None
24-
is_active: Optional[bool] = True
25-
is_superuser: bool = False
26-
provider: Optional[str] = None
22+
email: EmailStr | None = None
23+
is_active: bool | None = None
24+
is_superuser: bool | None = None
25+
provider: str | None = None
2726

2827

2928
class UserUpdate(UserBase):
3029
"""
3130
User properties to receive via API on update.
3231
"""
3332

34-
password: Optional[str] = None
35-
email: Optional[EmailStr] = None
36-
is_active: Optional[bool] = True
37-
is_superuser: bool = False
33+
password: str | None = None
34+
email: EmailStr | None = None
35+
is_active: bool | None = None
36+
is_superuser: bool | None = None
3837

3938

4039
class User(PrivateUserBase):

0 commit comments

Comments
 (0)