add lints

This commit is contained in:
ivankirpichnikov
2025-10-16 23:11:04 +03:00
parent 2ae3323b1e
commit 31d06fc0b4
25 changed files with 56 additions and 52 deletions
@@ -3,7 +3,6 @@ from typing import Protocol
from template_project.application.access_token.entity import AccessTokenId
type RawAccessToken = str
@@ -10,6 +10,7 @@ from template_project.application.user.entity import UserId
AccessTokenId = NewType("AccessTokenId", UUID)
@to_entity
class AccessToken(Entity[AccessTokenId]):
user_id: UserId
@@ -32,17 +33,12 @@ class AccessToken(Entity[AccessTokenId]):
revoked=False,
)
def ensure_expired(self) -> None:
if self.expired_predicate():
raise AccessTokenExpiredError(id_=self.id)
def expired_predicate(self) -> bool:
return (
(self.expires_in < datetime.now(tz=UTC))
or self.revoked
or self.deleted_at is not None
)
return (self.expires_in < datetime.now(tz=UTC)) or self.revoked or self.deleted_at is not None
def revoke(self) -> None:
self.revoked = True
@@ -7,11 +7,11 @@ from typing import dataclass_transform
eq_default=False,
kw_only_default=True,
)
def to_data_structure[_InteractorClsT](interactor_cls: type[_InteractorClsT]) -> type[_InteractorClsT]:
def to_data_structure[InteractorClsT](interactor_cls: type[InteractorClsT]) -> type[InteractorClsT]:
return dataclass(
kw_only=True,
eq=False,
match_args=False,
frozen=True,
slots=True,
)(interactor_cls)
)(interactor_cls)
@@ -1,20 +1,20 @@
from collections.abc import Hashable
from dataclasses import dataclass
from datetime import datetime
from typing import dataclass_transform, override
from typing import cast, dataclass_transform, override
from uuid import UUID
from template_project.application.common.errors import EntityAlreadyDeletedError
@dataclass_transform(kw_only_default=True)
def to_entity[_EntityCLsT](entity_cls: type[_EntityCLsT]) -> type[_EntityCLsT]:
def to_entity[EntityCLsT](entity_cls: type[EntityCLsT]) -> type[EntityCLsT]:
return dataclass(kw_only=True)(entity_cls)
@to_entity
class Entity[_EntityId: UUID](Hashable):
id: _EntityId
class Entity[EntityId: UUID](Hashable):
id: EntityId
created_at: datetime
deleted_at: datetime | None = None
@@ -25,7 +25,7 @@ class Entity[_EntityId: UUID](Hashable):
@override
def __eq__(self, other: object) -> bool:
if isinstance(other, Entity):
return self.id == other.id
return cast(bool, self.id == other.id)
return NotImplemented
@override
@@ -7,7 +7,7 @@ from typing import dataclass_transform
eq_default=False,
kw_only_default=True,
)
def to_interactor[_InteractorClsT](interactor_cls: type[_InteractorClsT]) -> type[_InteractorClsT]:
def to_interactor[InteractorClsT](interactor_cls: type[InteractorClsT]) -> type[InteractorClsT]:
return dataclass(
kw_only=True,
eq=False,
@@ -15,4 +15,4 @@ def to_interactor[_InteractorClsT](interactor_cls: type[_InteractorClsT]) -> typ
frozen=True,
match_args=False,
slots=True,
)(interactor_cls)
)(interactor_cls)
@@ -10,8 +10,5 @@ class UserDataGateway(Protocol):
raise NotImplementedError
@abstractmethod
async def exists_by_email(
self,
email: str
) -> bool:
raise NotImplementedError
async def exists_by_email(self, email: str) -> bool:
raise NotImplementedError
@@ -8,6 +8,7 @@ from template_project.application.common.entity import Entity, to_entity
UserId = NewType("UserId", UUID)
@to_entity
class User(Entity[UserId]):
email: str
@@ -1,4 +1,5 @@
from typing import override
from template_project.application.common.errors import ApplicationError, to_error
@@ -10,6 +11,7 @@ class UserWithEmailAlreadyExistsError(ApplicationError):
def __str__(self) -> str:
return f"User with the email={self.email!r} already exists"
@to_error
class UserUnauthorizedError(ApplicationError):
pass
@@ -11,6 +11,7 @@ class GetMeResponse:
id: UserId
email: str
response_converter = get_converter(User, GetMeResponse)