-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
v4.0.0: remove loads strings, fix fastapi extention, fix search_by an…
…d order_by interface.
- Loading branch information
1 parent
ccc5353
commit 02b4959
Showing
13 changed files
with
545 additions
and
481 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
from .containers import BaseAsyncContainer as BaseAsyncContainer | ||
from .containers import BaseSyncContainer as BaseSyncContainer | ||
from .containers import add_container_overrides as add_container_overrides | ||
from .services import BaseAsyncService as BaseAsyncService | ||
from .services import BaseService as BaseService | ||
from .services import BaseSyncService as BaseSyncService | ||
from .stubs import add_session_stub_overrides as add_session_stub_overrides |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
from typing import TYPE_CHECKING, Protocol, TypeAlias | ||
|
||
if TYPE_CHECKING: | ||
from collections.abc import AsyncGenerator, Generator | ||
|
||
from fastapi import FastAPI | ||
from sqlalchemy.ext.asyncio import AsyncSession | ||
from sqlalchemy.orm.session import Session | ||
|
||
class SyncSessionGeneratorDependsProtocol(Protocol): | ||
"""Sync session depends protocol for FastAPI framework.""" | ||
|
||
@staticmethod | ||
def __call__() -> Generator[Session, None, None]: ... # noqa: D102 | ||
|
||
class SyncSessionDependsProtocol(Protocol): | ||
"""Sync session depends protocol for FastAPI framework.""" | ||
|
||
@staticmethod | ||
def __call__() -> Session: ... # noqa: D102 | ||
|
||
class AsyncSessionGeneratorDependsProtocol(Protocol): | ||
"""Async session depends protocol for FastAPI framework.""" | ||
|
||
@staticmethod | ||
async def __call__() -> AsyncGenerator[AsyncSession, None]: ... # noqa: D102 | ||
|
||
class AsyncSessionDependsProtocol(Protocol): | ||
"""Async session depends protocol for FastAPI framework.""" | ||
|
||
@staticmethod | ||
async def __call__() -> AsyncSession: ... # noqa: D102 | ||
|
||
SessionDepends: TypeAlias = ( | ||
SyncSessionDependsProtocol | ||
| AsyncSessionDependsProtocol | ||
| SyncSessionGeneratorDependsProtocol | ||
| AsyncSessionGeneratorDependsProtocol | ||
) | ||
|
||
|
||
def _get_session_stub() -> None: | ||
"""Stub function, that will be overridden by main plug functions.""" | ||
|
||
|
||
def add_session_stub_overrides( | ||
app: "FastAPI", | ||
session_depends: "SessionDepends", | ||
) -> "FastAPI": | ||
"""Container plugin function. | ||
Add dependency override for user-defined SQLAlchemy session (sync or async) and return app back. | ||
""" | ||
app.dependency_overrides[_get_session_stub] = session_depends | ||
return app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,4 +29,5 @@ | |
|
||
|
||
logging.config.dictConfig(LOGGER_CONFIG) | ||
# TODO: replace to structlog | ||
logger = logging.getLogger("sqlrepo") |
Oops, something went wrong.