Skip to content

Commit

Permalink
Build With Serialization Disabled (#924)
Browse files Browse the repository at this point in the history
  • Loading branch information
nguyenv authored Feb 21, 2022
1 parent a21a72e commit 684f863
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 28 deletions.
6 changes: 4 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ Thanks for your interest in TileDB-Py. The notes below give some pointers for fi
- `--tiledb=$CONDA_PREFIX`
- from source: https://docs.tiledb.com/main/how-to/installation/building-from-source/c-cpp
- use `--tiledb=/path/to/tiledb/dist` option when running ``setup.py`` in the step below
- also please note that libtiledb needs to be built with serialization enabled for TileDB-Py build to succeed
(pass the ``--enable-serialization`` option to the ``bootstrap`` script before compiling)
- if building libtiledb from source, to enable serialization pass ``--enable-serialization``
to the ``bootstrap`` script before compiling
- serialization is optional. if libtiledb is not build with serialization, then it will not be
enabled in TileDB-Py
- build TileDB-Py
```
Expand Down
3 changes: 2 additions & 1 deletion HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# TileDB-Py 0.13.0 Release Notes

## Bug fixes
## Bug Fixes
* Enable building with serialization disabled [#924](https://github.com/TileDB-Inc/TileDB-Py/pull/924)
* Do not print out `FragmentInfo_frags` for `repr` [#925](https://github.com/TileDB-Inc/TileDB-Py/pull/925)

# TileDB-Py 0.12.3 Release Notes
Expand Down
32 changes: 19 additions & 13 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -597,6 +597,24 @@ def install_requires():
MODULAR_SOURCES = ["tiledb/np2buf.pyx", "tiledb/indexing.pyx", "tiledb/libmetadata.pyx"]
MODULAR_HEADERS = ["tiledb/libtiledb.pxd", "tiledb/indexing.pxd"]

TILEDB_MAIN_SOURCES = [
"tiledb/main.cc",
"tiledb/core.cc",
"tiledb/npbuffer.cc",
"tiledb/fragment.cc",
"tiledb/schema_evolution.cc",
"tiledb/tests/test_metadata.cc",
# TODO currently included in core.cc due to dependency.
# need to un-comment after refactor.
# "tiledb/query_condition.cc",
]

if "TILEDB_SERIALIZATION" in os.environ:
TILEDB_MAIN_SOURCES += [
"tiledb/serialization.cc",
"tiledb/tests/test_serialization.cc",
]

__extensions = [
Extension(
"tiledb.libtiledb",
Expand All @@ -614,19 +632,7 @@ def install_requires():
),
Extension(
"tiledb.main",
[
"tiledb/main.cc",
"tiledb/core.cc",
"tiledb/npbuffer.cc",
"tiledb/fragment.cc",
"tiledb/serialization.cc",
"tiledb/schema_evolution.cc",
"tiledb/tests/test_serialization.cc",
"tiledb/tests/test_metadata.cc",
# TODO currently included in core.cc due to dependency.
# need to un-comment after refactor.
# "tiledb/query_condition.cc",
],
TILEDB_MAIN_SOURCES,
include_dirs=INC_DIRS + [get_pybind_include(), get_pybind_include(user=True)],
language="c++",
library_dirs=LIB_DIRS,
Expand Down
13 changes: 10 additions & 3 deletions tiledb/core.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@
#define TILEDB_DEPRECATED_EXPORT

#include <tiledb/arrowio>
#include <tiledb/tiledb.h> // C
#include <tiledb/tiledb> // C++
#include <tiledb/tiledb_experimental.h> // C
#include <tiledb/tiledb.h> // C
#include <tiledb/tiledb> // C++
#include <tiledb/tiledb_experimental.h> // C

#if defined(TILEDB_SERIALIZATION)
#include <tiledb/tiledb_serialization.h> // C
#endif

#include "../external/string_view.hpp"
#include "../external/tsl/robin_map.h"
Expand Down Expand Up @@ -655,6 +658,7 @@ class PyQuery {
}
}

#if defined(TILEDB_SERIALIZATION)
void set_serialized_query(py::buffer serialized_query) {
int rc;
tiledb_query_t *c_query;
Expand All @@ -676,6 +680,7 @@ class PyQuery {
if (rc == TILEDB_ERR)
TPY_ERROR_LOC("Could not deserialize query.");
}
#endif

void set_attr_cond(py::object attr_cond) {
if (!attr_cond.is(py::none())) {
Expand Down Expand Up @@ -1548,7 +1553,9 @@ void init_core(py::module &m) {
#endif
.def("set_subarray", &PyQuery::set_subarray)
.def("set_attr_cond", &PyQuery::set_attr_cond)
#if defined(TILEDB_SERIALIZATION)
.def("set_serialized_query", &PyQuery::set_serialized_query)
#endif
.def("submit", &PyQuery::submit)
.def("unpack_buffer", &PyQuery::unpack_buffer)
.def("estimated_result_sizes", &PyQuery::estimated_result_sizes)
Expand Down
4 changes: 2 additions & 2 deletions tiledb/fragment.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import pprint
import warnings
import numpy as np
import os
import pprint
import warnings

import tiledb
from tiledb.main import PyFragmentInfo
Expand Down
4 changes: 4 additions & 0 deletions tiledb/main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ void init_core(py::module &);
void init_fragment(py::module &);
// void init_query_condition(py::module &);
void init_schema_evolution(py::module &);
#if defined(TILEDB_SERIALIZATION)
void init_serialization(py::module &);
void init_test_serialization(py::module &);
#endif
void init_test_metadata(py::module &);

PYBIND11_MODULE(main, m) {
Expand All @@ -19,8 +21,10 @@ PYBIND11_MODULE(main, m) {
init_fragment(m);
//_query_condition(m);
init_schema_evolution(m);
#if defined(TILEDB_SERIALIZATION)
init_serialization(m);
init_test_serialization(m);
#endif
init_test_metadata(m);
}

Expand Down
12 changes: 5 additions & 7 deletions tiledb/tests/test_serialization.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
from contextlib import AbstractContextManager
import itertools
import pytest

ser_test = pytest.importorskip(
"tiledb.main.test_serialization", reason="Serialzation not enabled."
)

import numpy as np
from numpy.testing import assert_array_equal
import pytest

import tiledb
from tiledb.main import tiledb_serialization_type_t as ser_type
from tiledb.main import serialization as ser

from tiledb.tests.common import DiskTestCase
from tiledb.main import test_serialization as ser_test


class SerializationTest(DiskTestCase):
Expand Down

0 comments on commit 684f863

Please sign in to comment.