Building the library for use on arm64 on linux through docker raises a type error.
To reproduce, build the given Dockerfile in both amd64 and arm64 platforms
FROM python:3.9-slim-buster
RUN apt update -y
RUN apt install gcc g++ git -y
RUN git clone --branch v0.15.2 https://github.com/data61/anonlink.git
WORKDIR anonlink
RUN pip install -r requirements.txt && \
pip install -e .
e.g. (I did this on an M1 mac)
$ docker build --platform=linux/amd64 -t anonlink-testcase:amd64 .
$ docker build --platform=linux/arm64 -t anonlink-testcase:arm64 .
Then running amd64 test
$ docker run --rm anonlink-testcase:amd64 pytest tests/test_popcount.py::test_popcnt_array
# passes
But with arm64
$ docker run --rm anonlink-testcase:arm64 pytest tests/test_popcount.py::test_popcnt_array
.....
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_popcount.py:29: in test_popcnt_array
output_counts = _dice.popcount_arrays(carr, array_size)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> cpdef unsigned int[::1] popcount_arrays(const char[::1] input_data, unsigned int array_bytes = 128):
E ValueError: Buffer dtype mismatch, expected 'const char' but got 'signed char'
anonlink/similarities/_dice.pyx:13: ValueError
---------------------------------- Hypothesis ----------------------------------
Falsifying example: test_popcnt_array(
data=data(...), num_bytes=2048,
)
....
Would appreciate some guidance for a fix.
Building the library for use on arm64 on linux through docker raises a type error.
To reproduce, build the given Dockerfile in both amd64 and arm64 platforms
e.g. (I did this on an M1 mac)
Then running amd64 test
But with arm64
Would appreciate some guidance for a fix.