Fixes a suspicious setattr that should be taking an Any (#604)
* Fix invalid value type. Signed-off-by: dblock <[email protected]> * Workaround Incompatible types in assignment (expression has type float, variable has type Double) [assignment] Signed-off-by: dblock <[email protected]> --------- Signed-off-by: dblock <[email protected]>
This commit is contained in:
@@ -9,6 +9,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||
### Fixed
|
||||
- Fix `TypeError` on `parallel_bulk` ([#601](https://github.com/opensearch-project/opensearch-py/pull/601))
|
||||
- Fix Amazon OpenSearch Serverless integration with LangChain ([#603](https://github.com/opensearch-project/opensearch-py/pull/603))
|
||||
- Fix type of `Field.__setattr__` ([604](https://github.com/opensearch-project/opensearch-py/pull/604))
|
||||
### Security
|
||||
|
||||
## [2.4.1]
|
||||
|
||||
@@ -309,7 +309,7 @@ class DslBase(object):
|
||||
def __ne__(self, other: Any) -> bool:
|
||||
return not self == other
|
||||
|
||||
def __setattr__(self, name: str, value: Optional[bool]) -> None:
|
||||
def __setattr__(self, name: str, value: Any) -> None:
|
||||
if name.startswith("_"):
|
||||
return super(DslBase, self).__setattr__(name, value)
|
||||
return self._setattr(name, value)
|
||||
|
||||
@@ -32,7 +32,7 @@ import ipaddress
|
||||
import pickle
|
||||
from datetime import datetime
|
||||
from hashlib import sha256
|
||||
from typing import Any
|
||||
from typing import Any, Union
|
||||
|
||||
from pytest import raises
|
||||
|
||||
@@ -648,3 +648,28 @@ def test_nested_and_object_inner_doc() -> None:
|
||||
},
|
||||
"title": {"type": "keyword"},
|
||||
}
|
||||
|
||||
|
||||
def test_save_double(mock_client: Any) -> None:
|
||||
class MyDocumentWithDouble(MyDoc):
|
||||
a_double: Union[float, field.Double] = field.Double()
|
||||
|
||||
def save(
|
||||
self,
|
||||
using: Any = None,
|
||||
index: Any = None,
|
||||
validate: bool = True,
|
||||
skip_empty: bool = True,
|
||||
return_doc_meta: bool = False,
|
||||
**kwargs: Any,
|
||||
) -> Any:
|
||||
if not self.a_double:
|
||||
self.a_double = 3.14159265359
|
||||
return super().save(
|
||||
using, index, validate, skip_empty, return_doc_meta, **kwargs
|
||||
)
|
||||
|
||||
md: Any = MyDocumentWithDouble()
|
||||
with raises(ValidationException):
|
||||
md.save(using="mock")
|
||||
assert md.a_double == 3.14159265359
|
||||
|
||||
Reference in New Issue
Block a user