Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the __enter__ and __exit__ methods to Session. #231

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

howbazaar
Copy link

@@ -45,6 +45,8 @@ class Session(_SessionClassMethods):
binds: Optional[Any] = ..., extension: Optional[Any] = ...,
info: Optional[Any] = ..., query_cls: Any = ...) -> None: ...
connection_callable: Any = ...
def __enter__(self): ...

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The return type annotation is missing.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was copied from the SessionTransaction above. I matched the style there.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def __enter__(self): ...
def __enter__(self) -> Session: ...

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one is actually pretty important, as it tells Pylance/Pylint what type session is in

with Session() as session: 

@@ -45,6 +45,8 @@ class Session(_SessionClassMethods):
binds: Optional[Any] = ..., extension: Optional[Any] = ...,
info: Optional[Any] = ..., query_cls: Any = ...) -> None: ...
connection_callable: Any = ...
def __enter__(self): ...
def __exit__(self, type, value, traceback): ...

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parameter and return type annotations are missing.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for this method.

Copy link

@jkeiser jkeiser Dec 16, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def __exit__(self, type, value, traceback): ...
def __exit__(self, type: Optional[Type[BaseException]], value: Optional[BaseException], traceback: Optional[TracebackType]) -> None: ...

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@mrtolkien
Copy link

Any update on that issue? I'm trying to use mypy + pydantic + sqlalchemy in a project and needing to write # type: ignore on every single session opening is quite problematic.

@Kfelts
Copy link

Kfelts commented Nov 2, 2022

Any update on that issue? I'm trying to use mypy + pydantic + sqlalchemy in a project and needing to write # type: ignore on every single session opening is quite problematic.

I'm here for the same reason. It's been almost a year since this was submitted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants