Skip to content

Commit d5c9cd3

Browse files
authored
Merge branch 'master' into PYTHON-4786
2 parents e55dd63 + 0279407 commit d5c9cd3

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

bson/binary.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ def from_vector(
432432
raise NotImplementedError("%s not yet supported" % dtype)
433433

434434
metadata = struct.pack("<sB", dtype.value, padding)
435-
data = struct.pack(f"{len(vector)}{format_str}", *vector)
435+
data = struct.pack(f"<{len(vector)}{format_str}", *vector)
436436
return cls(metadata + data, subtype=VECTOR_SUBTYPE)
437437

438438
def as_vector(self) -> BinaryVector:
@@ -454,7 +454,7 @@ def as_vector(self) -> BinaryVector:
454454

455455
if dtype == BinaryVectorDtype.INT8:
456456
dtype_format = "b"
457-
format_string = f"{n_values}{dtype_format}"
457+
format_string = f"<{n_values}{dtype_format}"
458458
vector = list(struct.unpack_from(format_string, self, position))
459459
return BinaryVector(vector, dtype, padding)
460460

@@ -465,13 +465,16 @@ def as_vector(self) -> BinaryVector:
465465
raise ValueError(
466466
"Corrupt data. N bytes for a float32 vector must be a multiple of 4."
467467
)
468-
vector = list(struct.unpack_from(f"{n_values}f", self, position))
468+
dtype_format = "f"
469+
format_string = f"<{n_values}{dtype_format}"
470+
vector = list(struct.unpack_from(format_string, self, position))
469471
return BinaryVector(vector, dtype, padding)
470472

471473
elif dtype == BinaryVectorDtype.PACKED_BIT:
472474
# data packed as uint8
473475
dtype_format = "B"
474-
unpacked_uint8s = list(struct.unpack_from(f"{n_values}{dtype_format}", self, position))
476+
format_string = f"<{n_values}{dtype_format}"
477+
unpacked_uint8s = list(struct.unpack_from(format_string, self, position))
475478
return BinaryVector(unpacked_uint8s, dtype, padding)
476479

477480
else:

hatch.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ features = ["test"]
4343
test = "pytest -v --durations=5 --maxfail=10 {args}"
4444
test-eg = "bash ./.evergreen/run-tests.sh {args}"
4545
test-async = "pytest -v --durations=5 --maxfail=10 -m default_async {args}"
46-
test-mockupdb = ["pip install -U git+https://github.com/ajdavis/mongo-mockup-db@master", "test -m mockupdb"]
46+
test-mockupdb = ["pip install -U git+https://github.com/mongodb-labs/mongo-mockup-db@master", "test -m mockupdb"]
4747

4848
[envs.encryption]
4949
skip-install = true

test/mockupdb/test_handshake.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727

2828
from bson.objectid import ObjectId
29-
from pymongo import MongoClient
29+
from pymongo import MongoClient, has_c
3030
from pymongo import version as pymongo_version
3131
from pymongo.errors import OperationFailure
3232
from pymongo.server_api import ServerApi, ServerApiVersion
@@ -39,7 +39,11 @@ def _check_handshake_data(request):
3939
data = request["client"]
4040

4141
assert data["application"] == {"name": "my app"}
42-
assert data["driver"] == {"name": "PyMongo", "version": pymongo_version}
42+
if has_c():
43+
name = "PyMongo|c"
44+
else:
45+
name = "PyMongo"
46+
assert data["driver"] == {"name": name, "version": pymongo_version}
4347

4448
# Keep it simple, just check these fields exist.
4549
assert "os" in data

0 commit comments

Comments
 (0)