Tiledb-py fails to build (Was: tiledb: uses atomic operations, but is not linked to libatomic)
Hi,
as you can read in the bug log, there was an upload of a new version of
tiledb a couple of hours before it has migrated to testing. Thus the
package remains affected by a testing removal (together with its two
reverse dependencies tiledb and genomicsdb). To follow the freeze
policy I reverted the version bump and NMUed tiledb
2.15.0really2.14.1-0.1 to experimental (since the maintainer did not
responded).
As we can see tiledb-py does not build against tiledb 2.15.0[1]
I've now forced (Build-)Depends to
tibtiledb-dev (>= 2.15.0really2.14.1~)
but it seems Salsa CI autopkgtest does not respect the setting
variables:
# Build against tiledb in experimental
RELEASE: 'experimental'
and thus the autopkgtest log does not reproduce the error I've got
in my local build:
...
=================================== FAILURES ===================================
_______________ TestNumpyToArray.test_from_numpy_empty_str[1-0] ________________
self = <tests.test_libtiledb.TestNumpyToArray object at 0x7fe177722710>
empty_str = '', num_strs = 1
@pytest.mark.parametrize("empty_str", ["", b""])
@pytest.mark.parametrize("num_strs", [1, 1000])
def test_from_numpy_empty_str(self, empty_str, num_strs):
uri = self.path("test_from_numpy_empty_str")
np_array = np.asarray([empty_str] * num_strs, dtype="O")
tiledb.from_numpy(uri, np_array)
....
with tiledb.open(uri, "r") as A:
assert_array_equal(A[:], np_array)
if has_pandas():
> assert_array_equal(A.query(use_arrow=True).df[:][""], np_array)
tests/test_libtiledb.py:3356:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.
/usr/lib/python3/dist-packages/tiledb/multirange_indexing.py:192: in __getitem__
return self if self.return_incomplete else self._run_query()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.
self = <tiledb.multirange_indexing.DataFrameIndexer object at 0x7fe1779ef150>
def _run_query(self) -> Union[DataFrame, Table]:
if self.pyquery is not None:
self.pyquery.submit()
....
if self.pyquery is None:
df = DataFrame(self._empty_results)
elif self.use_arrow:
with timing("buffer_conversion_time"):
> table = self.pyquery._buffers_to_pa_table()
E ModuleNotFoundError: No module named 'pyarrow'
/usr/lib/python3/dist-packages/tiledb/multirange_indexing.py:329: ModuleNotFoundError
_______________ TestNumpyToArray.test_from_numpy_empty_str[1-1] ________________
self = <tests.test_libtiledb.TestNumpyToArray object at 0x7fe177722490>
empty_str = b'', num_strs = 1
@pytest.mark.parametrize("empty_str", ["", b""])
@pytest.mark.parametrize("num_strs", [1, 1000])
def test_from_numpy_empty_str(self, empty_str, num_strs):
uri = self.path("test_from_numpy_empty_str")
np_array = np.asarray([empty_str] * num_strs, dtype="O")
tiledb.from_numpy(uri, np_array)
....
with tiledb.open(uri, "r") as A:
assert_array_equal(A[:], np_array)
if has_pandas():
> assert_array_equal(A.query(use_arrow=True).df[:][""], np_array)
tests/test_libtiledb.py:3356:
/usr/lib/python3/dist-packages/tiledb/multirange_indexing.py:192: in __getitem__
return self if self.return_incomplete else self._run_query()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.
self = <tiledb.multirange_indexing.DataFrameIndexer object at 0x7fe177a16ed0>
variables:
# Build against tiledb in experimental
RELEASE: 'experimental'
def _run_query(self) -> Union[DataFrame, Table]:
if self.pyquery is not None:
self.pyquery.submit()
....
if self.pyquery is None:
df = DataFrame(self._empty_results)
elif self.use_arrow:
with timing("buffer_conversion_time"):
> table = self.pyquery._buffers_to_pa_table()
E ModuleNotFoundError: No module named 'pyarrow'
/usr/lib/python3/dist-packages/tiledb/multirange_indexing.py:329: ModuleNotFoundError
______________ TestNumpyToArray.test_from_numpy_empty_str[1000-0] ______________
self = <tests.test_libtiledb.TestNumpyToArray object at 0x7fe177722510>
empty_str = '', num_strs = 1000
@pytest.mark.parametrize("empty_str", ["", b""])
@pytest.mark.parametrize("num_strs", [1, 1000])
def test_from_numpy_empty_str(self, empty_str, num_strs):
uri = self.path("test_from_numpy_empty_str")
np_array = np.asarray([empty_str] * num
=================================== FAILURES ===================================
_______________ TestNumpyToArray.test_from_numpy_empty_str[1-0] ________________
self = <tests.test_libtiledb.TestNumpyToArray object at 0x7fe177722710>
empty_str = '', num_strs = 1
@pytest.mark.parametrize("empty_str", ["", b""])
@pytest.mark.parametrize("num_strs", [1, 1000])
def test_from_numpy_empty_str(self, empty_str, num_strs):
uri = self.path("test_from_numpy_empty_str")
np_array = np.asarray([empty_str] * num_strs, dtype="O")
tiledb.from_numpy(uri, np_array)
....
with tiledb.open(uri, "r") as A:
assert_array_equal(A[:], np_array)
if has_pandas():
> assert_array_equal(A.query(use_arrow=True).df[:][""], np_array)
tests/test_libtiledb.py:3356:
...
I admit I'm a bit astonished since when tiledb 2.14.1 was available
in unstable the autopkgtest used to work. Any idea how to fix this
issue would be welcome.
Kind regards,
Andreas
[1] https://salsa.debian.org/python-team/packages/tiledb-py/-/pipelines/514328
--
http://fam-tille.de
Reply to: