mirror of
https://github.com/langchain-ai/datafusion.git
synced 2026-07-19 15:24:21 -04:00
fcf51041ae
Currently ListArray.flatten() simply returns the child array. If a ListArray is a slice of another ListArray, they will share the same child array, however the expected behavior (I think) of flatten() should be returning an Array that's a concatenation of all the sub-lists in the ListArray, so the slicing offset should be taken into account. For example: ```python a = pa.array([[1], [2], [3]]) assert a.flatten().equals(pa.array([1,2,3])) # expected: a.slice(1).flatten().equals(pa.array([2, 3])) ``` Closes #6006 from brills/flatten and squashes the following commits: 4702f59da <Antoine Pitrou> Improve implementation characteristics d14210dc4 <Antoine Pitrou> Address review comments, add a test for non-canonical list arrays c789812d0 <Antoine Pitrou> Fix git merge error 7d0b864bf <Antoine Pitrou> Fix typo + print out conda env in conda docker builds 5f3650f90 <Zhuo Peng> comments 6aa3181b8 <Zhuo Peng> Take care of nulls correctly. 3c8746241 <Zhuo Peng> Also changed the python wrapper. a3d4d2fbb <Zhuo Peng> Added a C++ method Flatten() to ListArray. Lead-authored-by: Zhuo Peng <1835738+brills@users.noreply.github.com> Co-authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
55 lines
1.9 KiB
Bash
Executable File
55 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
set -ex
|
|
|
|
source_dir=${1}/python
|
|
build_dir=${2}/python
|
|
|
|
if [ ! -z "${CONDA_PREFIX}" ]; then
|
|
echo -e "===\n=== Conda environment for build\n==="
|
|
conda list
|
|
fi
|
|
|
|
export PYARROW_CMAKE_GENERATOR=${CMAKE_GENERATOR:-Ninja}
|
|
export PYARROW_BUILD_TYPE=${CMAKE_BUILD_TYPE:-debug}
|
|
export PYARROW_WITH_S3=${ARROW_S3:-OFF}
|
|
export PYARROW_WITH_ORC=${ARROW_ORC:-OFF}
|
|
export PYARROW_WITH_CUDA=${ARROW_CUDA:-OFF}
|
|
export PYARROW_WITH_HDFS=${ARROW_HDFS:-OFF}
|
|
export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT:-OFF}
|
|
export PYARROW_WITH_PLASMA=${ARROW_PLASMA:-OFF}
|
|
export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA:-OFF}
|
|
export PYARROW_WITH_PARQUET=${ARROW_PARQUET:-OFF}
|
|
export PYARROW_WITH_DATASET=${ARROW_DATASET:-OFF}
|
|
|
|
export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
|
|
|
|
pushd ${source_dir}
|
|
|
|
relative_build_dir=$(realpath --relative-to=. $build_dir)
|
|
|
|
# not nice, but prevents mutating the mounted the source directory for docker
|
|
${PYTHON:-python} \
|
|
setup.py build --build-base $build_dir \
|
|
install --single-version-externally-managed \
|
|
--record $relative_build_dir/record.txt
|
|
|
|
popd
|