PYTHON-5043: Fix list[int, float] typo in binary.py (#2066)

This commit is contained in:
Jib 2025-01-21 14:37:52 -05:00 committed by GitHub
parent 2ff2fde911
commit 7dba1e5dd9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 3 deletions

View File

@ -405,14 +405,17 @@ class Binary(bytes):
@classmethod
@overload
def from_vector(
cls: Type[Binary], vector: list[int, float], dtype: BinaryVectorDtype, padding: int = 0
cls: Type[Binary],
vector: Union[list[int], list[float]],
dtype: BinaryVectorDtype,
padding: int = 0,
) -> Binary:
...
@classmethod
def from_vector(
cls: Type[Binary],
vector: Union[BinaryVector, list[int, float]],
vector: Union[BinaryVector, list[int], list[float]],
dtype: Optional[BinaryVectorDtype] = None,
padding: Optional[int] = None,
) -> Binary:

View File

@ -15,6 +15,7 @@
"""Test that each file in mypy_fails/ actually fails mypy, and test some
sample client code that uses PyMongo typings.
"""
from __future__ import annotations
import os
@ -37,7 +38,8 @@ from typing import (
if TYPE_CHECKING:
from typing_extensions import NotRequired, TypedDict
from bson import ObjectId
from bson import Binary, ObjectId
from bson.binary import BinaryVector, BinaryVectorDtype
class Movie(TypedDict):
name: str
@ -591,5 +593,22 @@ class TestCodecOptionsDocumentType(unittest.TestCase):
obj["a"] = 1
class TestBSONFromVectorType(unittest.TestCase):
@only_type_check
def test_from_vector_binaryvector(self):
list_vector = BinaryVector([127, 7], BinaryVectorDtype.INT8)
Binary.from_vector(list_vector)
@only_type_check
def test_from_vector_list_int(self):
list_vector = [127, 7]
Binary.from_vector(list_vector, BinaryVectorDtype.INT8)
@only_type_check
def test_from_vector_list_float(self):
list_vector = [127.0, 7.0]
Binary.from_vector(list_vector, BinaryVectorDtype.INT8)
if __name__ == "__main__":
unittest.main()