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:
Daniel (dB.) Doubrovkine
2023-11-17 16:54:54 -05:00
committed by GitHub
parent 7509a15ef3
commit 103bc89486
3 changed files with 28 additions and 2 deletions
+1
View File
@@ -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]
+1 -1
View File
@@ -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