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

core[Patch]: mypy ignore fixes #17048 #19931

Merged
merged 6 commits into from
Apr 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 18 additions & 14 deletions libs/core/langchain_core/_api/beta_decorator.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ async def awarning_emitting_wrapper(*args: Any, **kwargs: Any) -> Any:
_name = _name or obj.__name__
old_doc = obj.__doc__

def finalize(_: Any, new_doc: str) -> T:
def finalize(wrapper: Callable[..., Any], new_doc: str) -> T:
"""Finalize the annotation of a class."""
try:
obj.__doc__ = new_doc
Expand Down Expand Up @@ -153,30 +153,36 @@ def warn_if_direct_instance(
_name = _name or obj.fget.__name__
old_doc = obj.__doc__

class _beta_property(type(obj)): # type: ignore
class _beta_property(property):
"""A beta property."""

def __get__(self, instance, owner=None): # type: ignore
def __init__(self, fget=None, fset=None, fdel=None, doc=None):
super().__init__(fget, fset, fdel, doc)
self.__orig_fget = fget
self.__orig_fset = fset
self.__orig_fdel = fdel

def __get__(self, instance, owner=None):
if instance is not None or owner is not None:
emit_warning()
return super().__get__(instance, owner)
return self.fget(instance)

def __set__(self, instance, value): # type: ignore
def __set__(self, instance, value):
if instance is not None:
emit_warning()
return super().__set__(instance, value)
return self.fset(instance, value)

def __delete__(self, instance): # type: ignore
def __delete__(self, instance):
if instance is not None:
emit_warning()
return super().__delete__(instance)
return self.fdel(instance)

def __set_name__(self, owner, set_name): # type: ignore
def __set_name__(self, owner, set_name):
nonlocal _name
if _name == "<lambda>":
_name = set_name

def finalize(_: Any, new_doc: str) -> Any: # type: ignore
def finalize(wrapper: Callable[..., Any], new_doc: str) -> Any:
"""Finalize the property."""
return _beta_property(
fget=obj.fget, fset=obj.fset, fdel=obj.fdel, doc=new_doc
Expand All @@ -186,12 +192,10 @@ def finalize(_: Any, new_doc: str) -> Any: # type: ignore
if not _obj_type:
_obj_type = "function"
wrapped = obj
_name = _name or obj.__name__ # type: ignore
_name = _name or obj.__name__
old_doc = wrapped.__doc__

def finalize( # type: ignore
wrapper: Callable[..., Any], new_doc: str
) -> T:
def finalize(wrapper: Callable[..., Any], new_doc: str) -> T:
"""Wrap the wrapped function using the wrapper and update the docstring.

Args:
Expand Down
32 changes: 18 additions & 14 deletions libs/core/langchain_core/_api/deprecation.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ async def awarning_emitting_wrapper(*args: Any, **kwargs: Any) -> Any:
)
old_doc = obj.__doc__

def finalize(_: Any, new_doc: str) -> T:
def finalize(wrapper: Callable[..., Any], new_doc: str) -> T:
"""Finalize the deprecation of a class."""
try:
obj.__doc__ = new_doc
Expand Down Expand Up @@ -191,30 +191,36 @@ def warn_if_direct_instance(
_name = _name or obj.fget.__name__
old_doc = obj.__doc__

class _deprecated_property(type(obj)): # type: ignore
class _deprecated_property(property):
"""A deprecated property."""

def __get__(self, instance, owner=None): # type: ignore
def __init__(self, fget=None, fset=None, fdel=None, doc=None):
super().__init__(fget, fset, fdel, doc)
self.__orig_fget = fget
self.__orig_fset = fset
self.__orig_fdel = fdel

def __get__(self, instance, owner=None):
if instance is not None or owner is not None:
emit_warning()
return super().__get__(instance, owner)
return self.fget(instance)

def __set__(self, instance, value): # type: ignore
def __set__(self, instance, value):
if instance is not None:
emit_warning()
return super().__set__(instance, value)
return self.fset(instance, value)

def __delete__(self, instance): # type: ignore
def __delete__(self, instance):
if instance is not None:
emit_warning()
return super().__delete__(instance)
return self.fdel(instance)

def __set_name__(self, owner, set_name): # type: ignore
def __set_name__(self, owner, set_name):
nonlocal _name
if _name == "<lambda>":
_name = set_name

def finalize(_: Any, new_doc: str) -> Any: # type: ignore
def finalize(wrapper: Callable[..., Any], new_doc: str) -> Any:
"""Finalize the property."""
return _deprecated_property(
fget=obj.fget, fset=obj.fset, fdel=obj.fdel, doc=new_doc
Expand All @@ -224,12 +230,10 @@ def finalize(_: Any, new_doc: str) -> Any: # type: ignore
if not _obj_type:
_obj_type = "function"
wrapped = obj
_name = _name or obj.__name__ # type: ignore
_name = _name or obj.__name__
old_doc = wrapped.__doc__

def finalize( # type: ignore
wrapper: Callable[..., Any], new_doc: str
) -> T:
def finalize(wrapper: Callable[..., Any], new_doc: str) -> T:
"""Wrap the wrapped function using the wrapper and update the docstring.

Args:
Expand Down
Loading