Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +11 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/INSTALLER +1 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/LICENSE.txt +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/METADATA +86 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/NOTICE.txt +84 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/RECORD +869 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/REQUESTED +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/WHEEL +5 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/top_level.txt +2 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__init__.pxd +42 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__init__.py +435 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/__init__.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/_compute_docstrings.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/_generated_version.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/acero.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/benchmark.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/cffi.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/compute.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/conftest.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/csv.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/cuda.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/dataset.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/feather.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/flight.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/fs.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/ipc.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/json.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/jvm.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/orc.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/pandas_compat.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/substrait.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/types.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/util.cpython-312.pyc +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_acero.cpython-312-x86_64-linux-gnu.so +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_acero.pxd +44 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_acero.pyx +608 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_azurefs.cpython-312-x86_64-linux-gnu.so +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_azurefs.pyx +134 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute.cpython-312-x86_64-linux-gnu.so +3 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute.pxd +70 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute.pyx +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute_docstrings.py +56 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_csv.cpython-312-x86_64-linux-gnu.so +0 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_csv.pxd +55 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_csv.pyx +1542 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_cuda.pxd +67 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_cuda.pyx +1080 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_dataset.cpython-312-x86_64-linux-gnu.so +3 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_dataset.pxd +183 -0
- graphrag-ollama/lib/python3.12/site-packages/pyarrow/_dataset.pyx +0 -0
.gitattributes
CHANGED
|
@@ -65,3 +65,14 @@ graphrag-ollama/lib/python3.12/site-packages/regex/_regex.cpython-312-x86_64-lin
|
|
| 65 |
graphrag-ollama/lib/python3.12/site-packages/sqlalchemy/cyextension/collections.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 66 |
graphrag-ollama/lib/python3.12/site-packages/tiktoken/_tiktoken.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 67 |
graphrag-ollama/lib/python3.12/site-packages/yaml/_yaml.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
graphrag-ollama/lib/python3.12/site-packages/sqlalchemy/cyextension/collections.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 66 |
graphrag-ollama/lib/python3.12/site-packages/tiktoken/_tiktoken.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 67 |
graphrag-ollama/lib/python3.12/site-packages/yaml/_yaml.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 68 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 69 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_dataset.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 70 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_flight.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 71 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/lib.cpython-312-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 72 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/libarrow.so.1800 filter=lfs diff=lfs merge=lfs -text
|
| 73 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/libarrow_acero.so.1800 filter=lfs diff=lfs merge=lfs -text
|
| 74 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/libarrow_dataset.so.1800 filter=lfs diff=lfs merge=lfs -text
|
| 75 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/libarrow_flight.so.1800 filter=lfs diff=lfs merge=lfs -text
|
| 76 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/libarrow_python.so filter=lfs diff=lfs merge=lfs -text
|
| 77 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/libarrow_substrait.so.1800 filter=lfs diff=lfs merge=lfs -text
|
| 78 |
+
graphrag-ollama/lib/python3.12/site-packages/pyarrow/libparquet.so.1800 filter=lfs diff=lfs merge=lfs -text
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/INSTALLER
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
pip
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/LICENSE.txt
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/METADATA
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Metadata-Version: 2.1
|
| 2 |
+
Name: pyarrow
|
| 3 |
+
Version: 18.0.0
|
| 4 |
+
Summary: Python library for Apache Arrow
|
| 5 |
+
Maintainer-email: Apache Arrow Developers <[email protected]>
|
| 6 |
+
License: Apache Software License
|
| 7 |
+
Project-URL: Homepage, https://arrow.apache.org/
|
| 8 |
+
Project-URL: Documentation, https://arrow.apache.org/docs/python
|
| 9 |
+
Project-URL: Repository, https://github.com/apache/arrow
|
| 10 |
+
Project-URL: Issues, https://github.com/apache/arrow/issues
|
| 11 |
+
Classifier: License :: OSI Approved :: Apache Software License
|
| 12 |
+
Classifier: Programming Language :: Python :: 3.9
|
| 13 |
+
Classifier: Programming Language :: Python :: 3.10
|
| 14 |
+
Classifier: Programming Language :: Python :: 3.11
|
| 15 |
+
Classifier: Programming Language :: Python :: 3.12
|
| 16 |
+
Classifier: Programming Language :: Python :: 3.13
|
| 17 |
+
Requires-Python: >=3.9
|
| 18 |
+
Description-Content-Type: text/markdown
|
| 19 |
+
License-File: ../LICENSE.txt
|
| 20 |
+
License-File: ../NOTICE.txt
|
| 21 |
+
Provides-Extra: test
|
| 22 |
+
Requires-Dist: pytest ; extra == 'test'
|
| 23 |
+
Requires-Dist: hypothesis ; extra == 'test'
|
| 24 |
+
Requires-Dist: cffi ; extra == 'test'
|
| 25 |
+
Requires-Dist: pytz ; extra == 'test'
|
| 26 |
+
Requires-Dist: pandas ; extra == 'test'
|
| 27 |
+
|
| 28 |
+
<!---
|
| 29 |
+
Licensed to the Apache Software Foundation (ASF) under one
|
| 30 |
+
or more contributor license agreements. See the NOTICE file
|
| 31 |
+
distributed with this work for additional information
|
| 32 |
+
regarding copyright ownership. The ASF licenses this file
|
| 33 |
+
to you under the Apache License, Version 2.0 (the
|
| 34 |
+
"License"); you may not use this file except in compliance
|
| 35 |
+
with the License. You may obtain a copy of the License at
|
| 36 |
+
|
| 37 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 38 |
+
|
| 39 |
+
Unless required by applicable law or agreed to in writing,
|
| 40 |
+
software distributed under the License is distributed on an
|
| 41 |
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 42 |
+
KIND, either express or implied. See the License for the
|
| 43 |
+
specific language governing permissions and limitations
|
| 44 |
+
under the License.
|
| 45 |
+
-->
|
| 46 |
+
|
| 47 |
+
## Python library for Apache Arrow
|
| 48 |
+
|
| 49 |
+
[](https://pypi.org/project/pyarrow/) [](https://anaconda.org/conda-forge/pyarrow)
|
| 50 |
+
|
| 51 |
+
This library provides a Python API for functionality provided by the Arrow C++
|
| 52 |
+
libraries, along with tools for Arrow integration and interoperability with
|
| 53 |
+
pandas, NumPy, and other software in the Python ecosystem.
|
| 54 |
+
|
| 55 |
+
## Installing
|
| 56 |
+
|
| 57 |
+
Across platforms, you can install a recent version of pyarrow with the conda
|
| 58 |
+
package manager:
|
| 59 |
+
|
| 60 |
+
```shell
|
| 61 |
+
conda install pyarrow -c conda-forge
|
| 62 |
+
```
|
| 63 |
+
|
| 64 |
+
On Linux, macOS, and Windows, you can also install binary wheels from PyPI with
|
| 65 |
+
pip:
|
| 66 |
+
|
| 67 |
+
```shell
|
| 68 |
+
pip install pyarrow
|
| 69 |
+
```
|
| 70 |
+
|
| 71 |
+
If you encounter any issues importing the pip wheels on Windows, you may need
|
| 72 |
+
to install the [Visual C++ Redistributable for Visual Studio 2015][6].
|
| 73 |
+
|
| 74 |
+
## Development
|
| 75 |
+
|
| 76 |
+
See [Python Development][2] in the documentation subproject.
|
| 77 |
+
|
| 78 |
+
### Building the documentation
|
| 79 |
+
|
| 80 |
+
See [documentation build instructions][1] in the documentation subproject.
|
| 81 |
+
|
| 82 |
+
[1]: https://github.com/apache/arrow/blob/main/docs/source/developers/documentation.rst
|
| 83 |
+
[2]: https://github.com/apache/arrow/blob/main/docs/source/developers/python.rst
|
| 84 |
+
[3]: https://github.com/pandas-dev/pandas
|
| 85 |
+
[5]: https://arrow.apache.org/docs/latest/python/benchmarks.html
|
| 86 |
+
[6]: https://www.microsoft.com/en-us/download/details.aspx?id=48145
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/NOTICE.txt
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Apache Arrow
|
| 2 |
+
Copyright 2016-2024 The Apache Software Foundation
|
| 3 |
+
|
| 4 |
+
This product includes software developed at
|
| 5 |
+
The Apache Software Foundation (http://www.apache.org/).
|
| 6 |
+
|
| 7 |
+
This product includes software from the SFrame project (BSD, 3-clause).
|
| 8 |
+
* Copyright (C) 2015 Dato, Inc.
|
| 9 |
+
* Copyright (c) 2009 Carnegie Mellon University.
|
| 10 |
+
|
| 11 |
+
This product includes software from the Feather project (Apache 2.0)
|
| 12 |
+
https://github.com/wesm/feather
|
| 13 |
+
|
| 14 |
+
This product includes software from the DyND project (BSD 2-clause)
|
| 15 |
+
https://github.com/libdynd
|
| 16 |
+
|
| 17 |
+
This product includes software from the LLVM project
|
| 18 |
+
* distributed under the University of Illinois Open Source
|
| 19 |
+
|
| 20 |
+
This product includes software from the google-lint project
|
| 21 |
+
* Copyright (c) 2009 Google Inc. All rights reserved.
|
| 22 |
+
|
| 23 |
+
This product includes software from the mman-win32 project
|
| 24 |
+
* Copyright https://code.google.com/p/mman-win32/
|
| 25 |
+
* Licensed under the MIT License;
|
| 26 |
+
|
| 27 |
+
This product includes software from the LevelDB project
|
| 28 |
+
* Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
| 29 |
+
* Use of this source code is governed by a BSD-style license that can be
|
| 30 |
+
* Moved from Kudu http://github.com/cloudera/kudu
|
| 31 |
+
|
| 32 |
+
This product includes software from the CMake project
|
| 33 |
+
* Copyright 2001-2009 Kitware, Inc.
|
| 34 |
+
* Copyright 2012-2014 Continuum Analytics, Inc.
|
| 35 |
+
* All rights reserved.
|
| 36 |
+
|
| 37 |
+
This product includes software from https://github.com/matthew-brett/multibuild (BSD 2-clause)
|
| 38 |
+
* Copyright (c) 2013-2016, Matt Terry and Matthew Brett; all rights reserved.
|
| 39 |
+
|
| 40 |
+
This product includes software from the Ibis project (Apache 2.0)
|
| 41 |
+
* Copyright (c) 2015 Cloudera, Inc.
|
| 42 |
+
* https://github.com/cloudera/ibis
|
| 43 |
+
|
| 44 |
+
This product includes software from Dremio (Apache 2.0)
|
| 45 |
+
* Copyright (C) 2017-2018 Dremio Corporation
|
| 46 |
+
* https://github.com/dremio/dremio-oss
|
| 47 |
+
|
| 48 |
+
This product includes software from Google Guava (Apache 2.0)
|
| 49 |
+
* Copyright (C) 2007 The Guava Authors
|
| 50 |
+
* https://github.com/google/guava
|
| 51 |
+
|
| 52 |
+
This product include software from CMake (BSD 3-Clause)
|
| 53 |
+
* CMake - Cross Platform Makefile Generator
|
| 54 |
+
* Copyright 2000-2019 Kitware, Inc. and Contributors
|
| 55 |
+
|
| 56 |
+
The web site includes files generated by Jekyll.
|
| 57 |
+
|
| 58 |
+
--------------------------------------------------------------------------------
|
| 59 |
+
|
| 60 |
+
This product includes code from Apache Kudu, which includes the following in
|
| 61 |
+
its NOTICE file:
|
| 62 |
+
|
| 63 |
+
Apache Kudu
|
| 64 |
+
Copyright 2016 The Apache Software Foundation
|
| 65 |
+
|
| 66 |
+
This product includes software developed at
|
| 67 |
+
The Apache Software Foundation (http://www.apache.org/).
|
| 68 |
+
|
| 69 |
+
Portions of this software were developed at
|
| 70 |
+
Cloudera, Inc (http://www.cloudera.com/).
|
| 71 |
+
|
| 72 |
+
--------------------------------------------------------------------------------
|
| 73 |
+
|
| 74 |
+
This product includes code from Apache ORC, which includes the following in
|
| 75 |
+
its NOTICE file:
|
| 76 |
+
|
| 77 |
+
Apache ORC
|
| 78 |
+
Copyright 2013-2019 The Apache Software Foundation
|
| 79 |
+
|
| 80 |
+
This product includes software developed by The Apache Software
|
| 81 |
+
Foundation (http://www.apache.org/).
|
| 82 |
+
|
| 83 |
+
This product includes software developed by Hewlett-Packard:
|
| 84 |
+
(c) Copyright [2014-2015] Hewlett-Packard Development Company, L.P
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/RECORD
ADDED
|
@@ -0,0 +1,869 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
pyarrow-18.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
| 2 |
+
pyarrow-18.0.0.dist-info/LICENSE.txt,sha256=Ip2-KeThNE6VFy9vOkJ37A2lx4UMsDiXxH86JLevzgg,110423
|
| 3 |
+
pyarrow-18.0.0.dist-info/METADATA,sha256=3Nfu3fXswkP1YwG7Zr3dEi01IQJpkqTzHRbwDJiHAto,3292
|
| 4 |
+
pyarrow-18.0.0.dist-info/NOTICE.txt,sha256=ti6iQmQtOhjx4psMH-CCQVppQ_4VjuIrSM_zdi81QAk,3032
|
| 5 |
+
pyarrow-18.0.0.dist-info/RECORD,,
|
| 6 |
+
pyarrow-18.0.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 7 |
+
pyarrow-18.0.0.dist-info/WHEEL,sha256=GAEhkxm77H2WVEyE70oaJna7cr1z-ZyZC29APwfwcpg,113
|
| 8 |
+
pyarrow-18.0.0.dist-info/top_level.txt,sha256=Zuk_c1WeinXdMz20fXlEtGC67zfKOWuwU8adpEEU_nI,18
|
| 9 |
+
pyarrow/__init__.pxd,sha256=Wnar1phFqM_ZHnZmtbuqm6wJHsXlBoYKhV7Qmo2jUHA,2195
|
| 10 |
+
pyarrow/__init__.py,sha256=KdUkzmN0NJf1AKTskHDoH3OwZoc0Ih2PRu3BqtdjHbY,18119
|
| 11 |
+
pyarrow/__pycache__/__init__.cpython-312.pyc,,
|
| 12 |
+
pyarrow/__pycache__/_compute_docstrings.cpython-312.pyc,,
|
| 13 |
+
pyarrow/__pycache__/_generated_version.cpython-312.pyc,,
|
| 14 |
+
pyarrow/__pycache__/acero.cpython-312.pyc,,
|
| 15 |
+
pyarrow/__pycache__/benchmark.cpython-312.pyc,,
|
| 16 |
+
pyarrow/__pycache__/cffi.cpython-312.pyc,,
|
| 17 |
+
pyarrow/__pycache__/compute.cpython-312.pyc,,
|
| 18 |
+
pyarrow/__pycache__/conftest.cpython-312.pyc,,
|
| 19 |
+
pyarrow/__pycache__/csv.cpython-312.pyc,,
|
| 20 |
+
pyarrow/__pycache__/cuda.cpython-312.pyc,,
|
| 21 |
+
pyarrow/__pycache__/dataset.cpython-312.pyc,,
|
| 22 |
+
pyarrow/__pycache__/feather.cpython-312.pyc,,
|
| 23 |
+
pyarrow/__pycache__/flight.cpython-312.pyc,,
|
| 24 |
+
pyarrow/__pycache__/fs.cpython-312.pyc,,
|
| 25 |
+
pyarrow/__pycache__/ipc.cpython-312.pyc,,
|
| 26 |
+
pyarrow/__pycache__/json.cpython-312.pyc,,
|
| 27 |
+
pyarrow/__pycache__/jvm.cpython-312.pyc,,
|
| 28 |
+
pyarrow/__pycache__/orc.cpython-312.pyc,,
|
| 29 |
+
pyarrow/__pycache__/pandas_compat.cpython-312.pyc,,
|
| 30 |
+
pyarrow/__pycache__/substrait.cpython-312.pyc,,
|
| 31 |
+
pyarrow/__pycache__/types.cpython-312.pyc,,
|
| 32 |
+
pyarrow/__pycache__/util.cpython-312.pyc,,
|
| 33 |
+
pyarrow/_acero.cpython-312-x86_64-linux-gnu.so,sha256=CzO1lbcGNSipSDtXVTDpF1uh_dwJNksr0uHgCMablD4,325656
|
| 34 |
+
pyarrow/_acero.pxd,sha256=5ish_GgGWvit4ebhzoZil7b-m0r2RuG5JwYoxsH34FI,1440
|
| 35 |
+
pyarrow/_acero.pyx,sha256=56orFsG2ksoP4C0DPIa-ruQxQRCC489lYlHkGJIh1zY,21301
|
| 36 |
+
pyarrow/_azurefs.cpython-312-x86_64-linux-gnu.so,sha256=j0mX0ZVWYrLyG2z1XiFiSKJHZEUjMk7F_sYBzeiC46o,100736
|
| 37 |
+
pyarrow/_azurefs.pyx,sha256=ezGU_z3kIw2r14YAB4yogaxMssJXikcxajz4dZSez1k,5909
|
| 38 |
+
pyarrow/_compute.cpython-312-x86_64-linux-gnu.so,sha256=-75kXqawlzHSB8wIRB-3wqe0N22QnQHlmr9zb8r2_A0,1367552
|
| 39 |
+
pyarrow/_compute.pxd,sha256=nmjgwV2KCGFfxZj5ruDwM4oH1ITqF0rDQS0yDvcaXBA,1949
|
| 40 |
+
pyarrow/_compute.pyx,sha256=dmGXzWOdzMfrj-nWV8RWBRypswmtKZSEwRZ64KZsuuY,107233
|
| 41 |
+
pyarrow/_compute_docstrings.py,sha256=7Vg8jt1aCsWrpTxsdqR7gY6M0faxXNX31c1RZdq9CFw,1707
|
| 42 |
+
pyarrow/_csv.cpython-312-x86_64-linux-gnu.so,sha256=kvIlEcQZF8mZC8bFbLB79BEQo3EA64DSa3Rmhtot9EA,370136
|
| 43 |
+
pyarrow/_csv.pxd,sha256=1Zk3Zpvvhy-Tb7c79Aqd4e7bBM21kc1JxWJkl02Y4DE,1638
|
| 44 |
+
pyarrow/_csv.pyx,sha256=aqWLHgfZ-nrqKHfVVVXeGbtY2ZChE6Oi9qIa5jP4m1M,54705
|
| 45 |
+
pyarrow/_cuda.pxd,sha256=VzhM6j9dpNgrABlvFJKoMpRC0As55im-M3tgPTOuwEk,1922
|
| 46 |
+
pyarrow/_cuda.pyx,sha256=YSlswn4Tj1H24SL_iPIGqT3v3JmofE7NwCunuOLMNwY,35136
|
| 47 |
+
pyarrow/_dataset.cpython-312-x86_64-linux-gnu.so,sha256=TINV01BLRr-V8CU0rIxhvsXmxJYIb22OmFtW9TsFeyQ,1069560
|
| 48 |
+
pyarrow/_dataset.pxd,sha256=Ag9rUhoBySU6ba3wFLeuZyWMJnz9VkAf9TQEzWG4hUU,4944
|
| 49 |
+
pyarrow/_dataset.pyx,sha256=WGqJ4LCtbpxkU4bdIjLR0MAxE1WgmrsCvSQlr1M-emc,157400
|
| 50 |
+
pyarrow/_dataset_orc.cpython-312-x86_64-linux-gnu.so,sha256=Ncpe1WqEvmFMLpdn9_M7BQizHOySb9gnO_YjDLNQBB4,78528
|
| 51 |
+
pyarrow/_dataset_orc.pyx,sha256=JSFoRI0pfHtL2jeIuPg5TJHodcfuCNYmj_iEZ4xY87w,1499
|
| 52 |
+
pyarrow/_dataset_parquet.cpython-312-x86_64-linux-gnu.so,sha256=rdGHm9V-aqQbylDCfS_XcGqTIVk9FIUm5PRtAsrr5PM,363208
|
| 53 |
+
pyarrow/_dataset_parquet.pxd,sha256=y-3iKehyB_eB_oeqjtt4aQRbUpVGVN1oUMFGIY13brE,1572
|
| 54 |
+
pyarrow/_dataset_parquet.pyx,sha256=x_VvTpuF9vxfAAUGkLZrr0N_TCxYWlqMahlkg0201gQ,38916
|
| 55 |
+
pyarrow/_dataset_parquet_encryption.cpython-312-x86_64-linux-gnu.so,sha256=nU3etFWPa7m5iWcDiDB-nTLYlAHPVvmHfktNUZ3dsTc,120792
|
| 56 |
+
pyarrow/_dataset_parquet_encryption.pyx,sha256=p7LDNUsp3jMVcWDcbOFp8a3CYJjASVPI_tfATpY-ePg,7229
|
| 57 |
+
pyarrow/_dlpack.pxi,sha256=clw0FkGoyZMEtUU8zPpO_DMtl2X-27kb2UtyhQuIc1s,1832
|
| 58 |
+
pyarrow/_feather.cpython-312-x86_64-linux-gnu.so,sha256=2xQDtVCtdyT3LQlx0Z9H3H_5D-RQzIshL4UzkurgHWg,114048
|
| 59 |
+
pyarrow/_feather.pyx,sha256=DWQI4U0uAWE1ZYUwPreBPJg1TGLEGmF3wPEIRL-PhPw,3773
|
| 60 |
+
pyarrow/_flight.cpython-312-x86_64-linux-gnu.so,sha256=A7HTbAn9DizK0fnyqsxFnTnCfB1eZycu_q-DW4rYuGg,1295936
|
| 61 |
+
pyarrow/_flight.pyx,sha256=siQR9YhOPLToP5dnHtkm-aCjgPfBLYq8d777RHY_MsY,110592
|
| 62 |
+
pyarrow/_fs.cpython-312-x86_64-linux-gnu.so,sha256=hueNcOY_-DCLIUHmNjDm19pT9akEm1fPGO_drOdg9UM,494360
|
| 63 |
+
pyarrow/_fs.pxd,sha256=SmHS31eyYU7VUZlVuP613HKgpd7bENnQGApvX_g2Lfw,2439
|
| 64 |
+
pyarrow/_fs.pyx,sha256=ZyfvmWary8XTHaCoeSYtjI-b0SK0lCsznerI8cGh4K8,52479
|
| 65 |
+
pyarrow/_gcsfs.cpython-312-x86_64-linux-gnu.so,sha256=oddiMszazY06J7lU5UzkrXwqQ3XEtkCMwqLp8qcf-Rs,125624
|
| 66 |
+
pyarrow/_gcsfs.pyx,sha256=fa1QmTQII9sFKtjtfeZPQfTEntAh3IGyJJ1w116OCA4,9121
|
| 67 |
+
pyarrow/_generated_version.py,sha256=i_fCpTx5i1I-UJ-nlF2AibzMnw39cYz34cp6LRgZ6Lw,413
|
| 68 |
+
pyarrow/_hdfs.cpython-312-x86_64-linux-gnu.so,sha256=g1QSx1UkHEy2cQPAWp6lPBBpkU867IzM_iQbK5FIvt8,126368
|
| 69 |
+
pyarrow/_hdfs.pyx,sha256=HA0KkZa6aVRmwg3ku3U7lZo_8COn1cLwylfc6nEJUlg,5885
|
| 70 |
+
pyarrow/_json.cpython-312-x86_64-linux-gnu.so,sha256=2SlAopzzBqY_QokjiQhY8-lOfi09hEuvh9iTAZhTnv4,112216
|
| 71 |
+
pyarrow/_json.pxd,sha256=tECTP14M12-b_ja5QI3snQbd0uWPWmmC9FwkWq23Vg0,1206
|
| 72 |
+
pyarrow/_json.pyx,sha256=RmaWaSTG61u2Qcmc_fLsTns_awLJDls3_SdlaCAg53Y,9860
|
| 73 |
+
pyarrow/_orc.cpython-312-x86_64-linux-gnu.so,sha256=ewqPpAK5I12Kyr8lXgudODy2wEJmZXDtQ5pY6SbnREI,206480
|
| 74 |
+
pyarrow/_orc.pxd,sha256=6hL0cq1RufqQD-B_bV3ne1rhu2g-h4rDOFNQsSb6qps,5689
|
| 75 |
+
pyarrow/_orc.pyx,sha256=Pn7r4dzagWaqMf8rymbXBIWisxonBaStZgXCi7pfrZI,15556
|
| 76 |
+
pyarrow/_parquet.cpython-312-x86_64-linux-gnu.so,sha256=2QyN46ON68iLUE6E9jnxlHQ5IL_aMymi15e1Pg1T0-o,608296
|
| 77 |
+
pyarrow/_parquet.pxd,sha256=bLdSgSZg1bn-ZsQbAKOWH44esooFHQOiO9wqmrQuvn4,26805
|
| 78 |
+
pyarrow/_parquet.pyx,sha256=xpIBXt3xv9S1H9G6CqSpwl_ZokhJpy09yShxuntqMMg,74388
|
| 79 |
+
pyarrow/_parquet_encryption.cpython-312-x86_64-linux-gnu.so,sha256=QxlbaWRzFgFy_Y534VMGc7R4BGnCn6X8LPd25C3FZAg,275008
|
| 80 |
+
pyarrow/_parquet_encryption.pxd,sha256=1vQnkyS1rLrSNMlmuW62PxkOmCsYpzC60L9mqD0_LYc,2586
|
| 81 |
+
pyarrow/_parquet_encryption.pyx,sha256=CaTiq5EjTVGYQnxDEmpYcItSBiEencV-pNEu-lBAiOk,18625
|
| 82 |
+
pyarrow/_pyarrow_cpp_tests.cpython-312-x86_64-linux-gnu.so,sha256=Qe9kRjHecoR0c7V5AAHE-ror_WA9uj2mObVD8UTXq7s,87984
|
| 83 |
+
pyarrow/_pyarrow_cpp_tests.pxd,sha256=nPyRmNtFbOUvSXCwegAApQFfh8UI_K9Hq5dN4oPAxdo,1199
|
| 84 |
+
pyarrow/_pyarrow_cpp_tests.pyx,sha256=gLeMzB9RWodZgXEpipX65_0aqWu12SjMld0JZmZVRP0,1753
|
| 85 |
+
pyarrow/_s3fs.cpython-312-x86_64-linux-gnu.so,sha256=OTlYyfsqxBcc8i2u-XUq1VPCLBs783bA7TkcDZytgos,223392
|
| 86 |
+
pyarrow/_s3fs.pyx,sha256=VFuZkBV8rt44JrYtAwbPxGI1YlZJ9gfl1U91JQgJEMU,19706
|
| 87 |
+
pyarrow/_substrait.cpython-312-x86_64-linux-gnu.so,sha256=Kn-zfj46RpmeRweki24CjN84RLBk3C9fVLWtvIbqBKo,187176
|
| 88 |
+
pyarrow/_substrait.pyx,sha256=CA2kxzxJUVPL7lMn8_XSAa9jt1Alq4IbhcI3sHGvsxw,11630
|
| 89 |
+
pyarrow/acero.py,sha256=_P7DcFTmhgW4-EAyM67luFMWcp4t1iUX1pKBIkVe7cM,15108
|
| 90 |
+
pyarrow/array.pxi,sha256=jP6v7Y3YUVggdyKmfNAa7hGNd2T-1xONCTxK-2a-IOI,151046
|
| 91 |
+
pyarrow/benchmark.pxi,sha256=DYXdu-jMSH7XcTohbc8x8NiKRLtpX9IULfY20ohkffA,869
|
| 92 |
+
pyarrow/benchmark.py,sha256=k9Z3yQyoojpYz4lTA6DkCfqT6fPG3N2fJtsHKjpbYFo,856
|
| 93 |
+
pyarrow/builder.pxi,sha256=9QE4KAiA4JpA7-2JLgX3xo32jRtuWZ3YqC-T9GzUVDc,4634
|
| 94 |
+
pyarrow/cffi.py,sha256=hEcrPH9KeG6NES3ZCpSbOVYhOgDOuBB_2LgMMucgw-8,2396
|
| 95 |
+
pyarrow/compat.pxi,sha256=Sq5c3CKq0uj5aDyOoHHkPEO_VsSpZ90JRaL2rAKHk5I,1920
|
| 96 |
+
pyarrow/compute.py,sha256=MyrZk7PTX-8pYlUu5PLbuXjDMTRpyCcgdFWi2BPVK0I,23181
|
| 97 |
+
pyarrow/config.pxi,sha256=E6QOFjdlw3H1a5BOAevYNJJEmmm6FblfaaeyspnWBWw,3092
|
| 98 |
+
pyarrow/conftest.py,sha256=afosSyVsVRsJdDXRXOFQEyj4qVO39OtZYVb_wbvvadU,9811
|
| 99 |
+
pyarrow/csv.py,sha256=S6tm31Bra9HPf9IsYwBLltZBLMvNzypWfeCLySsjmds,974
|
| 100 |
+
pyarrow/cuda.py,sha256=j--8HcBAm5Ib-kbhK4d2M6SVQmDWkr7Mt5fnwU2LzdQ,1087
|
| 101 |
+
pyarrow/dataset.py,sha256=4ibGh9x36jEYI7VMxTdZc-XDg8VfNx6RPbA2L-bLJbA,40232
|
| 102 |
+
pyarrow/device.pxi,sha256=CtVBXp68zNXrrPwehh56igfLsMSlYRo5rWFcKkEP_gY,5569
|
| 103 |
+
pyarrow/error.pxi,sha256=Wj7-NGUfdvlEwAwd8Ta_JqRC8IUOUpm_PmpvizCFvfY,8909
|
| 104 |
+
pyarrow/feather.py,sha256=9rWL-TYK_qc0FW3vIyYyd6Xt86ApJWLqo-2cK3F5vGQ,9959
|
| 105 |
+
pyarrow/flight.py,sha256=HLB04A0SZ35MZJumPIuBu5I2dpetjEc-CGMEdjQeQRQ,2177
|
| 106 |
+
pyarrow/fs.py,sha256=M-cSbS2bBR4MwbJqpz9Q7VxHY8fa89StEw2J0XMMF7E,14899
|
| 107 |
+
pyarrow/gandiva.pyx,sha256=bF23rkq6e45i-CePDZeTy9iFwoeg8ElrNjz9VK97QRs,24503
|
| 108 |
+
pyarrow/include/arrow/acero/accumulation_queue.h,sha256=_HoTuKEkZodmrwXF9CeWGsmpT7jIM0FrrYZSPMTMMr8,5856
|
| 109 |
+
pyarrow/include/arrow/acero/aggregate_node.h,sha256=9HdFxR6tzSfx_UaUHZtS1I2FCbm3PvfF8FdekVpBO34,2155
|
| 110 |
+
pyarrow/include/arrow/acero/api.h,sha256=fRuKEHbKDYWRCwSHLc7vSD-6mQavyOsztluCR7evFCk,1151
|
| 111 |
+
pyarrow/include/arrow/acero/asof_join_node.h,sha256=Ko6r1wDjxg01FE9-xKkttx7WzCAzf43GxbpvGHgKZp8,1490
|
| 112 |
+
pyarrow/include/arrow/acero/backpressure_handler.h,sha256=CsSWRenrtbZYiNnf-cdYCgMLmu5KUAPUKNKMDWttoD4,2810
|
| 113 |
+
pyarrow/include/arrow/acero/benchmark_util.h,sha256=T5bNabF1TDAp28S7V_vt_VIDn6l5Be0zOVCHhcTcFf8,1943
|
| 114 |
+
pyarrow/include/arrow/acero/bloom_filter.h,sha256=bFzzAzQrs9ePp2tCPQIuk1Oa9gG_Nyp72M_HM0dhakM,11978
|
| 115 |
+
pyarrow/include/arrow/acero/exec_plan.h,sha256=U0KA3tnNvVb75G0XQFLVbGzXCGdddGyRhW3zMa8oWJc,35909
|
| 116 |
+
pyarrow/include/arrow/acero/hash_join.h,sha256=Ji0k5z778QtNQ0MwU6xBP6z7ajLk79Va-vgCqrlApso,3003
|
| 117 |
+
pyarrow/include/arrow/acero/hash_join_dict.h,sha256=_BKJmK3Z_KdJuYHh4KQCuT_1rXlUohrtEgGLtEJ4fgQ,15360
|
| 118 |
+
pyarrow/include/arrow/acero/hash_join_node.h,sha256=FXT-aeXL7nNTuV75f9oXgdGyqMK_72GnqGUm9cmBnko,4378
|
| 119 |
+
pyarrow/include/arrow/acero/map_node.h,sha256=Bd1HcW0N5azoIVth2ATeHxgTKd9XmmEkz42YBNw5eK0,2628
|
| 120 |
+
pyarrow/include/arrow/acero/options.h,sha256=r-GnLElNJAAdFoJ7k0Q1TOfvGSOdgT9BrWbdMcS_SF0,37262
|
| 121 |
+
pyarrow/include/arrow/acero/order_by_impl.h,sha256=dQqplP-AZWPZRKio8LmTjYWlCYz9VmW-usUrtaLpd_w,1691
|
| 122 |
+
pyarrow/include/arrow/acero/partition_util.h,sha256=bs_zxok-qng8jsHmVBlfJ7Ts2uBEmovEb27knqQmT-Q,7411
|
| 123 |
+
pyarrow/include/arrow/acero/pch.h,sha256=8VXXI10rUHzlQiAthx-yjHMQCpGL3dgAiVaGzTubPPE,1094
|
| 124 |
+
pyarrow/include/arrow/acero/query_context.h,sha256=D364aGRS3uWe8lgYqCNRjVvs5sKetLOOXzACdp5GZeg,6212
|
| 125 |
+
pyarrow/include/arrow/acero/schema_util.h,sha256=KA_hV2xy2TRccMyksSzQrdH9_rdGo3tQyHOIvrWWYBQ,7961
|
| 126 |
+
pyarrow/include/arrow/acero/task_util.h,sha256=6pqILuYfcVwt9HqVhRfXFVJoOC-Q_dtk8mQ5SxjgwbY,3706
|
| 127 |
+
pyarrow/include/arrow/acero/test_nodes.h,sha256=xKeLWZZC8iokveVXPjseO1MOvWMcby-0xiMISy0qw8E,2877
|
| 128 |
+
pyarrow/include/arrow/acero/time_series_util.h,sha256=W9yzoaTGkB2jtYm8w2CYknSw1EjMbsdTfmEuuL2zMtk,1210
|
| 129 |
+
pyarrow/include/arrow/acero/tpch_node.h,sha256=l3zocxHTfGmXTjywJxwoXCIk9tjzURgWdYKSgSk8DAQ,2671
|
| 130 |
+
pyarrow/include/arrow/acero/type_fwd.h,sha256=4zLhtLJf_7MSXgrhQIZVGeLxjT7JrEDAn9yW75DTFlc,1103
|
| 131 |
+
pyarrow/include/arrow/acero/util.h,sha256=byhMEj5XoAUy-93AjLrx_p9_iUZdYn5uJ_cDkCJQt5Q,6121
|
| 132 |
+
pyarrow/include/arrow/acero/visibility.h,sha256=E-4G2O4F2YabXnFNJYnsI2VbVoKBtO7AXqh_SPuJi6k,1616
|
| 133 |
+
pyarrow/include/arrow/adapters/orc/adapter.h,sha256=G5SSGGYMSREILC43kqL5fqo94c4tKgukitO15m217tY,11031
|
| 134 |
+
pyarrow/include/arrow/adapters/orc/options.h,sha256=FMxda5YSskRrB6h9FvcAuMxl5qdavWrNYHPlanjtk48,3696
|
| 135 |
+
pyarrow/include/arrow/adapters/tensorflow/convert.h,sha256=ZGFAodnwTJK0ZoXfgYJdjgi_F4vfEhI9E87zejxVb6E,3465
|
| 136 |
+
pyarrow/include/arrow/api.h,sha256=Gs6HiRBYU5N7-a79hjTl9WMSda551XdUKpWthFY2v1s,2491
|
| 137 |
+
pyarrow/include/arrow/array.h,sha256=P5oW6hvD2j97bLaSTE4_UHuV6Y38DTwJVww3Eb3xdTQ,1981
|
| 138 |
+
pyarrow/include/arrow/array/array_base.h,sha256=14RULo7wEJze9IY2psySGtBlBsnCErnqY4lBO4ckU6g,12123
|
| 139 |
+
pyarrow/include/arrow/array/array_binary.h,sha256=JvtB8DoR0_tqfSFS_9nMRrJ39lt1cTm5yXh-DLkhqjU,11247
|
| 140 |
+
pyarrow/include/arrow/array/array_decimal.h,sha256=xRfrZ1IFO09EmkHEolCwrJ4lsXjLo5DXdfH5_v2gSyw,3105
|
| 141 |
+
pyarrow/include/arrow/array/array_dict.h,sha256=6AMbSnZoMj-nhQhZhG4RNnxy9VVPk2DvZjVblwIUhgY,7611
|
| 142 |
+
pyarrow/include/arrow/array/array_nested.h,sha256=xySiF5b1ab97GifKMx6FuYZWb2_6e3YvSMfOORGe3J4,37605
|
| 143 |
+
pyarrow/include/arrow/array/array_primitive.h,sha256=anek7WkjubNBTRz8wOHyZ0_UuE3BExj02P-PCs3F5To,7719
|
| 144 |
+
pyarrow/include/arrow/array/array_run_end.h,sha256=4zs3tcUrIgDOhSEOywJ1vGY2lsH-5QuEBn87mxnDbi8,5101
|
| 145 |
+
pyarrow/include/arrow/array/builder_adaptive.h,sha256=92DpiIZDXSI_yOrMftj7P60zlCLjNmwfGM5ubdbXWM4,6861
|
| 146 |
+
pyarrow/include/arrow/array/builder_base.h,sha256=CP9kS8pDFd4XyJQdgIlBp3pTIX9mND1Lvh85re4IC8w,13723
|
| 147 |
+
pyarrow/include/arrow/array/builder_binary.h,sha256=01BrSwkFQNAEy4FVYi8Esbd2CaeyxN04GDUoXsQUFhU,32718
|
| 148 |
+
pyarrow/include/arrow/array/builder_decimal.h,sha256=DFxyFlpzWRZS9zdBhsjII5fFUOMY9bXHn3EIrIvmOMo,5051
|
| 149 |
+
pyarrow/include/arrow/array/builder_dict.h,sha256=FZjvCRIDmVuwmzx_HCcDK6ZjNoZKCEsSV-fGI0K974Y,27899
|
| 150 |
+
pyarrow/include/arrow/array/builder_nested.h,sha256=1In_M8pjkaqTuvNZlbGXWGID33CW2eBhy4in0oZsavA,31231
|
| 151 |
+
pyarrow/include/arrow/array/builder_primitive.h,sha256=OOfGI-zDM7BMWIBv-Tko_8pJDkpw-ttQM76JldlUOvc,20808
|
| 152 |
+
pyarrow/include/arrow/array/builder_run_end.h,sha256=SZIdsUKK1qAc9pdonPGf0A_aikZHcxxzicezRGR5hLs,11416
|
| 153 |
+
pyarrow/include/arrow/array/builder_time.h,sha256=8M2ifZnDgujSItXKsevyBdtM6Iky3ImyeIdAqZV3fec,2548
|
| 154 |
+
pyarrow/include/arrow/array/builder_union.h,sha256=8BF532sAMc7JxWIbSN-yX6Z9fqY9jmmsIa054DPvbWE,10144
|
| 155 |
+
pyarrow/include/arrow/array/concatenate.h,sha256=wBy-CBTz9MeRCmcnfXGvkXnvSRApvPOcfCf64A42ys8,2059
|
| 156 |
+
pyarrow/include/arrow/array/data.h,sha256=BuYmkq11BUas2FvufTRZkg_aoWVd-rLX1sBQIwB5HuE,25147
|
| 157 |
+
pyarrow/include/arrow/array/diff.h,sha256=bYNKy2oLAxtt6VYDWvCfq2bnJTVNjG5KMTsGl-gT_kM,3344
|
| 158 |
+
pyarrow/include/arrow/array/statistics.h,sha256=JYPb5hAHmJTQ9cDHcEhhHGRBZurt6CcVbUOlp54UWSU,2498
|
| 159 |
+
pyarrow/include/arrow/array/util.h,sha256=qVHvCaVlALz8WJwAjyMwsBm5J2iN89CSgj7NpmmqlkI,3652
|
| 160 |
+
pyarrow/include/arrow/array/validate.h,sha256=JdDb3XJg4TmAfpv_zgu2ITfL2H9no10TQit-HPj9Myw,1710
|
| 161 |
+
pyarrow/include/arrow/buffer.h,sha256=EfXDyFegRdva4rv4nf0jtErnIrt9_FWoXSHk6OPk_G8,23092
|
| 162 |
+
pyarrow/include/arrow/buffer_builder.h,sha256=tXWILwHW0MKpve7NIU2ElElPY0y0ooISa82Dq6UdhVU,17371
|
| 163 |
+
pyarrow/include/arrow/builder.h,sha256=mBxMko271lJ7Xbku0hCixj943Yx-d2i4Q5Hm2WfwiGM,1546
|
| 164 |
+
pyarrow/include/arrow/c/abi.h,sha256=ZohWkqHoTBeIIGYs2iv2VLL8I4G5lP8MAWgbtpWKLVM,7917
|
| 165 |
+
pyarrow/include/arrow/c/bridge.h,sha256=D9W-vKI_Ko6_INcMAdUx15foV08UbBvL48R8RRcL5cM,18132
|
| 166 |
+
pyarrow/include/arrow/c/dlpack.h,sha256=_HIa9AKR2mwbhf1aChIpMF_XDpFrPaf58Lt3fVxWRWc,1817
|
| 167 |
+
pyarrow/include/arrow/c/dlpack_abi.h,sha256=mjp9WWq8qv6gkGirT4y0o3BL_ZI9VyHQpJ5aEpPFetI,9920
|
| 168 |
+
pyarrow/include/arrow/c/helpers.h,sha256=f0Q519PwoliFHpxsHp-QvbP6fpVMN2Ha35Tk-RBK6Ws,6279
|
| 169 |
+
pyarrow/include/arrow/chunk_resolver.h,sha256=b9JpynFnTfkT4zEPBhBMMcMtQmqgGyNEOLrV7qgOv-c,12368
|
| 170 |
+
pyarrow/include/arrow/chunked_array.h,sha256=rKM1xrqlrGKqQ-5_cxSsENaPRO0Ct3GjbeNq4bbRKx4,10657
|
| 171 |
+
pyarrow/include/arrow/compare.h,sha256=U5craXnXACCUzQ8HmGYyhTehNrOezcVUP1ABAlxI62E,5555
|
| 172 |
+
pyarrow/include/arrow/compute/api.h,sha256=IQKXz_6YBBfHKOkuqkXIh9ZTZYyVgq7aEBTIzMkZEiI,2071
|
| 173 |
+
pyarrow/include/arrow/compute/api_aggregate.h,sha256=cgXomjDDHoAK_ddzyH1NSqWAewzEYPD7qJBj4x5Rkhk,17173
|
| 174 |
+
pyarrow/include/arrow/compute/api_scalar.h,sha256=xtRsJg11WgE5RXV9gZZHfhlEElLEpWUUWnbZXTKw4j8,66540
|
| 175 |
+
pyarrow/include/arrow/compute/api_vector.h,sha256=6jxDvg_Zz14_63SfVlWnfUff135kls1aGGK_d9h3bj8,29122
|
| 176 |
+
pyarrow/include/arrow/compute/cast.h,sha256=Xw9j03AIAMU_hZiqk9d2ZD4xTmESkfXaDsuZkiTypLs,4245
|
| 177 |
+
pyarrow/include/arrow/compute/exec.h,sha256=0ZAA9_tzcQEr364sjJ3SwgTtURTwtCjRLzo_LOdn960,17969
|
| 178 |
+
pyarrow/include/arrow/compute/expression.h,sha256=llX_81uUIyJ8vPmP8-2mAippyw4cVNhCGfqHRY37FOM,11184
|
| 179 |
+
pyarrow/include/arrow/compute/function.h,sha256=krTXaLowvT1cKhecs70urPQcx74vQCJ4jswtBE4Xs5A,16345
|
| 180 |
+
pyarrow/include/arrow/compute/function_options.h,sha256=Q9rjkXPrU9-Xi64_fMLPbBbW_byhjJFsvHppP1CumdA,3088
|
| 181 |
+
pyarrow/include/arrow/compute/kernel.h,sha256=ywsxF87w2eI4li8be7Wiua5bXp0NYhMb7LS8IzPFO3U,31406
|
| 182 |
+
pyarrow/include/arrow/compute/ordering.h,sha256=8Vw3VzDi1mGgVwKGQZakz9TVj0A40wxcL13EvuqNVjU,4129
|
| 183 |
+
pyarrow/include/arrow/compute/registry.h,sha256=x7LHiaNEVvZ0VUssZFsasB52Z1AxRflkdI5tR1hhzqc,4837
|
| 184 |
+
pyarrow/include/arrow/compute/row/grouper.h,sha256=m-XUADUbpC2wSYmea8rFMbooh0gJQtdTBoF81ywhhjY,7319
|
| 185 |
+
pyarrow/include/arrow/compute/type_fwd.h,sha256=-O63QUbsxWws8TBi55x6u9FweUSSOOfizhE4pTczLd4,1537
|
| 186 |
+
pyarrow/include/arrow/compute/util.h,sha256=eF_BX2aftTa3qUJwaZA3QGTajrDv4nf6HKXs6dOmjug,8863
|
| 187 |
+
pyarrow/include/arrow/config.h,sha256=8liyKI0CJO0G-Fz5I--QjIAwh0m4hosfyAOwvVVs0sU,3044
|
| 188 |
+
pyarrow/include/arrow/csv/api.h,sha256=LbwWhPyIsi_73hvsSr77RNR9uUxrVyXM__hp7QcSom0,907
|
| 189 |
+
pyarrow/include/arrow/csv/chunker.h,sha256=nTs8hdy4D3Nz3oZWm2JMuA02noY_0pWRYWq_RptqzHY,1171
|
| 190 |
+
pyarrow/include/arrow/csv/column_builder.h,sha256=7oa9YCg2Uc2mB7ExHIyYIvbdt555qLXiU0y4FepkISU,2890
|
| 191 |
+
pyarrow/include/arrow/csv/column_decoder.h,sha256=10idcPJE2V_TbvgjzPqmFy1dd_qSGWvu9eDkenTuCz0,2358
|
| 192 |
+
pyarrow/include/arrow/csv/converter.h,sha256=cjtnz_hZFxm_dWjAMjr1iqqk1egXI2Yb8Bd0xC8md5E,2789
|
| 193 |
+
pyarrow/include/arrow/csv/invalid_row.h,sha256=gTHjEbjkpee6syLGA8hFY7spx1ROMJmtMcwhXv21x5Q,1889
|
| 194 |
+
pyarrow/include/arrow/csv/options.h,sha256=_HkjSoiAPW77z5AHVVnTa452y1KfJgnXWXz2NoPPAYw,7980
|
| 195 |
+
pyarrow/include/arrow/csv/parser.h,sha256=8PplRh3Qxckk8VPyM70P_f1MBb4WMGnNVpoeJ9kOdHU,8616
|
| 196 |
+
pyarrow/include/arrow/csv/reader.h,sha256=416pt3yNQsgn4RhIyRMsmSJmvv1sw3ouQotubXG91gQ,4606
|
| 197 |
+
pyarrow/include/arrow/csv/test_common.h,sha256=uEYzw8EROvd1QMBQ98d4MaZ7BqMlw2e0flAyz-du0Z4,1972
|
| 198 |
+
pyarrow/include/arrow/csv/type_fwd.h,sha256=ptVbengmY_a7Yz1w0SKmKL16yyw9yEeym0Q0cnRCSV4,984
|
| 199 |
+
pyarrow/include/arrow/csv/writer.h,sha256=Y1zErZ5H1r2QzjAta3TXpFrdl2btoardCF8USCAGtGg,3549
|
| 200 |
+
pyarrow/include/arrow/dataset/api.h,sha256=p7i-bncJLhmfBkfjJWS7684vD9Lke1m6tb7HQq7Tpn4,1322
|
| 201 |
+
pyarrow/include/arrow/dataset/dataset.h,sha256=sDkJg42vSE05FwRmYi9pes3jD9932X3J8cyYZ3SY2jI,19830
|
| 202 |
+
pyarrow/include/arrow/dataset/dataset_writer.h,sha256=TQV75b_UigfGjIpBnPk8teOncM5WroKfKV15oicBRRY,4589
|
| 203 |
+
pyarrow/include/arrow/dataset/discovery.h,sha256=x7-5NBAyEeQWGlWanJDLZAoWksKiMwM96tlDx_M6n5c,11236
|
| 204 |
+
pyarrow/include/arrow/dataset/file_base.h,sha256=2oe5v8Qy6v_UthJavg9rjU_WuQvwXcJengWwc3sWLqk,20203
|
| 205 |
+
pyarrow/include/arrow/dataset/file_csv.h,sha256=7PlvQW_2FJ5RRN-VH4-OBw5cZ6nkd0KE0sj1TQvCZeo,5016
|
| 206 |
+
pyarrow/include/arrow/dataset/file_ipc.h,sha256=6-btvXhflZsAH90T3wMkwzZkte6T4ixzeCEUn_5uYW8,4083
|
| 207 |
+
pyarrow/include/arrow/dataset/file_json.h,sha256=sPjOeMOtbZZbvOivnOdb4MvYKHltpTnY8fONkhB9PZs,3523
|
| 208 |
+
pyarrow/include/arrow/dataset/file_orc.h,sha256=P7nAD9nacVngDEjH8ChQRt0AQmDg4Z1wBx360LDOoSg,2452
|
| 209 |
+
pyarrow/include/arrow/dataset/file_parquet.h,sha256=bzArl0XrmtTNvWhs6YTkLFxtD8TLbTIJwYmWz3YRm38,16708
|
| 210 |
+
pyarrow/include/arrow/dataset/parquet_encryption_config.h,sha256=Upo0k5MijZaMaRZjPp5Xg8TRt1p8Zwh2c2tdimjVe1A,3425
|
| 211 |
+
pyarrow/include/arrow/dataset/partition.h,sha256=3wrNekD_-fPO1YW91Za-T4muCfQeAX7SZRIcsCN_czI,16815
|
| 212 |
+
pyarrow/include/arrow/dataset/pch.h,sha256=iAE_PbVtKHfhygz7Ox9Z2nlhsIrfageGixGKjlzNRvg,1194
|
| 213 |
+
pyarrow/include/arrow/dataset/plan.h,sha256=IjuR9K2sWD85_2HpVVoJ-3YUCq--UPblHU46exX5qRg,1181
|
| 214 |
+
pyarrow/include/arrow/dataset/projector.h,sha256=KfZijq09Ht0Z2cJHsrjg-sE3SiZ4TKainflReK-39cg,1135
|
| 215 |
+
pyarrow/include/arrow/dataset/scanner.h,sha256=9Ats-ejc6exp3alGUhq0Sw8fww3kJj4ssi8FOKK7SDk,24598
|
| 216 |
+
pyarrow/include/arrow/dataset/type_fwd.h,sha256=YOUSRwdNAlXJ7meFLolpAFQ_mSlObs2F81zcOy0DoI4,3170
|
| 217 |
+
pyarrow/include/arrow/dataset/visibility.h,sha256=ckmf_sEI0WBo4W7DIgH1QrOq82skOHtoksl9B3yYvzU,1586
|
| 218 |
+
pyarrow/include/arrow/datum.h,sha256=XYaZ_URrAtVqHMq-_2YtXk_ETeQ4yZWLVAnsi-k2Mac,11511
|
| 219 |
+
pyarrow/include/arrow/device.h,sha256=mLz99tb74VdjxXtKt6RZCYKJQ8TYz93uaCFJ1ZiItMw,15344
|
| 220 |
+
pyarrow/include/arrow/device_allocation_type_set.h,sha256=ynoZ-XyFlOAjh01PU-R11mE_EOxuw3xzc94v5OXa0u4,3306
|
| 221 |
+
pyarrow/include/arrow/engine/api.h,sha256=ORM0M5KQeurjEG8Eoa5IeV_ZgKBRPlWyicyv3ORWkAY,886
|
| 222 |
+
pyarrow/include/arrow/engine/pch.h,sha256=8VXXI10rUHzlQiAthx-yjHMQCpGL3dgAiVaGzTubPPE,1094
|
| 223 |
+
pyarrow/include/arrow/engine/substrait/api.h,sha256=W9NB1RAm0ZVxztRXYA-GD7H8XLQNXFoYT7TdGFHoNTE,1079
|
| 224 |
+
pyarrow/include/arrow/engine/substrait/extension_set.h,sha256=FE6cceycuQv7CCe_Fl4t6tIMRyfoJfWClUhSvHgcm90,21552
|
| 225 |
+
pyarrow/include/arrow/engine/substrait/extension_types.h,sha256=x5ZIuynNh6WFt3wRjW--zUsuC3SeDLk1qRg9_xhswWM,3075
|
| 226 |
+
pyarrow/include/arrow/engine/substrait/options.h,sha256=dtvUty_zoDmcFwVflppiDzelYkeOhCO74uRF6izQSzk,5820
|
| 227 |
+
pyarrow/include/arrow/engine/substrait/relation.h,sha256=V3VKFlDdE61e1OS8LbJiwvm5w0uq5bzBLhKqmgmKaws,2385
|
| 228 |
+
pyarrow/include/arrow/engine/substrait/serde.h,sha256=mjxfuFo4aPhCiwefpKAJMIlknF4UOHSr6gWU__1SwCc,16528
|
| 229 |
+
pyarrow/include/arrow/engine/substrait/test_plan_builder.h,sha256=REFa79D1AOIIjp2Iez73iw5gEnzG9Rac9t8WwiGLsuI,3003
|
| 230 |
+
pyarrow/include/arrow/engine/substrait/test_util.h,sha256=IHZeYrk50Sx9anJfC25DWP6XesItKEywDWUqvUJcjEQ,1517
|
| 231 |
+
pyarrow/include/arrow/engine/substrait/type_fwd.h,sha256=P9YRjAQpSgoIjDC0siYyxoQzcPVo3r9y85qjiMtudBs,1028
|
| 232 |
+
pyarrow/include/arrow/engine/substrait/util.h,sha256=_dRiQBaIMWNbsYG7kuXhs3dMk4dI63-pM0uSxYPOvgE,3570
|
| 233 |
+
pyarrow/include/arrow/engine/substrait/visibility.h,sha256=GRzH6U-UCPT8d60cywOkFfcanPSgiZKCDP6X2rIpbMs,1740
|
| 234 |
+
pyarrow/include/arrow/extension/bool8.h,sha256=VsHTtVyrqk6UKgvifad7LouuieoAZuZs_uVvegdGq4Q,2145
|
| 235 |
+
pyarrow/include/arrow/extension/fixed_shape_tensor.h,sha256=VOqvTSnwDIvnhbstYX5nnqWfhtZ7MaD-lSF89BEqlhE,5610
|
| 236 |
+
pyarrow/include/arrow/extension/json.h,sha256=gnJSzCVni_oJKxKMoSNBwsuBg1BJzk_goGIE_uTSMJY,2109
|
| 237 |
+
pyarrow/include/arrow/extension/opaque.h,sha256=uMVqSScey_13Ho6V86vfkuoByZni9ufh5BGKgX4bTZk,2920
|
| 238 |
+
pyarrow/include/arrow/extension/uuid.h,sha256=E_Bnp5KNKSxVuvdhQHjYT-0HKa9mzVPbSAQjuZ9N3Pc,2278
|
| 239 |
+
pyarrow/include/arrow/extension_type.h,sha256=5rDE_IuEMAQg05k6wnbo6pu8hOW3-jp9Ab89souwcds,6628
|
| 240 |
+
pyarrow/include/arrow/filesystem/api.h,sha256=Xgy2GOZtBVwDjTaXPDyPPlS9Bwt9gjWXm5I_QbyRbFo,1383
|
| 241 |
+
pyarrow/include/arrow/filesystem/azurefs.h,sha256=urXoeGp29R42-0ILfkKBhzSa3U2DjjVaFmol2kOsb3g,15223
|
| 242 |
+
pyarrow/include/arrow/filesystem/filesystem.h,sha256=H7MEX1259aVrWMsgsWX26tuCEPSJF-iI51J3sKsYec0,29585
|
| 243 |
+
pyarrow/include/arrow/filesystem/filesystem_library.h,sha256=axaof-G9GxBjzXhRIt4azB7HB8VJ49MtGYsL7pSO0A0,1725
|
| 244 |
+
pyarrow/include/arrow/filesystem/gcsfs.h,sha256=wzVfIkqhUp-aw6NFNhMbvl0bczty3HmdiYG36oPCDS8,10533
|
| 245 |
+
pyarrow/include/arrow/filesystem/hdfs.h,sha256=Jn91pjfk6RMx-MuAWsEAKLTyKQ7bDPNA5jMEVzafSgc,4133
|
| 246 |
+
pyarrow/include/arrow/filesystem/localfs.h,sha256=eIhPrpABheQz21WE845ULleTk83e4EtJnES4jALW6mM,4972
|
| 247 |
+
pyarrow/include/arrow/filesystem/mockfs.h,sha256=kohu7s9s9xtd75sGTE2K_rsHW89swDOtSSSFxBixMcc,4768
|
| 248 |
+
pyarrow/include/arrow/filesystem/path_util.h,sha256=hrDVHk4F9M7oGABB4x2wKfQMjSlSAIS0IaLVv2jHrl4,5698
|
| 249 |
+
pyarrow/include/arrow/filesystem/s3_test_util.h,sha256=ffeqZmR8G8YyzbpUWws2oSEchYPBt254jwOHWdkcWQo,2767
|
| 250 |
+
pyarrow/include/arrow/filesystem/s3fs.h,sha256=0C98nH3MLI-lq0FW3mWufnY8z43GWCl4BVOnhgDsFhw,16217
|
| 251 |
+
pyarrow/include/arrow/filesystem/test_util.h,sha256=MFwd6ljnwR8q1smTSpVRLk_15Ch_v1hEQWkRL3lAo-s,11412
|
| 252 |
+
pyarrow/include/arrow/filesystem/type_fwd.h,sha256=zztDER55Wbt4rVnkd-ReeDO-YnrpemftFeFtZ7ZGidY,1462
|
| 253 |
+
pyarrow/include/arrow/flight/api.h,sha256=YotLTQn-KCl6y5BIg8coEFZ9n7PMtJ02ly7Pc5gmX7U,1257
|
| 254 |
+
pyarrow/include/arrow/flight/client.h,sha256=NtFquWOaafBcmdIB4en9ua5xSEJaCBkC1ZHhAU_Gg60,17798
|
| 255 |
+
pyarrow/include/arrow/flight/client_auth.h,sha256=a3Dkm_jPOuqzNsDA4eejuMUwCEBMavM8uS7w81ihbRY,2216
|
| 256 |
+
pyarrow/include/arrow/flight/client_cookie_middleware.h,sha256=5zkCP2SxMFQuTX8N9NHxOve5J_ef2rFO6-xY4Tfnygk,1204
|
| 257 |
+
pyarrow/include/arrow/flight/client_middleware.h,sha256=aAZwCahuiBhP85iMPe7xNWvidBR9KeHGto2YAqJioI4,2948
|
| 258 |
+
pyarrow/include/arrow/flight/client_tracing_middleware.h,sha256=d0sTmUOfq5M9FMliIKK-flJkR6-7r69NjU2TpxhfqWo,1217
|
| 259 |
+
pyarrow/include/arrow/flight/middleware.h,sha256=JPQd8JnIVcwjTH6yOBck4BWR-WV95fpnAdhHyEYvfKE,2254
|
| 260 |
+
pyarrow/include/arrow/flight/otel_logging.h,sha256=riS9sZM2C3mH6VMbESizJ6lGmudqdJhfdCY9_cJJqMA,1139
|
| 261 |
+
pyarrow/include/arrow/flight/pch.h,sha256=Dp2nrZ3t_KPjm0cIMyu913BbCorJG5rmbtpfyDN09bo,1192
|
| 262 |
+
pyarrow/include/arrow/flight/platform.h,sha256=1ZfzVaollAZosGyH_1JvzEA8iNR0hi9cUGz5eyLT1zc,1209
|
| 263 |
+
pyarrow/include/arrow/flight/server.h,sha256=GAcV0-THuBuj-bXfwqYrZ1P2bwZgKQSJLbu8ToltRvU,13185
|
| 264 |
+
pyarrow/include/arrow/flight/server_auth.h,sha256=zKQ8lvkMBuMYiIfT1sU0MPXqVPQikaOS3npBgytcaKk,5429
|
| 265 |
+
pyarrow/include/arrow/flight/server_middleware.h,sha256=ITKjCNTT2qnX7JeqWdaweC_QpCX_ytW9PFucQYmPkFo,4317
|
| 266 |
+
pyarrow/include/arrow/flight/server_tracing_middleware.h,sha256=zR0FFZYGwAAqhzVhPVDjyXfZda9zmLteqauwA5dgR_w,2186
|
| 267 |
+
pyarrow/include/arrow/flight/test_auth_handlers.h,sha256=XkvMWucv9GQjlt2ttvYxshym4kUubUdMh-timlQIt1I,3315
|
| 268 |
+
pyarrow/include/arrow/flight/test_definitions.h,sha256=esAWPIVJxTQqGpPTxa4Dm_HdAnzK-4DoJAb3zFtQBiM,13022
|
| 269 |
+
pyarrow/include/arrow/flight/test_flight_server.h,sha256=SbRhZP0U4ILnbg7lYQvGeXmvPM_B6bai12FTM_HD4RQ,3930
|
| 270 |
+
pyarrow/include/arrow/flight/test_util.h,sha256=E0OlDLwcknevKf4LzzqdU3jfxUMV_mcIJxy4U_up77Q,6860
|
| 271 |
+
pyarrow/include/arrow/flight/transport.h,sha256=ZDXc-f8o00TFWESwsGU1My7rR9OfM3X7OZjDcGXTwIA,12181
|
| 272 |
+
pyarrow/include/arrow/flight/transport_server.h,sha256=iVdXmrb2pemh4o6BxwvB7OZAV4UeoWrbhe4ePZ5Pi4s,5268
|
| 273 |
+
pyarrow/include/arrow/flight/type_fwd.h,sha256=tQFAM3QNKPdzB4VqUGdEUFjNPYXVZLApwGnSus2GQx8,1797
|
| 274 |
+
pyarrow/include/arrow/flight/types.h,sha256=b_HQAdmPTh8sZsk5KI7diTMlfm5TmnPFgc8sHE9KFWs,46638
|
| 275 |
+
pyarrow/include/arrow/flight/types_async.h,sha256=3nIQqwCYO4Ir3Mt2bG7BNntXxuNHYQNNpz-Yl3EaFTQ,2599
|
| 276 |
+
pyarrow/include/arrow/flight/visibility.h,sha256=N1k74cwyRvOaYFa_tCjdgUjiSdPBhmy20UuVGu0wTg0,1596
|
| 277 |
+
pyarrow/include/arrow/io/api.h,sha256=Pn4jZSTsLW8MAlMyXUokmJdupX54u154GYI5AvD5ByA,996
|
| 278 |
+
pyarrow/include/arrow/io/buffered.h,sha256=YFKKAHStUFncnfpwnk0XSZAZLeLX-LAXV1qH9VGaE1k,5845
|
| 279 |
+
pyarrow/include/arrow/io/caching.h,sha256=AAjoyKwQ06m2XiglFS6Ch_cdg2p4-wkA7GakGI_eX1E,6708
|
| 280 |
+
pyarrow/include/arrow/io/compressed.h,sha256=3JxIOo1q8VhjIErfwVM5ZLVkwwQKXd-FT5517j58etA,3774
|
| 281 |
+
pyarrow/include/arrow/io/concurrency.h,sha256=SmIr0OWCgMUR3j9ngVbjMJhWOUrU15jQf_jz2rUw7r4,7934
|
| 282 |
+
pyarrow/include/arrow/io/file.h,sha256=-ZEklW1Q0sj3pYCQLQ1ebirKd3s2GI3vUEIszFr8mVU,7625
|
| 283 |
+
pyarrow/include/arrow/io/hdfs.h,sha256=2s3f49ggAYgSCsX5SoqnomwsXd24_IZhW-VSBJclqTg,8559
|
| 284 |
+
pyarrow/include/arrow/io/interfaces.h,sha256=QIBHTJUobEkwcqnKMT_GEKu5ArzpeGmK-8v7z4qGHIQ,13428
|
| 285 |
+
pyarrow/include/arrow/io/memory.h,sha256=htc3MmEbEvwc28bLjCtTtt9QcYp-10WKLmX0V9TnwRM,7048
|
| 286 |
+
pyarrow/include/arrow/io/mman.h,sha256=qoLBAGFcvpYTy96Ga7FNWDJKT3uhxpFAF3hbXIaDSiY,4111
|
| 287 |
+
pyarrow/include/arrow/io/slow.h,sha256=8-ZjQJq49EQJ4esQ6qHHjlKCeZNg4BSND7ire-ZtLYQ,3942
|
| 288 |
+
pyarrow/include/arrow/io/stdio.h,sha256=dqMTHoJbmiXcyNa2fN60tSWQsx0GPphZVCLdGiZNt8I,2095
|
| 289 |
+
pyarrow/include/arrow/io/test_common.h,sha256=Rj8mwgcUkzksrlBALiAldtr_6JGHJFLh2SztGVkRiSA,2112
|
| 290 |
+
pyarrow/include/arrow/io/transform.h,sha256=W9XWonw69VymQAaQptfW7jD-6ry7VCpfPXlkB7aZzOE,1890
|
| 291 |
+
pyarrow/include/arrow/io/type_fwd.h,sha256=Pi7EFpFvBXsFN1xKOyZjTSP95xNDs6W5hxb5GucoVVE,2315
|
| 292 |
+
pyarrow/include/arrow/ipc/api.h,sha256=olkdu82mTS8hmwD53DBJJL6QQ0YBplhs-s-m4uOInSQ,1007
|
| 293 |
+
pyarrow/include/arrow/ipc/dictionary.h,sha256=UTjZPIG8mLZOk9IW2QnR9RZGr1npexZOp103fv-O70E,6104
|
| 294 |
+
pyarrow/include/arrow/ipc/feather.h,sha256=uCnxwO7eUH18kJ-lWz9IWwSj6AjfejqqLdoifJ-UBDo,4918
|
| 295 |
+
pyarrow/include/arrow/ipc/json_simple.h,sha256=IjFjx6Z7h_WLXt1paVIJboUOTR5GFBhWUhCbm_m9lNk,2455
|
| 296 |
+
pyarrow/include/arrow/ipc/message.h,sha256=KtMCbIC2J4-5iyPG5Sijqu_MALxiuKWBYZhGnw0jxOQ,20011
|
| 297 |
+
pyarrow/include/arrow/ipc/options.h,sha256=X2BbCaQ03S1uqedgLRbvLyfb1PHZ7WGRBjDLLCbQMGE,6888
|
| 298 |
+
pyarrow/include/arrow/ipc/reader.h,sha256=NqdrqqAEItO1ecYUINRO7-qhKlYy-CHSJKGI2hdXlRQ,24106
|
| 299 |
+
pyarrow/include/arrow/ipc/test_common.h,sha256=_kWOR_-YKtilcCIWK6I4WYo8fcRt6eBMfxEM4kDtY20,6351
|
| 300 |
+
pyarrow/include/arrow/ipc/type_fwd.h,sha256=Ty8ET7nLI4JJeTqDMyP0pEH9QVj9xs7BpJkZrnrpaPY,1440
|
| 301 |
+
pyarrow/include/arrow/ipc/util.h,sha256=wTkfC9YFKZlAAjyzlmQVZcW90oOj_JatjDN4qz0IxHg,1414
|
| 302 |
+
pyarrow/include/arrow/ipc/writer.h,sha256=hum8E_orkG_X38vgyfyKhGbyvcLJ3AkXEykyBjAXIYg,18870
|
| 303 |
+
pyarrow/include/arrow/json/api.h,sha256=XRW1fP43zVqwy1yabaKctNK9MDZqnxkoHDH1fx5B3Y4,879
|
| 304 |
+
pyarrow/include/arrow/json/chunked_builder.h,sha256=DDuMwrImMECw6Mhfncn2xMOjkFcKUV1O1597_fSFSAs,2365
|
| 305 |
+
pyarrow/include/arrow/json/chunker.h,sha256=dkZOcxsF1Q3ek58P7IoA8f3lQyBQpFvGSFeynNV2Olc,1119
|
| 306 |
+
pyarrow/include/arrow/json/converter.h,sha256=3lXsP3BSdpLPIkFAJnYW9vP8BbX3neVYR_W0zFKClQ0,3134
|
| 307 |
+
pyarrow/include/arrow/json/object_parser.h,sha256=Y_6Oceya06aUyeo-1k047dm2-JUMJa2_w9iyZ-goIRQ,1627
|
| 308 |
+
pyarrow/include/arrow/json/object_writer.h,sha256=UrIrjCkIz7Q5n_FpV5NNPD96gHHdTkvTJaekuGBHwTo,1428
|
| 309 |
+
pyarrow/include/arrow/json/options.h,sha256=EypQgDwLZQbrPnAh45nSPfpGGYrxvLgfp1eAG_l0p3Q,2227
|
| 310 |
+
pyarrow/include/arrow/json/parser.h,sha256=3oIzO5kUs2Takc7t_d5mH7bp1uIcc1M-qbuHmPoSI34,3383
|
| 311 |
+
pyarrow/include/arrow/json/rapidjson_defs.h,sha256=lBJlfuYWIeQQ8awPd3bk4jJc81efr_KzKwG8Klw7t1s,1474
|
| 312 |
+
pyarrow/include/arrow/json/reader.h,sha256=KNO9dCyc2RZs7WxUSEW7bpCYBh_h1C3U52YHYxBnP0M,5212
|
| 313 |
+
pyarrow/include/arrow/json/test_common.h,sha256=YiiY_jswpp7Nu6IW1Y2lBhqWSFRoNaNEy1jHd5qkYHQ,10874
|
| 314 |
+
pyarrow/include/arrow/json/type_fwd.h,sha256=o9aigB5losknJFFei1k25pDVYZgkC2elmRMX1C6aTjo,942
|
| 315 |
+
pyarrow/include/arrow/memory_pool.h,sha256=SjPtWz1tx6Lotr2WeOKCCIw9NQc50Zjez3yzgfr7SDw,11064
|
| 316 |
+
pyarrow/include/arrow/memory_pool_test.h,sha256=qv7csk6hZiO2ELFF-1yukpppjETDDX0nuBFBbPFHtMU,3350
|
| 317 |
+
pyarrow/include/arrow/pch.h,sha256=MaR9bqy2cFZDbjq8Aekq9Gh1vzLTlWZOSHu-GhWP1g8,1286
|
| 318 |
+
pyarrow/include/arrow/pretty_print.h,sha256=ZDlroPRr9_ryCk7h_rjA8pL7BNgaJQ9HnRb2PZU63lg,5529
|
| 319 |
+
pyarrow/include/arrow/python/api.h,sha256=W76VAxYqOxi9BHJddji1B62CmaWDFuBhqI65YOhUnGQ,1222
|
| 320 |
+
pyarrow/include/arrow/python/arrow_to_pandas.h,sha256=jUBEUMKXw70oJdMlgkSf6HitaNweQcc7hxI75_C9WSI,5561
|
| 321 |
+
pyarrow/include/arrow/python/async.h,sha256=C0f8YYmgwBGgDau4xEFsdjukiZB4YvpylETHEZryHOo,2352
|
| 322 |
+
pyarrow/include/arrow/python/benchmark.h,sha256=f-kzyMOlPKDse2bcLWhyMrDEMZrG_JHAPpDJgGW0bXU,1192
|
| 323 |
+
pyarrow/include/arrow/python/common.h,sha256=yjljfJK1f7slZ7DBQ4LTo_pob70zioswJNWazy0p-uM,14412
|
| 324 |
+
pyarrow/include/arrow/python/csv.h,sha256=QxU3B-Hv_RsoEcMGS9-1434ugouL2ygC64Lq6FgviNM,1397
|
| 325 |
+
pyarrow/include/arrow/python/datetime.h,sha256=Bny_THGi2tyUeHxcOuw01O7hNE8B_gave5ABAZQtwTQ,7931
|
| 326 |
+
pyarrow/include/arrow/python/decimal.h,sha256=kDDjLzW07D7d7omWSR4CBF1Ocskp4YSZu4Dtxu-gRUg,4726
|
| 327 |
+
pyarrow/include/arrow/python/deserialize.h,sha256=Q4L1qPCra8-Wzl6oLm44cPOUMVuK1FX01LeGzwNUtK4,4260
|
| 328 |
+
pyarrow/include/arrow/python/extension_type.h,sha256=0gzb42y_mbw4fsYs3u8cwPFLBRlG-kkHQLgbvGtrY0U,3181
|
| 329 |
+
pyarrow/include/arrow/python/filesystem.h,sha256=FG0AcLekqaDf9IQPqKixAfIcY_ZLgIKP5NvvXdtBVUM,5126
|
| 330 |
+
pyarrow/include/arrow/python/flight.h,sha256=u5UnulNJqMuXQLlODUWuoyxq-GtL1HuHmVGNzobUVGc,14311
|
| 331 |
+
pyarrow/include/arrow/python/gdb.h,sha256=H-qvM-nU8a_3Z5tk8PvppTwQtBMSZhQKQIVgRAsRfFg,972
|
| 332 |
+
pyarrow/include/arrow/python/helpers.h,sha256=jVNFEbvJXmCceJti3J3-MnZkNlJoynQNq334tt29bbs,5489
|
| 333 |
+
pyarrow/include/arrow/python/inference.h,sha256=FUFvB4Zy7V-tueXdmbDcqTeLK4xj5GZEeRW5yhiJlsU,2038
|
| 334 |
+
pyarrow/include/arrow/python/io.h,sha256=4jGnodpSUlnVqAVh9fWId7H4WldlLPkXyroABpdaW6w,3858
|
| 335 |
+
pyarrow/include/arrow/python/ipc.h,sha256=SZbw6jCCqLiLNCY3k632GmwHeD_r_xrDS0dhqV49VhY,2259
|
| 336 |
+
pyarrow/include/arrow/python/iterators.h,sha256=Ugfm3JvetAH0l-oAjjpZfhrUBqRimVMaw4-xusvqLSg,7327
|
| 337 |
+
pyarrow/include/arrow/python/lib.h,sha256=UNSuhntc2NTo9y8txHS8MqB10IQN41UuXjb5dGtstfw,4631
|
| 338 |
+
pyarrow/include/arrow/python/lib_api.h,sha256=SCXALS0e94-_uXt9ZlqlUlvU-cclpx7xT8LpxAU1nbM,19487
|
| 339 |
+
pyarrow/include/arrow/python/numpy_convert.h,sha256=y13eHwfe1lJKzadoTr2-GyX6xPsE6Z7FN31s7PN-2Rk,4870
|
| 340 |
+
pyarrow/include/arrow/python/numpy_init.h,sha256=FniVHP7W2YBlenoMYhQrODvoqqvDMSls2JANGtNPQts,999
|
| 341 |
+
pyarrow/include/arrow/python/numpy_interop.h,sha256=rI6ek8JTOYtjo7gEADSDBS6QuAOHa2A0YQPZ2GeypFw,3418
|
| 342 |
+
pyarrow/include/arrow/python/numpy_to_arrow.h,sha256=z9KapsuoOSpWILPt9bea7GR4BL6AQ28T6DUO0mSkh3k,2760
|
| 343 |
+
pyarrow/include/arrow/python/parquet_encryption.h,sha256=Mc8tZ8gIfkH0AckNiIOt6hesP_MVKeKhcytT24ZOLdQ,4861
|
| 344 |
+
pyarrow/include/arrow/python/pch.h,sha256=vkbgStQjq820YeHlXBPdzQ-W9LyzJrTGfMBpnMMqahk,1129
|
| 345 |
+
pyarrow/include/arrow/python/platform.h,sha256=XYS5IqiMUejxN2COzu60Zs8b_wAaGTBw4M-zKVqqs5U,1422
|
| 346 |
+
pyarrow/include/arrow/python/pyarrow.h,sha256=TK3BtD9n3QKOQ9dX3LXbQc0hu9alWcufV0O93iQW7B0,2761
|
| 347 |
+
pyarrow/include/arrow/python/pyarrow_api.h,sha256=7l0G4-_m9yALYoifsY8Z6qh3HHD0PgkpVSgCn_JaGU4,867
|
| 348 |
+
pyarrow/include/arrow/python/pyarrow_lib.h,sha256=-70_Ckj3_0ImlzaXSJOE_d3w9pGM66lXiGPyln9c96Y,863
|
| 349 |
+
pyarrow/include/arrow/python/python_test.h,sha256=ea32mM20uHySlygi9MtVxr26O-ydTZHCUQIlxaIMjT4,1195
|
| 350 |
+
pyarrow/include/arrow/python/python_to_arrow.h,sha256=BoVytf6P7PBYXyznchElKZSFvEsFyimB-tLFdw0AUNo,2521
|
| 351 |
+
pyarrow/include/arrow/python/serialize.h,sha256=HVBhIKgc7A4YOmwYfjE2Hqj1Yxl9suCJb940KxrVcrs,4630
|
| 352 |
+
pyarrow/include/arrow/python/type_traits.h,sha256=B_NsRT_hZG8D91sTcihJyKF5SrslPcFmj12QfbpHuLI,10093
|
| 353 |
+
pyarrow/include/arrow/python/udf.h,sha256=de3R8PhNJO5lT9oCqRxe8e2_SE3jBpHOkwbNqCrlgjQ,3104
|
| 354 |
+
pyarrow/include/arrow/python/vendored/pythoncapi_compat.h,sha256=bzMnlHTCfjk5DQRIxwytunYh5aQxU3iSElaaDyNnAY8,40900
|
| 355 |
+
pyarrow/include/arrow/python/visibility.h,sha256=hwJw5sGrWJckQkNaAuLe4Tf-VDjQbXknyzNOVgZI3FI,1381
|
| 356 |
+
pyarrow/include/arrow/record_batch.h,sha256=qk-6MakursNrRIec5MZeCfjUSYyXPQsyYbB1FJcYb7g,17835
|
| 357 |
+
pyarrow/include/arrow/result.h,sha256=1NmZkkVhjVe1CAI7dFXRFdNQefEtk1lxMCF92o41ROE,17739
|
| 358 |
+
pyarrow/include/arrow/scalar.h,sha256=7SguSvJ4wohjqV-FSKboC1pgaFVB09dNfkMz36JjcM8,36543
|
| 359 |
+
pyarrow/include/arrow/sparse_tensor.h,sha256=dd6eQmCjfCmmI76hgsC37R-qPJ11IMhafVaxSo2XJFs,25205
|
| 360 |
+
pyarrow/include/arrow/status.h,sha256=2D-uFQpe83Yja8Qygm1cXvWAybuiibyxlavOxFuPEjs,16417
|
| 361 |
+
pyarrow/include/arrow/stl.h,sha256=yGoKi-YUq6DgxkIW27S5B0_rXd2YiUrdzA1YdvHNCHQ,18164
|
| 362 |
+
pyarrow/include/arrow/stl_allocator.h,sha256=TBbvjbuQIH9y88FI2SaqAL7pOIt3wZ1xMKwXqeKNiJE,4956
|
| 363 |
+
pyarrow/include/arrow/stl_iterator.h,sha256=2nzrza4st-mdii2dqBEGCzql07t-M3rbDQjvzm8S7sY,9963
|
| 364 |
+
pyarrow/include/arrow/table.h,sha256=UoixXGk5S1ckV35utXjbA-KUBQrSeqvfrhSmk22k760,14647
|
| 365 |
+
pyarrow/include/arrow/table_builder.h,sha256=LRcLCL2iUrj6vF4f9AjPswVjqtqlMw7z_8VBAfUJeCo,3763
|
| 366 |
+
pyarrow/include/arrow/tensor.h,sha256=mgPkJ5f5ngl0qDkeYf-uk-BtX7Gyr-0DUuX1qB6YadE,9093
|
| 367 |
+
pyarrow/include/arrow/tensor/converter.h,sha256=RZq0Try_kiZ085_d_CvhewMsd57InGb2TCeiveaf-Oo,2891
|
| 368 |
+
pyarrow/include/arrow/testing/async_test_util.h,sha256=IrHWfPeIyhrgeTGHUPLt92LdsofmFX6khjngWsZv3dY,2262
|
| 369 |
+
pyarrow/include/arrow/testing/builder.h,sha256=4x0bWOedaVomWU0m7dF99irOv3flR-_p-IMofTDZtwo,8556
|
| 370 |
+
pyarrow/include/arrow/testing/executor_util.h,sha256=38_rF-V_9zF1ttJMspkPiI-34VU1RDjg1ADBS8lUFHk,1885
|
| 371 |
+
pyarrow/include/arrow/testing/extension_type.h,sha256=5l_28-SdoO0r6r-nVqkXsfSRFWTLTPgOFEpXzZiqh6U,7430
|
| 372 |
+
pyarrow/include/arrow/testing/fixed_width_test_util.h,sha256=g6yB7RkziU7HEhNJnxOhkn2nE5HeXaFX3tbBX3q9_sE,3091
|
| 373 |
+
pyarrow/include/arrow/testing/future_util.h,sha256=qIhi417OGMWSMUSDHjkGTYd-ihZbqw8ZSIRwJ01vbKg,6246
|
| 374 |
+
pyarrow/include/arrow/testing/generator.h,sha256=h9Kw9GfDnCHDLl7IsEgaLCi8UDu7R6MHL7Au2TWfMVc,12024
|
| 375 |
+
pyarrow/include/arrow/testing/gtest_compat.h,sha256=0NqH39my7m1FMpsrQYnxQx4bdEE10SCXZaysN6yjQFA,1311
|
| 376 |
+
pyarrow/include/arrow/testing/gtest_util.h,sha256=jnVGbM53nnXO433aUNmZHlMyiQ1ftENITLbtqRF6R08,24496
|
| 377 |
+
pyarrow/include/arrow/testing/matchers.h,sha256=3ys7UI6YpFeMvFCgjmF_VWn1w7Hzhqbr2c-_EuJBpnU,16852
|
| 378 |
+
pyarrow/include/arrow/testing/pch.h,sha256=wKPN4rZnVcQbmpn02Sx5tSa7-MEhpUR1w-YJ6drtyRM,1164
|
| 379 |
+
pyarrow/include/arrow/testing/process.h,sha256=AzPW3Lh2R4sTm-RUUi4Od3aSba9zoLcS_zHBxztv4zI,1372
|
| 380 |
+
pyarrow/include/arrow/testing/random.h,sha256=UMxioQORvoZOsodZM6T-ujza5WuYKwAndbvnOImDsqQ,37046
|
| 381 |
+
pyarrow/include/arrow/testing/uniform_real.h,sha256=-G_2J9cvevoCtB55vsCsWtJkMUHLIMyOwdT6G8ZW45Y,2970
|
| 382 |
+
pyarrow/include/arrow/testing/util.h,sha256=Vr_F5jZQo6kd2-PBq5M0IjODeuaY7cNU7dDovpnPtLQ,5391
|
| 383 |
+
pyarrow/include/arrow/testing/visibility.h,sha256=-wjc00QIhygXJa7tknbIL685AQ1wnyCPr-EtVzkzmq0,1606
|
| 384 |
+
pyarrow/include/arrow/type.h,sha256=yxS8FpeY8eK4cjiSc0nBPdKAF8CRnu7cpR0VX_BCY74,96772
|
| 385 |
+
pyarrow/include/arrow/type_fwd.h,sha256=2stweTjQZvCwuWYBFI_QJu2369tT6Y1Az4AIien0NVU,23442
|
| 386 |
+
pyarrow/include/arrow/type_traits.h,sha256=5XS-cpIzY1DQmNIwzhL7zd4ItxPfOgCwEqWfVG-zU80,54725
|
| 387 |
+
pyarrow/include/arrow/util/algorithm.h,sha256=045EVzsC9rThlRVFaCoBmmtWZmFy5y28PR9yapn9sXY,1229
|
| 388 |
+
pyarrow/include/arrow/util/align_util.h,sha256=DG2L24KReTiU8nFpXLigbflkKouKWTPUf6osQs6mxiY,10669
|
| 389 |
+
pyarrow/include/arrow/util/aligned_storage.h,sha256=ZsAqIA3DV3jIhCnC8mmA4J7FCnnQ-CV-gJj_T_pTmsI,4987
|
| 390 |
+
pyarrow/include/arrow/util/async_generator.h,sha256=dMfy3t58k9zQ82LeD002LZT0uEce_QWoDRfwjIapwKk,77704
|
| 391 |
+
pyarrow/include/arrow/util/async_generator_fwd.h,sha256=Y7EZ4VXdvqp7DnzG5I6rTt123_8kQhAgYIOhNcLvBdA,1737
|
| 392 |
+
pyarrow/include/arrow/util/async_util.h,sha256=1nnAJZ22iK7wSzmvZDo3PMhuWqJIt2qKdlXzTyhoCK4,19759
|
| 393 |
+
pyarrow/include/arrow/util/base64.h,sha256=qzcBE98cg8Tx5iPJAvQ4Pdf2yc6R2r-4yGJS1_DEIeY,1095
|
| 394 |
+
pyarrow/include/arrow/util/basic_decimal.h,sha256=3kDphzHx5TxSnbeZJtRDN5R3McKxxjMMePvGZElWNCI,33123
|
| 395 |
+
pyarrow/include/arrow/util/benchmark_util.h,sha256=SG3gfwE-wGNZAwpL3TvffnSiZGM2cztV5xRBnbqy2Mw,7641
|
| 396 |
+
pyarrow/include/arrow/util/binary_view_util.h,sha256=-sFAQX9cnfWmmZJo8stFX5vkJki7T2UloAvDzYO0MN8,4625
|
| 397 |
+
pyarrow/include/arrow/util/bit_block_counter.h,sha256=iSIemzizxVokwC0Ze6SjSi-al_nrP2ViXF6JPoIVUWc,20162
|
| 398 |
+
pyarrow/include/arrow/util/bit_run_reader.h,sha256=IWDww6Dm8OFsCRlJ0hEpJKiHMK3nUM3pqbd09mZhcIQ,16616
|
| 399 |
+
pyarrow/include/arrow/util/bit_util.h,sha256=S0TbReZet8MpPFZk9wjfYzfKpkBquthkkFk2QtxzB7U,12108
|
| 400 |
+
pyarrow/include/arrow/util/bitmap.h,sha256=qDoNl-S8QFoZ220HsAtAN-s-Xm5JcnjOXNOGdaIssL0,17462
|
| 401 |
+
pyarrow/include/arrow/util/bitmap_builders.h,sha256=zOb7Q-eX9vm9rkgu0Z3ftUDsI1xPthxJ_iC4qDYR1is,1563
|
| 402 |
+
pyarrow/include/arrow/util/bitmap_generate.h,sha256=m6ZsNwx1GhsEktQr63NxXHQkX2B7Nti011XYsPg2xfo,3661
|
| 403 |
+
pyarrow/include/arrow/util/bitmap_ops.h,sha256=87_SXoqmVPRC6umXFitektDCIeI8yOalYWUonzdWjt8,10750
|
| 404 |
+
pyarrow/include/arrow/util/bitmap_reader.h,sha256=pLrMDWhVo-Qb3V1mLASAz_aI6QZxDHRr37EtqxqGd9E,8353
|
| 405 |
+
pyarrow/include/arrow/util/bitmap_visit.h,sha256=myn8k66VrvZnL6R6VW6IDPTfO68VxjbJ8Up5IuSjFL4,3470
|
| 406 |
+
pyarrow/include/arrow/util/bitmap_writer.h,sha256=a4goXhLlY0qcfvYxbfbGD_HZ8Au1wFcbV1tVF3BPaXs,9383
|
| 407 |
+
pyarrow/include/arrow/util/bitset_stack.h,sha256=D49IZZSzZOM2hqh6b-fT0vgRISf1mQnl4oG5nnLBZ4A,2776
|
| 408 |
+
pyarrow/include/arrow/util/bpacking.h,sha256=qiiYXgZLWZcYX6sm75_vBQ6qpHtS1AwasL59YQL2Ptk,1175
|
| 409 |
+
pyarrow/include/arrow/util/bpacking64_default.h,sha256=q7kf_BW62k45v1qMtnJtLIPk8VtJIALc5nXkYmISy3w,196990
|
| 410 |
+
pyarrow/include/arrow/util/bpacking_avx2.h,sha256=ymQJGQc54W3zbrSoktjbAcBnWwbq_SphiXLLI-G6fHg,1009
|
| 411 |
+
pyarrow/include/arrow/util/bpacking_avx512.h,sha256=Z_rAQpiKJEH-9QSHUXpbDmZiAgIm7CPCHfPnwlIZDAE,1011
|
| 412 |
+
pyarrow/include/arrow/util/bpacking_default.h,sha256=nDi4g5JdyWwXa_J3EqE22bG9R4G7Czd6W75F9spRU5U,103760
|
| 413 |
+
pyarrow/include/arrow/util/bpacking_neon.h,sha256=vE-V4E8dpqSjk7dq8kagD07-nhRQKGvcYMhc_dE4nqg,1009
|
| 414 |
+
pyarrow/include/arrow/util/byte_size.h,sha256=Pd2c_3a0IeSOUevhPIlXNkDmgoB06g4c9YCsuRwwSKM,3997
|
| 415 |
+
pyarrow/include/arrow/util/cancel.h,sha256=oW33c4AXSKLHUc5R_1mZ4ssjmLXU_P0Jk6GDO3IwZUo,3651
|
| 416 |
+
pyarrow/include/arrow/util/checked_cast.h,sha256=SR9Qg8NuLSBJw2w1UfgeGvCfT8k7wrbN7BzADQOZfAU,2076
|
| 417 |
+
pyarrow/include/arrow/util/compare.h,sha256=OLrSSyllkY4Sv00IK-37A2d68gr4OwnWJsxn1aF9xTU,1982
|
| 418 |
+
pyarrow/include/arrow/util/compression.h,sha256=fvlURoWJsgO8Hr6Xs_VNaqiOatmIGn9ktVUkYv7pIu4,8427
|
| 419 |
+
pyarrow/include/arrow/util/concurrent_map.h,sha256=wMi9WDHfRuJ_aSFgcJPpsVwGJ9vIJ5agaZ3rVUlwGe4,1775
|
| 420 |
+
pyarrow/include/arrow/util/config.h,sha256=NGJWc5QVW-IoYYSPAxCj6xzP35y1U7HGal0CXfdY1Bo,2278
|
| 421 |
+
pyarrow/include/arrow/util/converter.h,sha256=PILfos6VlnLK6fOFMfLIUhiKl3o1dJo9T4HJXeR7V5E,14637
|
| 422 |
+
pyarrow/include/arrow/util/counting_semaphore.h,sha256=iXHYagqi_-ay73T1uPmv7pG334SY34DUQLSdtD_4_tA,2251
|
| 423 |
+
pyarrow/include/arrow/util/cpu_info.h,sha256=MqLdJabBZkzDjiScaQ7if9dmoAGvXT2QavGoGkho3lU,3964
|
| 424 |
+
pyarrow/include/arrow/util/crc32.h,sha256=4gN0M-SRnxaGKci2ATPbMWZG2TG3YULXjaTpadV0Udk,1337
|
| 425 |
+
pyarrow/include/arrow/util/debug.h,sha256=CPB_oDOuZ_u89e9wM8bGn88mGvClgfa7UDxDph6v9sY,971
|
| 426 |
+
pyarrow/include/arrow/util/decimal.h,sha256=ozY_pRsBgftG73qz0KKEPchFQ5HRTb5oxCcTIdWEL7g,20831
|
| 427 |
+
pyarrow/include/arrow/util/delimiting.h,sha256=JYe9YcWMeFT_ISuojx_VgVqOYLvZ2TiiR2sNn-WdeBQ,7317
|
| 428 |
+
pyarrow/include/arrow/util/dict_util.h,sha256=HipvAVlQ1Q6zNneu9tYOwVUv6NLklBu2IfZ1eoeSpVg,986
|
| 429 |
+
pyarrow/include/arrow/util/dispatch.h,sha256=g6R9w8asCTRyDTFoxUipvdOeh6Ye_FvZBGP6Zwg2t3M,3235
|
| 430 |
+
pyarrow/include/arrow/util/double_conversion.h,sha256=23QU2TFX4hpBZnoqMDyTKxZoH7mU9qkY2vkF1KL8bW4,1243
|
| 431 |
+
pyarrow/include/arrow/util/endian.h,sha256=jp4QoQ9r2vb-oigrlb9AhQW7Lxgxjj7desQjzkEre7g,8176
|
| 432 |
+
pyarrow/include/arrow/util/float16.h,sha256=RaJBIWnDdqj7uw2YskxBM0Wlpnrq7QRbMCiTZLr7gJY,7418
|
| 433 |
+
pyarrow/include/arrow/util/formatting.h,sha256=782wKN6ZKlHO7cQLC8CKCF9STixvLGjXrp_CwRqXyVs,22554
|
| 434 |
+
pyarrow/include/arrow/util/functional.h,sha256=4ljKXSWX3G_lBT2BfLXuG44pzZwVKeaojpLWCniqKyc,5612
|
| 435 |
+
pyarrow/include/arrow/util/future.h,sha256=tsSVDEH2dhXKyvIKl6R9BVBolpPdZXoRRf2-YRbtdxg,32296
|
| 436 |
+
pyarrow/include/arrow/util/hash_util.h,sha256=CjiNVPUJPxXvVJy7ys79aIb7YB6Bm-5nTJAR4DHsxcs,1918
|
| 437 |
+
pyarrow/include/arrow/util/hashing.h,sha256=baLrNZVhO0choWat_Bie2OV821WSTiutqIVfDMjYO6o,32892
|
| 438 |
+
pyarrow/include/arrow/util/int_util.h,sha256=zTOAq57M4pUe469WpnW6I5hNtxe3vGRHlZWhngA1DzM,4859
|
| 439 |
+
pyarrow/include/arrow/util/int_util_overflow.h,sha256=AtvkG7v3-1gVzW5SrFrdVkYuXFtT76_nxrKtzIbz_9U,4895
|
| 440 |
+
pyarrow/include/arrow/util/io_util.h,sha256=U6VTCh0yKUmYPaw2oG-CllJd4J02Gce6b0qTfqFi9E4,13709
|
| 441 |
+
pyarrow/include/arrow/util/iterator.h,sha256=nprqdPs6wrrgi6RHIJ2VMQI1YFya-57wBQfOEmHoKUc,18087
|
| 442 |
+
pyarrow/include/arrow/util/key_value_metadata.h,sha256=wjU6uQGcSmy-YFqMs6rwLP7E4X-0IFBjPrWZstistzQ,3590
|
| 443 |
+
pyarrow/include/arrow/util/launder.h,sha256=C3rNBRh4reuUp8YuRdGQU95WPc8vl4bAY-z5LXgDiuA,1046
|
| 444 |
+
pyarrow/include/arrow/util/list_util.h,sha256=_OmtsDqe-mnZ_7tVWxB2yHdgCJhpiME_RP3nXHzKbdI,2028
|
| 445 |
+
pyarrow/include/arrow/util/logger.h,sha256=p9i4dNgne36LWpFmNSYBYgTQ4kFSao20dJ40LgRRZKQ,6693
|
| 446 |
+
pyarrow/include/arrow/util/logging.h,sha256=eY1sZ1QCcvy5lpJwfOCL2rtRgLjc8V8yDf9usSa9-d4,9694
|
| 447 |
+
pyarrow/include/arrow/util/macros.h,sha256=dqnFiDUrFUyqHyNP4xEr54WgaAEXX8gE4ZG7-i3nfZQ,9336
|
| 448 |
+
pyarrow/include/arrow/util/map.h,sha256=KbKB3QNc3aWR_0YU1S7aF9fdI0VCABGxEF1VES2oOqU,2476
|
| 449 |
+
pyarrow/include/arrow/util/math_constants.h,sha256=2sfWoVc8syHz8X26XgBmejzXStl7hmvKiOh9622oUZA,1112
|
| 450 |
+
pyarrow/include/arrow/util/memory.h,sha256=qsxFgvj_wozO5OxIs6fHdcam7aifpozqc1aE81P91Yo,1566
|
| 451 |
+
pyarrow/include/arrow/util/mutex.h,sha256=n4bsrHK2Q8zbYsQEyNaFqNu__vvqgwo1AfrLLCxfkpU,2554
|
| 452 |
+
pyarrow/include/arrow/util/parallel.h,sha256=iZBn0C7HkQhGNKET5WTXCJ2FftcryCZAyBGwcg7qRvo,3616
|
| 453 |
+
pyarrow/include/arrow/util/pcg_random.h,sha256=nbXowfCJFiy4GjVfF9I8VvB6fxkyR5zNB1FKdnFsYTQ,1252
|
| 454 |
+
pyarrow/include/arrow/util/prefetch.h,sha256=vaE4FPdscbtO0cPbzl8F1PzB1NDO18ytYlEmZCHDjHs,1251
|
| 455 |
+
pyarrow/include/arrow/util/print.h,sha256=X0CfuWzDkq8CNHaEUH3I27Yi4v_zdoOo7sdrTad8Wr0,2444
|
| 456 |
+
pyarrow/include/arrow/util/queue.h,sha256=X9vRZQX3YL_a2Lzwe-zcNNHguR7FoGYmD-Q0THqsCBM,1017
|
| 457 |
+
pyarrow/include/arrow/util/range.h,sha256=yhe5pJiZIiLUO8tYr408Y9yEsFrFd7FrBMeTL2hAOKY,8526
|
| 458 |
+
pyarrow/include/arrow/util/ree_util.h,sha256=waTBOQfwWGHhoAYHTyyhUnM2BSwOqsof_H_akHvUgno,22395
|
| 459 |
+
pyarrow/include/arrow/util/regex.h,sha256=Tj92CttOh2HxS0EKQ_9-sxMBAsQrDOUKNP0ngIJFdP8,1742
|
| 460 |
+
pyarrow/include/arrow/util/rows_to_batches.h,sha256=PZNoLeMCfJJdeHVvUny0UHc5AtS0hctUCi7zUztJpeE,7120
|
| 461 |
+
pyarrow/include/arrow/util/simd.h,sha256=PpKm-aWpZYIYP0NnyGrQceOO9m3_7JbN4uro0IhIT9w,1679
|
| 462 |
+
pyarrow/include/arrow/util/small_vector.h,sha256=dDNNMFpNdtIbxLP3L-h_bv3A8raYv4IVuyLEzUVMgck,14421
|
| 463 |
+
pyarrow/include/arrow/util/sort.h,sha256=cXZvBN_EcXkN5j0xhX2oNisbChT2QKXP9KzDgjXW2_M,2466
|
| 464 |
+
pyarrow/include/arrow/util/spaced.h,sha256=790FFCTdZA-z6qKuEJM5_wG24SqTTVtyj7PKnLBe7_Q,3567
|
| 465 |
+
pyarrow/include/arrow/util/span.h,sha256=2zDPUc5ciTQovM-T32EZt4iMpqcsoL7Y46ovKjo-7ro,5551
|
| 466 |
+
pyarrow/include/arrow/util/stopwatch.h,sha256=ADGbEEU1x-fvp_NsIdTHH5BW0b9jDB8rTAj1WOgkClc,1401
|
| 467 |
+
pyarrow/include/arrow/util/string.h,sha256=hYtg4d3kGQBHdd0vGuKJTlVeueCCgfyD3iq-feMA3p8,5756
|
| 468 |
+
pyarrow/include/arrow/util/string_builder.h,sha256=UwOKPz8BQjtl9ecBZ0INoYWMWUkAVQOd_aC8xZZMCgo,2446
|
| 469 |
+
pyarrow/include/arrow/util/task_group.h,sha256=fI330NoJT8u84AEUA6pSxWrE7UBKn2LaM4DfPFoalqA,4362
|
| 470 |
+
pyarrow/include/arrow/util/tdigest.h,sha256=L6nSj-FVlYLtwKJ94WX9qps9YU6Yg-e3xwP6C0qE7pw,3058
|
| 471 |
+
pyarrow/include/arrow/util/test_common.h,sha256=ZniLT8TvAUdCE2T2YrtlDKdwDNPBpT5e9V1EiPHH9LU,2837
|
| 472 |
+
pyarrow/include/arrow/util/thread_pool.h,sha256=4ztLwkJHQJQmTmqwy8IGDmAo8X4N-o3qi6f91agzkkQ,24426
|
| 473 |
+
pyarrow/include/arrow/util/time.h,sha256=4Xi8JzaYlWFxVaenmCJ7orMgu4cuKELvbtMiszuJHUA,2988
|
| 474 |
+
pyarrow/include/arrow/util/tracing.h,sha256=sVfC_Rj2gwkWKVSKT0l0FOO5c2EGsfYwlkZX4d9ncxA,1286
|
| 475 |
+
pyarrow/include/arrow/util/trie.h,sha256=WBvryYO2sNdoPc-UB-XmQ3WzSed79qIsSg7YWCrvwNY,7121
|
| 476 |
+
pyarrow/include/arrow/util/type_fwd.h,sha256=aC3ZZR2FniFUR3InlZDXH8dknZKvmM0RBocHwFKU_Us,1521
|
| 477 |
+
pyarrow/include/arrow/util/type_traits.h,sha256=F0Gdg_3faM0MmZBOXOspRzUwuxnjKbFaVpJiTEaOXGU,1731
|
| 478 |
+
pyarrow/include/arrow/util/ubsan.h,sha256=dJNGOe0smDe1akrYLdYcIbAWDJNS6Z7NRgqgDnr2emc,2765
|
| 479 |
+
pyarrow/include/arrow/util/union_util.h,sha256=PSssBiw-v-PDen_q75c6OkNO5PwyIPhGbf9PMJj7P2M,1211
|
| 480 |
+
pyarrow/include/arrow/util/unreachable.h,sha256=O1TG4ozCYT3_xvDpJouKWrlFADIEpIemQ28y4DqIwu4,1070
|
| 481 |
+
pyarrow/include/arrow/util/uri.h,sha256=D24zebazFcrKGt7iGpkcGQ87DuF-2AbjPKVkDlq9Nuk,3886
|
| 482 |
+
pyarrow/include/arrow/util/utf8.h,sha256=flGZ786kHo33Xg_zw0zVA9GAT8jYdPUHTVhIPHGjOj8,2031
|
| 483 |
+
pyarrow/include/arrow/util/value_parsing.h,sha256=ypbnIIxfFDfDmELinEiS2RYSkeabYDAfuKPW5YsmfRw,29995
|
| 484 |
+
pyarrow/include/arrow/util/vector.h,sha256=w1lxZG3CU0gq2ZrByeU8QX2A0JeTtooGdaZONUsVlfs,5697
|
| 485 |
+
pyarrow/include/arrow/util/visibility.h,sha256=DFEdl8TCr30r3b7vlpgzJIiA5NsK7eW9UmeL47PgcLk,2835
|
| 486 |
+
pyarrow/include/arrow/util/windows_compatibility.h,sha256=Chme9fWRqYRzfIbLw7V_yeiIWd3F4dFeG6ImHHr4Xqw,1255
|
| 487 |
+
pyarrow/include/arrow/util/windows_fixup.h,sha256=hjoh6zvB8u8OVUQqLtdcrmohMzoAoLy6XJFLxcfFhK0,1435
|
| 488 |
+
pyarrow/include/arrow/vendored/ProducerConsumerQueue.h,sha256=Bz1ks3NDgXXLfT8TMUkE38RpMOSwKRRtwU1e37Y1CUw,6101
|
| 489 |
+
pyarrow/include/arrow/vendored/datetime.h,sha256=lVHO-GyyevnRnc2XmnRS33plbC7FGKcPJk0jnWrgLxw,1017
|
| 490 |
+
pyarrow/include/arrow/vendored/datetime/date.h,sha256=PtXn3ecSQSMqcvMpphq4GVx49dXQbsfDQb5NMlr1j9k,237838
|
| 491 |
+
pyarrow/include/arrow/vendored/datetime/ios.h,sha256=SSzUcU3-1_slQ-F8dS8MPMdKyhSmXKFmvSiUF3Wuaoo,1679
|
| 492 |
+
pyarrow/include/arrow/vendored/datetime/tz.h,sha256=k3-r1rO0n-u33qLAb9sKrRWPtb9JXGIW5zXAfnTSiEw,84884
|
| 493 |
+
pyarrow/include/arrow/vendored/datetime/tz_private.h,sha256=OmiXT6TLewxKLT8JdCp42FJTf-gRYi5ylGu_Ks01T1I,10732
|
| 494 |
+
pyarrow/include/arrow/vendored/datetime/visibility.h,sha256=2P38U5rN_wE45fGYqkAqh7P0XLj2eswzz8RgSRJ0c9s,951
|
| 495 |
+
pyarrow/include/arrow/vendored/double-conversion/bignum-dtoa.h,sha256=imGhcg0RywMsFNMYTqp6rlXw2HZCIAla8SC_n92gCqE,4358
|
| 496 |
+
pyarrow/include/arrow/vendored/double-conversion/bignum.h,sha256=RnQ2CPL8Pt6fVCGh_8VDF11e_GyrrwO0IH0uMnTcsEs,5949
|
| 497 |
+
pyarrow/include/arrow/vendored/double-conversion/cached-powers.h,sha256=jjwfR3bue7mNlE5lbTrFR2KlgjRew2OkmjBa7oQO0Qg,3079
|
| 498 |
+
pyarrow/include/arrow/vendored/double-conversion/diy-fp.h,sha256=J-RgqH27jspT5Ubth9pTA9NAZH6e7n1OVhxModgi8Sc,5088
|
| 499 |
+
pyarrow/include/arrow/vendored/double-conversion/double-conversion.h,sha256=J1Tl5-8aFY0A9SnaA9z5Q90jnMxw55illPIuE-jdD5Q,1804
|
| 500 |
+
pyarrow/include/arrow/vendored/double-conversion/double-to-string.h,sha256=C-tKRi0IuLycXgS6CC1oiFkCroOo_-AO0VOjmfe0tlE,23925
|
| 501 |
+
pyarrow/include/arrow/vendored/double-conversion/fast-dtoa.h,sha256=ZAho25fqeP3t2RM0XgqfhTBXQIIicACLpdyHHMRX3JU,4122
|
| 502 |
+
pyarrow/include/arrow/vendored/double-conversion/fixed-dtoa.h,sha256=HLnpxkHjKldm-FBiDRbADYljJBSYbQGP4Gz-sVbiSJU,2828
|
| 503 |
+
pyarrow/include/arrow/vendored/double-conversion/ieee.h,sha256=CVKA9RXSjv4ZygqDHMiF-H2hUh3QHQvp1GZYC3MAhkE,15281
|
| 504 |
+
pyarrow/include/arrow/vendored/double-conversion/string-to-double.h,sha256=Ul6b-2R0pjUaAWNM3Ki4kH933LqrW6_XfPz4BSiE2v8,10906
|
| 505 |
+
pyarrow/include/arrow/vendored/double-conversion/strtod.h,sha256=6xCRm47vmcghYJug5mhhTVbsZ3m3Y6tQfMehEyVZNx0,3096
|
| 506 |
+
pyarrow/include/arrow/vendored/double-conversion/utils.h,sha256=wFRb5cGABiNoUSCnvKmdv_KIMcBtX1PX89tPFfvgbQI,15614
|
| 507 |
+
pyarrow/include/arrow/vendored/pcg/pcg_extras.hpp,sha256=FEYzq8NFxPfdJyLs4kVtTBLkaD6iO71INz9EJnaxTdc,19784
|
| 508 |
+
pyarrow/include/arrow/vendored/pcg/pcg_random.hpp,sha256=7TaV3nZhcwpf6XxlZ6cod1GaW5gm-iUn67t2fiMPNbA,73501
|
| 509 |
+
pyarrow/include/arrow/vendored/pcg/pcg_uint128.hpp,sha256=r8exMtH21S8pjizyZZvP8Q8lAdxkKF22ZEiurSTFtzM,28411
|
| 510 |
+
pyarrow/include/arrow/vendored/portable-snippets/debug-trap.h,sha256=9KphJ9gRtDT9DXR9iZ7aS23xa2T8tLmLsFEJMg0pLDQ,3081
|
| 511 |
+
pyarrow/include/arrow/vendored/portable-snippets/safe-math.h,sha256=q9yWh34bsFu1vSqLTuI3n_cIU4TlY98Lk1elxKHvZP0,48167
|
| 512 |
+
pyarrow/include/arrow/vendored/strptime.h,sha256=q1IZi5CvyUp_PNzbQ4_XLroAV24VEovBEz2TkpwUJ9c,1212
|
| 513 |
+
pyarrow/include/arrow/vendored/xxhash.h,sha256=MUwtyzu7xjkx9mBcS65SaDcCK7tgeqQgj-KYEMxcHWc,844
|
| 514 |
+
pyarrow/include/arrow/vendored/xxhash/xxhash.h,sha256=videnbIaUDw38kaDzbSQjyNwo-NauW4CxOpz3I45nEM,253096
|
| 515 |
+
pyarrow/include/arrow/visit_array_inline.h,sha256=XuQjuME8XZeJp7W86YuCsuoVVgmG1NulXAA0KJkmmB0,2446
|
| 516 |
+
pyarrow/include/arrow/visit_data_inline.h,sha256=4MkdFVsrjhMyTDNrScQtOYV_nwzqR2ddSS2yYnbyLt0,12460
|
| 517 |
+
pyarrow/include/arrow/visit_scalar_inline.h,sha256=KvNY0j8nE9gs_805LXMV3ATgvxvUqW4UeKpXUxR3rMA,2419
|
| 518 |
+
pyarrow/include/arrow/visit_type_inline.h,sha256=45aoF8APn8hm909nLBngls669o2yKCn24WlL5XdDpa4,4397
|
| 519 |
+
pyarrow/include/arrow/visitor.h,sha256=NKos98j54uY9tdXzctI_n_nwFRrXNOwanxLDqDZONw4,8690
|
| 520 |
+
pyarrow/include/arrow/visitor_generate.h,sha256=n2YKZW-5hY7ICQSwEUBZIYh2eg9ZoTfD54XRd9OlNDo,3324
|
| 521 |
+
pyarrow/include/parquet/api/io.h,sha256=Ricq0d2R4QXHiGZCbjxZ_0F_QmKq0IrfTidNu5NoXPI,847
|
| 522 |
+
pyarrow/include/parquet/api/reader.h,sha256=vnM5XDPn1TVsDJk4SDgb3ZU2Ta4vdrRzCpDWO90rYHk,1204
|
| 523 |
+
pyarrow/include/parquet/api/schema.h,sha256=KsNJ529pEh7bGUa0rLUCcfanI9rW2uSTirgpvKq0hdc,855
|
| 524 |
+
pyarrow/include/parquet/api/writer.h,sha256=UJZbY8QGVRMtAmozzjoM9TnI4gssqlNFUKCXBw2IfuI,1007
|
| 525 |
+
pyarrow/include/parquet/arrow/reader.h,sha256=l4R351BVOWpYJOv_vyqWmXdJUErm2z_ztvTAv537q0w,15305
|
| 526 |
+
pyarrow/include/parquet/arrow/schema.h,sha256=Mi56ul7itNS6NDbMpKOJCufjHVqaSY5_rbsNRNLE560,6204
|
| 527 |
+
pyarrow/include/parquet/arrow/test_util.h,sha256=Edb5eSSEwkIExpHZ9Q0LJgPzggWNry4WMQ_i4q9z1uo,20540
|
| 528 |
+
pyarrow/include/parquet/arrow/writer.h,sha256=XicHPFeGb92AcsNRDblJ7V4Hmst2qSPGYYT9MTSNNmI,7095
|
| 529 |
+
pyarrow/include/parquet/benchmark_util.h,sha256=RhFvoDBVyfd5Sv0fm9JO4JrXWJRGYYmIIrHXi0cSJP0,1756
|
| 530 |
+
pyarrow/include/parquet/bloom_filter.h,sha256=TC3OxK0J2v6tHxT_Bbw7mlYtM0603KXgBoHRvmzM9aA,14999
|
| 531 |
+
pyarrow/include/parquet/bloom_filter_reader.h,sha256=63kpHYKs5TPrbRamkBLZsDYbD-I9UeVhF-R8d7JHeLg,2892
|
| 532 |
+
pyarrow/include/parquet/column_page.h,sha256=_BbPcMfSa52JmteUMdsc7BW6KWoGXn9aQepDgr0veSE,6526
|
| 533 |
+
pyarrow/include/parquet/column_reader.h,sha256=3QwlHlpiS5e5jtWmI_kRmD4jrrC8ljfpqF0ilf5JgNI,19299
|
| 534 |
+
pyarrow/include/parquet/column_scanner.h,sha256=HecBvh-z0n_1HJsD-GIdcGHQAvDOHKlLzppB9RBsD9s,8863
|
| 535 |
+
pyarrow/include/parquet/column_writer.h,sha256=Y9VN1eJtsYmQVhpL9UPiWGrHbgSDbDds19Z1nv_yfOA,12294
|
| 536 |
+
pyarrow/include/parquet/encoding.h,sha256=jSYqNVLnsKFu95Mb3uhTP06-7La5_6kNJwn00VqSK_Q,16341
|
| 537 |
+
pyarrow/include/parquet/encryption/crypto_factory.h,sha256=RT4iznr6uvSIPbUzh_7s6Cexe8uMbQkzgrjCTGYBC6I,7057
|
| 538 |
+
pyarrow/include/parquet/encryption/encryption.h,sha256=bHJ7USckzezXfydqjJstljcjuR15r8U6zh8z3IoINCo,19842
|
| 539 |
+
pyarrow/include/parquet/encryption/file_key_material_store.h,sha256=YzAVO3M2H5v5Fz2b_WlmB3GE5wVbMEnFTL3S9XPH6k0,2200
|
| 540 |
+
pyarrow/include/parquet/encryption/file_key_unwrapper.h,sha256=pB30St8lGEaEAxNcwnDnlGtATTvc1muMzNOusfgqzT8,4635
|
| 541 |
+
pyarrow/include/parquet/encryption/file_key_wrapper.h,sha256=d2W4xICbSRAy7aPe5RKahhPhiJDfvxHY_v_lifq7wqY,3762
|
| 542 |
+
pyarrow/include/parquet/encryption/file_system_key_material_store.h,sha256=9H1ey0O3LL4dg9VVeFLNxlZ7Vr263JVaZHKVSu4s8MI,3573
|
| 543 |
+
pyarrow/include/parquet/encryption/key_encryption_key.h,sha256=0c3ZrRud2vrCu5z513ocyPYxlsP2kg1fQ8m0Jqr701g,2232
|
| 544 |
+
pyarrow/include/parquet/encryption/key_material.h,sha256=kPTSIuRFYOnH4BCPIB33zG9hp5D2Ba-5kZVlq3rFnRI,6221
|
| 545 |
+
pyarrow/include/parquet/encryption/key_metadata.h,sha256=Pc0nA9LW3Fc9NLMMxz7osbw8si2jSiOVTES-J-9R0y0,4003
|
| 546 |
+
pyarrow/include/parquet/encryption/key_toolkit.h,sha256=HPabI8qFnIMgxZYhHgXCzYV0LU1c5yJ16xjUx21I9b0,4577
|
| 547 |
+
pyarrow/include/parquet/encryption/kms_client.h,sha256=D34pVHzkCbWqKnPIBYfs6cONxmuYzyLSS9-C52ZFhz0,3151
|
| 548 |
+
pyarrow/include/parquet/encryption/kms_client_factory.h,sha256=VZ97CMgDQxx5oZWFGprjXsaM1hZ0wNudPmFU1_lniAc,1293
|
| 549 |
+
pyarrow/include/parquet/encryption/local_wrap_kms_client.h,sha256=XZxkEct0-Tv93VDpda9sDou1kp9qkTKMxr36bpVcI8s,3954
|
| 550 |
+
pyarrow/include/parquet/encryption/test_encryption_util.h,sha256=zIGeULeTOCU1N-XYHdvIppth5wnnTYEwf2h-OuTcQZQ,5209
|
| 551 |
+
pyarrow/include/parquet/encryption/test_in_memory_kms.h,sha256=jYc5WPsrh_wcaaaWcjf23Gbiye3a_bdg2royUfukWEs,3521
|
| 552 |
+
pyarrow/include/parquet/encryption/two_level_cache_with_expiration.h,sha256=cuHbX9gBWWyd0IPXNVjMmHxjPw7omYTns4If4YhBgSM,5075
|
| 553 |
+
pyarrow/include/parquet/encryption/type_fwd.h,sha256=dL8snyUwNjhTQE2FQ2dXAUjTboEXhH2JOehQovHfixc,955
|
| 554 |
+
pyarrow/include/parquet/exception.h,sha256=yc5A3iMqM9P59hnjuY8VXUIoF_JvbZVPHM6_wPtg4cI,5599
|
| 555 |
+
pyarrow/include/parquet/file_reader.h,sha256=OFRKhwAww2N24aZOZcznzral1Or1TGIFGRd1aACARLQ,9664
|
| 556 |
+
pyarrow/include/parquet/file_writer.h,sha256=6fK6Mn-MdiQ-J4oo8BTi_eVVVshlffoQiJzFaLRrqco,9343
|
| 557 |
+
pyarrow/include/parquet/hasher.h,sha256=HSY1EjPD2xx_dB9HtAg-lXL7hB4j9MDE0cAlR7u0NOc,5227
|
| 558 |
+
pyarrow/include/parquet/level_comparison.h,sha256=5z4fUJJPWq9W60l2CsAI7T7E2auGYD7m0fpR5rfLmsw,1306
|
| 559 |
+
pyarrow/include/parquet/level_comparison_inc.h,sha256=r20_6Rv5L7UmFGJ68f-JaZ5hLXb87wvZa80hZNQoF-I,2494
|
| 560 |
+
pyarrow/include/parquet/level_conversion.h,sha256=OsuqK1xiUnEnOLPKwfm9X-pXTaXRMlDIkj3lwGb2ggI,9432
|
| 561 |
+
pyarrow/include/parquet/level_conversion_inc.h,sha256=0r2Gfd_FMidLGFC_a8kgpC9bnUt2-IBbAn9QbQFTrTo,14161
|
| 562 |
+
pyarrow/include/parquet/metadata.h,sha256=ORXKWkfSM-64vTrZ-qrsQ5naKx_pk8XbjJEPwtct7wI,20751
|
| 563 |
+
pyarrow/include/parquet/page_index.h,sha256=qBKqiq131jCUrtFCfwlBkeb8PL96yOPKg7AqkslnM60,16399
|
| 564 |
+
pyarrow/include/parquet/parquet_version.h,sha256=JdG5J1FtQGc7YYUvn2ef2iHtTiwORave4RU6pm3dl9g,1173
|
| 565 |
+
pyarrow/include/parquet/pch.h,sha256=zIdkjZS4kuFYra3woGMjmvYXCwB4IaXdpm_nR5Nz8hk,1249
|
| 566 |
+
pyarrow/include/parquet/platform.h,sha256=VS0zEUC4d37LQmlQLQZ5aHNaiwRf8QrxixXdWf73m5Q,3898
|
| 567 |
+
pyarrow/include/parquet/printer.h,sha256=_sJ5IoEj4naSTWxlhbq2Pc6WkNG3wMuxRy8zfKfsAJ8,1540
|
| 568 |
+
pyarrow/include/parquet/properties.h,sha256=X5zn-xdztONv4QfK-gcfdh1CBAuq27cVj9jZQgQNqfA,46415
|
| 569 |
+
pyarrow/include/parquet/schema.h,sha256=CjZh2i9WN5VeoDbLqy7M1AZtopZ43_C9blWG3OT2IfU,18222
|
| 570 |
+
pyarrow/include/parquet/statistics.h,sha256=0sk7koXslu-KuVC6CsTiFVD1Fu_ZWPD_FLhcXALas_g,15176
|
| 571 |
+
pyarrow/include/parquet/stream_reader.h,sha256=1WmN0vYCqTz1Lwb_Di4xPWTE-VbCQQuzZralSpWQm3U,8791
|
| 572 |
+
pyarrow/include/parquet/stream_writer.h,sha256=nw_v3nhrL682ozZ2KZKVkHnOsjwexbmBXTV2CKcq4YQ,7505
|
| 573 |
+
pyarrow/include/parquet/test_util.h,sha256=gkJoOl_N4cG3L56uXVJi1RLiDVBl73yX01Dkx2Plt9g,31180
|
| 574 |
+
pyarrow/include/parquet/type_fwd.h,sha256=qx6Dhg1HO0U99jdiUfu3rC7zhmQ-3i7WXsfEhrza3rE,3046
|
| 575 |
+
pyarrow/include/parquet/types.h,sha256=IFbKlP0aZzW8Cn4U0QCIGboVb8hOnD6UvSGi6EqpvvE,25482
|
| 576 |
+
pyarrow/include/parquet/windows_compatibility.h,sha256=xIEGHW354URgdIP9A4V303TJL8A1IkCEvp08bMKsHTU,897
|
| 577 |
+
pyarrow/include/parquet/windows_fixup.h,sha256=DpyWCywx8YIqouun6BJcgMrHFMTCBgowWdJ1mnJnQ2s,1052
|
| 578 |
+
pyarrow/include/parquet/xxhasher.h,sha256=QAa7ZE7S3UFtU_Voz3oi3YclIYhbhviJkafLOYgiuWg,2074
|
| 579 |
+
pyarrow/includes/__init__.pxd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 580 |
+
pyarrow/includes/common.pxd,sha256=tYI1M3gk_d-uzNUpLcIxhNG5W67ycFSVb36Tv7hyN30,5452
|
| 581 |
+
pyarrow/includes/libarrow.pxd,sha256=zOwU6egOTsU45dV0z0sEVLMu6N2iNXXxNB4R3R2QlyA,114590
|
| 582 |
+
pyarrow/includes/libarrow_acero.pxd,sha256=c84RdYfIuFWW_36-1RELJsowfQwXhgUxbdC_xKQyFCI,5298
|
| 583 |
+
pyarrow/includes/libarrow_cuda.pxd,sha256=0fRcHbCZY_gFdwIXIElnpGvTxeA5xVxZH1-vwZh16SM,4942
|
| 584 |
+
pyarrow/includes/libarrow_dataset.pxd,sha256=LVHtNouC3ZWMmyD48JkYGXajf22Wax-FgzAV4URqySs,16993
|
| 585 |
+
pyarrow/includes/libarrow_dataset_parquet.pxd,sha256=4me_u82JiInHNRvoazLXUTOO5sxVnyCk-BdfsYQZyWQ,4536
|
| 586 |
+
pyarrow/includes/libarrow_feather.pxd,sha256=MTJUDQbfKP8Ir700Fobl7xcbjX7WcrsUV4mxFXlfwn0,2140
|
| 587 |
+
pyarrow/includes/libarrow_flight.pxd,sha256=pcVtpB4Rx81RZoG3afIizmyQuTnckrqIPZyjvsIYYKE,24860
|
| 588 |
+
pyarrow/includes/libarrow_fs.pxd,sha256=jG1sBGyTkU3X_XZKBMC-n3YsY8Po_2dIQdXyK9vXtHY,14973
|
| 589 |
+
pyarrow/includes/libarrow_python.pxd,sha256=Fs9hNJZ-_fdVmqkNu3zGRUXy8Azt6_zniX_p1SKqM64,12387
|
| 590 |
+
pyarrow/includes/libarrow_substrait.pxd,sha256=5ZJ0yHhM54I1GfmUaPMy5nRxLFsr-A625qUSmOhnQO8,3196
|
| 591 |
+
pyarrow/includes/libgandiva.pxd,sha256=FLBd99IeU67Db9SnHS7oe6FgBZ1aIHuRc0pOiDv7hQc,11538
|
| 592 |
+
pyarrow/includes/libparquet_encryption.pxd,sha256=fi3QrLpHN1_IaYRXvVMJdIgp7F_6aaLu1owP0I3BD5g,5898
|
| 593 |
+
pyarrow/interchange/__init__.py,sha256=DH0bwbKpdjD1WCW1VinnXEuVLY098uHKkirv7DFc9JM,845
|
| 594 |
+
pyarrow/interchange/__pycache__/__init__.cpython-312.pyc,,
|
| 595 |
+
pyarrow/interchange/__pycache__/buffer.cpython-312.pyc,,
|
| 596 |
+
pyarrow/interchange/__pycache__/column.cpython-312.pyc,,
|
| 597 |
+
pyarrow/interchange/__pycache__/dataframe.cpython-312.pyc,,
|
| 598 |
+
pyarrow/interchange/__pycache__/from_dataframe.cpython-312.pyc,,
|
| 599 |
+
pyarrow/interchange/buffer.py,sha256=NF_GU1uQ6INqHqCwzY6XQQqRxKDh6znEeDHiRqaEIQ0,3359
|
| 600 |
+
pyarrow/interchange/column.py,sha256=afU794n3H7yf4gDQDuFLbtyDlgVnLk9iZ6sugb0h8_4,19370
|
| 601 |
+
pyarrow/interchange/dataframe.py,sha256=tmSMmBvBAc-ZSUzE8tBNbvQLHuuxLuBkMkK6KYwtS8M,8405
|
| 602 |
+
pyarrow/interchange/from_dataframe.py,sha256=JfkP4wuY_9x76H6RDtmsOzs6B6qe-1WS7zxpKeD481s,19709
|
| 603 |
+
pyarrow/io.pxi,sha256=LcEqNanwQD7dr0XVHu52dnhlUUH25bhjDGGPO6Wet34,86616
|
| 604 |
+
pyarrow/ipc.pxi,sha256=Reakb_rHbBipOr9QPEC0D2jBvQ87ORpVb5kasDdeY_4,41081
|
| 605 |
+
pyarrow/ipc.py,sha256=Hb3qCPKRr_wth5u4WrkZHJyAZmIK5SoVSezfBOI97Ww,10107
|
| 606 |
+
pyarrow/json.py,sha256=N9Y7_3TSrOEDy2OrmgQ8UKqUPMx1Bm9dYgot-brJ8Xw,858
|
| 607 |
+
pyarrow/jvm.py,sha256=tzAsIrMSCIeNAtSC8lZWjQS0rq7kjaQDPlePDmvpqDw,9593
|
| 608 |
+
pyarrow/lib.cpython-312-x86_64-linux-gnu.so,sha256=rFmfK84y_4cgB1AVpEJ6i_ccRvpFZdnxKz57L-amYNE,4841880
|
| 609 |
+
pyarrow/lib.h,sha256=UNSuhntc2NTo9y8txHS8MqB10IQN41UuXjb5dGtstfw,4631
|
| 610 |
+
pyarrow/lib.pxd,sha256=repMfzMLwO9NOjVyJbVn5R_vBQJJhD507YcD1wvaB8g,17964
|
| 611 |
+
pyarrow/lib.pyx,sha256=Pe9ERxojd9KzxzqWJ60B8OJHH8Z1fFYg3bUx8ZDFUtk,6016
|
| 612 |
+
pyarrow/lib_api.h,sha256=SCXALS0e94-_uXt9ZlqlUlvU-cclpx7xT8LpxAU1nbM,19487
|
| 613 |
+
pyarrow/libarrow.so.1800,sha256=Y7RK32bZUhc4QywHUa2EQ5SoVQykN0K1Du5bQ6XPSm4,63802656
|
| 614 |
+
pyarrow/libarrow_acero.so.1800,sha256=BW4UgV6qjSyN0wgsLcaL3JbrmThjkkGrCBmPSqWA3_Q,2076808
|
| 615 |
+
pyarrow/libarrow_dataset.so.1800,sha256=mtdI7IoiqH7b-Vw0Slwf7nzW-XqHvPJEcbBW4nBnuzE,2758368
|
| 616 |
+
pyarrow/libarrow_flight.so.1800,sha256=DGZSDNI0LHv4KSvo-jZq7v4Mr16frKl7OwxORT367VE,20272608
|
| 617 |
+
pyarrow/libarrow_python.so,sha256=cVn2eq555bGR1cCc8JG0C1sdxJ7wI_qMOoxP5X3ptVs,2876328
|
| 618 |
+
pyarrow/libarrow_python_flight.so,sha256=Xpfx0Dh16mnGh3pVPyrP2np39AuHr6184HXoXcIqiT0,117984
|
| 619 |
+
pyarrow/libarrow_python_parquet_encryption.so,sha256=GLMFpnC32YeCz_SBA9wvaIbjRbp5gFf8fPOwxZ8sKdk,41648
|
| 620 |
+
pyarrow/libarrow_substrait.so.1800,sha256=KpWIu7btYy7JPkJoQl93zXwmoUjWqDv6ssnjfuPeCnM,5338320
|
| 621 |
+
pyarrow/libparquet.so.1800,sha256=BooCSAI83odo6uJzxfVBz7tPjokwOdyOspYGNNu3gBw,11040840
|
| 622 |
+
pyarrow/memory.pxi,sha256=9AVMENxqaV0Ndf9tYSiakunEpMRRCZNT9d-PnrY8r14,8229
|
| 623 |
+
pyarrow/orc.py,sha256=IjjeGAEZl0KhHvwy3YsSGfTWlx7Ilb54P0tFKPvwcfk,12618
|
| 624 |
+
pyarrow/pandas-shim.pxi,sha256=d3Z0mki6n3QUTzCOJoEhvgUBcCIcWPsuBli65ZQ_gBg,8178
|
| 625 |
+
pyarrow/pandas_compat.py,sha256=sMLsO2ufQeRxpZadNHv4AEG2FGP8EstyOglL38sqAeA,42775
|
| 626 |
+
pyarrow/parquet/__init__.py,sha256=4W64CbvwvO60tG58nfNtyCwMVCfuPumtu82p-kiGPaE,822
|
| 627 |
+
pyarrow/parquet/__pycache__/__init__.cpython-312.pyc,,
|
| 628 |
+
pyarrow/parquet/__pycache__/core.cpython-312.pyc,,
|
| 629 |
+
pyarrow/parquet/__pycache__/encryption.cpython-312.pyc,,
|
| 630 |
+
pyarrow/parquet/core.py,sha256=SA1zMIm-0cnTPMCjgWe_Bu6bFbjBbTWBpfYauGcHpW8,90440
|
| 631 |
+
pyarrow/parquet/encryption.py,sha256=-XW7Qcbl-jQhpZsR610uQ8-z9ZVE_NL045Jdnp1TZ9M,1153
|
| 632 |
+
pyarrow/public-api.pxi,sha256=EO0_0FZz0JK9_SfuHBPN0ljwwAU7Gv6jGl1WG_BSGsE,13781
|
| 633 |
+
pyarrow/scalar.pxi,sha256=hRcUS1nHQILBp8eL3vfhRXp4yXrvVRPBBoD8ALVdhZ8,35388
|
| 634 |
+
pyarrow/src/arrow/python/CMakeLists.txt,sha256=D4Ypror_508aAd_juYkrS9Qu2maeirK4QXzwGEZEj0M,855
|
| 635 |
+
pyarrow/src/arrow/python/api.h,sha256=W76VAxYqOxi9BHJddji1B62CmaWDFuBhqI65YOhUnGQ,1222
|
| 636 |
+
pyarrow/src/arrow/python/arrow_to_pandas.cc,sha256=z22z8UmNl69KGbmbZLwgZhApNyD9x7xolCSC_3_g6oE,95737
|
| 637 |
+
pyarrow/src/arrow/python/arrow_to_pandas.h,sha256=jUBEUMKXw70oJdMlgkSf6HitaNweQcc7hxI75_C9WSI,5561
|
| 638 |
+
pyarrow/src/arrow/python/arrow_to_python_internal.h,sha256=nQXPZTL3xa4Sm-a-Gv-8bpFs-qAOZHkqWmA_m-dSLVw,1740
|
| 639 |
+
pyarrow/src/arrow/python/async.h,sha256=C0f8YYmgwBGgDau4xEFsdjukiZB4YvpylETHEZryHOo,2352
|
| 640 |
+
pyarrow/src/arrow/python/benchmark.cc,sha256=z6qYRx4qMuNXPaC8fuPJlQd92aosMN85u1aD50R1-UU,1293
|
| 641 |
+
pyarrow/src/arrow/python/benchmark.h,sha256=f-kzyMOlPKDse2bcLWhyMrDEMZrG_JHAPpDJgGW0bXU,1192
|
| 642 |
+
pyarrow/src/arrow/python/common.cc,sha256=_9ozIRo_WTDWovBKqOVyX28d0IttHvwW9MG-PkTzmKc,7591
|
| 643 |
+
pyarrow/src/arrow/python/common.h,sha256=yjljfJK1f7slZ7DBQ4LTo_pob70zioswJNWazy0p-uM,14412
|
| 644 |
+
pyarrow/src/arrow/python/csv.cc,sha256=ql5AY76AqiFksWsrmzSl551k5s9vS8YcmypM2A9rhw8,1803
|
| 645 |
+
pyarrow/src/arrow/python/csv.h,sha256=QxU3B-Hv_RsoEcMGS9-1434ugouL2ygC64Lq6FgviNM,1397
|
| 646 |
+
pyarrow/src/arrow/python/datetime.cc,sha256=_VKRKeyFqR7Xzay2wazcveb7mgOv8K37ebMomNY__lQ,23001
|
| 647 |
+
pyarrow/src/arrow/python/datetime.h,sha256=Bny_THGi2tyUeHxcOuw01O7hNE8B_gave5ABAZQtwTQ,7931
|
| 648 |
+
pyarrow/src/arrow/python/decimal.cc,sha256=66Hy-u-_fcZtm_0v7npDtPNoiX-mkRJTwCj3FpSyIqc,8848
|
| 649 |
+
pyarrow/src/arrow/python/decimal.h,sha256=kDDjLzW07D7d7omWSR4CBF1Ocskp4YSZu4Dtxu-gRUg,4726
|
| 650 |
+
pyarrow/src/arrow/python/deserialize.cc,sha256=ogtBX7OzGuDvyj_LepFkaG7m53-wenf3duG0WF8Ooa0,19185
|
| 651 |
+
pyarrow/src/arrow/python/deserialize.h,sha256=Q4L1qPCra8-Wzl6oLm44cPOUMVuK1FX01LeGzwNUtK4,4260
|
| 652 |
+
pyarrow/src/arrow/python/extension_type.cc,sha256=eU5P7pufWjcEcmVeOyu1jtEZ08AWd9tkTSMfx8ph0rQ,6860
|
| 653 |
+
pyarrow/src/arrow/python/extension_type.h,sha256=0gzb42y_mbw4fsYs3u8cwPFLBRlG-kkHQLgbvGtrY0U,3181
|
| 654 |
+
pyarrow/src/arrow/python/filesystem.cc,sha256=0twavI91TE20Otq5kkVUwnN5sindU_mBWoVAvz1ZMgI,6152
|
| 655 |
+
pyarrow/src/arrow/python/filesystem.h,sha256=FG0AcLekqaDf9IQPqKixAfIcY_ZLgIKP5NvvXdtBVUM,5126
|
| 656 |
+
pyarrow/src/arrow/python/flight.cc,sha256=Iz4wAyhX7mksabELtRljCOsXRRzuYzu38Rv_yQKJarw,13995
|
| 657 |
+
pyarrow/src/arrow/python/flight.h,sha256=u5UnulNJqMuXQLlODUWuoyxq-GtL1HuHmVGNzobUVGc,14311
|
| 658 |
+
pyarrow/src/arrow/python/gdb.cc,sha256=Z0WLBYHWBzc4uExNG7nWJeRnUBAVSqo_DFpKYry0aAE,22667
|
| 659 |
+
pyarrow/src/arrow/python/gdb.h,sha256=H-qvM-nU8a_3Z5tk8PvppTwQtBMSZhQKQIVgRAsRfFg,972
|
| 660 |
+
pyarrow/src/arrow/python/helpers.cc,sha256=zrrUI56RGrZ8VBzR2dJFJoRq7L6chlX7289HK7tjoOA,16627
|
| 661 |
+
pyarrow/src/arrow/python/helpers.h,sha256=jVNFEbvJXmCceJti3J3-MnZkNlJoynQNq334tt29bbs,5489
|
| 662 |
+
pyarrow/src/arrow/python/inference.cc,sha256=Gm-lOXDzqcbef6gdgCQa5eXPuh8uvYqz9iUjKS2_yO4,24350
|
| 663 |
+
pyarrow/src/arrow/python/inference.h,sha256=FUFvB4Zy7V-tueXdmbDcqTeLK4xj5GZEeRW5yhiJlsU,2038
|
| 664 |
+
pyarrow/src/arrow/python/io.cc,sha256=ZARQCv4WQmHDQrA1dlNZt6mJuPhyK8wNuGm7zoL6V78,11936
|
| 665 |
+
pyarrow/src/arrow/python/io.h,sha256=4jGnodpSUlnVqAVh9fWId7H4WldlLPkXyroABpdaW6w,3858
|
| 666 |
+
pyarrow/src/arrow/python/ipc.cc,sha256=3D9iMbOFHlhNXX4432wsfbfjWvDryZWgdA0Ak19V_8Q,4472
|
| 667 |
+
pyarrow/src/arrow/python/ipc.h,sha256=SZbw6jCCqLiLNCY3k632GmwHeD_r_xrDS0dhqV49VhY,2259
|
| 668 |
+
pyarrow/src/arrow/python/iterators.h,sha256=Ugfm3JvetAH0l-oAjjpZfhrUBqRimVMaw4-xusvqLSg,7327
|
| 669 |
+
pyarrow/src/arrow/python/numpy_convert.cc,sha256=166BIW7zVTRMKogxLUuhV4e5jOevmonvRtXDydNujgc,21194
|
| 670 |
+
pyarrow/src/arrow/python/numpy_convert.h,sha256=y13eHwfe1lJKzadoTr2-GyX6xPsE6Z7FN31s7PN-2Rk,4870
|
| 671 |
+
pyarrow/src/arrow/python/numpy_init.cc,sha256=cJKOH946T7VCcB-gVIoGgfbWTrbj3FPkI4TgnsLTf7s,1178
|
| 672 |
+
pyarrow/src/arrow/python/numpy_init.h,sha256=FniVHP7W2YBlenoMYhQrODvoqqvDMSls2JANGtNPQts,999
|
| 673 |
+
pyarrow/src/arrow/python/numpy_internal.h,sha256=F9p-hzTKCIhRqgtZbsoyPox7RR85YcEw6FYkFF8KqfM,5314
|
| 674 |
+
pyarrow/src/arrow/python/numpy_interop.h,sha256=rI6ek8JTOYtjo7gEADSDBS6QuAOHa2A0YQPZ2GeypFw,3418
|
| 675 |
+
pyarrow/src/arrow/python/numpy_to_arrow.cc,sha256=55-VSQlg10MAZTR0G3I7maErexO8-FDk_27SYdvVlk8,30238
|
| 676 |
+
pyarrow/src/arrow/python/numpy_to_arrow.h,sha256=z9KapsuoOSpWILPt9bea7GR4BL6AQ28T6DUO0mSkh3k,2760
|
| 677 |
+
pyarrow/src/arrow/python/parquet_encryption.cc,sha256=RNupwaySaVHKX_iCYOPK0yJWkTUpqbrpbCW2duWJ3kU,3567
|
| 678 |
+
pyarrow/src/arrow/python/parquet_encryption.h,sha256=Mc8tZ8gIfkH0AckNiIOt6hesP_MVKeKhcytT24ZOLdQ,4861
|
| 679 |
+
pyarrow/src/arrow/python/pch.h,sha256=vkbgStQjq820YeHlXBPdzQ-W9LyzJrTGfMBpnMMqahk,1129
|
| 680 |
+
pyarrow/src/arrow/python/platform.h,sha256=XYS5IqiMUejxN2COzu60Zs8b_wAaGTBw4M-zKVqqs5U,1422
|
| 681 |
+
pyarrow/src/arrow/python/pyarrow.cc,sha256=Pul4lmF7n5Q9cSzgBSvPArWfZY_qDyAq1a_tyMIQGRA,3677
|
| 682 |
+
pyarrow/src/arrow/python/pyarrow.h,sha256=TK3BtD9n3QKOQ9dX3LXbQc0hu9alWcufV0O93iQW7B0,2761
|
| 683 |
+
pyarrow/src/arrow/python/pyarrow_api.h,sha256=7l0G4-_m9yALYoifsY8Z6qh3HHD0PgkpVSgCn_JaGU4,867
|
| 684 |
+
pyarrow/src/arrow/python/pyarrow_lib.h,sha256=-70_Ckj3_0ImlzaXSJOE_d3w9pGM66lXiGPyln9c96Y,863
|
| 685 |
+
pyarrow/src/arrow/python/python_test.cc,sha256=Jg35rRR7BtXOS1012RFOdLViFlVC3zlXV--w8aEzf8I,32397
|
| 686 |
+
pyarrow/src/arrow/python/python_test.h,sha256=ea32mM20uHySlygi9MtVxr26O-ydTZHCUQIlxaIMjT4,1195
|
| 687 |
+
pyarrow/src/arrow/python/python_to_arrow.cc,sha256=K6tVQK1phrrJQzz_TJVmEdfcX-fJfBAkPIeQlypRirY,47145
|
| 688 |
+
pyarrow/src/arrow/python/python_to_arrow.h,sha256=BoVytf6P7PBYXyznchElKZSFvEsFyimB-tLFdw0AUNo,2521
|
| 689 |
+
pyarrow/src/arrow/python/serialize.cc,sha256=FOAsdyfRETe_bCSxC1vc3-oq9Rs9SsU4kDQFTwrdvQM,32667
|
| 690 |
+
pyarrow/src/arrow/python/serialize.h,sha256=HVBhIKgc7A4YOmwYfjE2Hqj1Yxl9suCJb940KxrVcrs,4630
|
| 691 |
+
pyarrow/src/arrow/python/type_traits.h,sha256=B_NsRT_hZG8D91sTcihJyKF5SrslPcFmj12QfbpHuLI,10093
|
| 692 |
+
pyarrow/src/arrow/python/udf.cc,sha256=69DuHRjV6rUAbZqkWEKEUG3ODuHg9ym52lnH7A_lM5Y,29814
|
| 693 |
+
pyarrow/src/arrow/python/udf.h,sha256=de3R8PhNJO5lT9oCqRxe8e2_SE3jBpHOkwbNqCrlgjQ,3104
|
| 694 |
+
pyarrow/src/arrow/python/vendored/CMakeLists.txt,sha256=02XvDJAdKiajCEBOmnMKBpmzbRU7FPkNdlNXtw0-A24,837
|
| 695 |
+
pyarrow/src/arrow/python/vendored/pythoncapi_compat.h,sha256=bzMnlHTCfjk5DQRIxwytunYh5aQxU3iSElaaDyNnAY8,40900
|
| 696 |
+
pyarrow/src/arrow/python/visibility.h,sha256=hwJw5sGrWJckQkNaAuLe4Tf-VDjQbXknyzNOVgZI3FI,1381
|
| 697 |
+
pyarrow/substrait.py,sha256=ugd_UrjkUIrwSvqFxLl9WkVtBZ2-hcgt5XiSVYvDLnQ,1151
|
| 698 |
+
pyarrow/table.pxi,sha256=Dfujf9nDQ9R--F5cybcUxB126Hu1mBuARWvgOTuFl3o,203868
|
| 699 |
+
pyarrow/tensor.pxi,sha256=CXlMcTRWh_n_FTzIIx8SpHCmYlV0IBA69toQ-3Evs5o,42071
|
| 700 |
+
pyarrow/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
| 701 |
+
pyarrow/tests/__pycache__/__init__.cpython-312.pyc,,
|
| 702 |
+
pyarrow/tests/__pycache__/arrow_16597.cpython-312.pyc,,
|
| 703 |
+
pyarrow/tests/__pycache__/arrow_39313.cpython-312.pyc,,
|
| 704 |
+
pyarrow/tests/__pycache__/arrow_7980.cpython-312.pyc,,
|
| 705 |
+
pyarrow/tests/__pycache__/conftest.cpython-312.pyc,,
|
| 706 |
+
pyarrow/tests/__pycache__/pandas_examples.cpython-312.pyc,,
|
| 707 |
+
pyarrow/tests/__pycache__/pandas_threaded_import.cpython-312.pyc,,
|
| 708 |
+
pyarrow/tests/__pycache__/read_record_batch.cpython-312.pyc,,
|
| 709 |
+
pyarrow/tests/__pycache__/strategies.cpython-312.pyc,,
|
| 710 |
+
pyarrow/tests/__pycache__/test_acero.cpython-312.pyc,,
|
| 711 |
+
pyarrow/tests/__pycache__/test_adhoc_memory_leak.cpython-312.pyc,,
|
| 712 |
+
pyarrow/tests/__pycache__/test_array.cpython-312.pyc,,
|
| 713 |
+
pyarrow/tests/__pycache__/test_builder.cpython-312.pyc,,
|
| 714 |
+
pyarrow/tests/__pycache__/test_cffi.cpython-312.pyc,,
|
| 715 |
+
pyarrow/tests/__pycache__/test_compute.cpython-312.pyc,,
|
| 716 |
+
pyarrow/tests/__pycache__/test_convert_builtin.cpython-312.pyc,,
|
| 717 |
+
pyarrow/tests/__pycache__/test_cpp_internals.cpython-312.pyc,,
|
| 718 |
+
pyarrow/tests/__pycache__/test_csv.cpython-312.pyc,,
|
| 719 |
+
pyarrow/tests/__pycache__/test_cuda.cpython-312.pyc,,
|
| 720 |
+
pyarrow/tests/__pycache__/test_cuda_numba_interop.cpython-312.pyc,,
|
| 721 |
+
pyarrow/tests/__pycache__/test_cython.cpython-312.pyc,,
|
| 722 |
+
pyarrow/tests/__pycache__/test_dataset.cpython-312.pyc,,
|
| 723 |
+
pyarrow/tests/__pycache__/test_dataset_encryption.cpython-312.pyc,,
|
| 724 |
+
pyarrow/tests/__pycache__/test_deprecations.cpython-312.pyc,,
|
| 725 |
+
pyarrow/tests/__pycache__/test_device.cpython-312.pyc,,
|
| 726 |
+
pyarrow/tests/__pycache__/test_dlpack.cpython-312.pyc,,
|
| 727 |
+
pyarrow/tests/__pycache__/test_exec_plan.cpython-312.pyc,,
|
| 728 |
+
pyarrow/tests/__pycache__/test_extension_type.cpython-312.pyc,,
|
| 729 |
+
pyarrow/tests/__pycache__/test_feather.cpython-312.pyc,,
|
| 730 |
+
pyarrow/tests/__pycache__/test_flight.cpython-312.pyc,,
|
| 731 |
+
pyarrow/tests/__pycache__/test_flight_async.cpython-312.pyc,,
|
| 732 |
+
pyarrow/tests/__pycache__/test_fs.cpython-312.pyc,,
|
| 733 |
+
pyarrow/tests/__pycache__/test_gandiva.cpython-312.pyc,,
|
| 734 |
+
pyarrow/tests/__pycache__/test_gdb.cpython-312.pyc,,
|
| 735 |
+
pyarrow/tests/__pycache__/test_io.cpython-312.pyc,,
|
| 736 |
+
pyarrow/tests/__pycache__/test_ipc.cpython-312.pyc,,
|
| 737 |
+
pyarrow/tests/__pycache__/test_json.cpython-312.pyc,,
|
| 738 |
+
pyarrow/tests/__pycache__/test_jvm.cpython-312.pyc,,
|
| 739 |
+
pyarrow/tests/__pycache__/test_memory.cpython-312.pyc,,
|
| 740 |
+
pyarrow/tests/__pycache__/test_misc.cpython-312.pyc,,
|
| 741 |
+
pyarrow/tests/__pycache__/test_orc.cpython-312.pyc,,
|
| 742 |
+
pyarrow/tests/__pycache__/test_pandas.cpython-312.pyc,,
|
| 743 |
+
pyarrow/tests/__pycache__/test_scalars.cpython-312.pyc,,
|
| 744 |
+
pyarrow/tests/__pycache__/test_schema.cpython-312.pyc,,
|
| 745 |
+
pyarrow/tests/__pycache__/test_sparse_tensor.cpython-312.pyc,,
|
| 746 |
+
pyarrow/tests/__pycache__/test_strategies.cpython-312.pyc,,
|
| 747 |
+
pyarrow/tests/__pycache__/test_substrait.cpython-312.pyc,,
|
| 748 |
+
pyarrow/tests/__pycache__/test_table.cpython-312.pyc,,
|
| 749 |
+
pyarrow/tests/__pycache__/test_tensor.cpython-312.pyc,,
|
| 750 |
+
pyarrow/tests/__pycache__/test_types.cpython-312.pyc,,
|
| 751 |
+
pyarrow/tests/__pycache__/test_udf.cpython-312.pyc,,
|
| 752 |
+
pyarrow/tests/__pycache__/test_util.cpython-312.pyc,,
|
| 753 |
+
pyarrow/tests/__pycache__/test_without_numpy.cpython-312.pyc,,
|
| 754 |
+
pyarrow/tests/__pycache__/util.cpython-312.pyc,,
|
| 755 |
+
pyarrow/tests/__pycache__/wsgi_examples.cpython-312.pyc,,
|
| 756 |
+
pyarrow/tests/arrow_16597.py,sha256=DNb41h9E3ITGvAJJu86i5SfsKrwstQJ0E5gT_bpTS_k,1354
|
| 757 |
+
pyarrow/tests/arrow_39313.py,sha256=0pyBixoX38fldTPO1Vwshi_H0XBACrz8esYoL4o71KI,1431
|
| 758 |
+
pyarrow/tests/arrow_7980.py,sha256=tZKb_tRLfxHaosDk9Yu2GLEsJjMaruXD5CKhbK_6Hq8,1094
|
| 759 |
+
pyarrow/tests/bound_function_visit_strings.pyx,sha256=vDEFoNYR8BWNkCntKDuBUT8sXNRBex_5G2bFKogr1Bs,2026
|
| 760 |
+
pyarrow/tests/conftest.py,sha256=PwqCO9vIgMUc2W9gCwcDvEz4hcp2eIYHDZ_fwddhqJ4,9904
|
| 761 |
+
pyarrow/tests/data/feather/v0.17.0.version.2-compression.lz4.feather,sha256=qzcc7Bo4OWBXYsyyKdDJwdTRstMqB1Zz0GiGYtndBnE,594
|
| 762 |
+
pyarrow/tests/data/orc/README.md,sha256=_4X5XszZqQtWAVEz5N1Va4VyyayGQgNDKrcdMX2Ib4s,932
|
| 763 |
+
pyarrow/tests/data/orc/TestOrcFile.emptyFile.jsn.gz,sha256=xLjAXd-3scx3DCyeAsmxTO3dv1cj9KRvYopKe5rQNiI,50
|
| 764 |
+
pyarrow/tests/data/orc/TestOrcFile.emptyFile.orc,sha256=zj0579dQBXhF7JuB-ZphkmQ81ybLo6Ca4zPV4HXoImY,523
|
| 765 |
+
pyarrow/tests/data/orc/TestOrcFile.test1.jsn.gz,sha256=kLxmwMVHtfzpHqBztFjfY_PTCloaXpfHq9DDDszb8Wk,323
|
| 766 |
+
pyarrow/tests/data/orc/TestOrcFile.test1.orc,sha256=A4JxgMCffTkz9-XT1QT1tg2TlYZRRz1g7iIMmqzovqA,1711
|
| 767 |
+
pyarrow/tests/data/orc/TestOrcFile.testDate1900.jsn.gz,sha256=oWf7eBR3ZtOA91OTvdeQJYos1an56msGsJwhGOan3lo,182453
|
| 768 |
+
pyarrow/tests/data/orc/TestOrcFile.testDate1900.orc,sha256=nYsVYhUGGOL80gHj37si_vX0dh8QhIMSeU4sHjNideM,30941
|
| 769 |
+
pyarrow/tests/data/orc/decimal.jsn.gz,sha256=kTEyYdPDAASFUX8Niyry5mRDF-Y-LsrhSAjbu453mvA,19313
|
| 770 |
+
pyarrow/tests/data/orc/decimal.orc,sha256=W5cV2WdLy4OrSTnd_Qv5ntphG4TcB-MyG4UpRFwSxJY,16337
|
| 771 |
+
pyarrow/tests/data/parquet/v0.7.1.all-named-index.parquet,sha256=YPGUXtw-TsOPbiNDieZHobNp3or7nHhAxJGjmIDAyqE,3948
|
| 772 |
+
pyarrow/tests/data/parquet/v0.7.1.column-metadata-handling.parquet,sha256=7sebZgpfdcP37QksT3FhDL6vOA9gR6GBaq44NCVtOYw,2012
|
| 773 |
+
pyarrow/tests/data/parquet/v0.7.1.parquet,sha256=vmdzhIzpBbmRkq3Gjww7KqurfSFNtQuSpSIDeQVmqys,4372
|
| 774 |
+
pyarrow/tests/data/parquet/v0.7.1.some-named-index.parquet,sha256=VGgSjqihCRtdBxlUcfP5s3BSR7aUQKukW-bGgJLf_HY,4008
|
| 775 |
+
pyarrow/tests/extensions.pyx,sha256=05S652zNGxwMFwuyMbP0RP4VNJLSMlzvoxH8iYIvSNk,3054
|
| 776 |
+
pyarrow/tests/interchange/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
| 777 |
+
pyarrow/tests/interchange/__pycache__/__init__.cpython-312.pyc,,
|
| 778 |
+
pyarrow/tests/interchange/__pycache__/test_conversion.cpython-312.pyc,,
|
| 779 |
+
pyarrow/tests/interchange/__pycache__/test_interchange_spec.cpython-312.pyc,,
|
| 780 |
+
pyarrow/tests/interchange/test_conversion.py,sha256=23e5tpKBL-ekA5uWpM6-f6HVPF937Hnzfune0Ty9moo,18609
|
| 781 |
+
pyarrow/tests/interchange/test_interchange_spec.py,sha256=5hwwCG6f7yf72PfUG0iLIk2bARsZU5EJeRjDxSQrkKI,9320
|
| 782 |
+
pyarrow/tests/pandas_examples.py,sha256=RFKCW-Rn0Qz-ncd4pZWWSeUoPq63kemE3lFiVdv2dBs,5115
|
| 783 |
+
pyarrow/tests/pandas_threaded_import.py,sha256=b_ubLr5dj4dWJht9552qc3S3Yt3fQQgaUH6208oZvHg,1429
|
| 784 |
+
pyarrow/tests/parquet/__init__.py,sha256=dKsXU9M-sJyz2wYIuqwsKM9meOlK_qY6qhmQzIvEpCE,931
|
| 785 |
+
pyarrow/tests/parquet/__pycache__/__init__.cpython-312.pyc,,
|
| 786 |
+
pyarrow/tests/parquet/__pycache__/common.cpython-312.pyc,,
|
| 787 |
+
pyarrow/tests/parquet/__pycache__/conftest.cpython-312.pyc,,
|
| 788 |
+
pyarrow/tests/parquet/__pycache__/encryption.cpython-312.pyc,,
|
| 789 |
+
pyarrow/tests/parquet/__pycache__/test_basic.cpython-312.pyc,,
|
| 790 |
+
pyarrow/tests/parquet/__pycache__/test_compliant_nested_type.cpython-312.pyc,,
|
| 791 |
+
pyarrow/tests/parquet/__pycache__/test_data_types.cpython-312.pyc,,
|
| 792 |
+
pyarrow/tests/parquet/__pycache__/test_dataset.cpython-312.pyc,,
|
| 793 |
+
pyarrow/tests/parquet/__pycache__/test_datetime.cpython-312.pyc,,
|
| 794 |
+
pyarrow/tests/parquet/__pycache__/test_encryption.cpython-312.pyc,,
|
| 795 |
+
pyarrow/tests/parquet/__pycache__/test_metadata.cpython-312.pyc,,
|
| 796 |
+
pyarrow/tests/parquet/__pycache__/test_pandas.cpython-312.pyc,,
|
| 797 |
+
pyarrow/tests/parquet/__pycache__/test_parquet_file.cpython-312.pyc,,
|
| 798 |
+
pyarrow/tests/parquet/__pycache__/test_parquet_writer.cpython-312.pyc,,
|
| 799 |
+
pyarrow/tests/parquet/common.py,sha256=-kckaOVj9P9BvL1vlvyHlsPUtysBoAYVL98Nwc9wmGo,5894
|
| 800 |
+
pyarrow/tests/parquet/conftest.py,sha256=mJNQal0VYsGFhHglhSt-F9CYHy_i8hB8MXaq3SxFBvk,3082
|
| 801 |
+
pyarrow/tests/parquet/encryption.py,sha256=Oi3QbixApvWGoGImiW7PAjR28cTQqlRXZKMI3O7E4UY,2521
|
| 802 |
+
pyarrow/tests/parquet/test_basic.py,sha256=SdLPuZ02NaBUEtpr18SzA90I7pK-WRMM1r3ApbQI5ps,36492
|
| 803 |
+
pyarrow/tests/parquet/test_compliant_nested_type.py,sha256=Lz7tCPrSpv9GrKPMS-eu1LehsCTwz7KdUdCYJ8tF8dE,3901
|
| 804 |
+
pyarrow/tests/parquet/test_data_types.py,sha256=tdYodveHBksDjM7DjSc7x1IEqMAZv0y6z2GsnpDdriM,15778
|
| 805 |
+
pyarrow/tests/parquet/test_dataset.py,sha256=UhjjQGO2kki9Q50zush0VGU3OMXHZncL_3uEQse4Lx8,42218
|
| 806 |
+
pyarrow/tests/parquet/test_datetime.py,sha256=A3ZaRj88u0IrlhCNp2KY_A8txrb7y2pKPgEVvI7e7bU,16398
|
| 807 |
+
pyarrow/tests/parquet/test_encryption.py,sha256=XMVlIcEurlzcPN2rlaNqbdZbGhF9hjz5ZhWY5Bz4Fxo,22099
|
| 808 |
+
pyarrow/tests/parquet/test_metadata.py,sha256=0sbEUEEal4dEczJHk77KzCk3q9P_1JD61Ayw6HBXFzo,27158
|
| 809 |
+
pyarrow/tests/parquet/test_pandas.py,sha256=dXXcaRBZXIt2HervJLC1gCxDLlhxu6MM_M3gxcaV1Rw,22821
|
| 810 |
+
pyarrow/tests/parquet/test_parquet_file.py,sha256=xm5ZUCf5xmpKh7s5nTIrEiis53mfv2NqZWVRiYOTfAg,9909
|
| 811 |
+
pyarrow/tests/parquet/test_parquet_writer.py,sha256=xwedRwRYtw5n_OMhLPGnJurcvlo4ooROsSalYL-ZVCM,11733
|
| 812 |
+
pyarrow/tests/pyarrow_cython_example.pyx,sha256=fx6zT1bUb2-cDnwKoG71K3ozpmrNJ53kKQHHJTExGz8,2115
|
| 813 |
+
pyarrow/tests/read_record_batch.py,sha256=9Y0X0h03hUXwOKZz7jBBZSwgIrjxT-FkWIw6pu38Frc,953
|
| 814 |
+
pyarrow/tests/strategies.py,sha256=ygkKPSV8CM8IMU8uW8d_RuDZEbwyj8bhD0Bv-ZwvaRk,13926
|
| 815 |
+
pyarrow/tests/test_acero.py,sha256=jgSkIAGhrVffShaD0ZAm50sY-f4u9jfjCimK8ezUbbA,15003
|
| 816 |
+
pyarrow/tests/test_adhoc_memory_leak.py,sha256=Pn4PcIbOBRtSJuz9Ar_ocubco0QOMZ-eAE9Bs7Wp4mA,1453
|
| 817 |
+
pyarrow/tests/test_array.py,sha256=p3JPYOvP6zJgNI2vuQ_ah9p5w126d9HRFeHN6Z5q894,139832
|
| 818 |
+
pyarrow/tests/test_builder.py,sha256=zNEcslLwyb40oYbG7lInQcI81QHMKDOzi1zthw1Je7c,2803
|
| 819 |
+
pyarrow/tests/test_cffi.py,sha256=Fbs1dFCxdnvXYLgO5oaxm_h8KV3vefE9jc3nI1JZNxw,26385
|
| 820 |
+
pyarrow/tests/test_compute.py,sha256=ajHKKGCpw92ZgdJl2pfdVF1UW4xGQB3EPELxXt-CnNw,142525
|
| 821 |
+
pyarrow/tests/test_convert_builtin.py,sha256=QTTX4KcmfZ5keLpSjfPnft9Eim4FeYnBpvPDwnOMGP0,80894
|
| 822 |
+
pyarrow/tests/test_cpp_internals.py,sha256=Xg4CUB6zohQkcYG64Lj_Uf2BscI27Vv0JC_CqNkDQuE,2006
|
| 823 |
+
pyarrow/tests/test_csv.py,sha256=GKNYAGis5TsiDJMIu0L6bH2_cIOpWDviRwxCfPN9Pv8,77313
|
| 824 |
+
pyarrow/tests/test_cuda.py,sha256=qCbVbYOokzpEef-e0_Fus36xQR9Y---9MLCYquI3shE,36163
|
| 825 |
+
pyarrow/tests/test_cuda_numba_interop.py,sha256=iHP_FE4sWbsKwNNXRcYnVozp3Wd1o0Mg6BDymx710G4,8794
|
| 826 |
+
pyarrow/tests/test_cython.py,sha256=IJVELKXBD89xoCcxscMfUpwvkk9SL_kNT4cccLjDww4,7115
|
| 827 |
+
pyarrow/tests/test_dataset.py,sha256=nbTfPH338ZqDstL1FuYpD7HefNMvbDi_zPF_zd4lFew,210420
|
| 828 |
+
pyarrow/tests/test_dataset_encryption.py,sha256=mA8ipIlOBSA4eKc6xnRz-IFyM7fu_kIQ5FV2r4vE2rs,7593
|
| 829 |
+
pyarrow/tests/test_deprecations.py,sha256=W_rneq4jC6zqCNoGhBDf1F28Q-0LHI7YKLgtsbV6LHM,891
|
| 830 |
+
pyarrow/tests/test_device.py,sha256=qe9Wiwo-XVazt9pdxyqQJUz6fNR0jTs9CHiyaoppNA4,2550
|
| 831 |
+
pyarrow/tests/test_dlpack.py,sha256=3s23cDst8TaUdum_v4XrWBJ9Ny5q4-b20vJJlHJLI8o,4937
|
| 832 |
+
pyarrow/tests/test_exec_plan.py,sha256=pjOkSaWeqjN6celKxUEH3tBGXLh8kKbmSSsvKOWsbQQ,10096
|
| 833 |
+
pyarrow/tests/test_extension_type.py,sha256=gKukBp0ial_3-iBeLsLIJKN-4ayn1K7P7auil2luH1U,65617
|
| 834 |
+
pyarrow/tests/test_feather.py,sha256=Rw8J4upIZhR0GMe17n84IFGItlBUk9qpHOCWmDWyCuw,25074
|
| 835 |
+
pyarrow/tests/test_flight.py,sha256=9kJlmuwCSzKrilP3UMeA20cyZJwlRB_pqGavbRM0Y7E,87152
|
| 836 |
+
pyarrow/tests/test_flight_async.py,sha256=g_mNqrnNBp7GWNOWZgnVklZcVKV_vvAAChDgcQICNdo,2873
|
| 837 |
+
pyarrow/tests/test_fs.py,sha256=n-RuiqvfK9zWkmmuhHLSZp3v5pRR1f258YKB6R5DsdI,65418
|
| 838 |
+
pyarrow/tests/test_gandiva.py,sha256=AEf9ln-j5MmIMQ0JTQPhnZwbNh82ynSURsWPaKaNing,15623
|
| 839 |
+
pyarrow/tests/test_gdb.py,sha256=OJzMfZtev3YOKJBm2QxnE-q-9-exy2JLhxpiVhY3T_0,44938
|
| 840 |
+
pyarrow/tests/test_io.py,sha256=T9Vdg1rPGjdAp7nd5U9TAc3mN0N4oWvlG-F8TKmMVS4,63768
|
| 841 |
+
pyarrow/tests/test_ipc.py,sha256=JPW2Q3pXKi8Y4adbCkpGZeNjdP8C6Ot1TqapinKeO_Q,42746
|
| 842 |
+
pyarrow/tests/test_json.py,sha256=P60OhNO7MqHWmppL7cKPmvFEYNMj0XdztxiNGxvjhkM,13169
|
| 843 |
+
pyarrow/tests/test_jvm.py,sha256=pIrHUgnDdmwDoLgM2TFvdgfcEJTGtBGsPgzYIRU6jYY,15507
|
| 844 |
+
pyarrow/tests/test_memory.py,sha256=FqCTUSCqZvKx4k-JDY3M83MvxQ15iNdMUbyUxACfS7w,8874
|
| 845 |
+
pyarrow/tests/test_misc.py,sha256=5-P4nWTZXB7ObuCiVwsQgCjNJ8883tZh03EY4aWea4I,7227
|
| 846 |
+
pyarrow/tests/test_orc.py,sha256=oijYMqsxPLYbpEy1NTwqlz-wiTd8aKttaZH6npXNXoY,19321
|
| 847 |
+
pyarrow/tests/test_pandas.py,sha256=_X9K5EQuAMff5vjj0CPlw-Yoa2syFbjXAfWOoZKPPIA,188352
|
| 848 |
+
pyarrow/tests/test_scalars.py,sha256=cKsl6QSB68aKTcHRI_sVXXonA-OgIOrkGjW3iAEIDT4,27654
|
| 849 |
+
pyarrow/tests/test_schema.py,sha256=3ed2GtcKqio7XJMbl9HTN2XxqCLlhiVJBze7VIwxn8Q,21814
|
| 850 |
+
pyarrow/tests/test_sparse_tensor.py,sha256=6Hp-X6PLqcUzTZCRSB-TyaAWR7ZyWf5YsWuZgixmd64,17500
|
| 851 |
+
pyarrow/tests/test_strategies.py,sha256=HEL8T94h8VyukGKNRVAW_RyQ3m36REc2P4q2BQZ_PfY,1811
|
| 852 |
+
pyarrow/tests/test_substrait.py,sha256=yGijuSlKRUndT80QMvuqfCx4135uAI7UjN89RYYiFCI,30634
|
| 853 |
+
pyarrow/tests/test_table.py,sha256=WAYwyPK8jiGWd6H8BKjJsQGcFAsgT0zW-vO5d-7iyo8,120500
|
| 854 |
+
pyarrow/tests/test_tensor.py,sha256=LYSEYGUjtdnsbL0WAir9jFindo-r0bLySiDA1uAXL8E,6643
|
| 855 |
+
pyarrow/tests/test_types.py,sha256=KH-BLjbSuQ17ySb0qr8ZUsYiHNfy_fGHuTsA-Ypr4Og,42056
|
| 856 |
+
pyarrow/tests/test_udf.py,sha256=WA9E5skUqh7uMr_zH3rQ11LRx0SK2G3WO8HjVHGWyQY,29792
|
| 857 |
+
pyarrow/tests/test_util.py,sha256=ozTlooHBMOP3nbX5b3dG2aanrXwxXHx1giicm0QQyPM,5030
|
| 858 |
+
pyarrow/tests/test_without_numpy.py,sha256=ysbB-jML318I04ViQT4Ok7iMg1cI-NU8kguPu-FTSl4,1855
|
| 859 |
+
pyarrow/tests/util.py,sha256=YeH8RovBtKY4L1SJqcOOObEZx0Yf6HSpkkq4xJdKL5U,13275
|
| 860 |
+
pyarrow/tests/wsgi_examples.py,sha256=vQIDb5989sRVLsELw-fRHhfX-dE96sTl5J2lEuEKup8,1348
|
| 861 |
+
pyarrow/types.pxi,sha256=dPCKGp91crrmtwOfkotcsh0QNVPrmOdQQVqOuaHbCao,157764
|
| 862 |
+
pyarrow/types.py,sha256=Woixb8A_OzBNtolWwwFGhbEWn10gavaB7S0wGMoFakQ,7240
|
| 863 |
+
pyarrow/util.py,sha256=W0LXUR7nsrA5N-l3THD283bxCibS0sM1q6WLcfbFFz8,7970
|
| 864 |
+
pyarrow/vendored/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
| 865 |
+
pyarrow/vendored/__pycache__/__init__.cpython-312.pyc,,
|
| 866 |
+
pyarrow/vendored/__pycache__/docscrape.cpython-312.pyc,,
|
| 867 |
+
pyarrow/vendored/__pycache__/version.cpython-312.pyc,,
|
| 868 |
+
pyarrow/vendored/docscrape.py,sha256=phTjwuzoO5hB88QerZk3uGu9c5OrZwjFzI7vEIIbCUQ,22975
|
| 869 |
+
pyarrow/vendored/version.py,sha256=5-Vo4Q3kPJrm1DSGusnMlTxuA8ynI4hAryApBd6MnpQ,14345
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/REQUESTED
ADDED
|
File without changes
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/WHEEL
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Wheel-Version: 1.0
|
| 2 |
+
Generator: setuptools (72.1.0)
|
| 3 |
+
Root-Is-Purelib: false
|
| 4 |
+
Tag: cp312-cp312-manylinux_2_28_x86_64
|
| 5 |
+
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow-18.0.0.dist-info/top_level.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__dummy__
|
| 2 |
+
pyarrow
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__init__.pxd
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
from libcpp.memory cimport shared_ptr
|
| 19 |
+
from pyarrow.includes.libarrow cimport (CArray, CBuffer, CDataType,
|
| 20 |
+
CField, CRecordBatch, CSchema,
|
| 21 |
+
CTable, CTensor, CSparseCOOTensor,
|
| 22 |
+
CSparseCSRMatrix, CSparseCSCMatrix,
|
| 23 |
+
CSparseCSFTensor)
|
| 24 |
+
|
| 25 |
+
cdef extern from "arrow/python/pyarrow.h" namespace "arrow::py":
|
| 26 |
+
cdef int import_pyarrow() except -1
|
| 27 |
+
cdef object wrap_buffer(const shared_ptr[CBuffer]& buffer)
|
| 28 |
+
cdef object wrap_data_type(const shared_ptr[CDataType]& type)
|
| 29 |
+
cdef object wrap_field(const shared_ptr[CField]& field)
|
| 30 |
+
cdef object wrap_schema(const shared_ptr[CSchema]& schema)
|
| 31 |
+
cdef object wrap_array(const shared_ptr[CArray]& sp_array)
|
| 32 |
+
cdef object wrap_tensor(const shared_ptr[CTensor]& sp_tensor)
|
| 33 |
+
cdef object wrap_sparse_tensor_coo(
|
| 34 |
+
const shared_ptr[CSparseCOOTensor]& sp_sparse_tensor)
|
| 35 |
+
cdef object wrap_sparse_tensor_csr(
|
| 36 |
+
const shared_ptr[CSparseCSRMatrix]& sp_sparse_tensor)
|
| 37 |
+
cdef object wrap_sparse_tensor_csc(
|
| 38 |
+
const shared_ptr[CSparseCSCMatrix]& sp_sparse_tensor)
|
| 39 |
+
cdef object wrap_sparse_tensor_csf(
|
| 40 |
+
const shared_ptr[CSparseCSFTensor]& sp_sparse_tensor)
|
| 41 |
+
cdef object wrap_table(const shared_ptr[CTable]& ctable)
|
| 42 |
+
cdef object wrap_batch(const shared_ptr[CRecordBatch]& cbatch)
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__init__.py
ADDED
|
@@ -0,0 +1,435 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# flake8: noqa
|
| 19 |
+
|
| 20 |
+
"""
|
| 21 |
+
PyArrow is the python implementation of Apache Arrow.
|
| 22 |
+
|
| 23 |
+
Apache Arrow is a cross-language development platform for in-memory data.
|
| 24 |
+
It specifies a standardized language-independent columnar memory format for
|
| 25 |
+
flat and hierarchical data, organized for efficient analytic operations on
|
| 26 |
+
modern hardware. It also provides computational libraries and zero-copy
|
| 27 |
+
streaming messaging and interprocess communication.
|
| 28 |
+
|
| 29 |
+
For more information see the official page at https://arrow.apache.org
|
| 30 |
+
"""
|
| 31 |
+
|
| 32 |
+
import gc as _gc
|
| 33 |
+
import importlib as _importlib
|
| 34 |
+
import os as _os
|
| 35 |
+
import platform as _platform
|
| 36 |
+
import sys as _sys
|
| 37 |
+
import warnings as _warnings
|
| 38 |
+
|
| 39 |
+
try:
|
| 40 |
+
from ._generated_version import version as __version__
|
| 41 |
+
except ImportError:
|
| 42 |
+
# Package is not installed, parse git tag at runtime
|
| 43 |
+
try:
|
| 44 |
+
import setuptools_scm
|
| 45 |
+
# Code duplicated from setup.py to avoid a dependency on each other
|
| 46 |
+
|
| 47 |
+
def parse_git(root, **kwargs):
|
| 48 |
+
"""
|
| 49 |
+
Parse function for setuptools_scm that ignores tags for non-C++
|
| 50 |
+
subprojects, e.g. apache-arrow-js-XXX tags.
|
| 51 |
+
"""
|
| 52 |
+
from setuptools_scm.git import parse
|
| 53 |
+
kwargs['describe_command'] = \
|
| 54 |
+
"git describe --dirty --tags --long --match 'apache-arrow-[0-9]*.*'"
|
| 55 |
+
return parse(root, **kwargs)
|
| 56 |
+
__version__ = setuptools_scm.get_version('../',
|
| 57 |
+
parse=parse_git)
|
| 58 |
+
except ImportError:
|
| 59 |
+
__version__ = None
|
| 60 |
+
|
| 61 |
+
# ARROW-8684: Disable GC while initializing Cython extension module,
|
| 62 |
+
# to workaround Cython bug in https://github.com/cython/cython/issues/3603
|
| 63 |
+
_gc_enabled = _gc.isenabled()
|
| 64 |
+
_gc.disable()
|
| 65 |
+
import pyarrow.lib as _lib
|
| 66 |
+
if _gc_enabled:
|
| 67 |
+
_gc.enable()
|
| 68 |
+
|
| 69 |
+
from pyarrow.lib import (BuildInfo, RuntimeInfo, set_timezone_db_path,
|
| 70 |
+
MonthDayNano, VersionInfo, cpp_build_info,
|
| 71 |
+
cpp_version, cpp_version_info, runtime_info,
|
| 72 |
+
cpu_count, set_cpu_count, enable_signal_handlers,
|
| 73 |
+
io_thread_count, set_io_thread_count)
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
def show_versions():
|
| 77 |
+
"""
|
| 78 |
+
Print various version information, to help with error reporting.
|
| 79 |
+
"""
|
| 80 |
+
def print_entry(label, value):
|
| 81 |
+
print(f"{label: <26}: {value: <8}")
|
| 82 |
+
|
| 83 |
+
print("pyarrow version info\n--------------------")
|
| 84 |
+
print_entry("Package kind", cpp_build_info.package_kind
|
| 85 |
+
if len(cpp_build_info.package_kind) > 0
|
| 86 |
+
else "not indicated")
|
| 87 |
+
print_entry("Arrow C++ library version", cpp_build_info.version)
|
| 88 |
+
print_entry("Arrow C++ compiler",
|
| 89 |
+
f"{cpp_build_info.compiler_id} {cpp_build_info.compiler_version}")
|
| 90 |
+
print_entry("Arrow C++ compiler flags", cpp_build_info.compiler_flags)
|
| 91 |
+
print_entry("Arrow C++ git revision", cpp_build_info.git_id)
|
| 92 |
+
print_entry("Arrow C++ git description", cpp_build_info.git_description)
|
| 93 |
+
print_entry("Arrow C++ build type", cpp_build_info.build_type)
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
def _module_is_available(module):
|
| 97 |
+
try:
|
| 98 |
+
_importlib.import_module(f'pyarrow.{module}')
|
| 99 |
+
except ImportError:
|
| 100 |
+
return False
|
| 101 |
+
else:
|
| 102 |
+
return True
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
def _filesystem_is_available(fs):
|
| 106 |
+
try:
|
| 107 |
+
import pyarrow.fs
|
| 108 |
+
except ImportError:
|
| 109 |
+
return False
|
| 110 |
+
|
| 111 |
+
try:
|
| 112 |
+
getattr(pyarrow.fs, fs)
|
| 113 |
+
except (ImportError, AttributeError):
|
| 114 |
+
return False
|
| 115 |
+
else:
|
| 116 |
+
return True
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
def show_info():
|
| 120 |
+
"""
|
| 121 |
+
Print detailed version and platform information, for error reporting
|
| 122 |
+
"""
|
| 123 |
+
show_versions()
|
| 124 |
+
|
| 125 |
+
def print_entry(label, value):
|
| 126 |
+
print(f" {label: <20}: {value: <8}")
|
| 127 |
+
|
| 128 |
+
print("\nPlatform:")
|
| 129 |
+
print_entry("OS / Arch", f"{_platform.system()} {_platform.machine()}")
|
| 130 |
+
print_entry("SIMD Level", runtime_info().simd_level)
|
| 131 |
+
print_entry("Detected SIMD Level", runtime_info().detected_simd_level)
|
| 132 |
+
|
| 133 |
+
pool = default_memory_pool()
|
| 134 |
+
print("\nMemory:")
|
| 135 |
+
print_entry("Default backend", pool.backend_name)
|
| 136 |
+
print_entry("Bytes allocated", f"{pool.bytes_allocated()} bytes")
|
| 137 |
+
print_entry("Max memory", f"{pool.max_memory()} bytes")
|
| 138 |
+
print_entry("Supported Backends", ', '.join(supported_memory_backends()))
|
| 139 |
+
|
| 140 |
+
print("\nOptional modules:")
|
| 141 |
+
modules = ["csv", "cuda", "dataset", "feather", "flight", "fs", "gandiva", "json",
|
| 142 |
+
"orc", "parquet"]
|
| 143 |
+
for module in modules:
|
| 144 |
+
status = "Enabled" if _module_is_available(module) else "-"
|
| 145 |
+
print(f" {module: <20}: {status: <8}")
|
| 146 |
+
|
| 147 |
+
print("\nFilesystems:")
|
| 148 |
+
filesystems = ["AzureFileSystem", "GcsFileSystem",
|
| 149 |
+
"HadoopFileSystem", "S3FileSystem"]
|
| 150 |
+
for fs in filesystems:
|
| 151 |
+
status = "Enabled" if _filesystem_is_available(fs) else "-"
|
| 152 |
+
print(f" {fs: <20}: {status: <8}")
|
| 153 |
+
|
| 154 |
+
print("\nCompression Codecs:")
|
| 155 |
+
codecs = ["brotli", "bz2", "gzip", "lz4_frame", "lz4", "snappy", "zstd"]
|
| 156 |
+
for codec in codecs:
|
| 157 |
+
status = "Enabled" if Codec.is_available(codec) else "-"
|
| 158 |
+
print(f" {codec: <20}: {status: <8}")
|
| 159 |
+
|
| 160 |
+
|
| 161 |
+
from pyarrow.lib import (null, bool_,
|
| 162 |
+
int8, int16, int32, int64,
|
| 163 |
+
uint8, uint16, uint32, uint64,
|
| 164 |
+
time32, time64, timestamp, date32, date64, duration,
|
| 165 |
+
month_day_nano_interval,
|
| 166 |
+
float16, float32, float64,
|
| 167 |
+
binary, string, utf8, binary_view, string_view,
|
| 168 |
+
large_binary, large_string, large_utf8,
|
| 169 |
+
decimal128, decimal256,
|
| 170 |
+
list_, large_list, list_view, large_list_view,
|
| 171 |
+
map_, struct,
|
| 172 |
+
union, sparse_union, dense_union,
|
| 173 |
+
dictionary,
|
| 174 |
+
run_end_encoded,
|
| 175 |
+
bool8, fixed_shape_tensor, opaque, uuid,
|
| 176 |
+
field,
|
| 177 |
+
type_for_alias,
|
| 178 |
+
DataType, DictionaryType, StructType,
|
| 179 |
+
ListType, LargeListType, FixedSizeListType,
|
| 180 |
+
ListViewType, LargeListViewType,
|
| 181 |
+
MapType, UnionType, SparseUnionType, DenseUnionType,
|
| 182 |
+
TimestampType, Time32Type, Time64Type, DurationType,
|
| 183 |
+
FixedSizeBinaryType, Decimal128Type, Decimal256Type,
|
| 184 |
+
BaseExtensionType, ExtensionType,
|
| 185 |
+
RunEndEncodedType, Bool8Type, FixedShapeTensorType,
|
| 186 |
+
OpaqueType, UuidType,
|
| 187 |
+
PyExtensionType, UnknownExtensionType,
|
| 188 |
+
register_extension_type, unregister_extension_type,
|
| 189 |
+
DictionaryMemo,
|
| 190 |
+
KeyValueMetadata,
|
| 191 |
+
Field,
|
| 192 |
+
Schema,
|
| 193 |
+
schema,
|
| 194 |
+
unify_schemas,
|
| 195 |
+
Array, Tensor,
|
| 196 |
+
array, chunked_array, record_batch, nulls, repeat,
|
| 197 |
+
SparseCOOTensor, SparseCSRMatrix, SparseCSCMatrix,
|
| 198 |
+
SparseCSFTensor,
|
| 199 |
+
infer_type, from_numpy_dtype,
|
| 200 |
+
NullArray,
|
| 201 |
+
NumericArray, IntegerArray, FloatingPointArray,
|
| 202 |
+
BooleanArray,
|
| 203 |
+
Int8Array, UInt8Array,
|
| 204 |
+
Int16Array, UInt16Array,
|
| 205 |
+
Int32Array, UInt32Array,
|
| 206 |
+
Int64Array, UInt64Array,
|
| 207 |
+
HalfFloatArray, FloatArray, DoubleArray,
|
| 208 |
+
ListArray, LargeListArray, FixedSizeListArray,
|
| 209 |
+
ListViewArray, LargeListViewArray,
|
| 210 |
+
MapArray, UnionArray,
|
| 211 |
+
BinaryArray, StringArray,
|
| 212 |
+
LargeBinaryArray, LargeStringArray,
|
| 213 |
+
BinaryViewArray, StringViewArray,
|
| 214 |
+
FixedSizeBinaryArray,
|
| 215 |
+
DictionaryArray,
|
| 216 |
+
Date32Array, Date64Array, TimestampArray,
|
| 217 |
+
Time32Array, Time64Array, DurationArray,
|
| 218 |
+
MonthDayNanoIntervalArray,
|
| 219 |
+
Decimal128Array, Decimal256Array, StructArray, ExtensionArray,
|
| 220 |
+
RunEndEncodedArray, Bool8Array, FixedShapeTensorArray,
|
| 221 |
+
OpaqueArray, UuidArray,
|
| 222 |
+
scalar, NA, _NULL as NULL, Scalar,
|
| 223 |
+
NullScalar, BooleanScalar,
|
| 224 |
+
Int8Scalar, Int16Scalar, Int32Scalar, Int64Scalar,
|
| 225 |
+
UInt8Scalar, UInt16Scalar, UInt32Scalar, UInt64Scalar,
|
| 226 |
+
HalfFloatScalar, FloatScalar, DoubleScalar,
|
| 227 |
+
Decimal128Scalar, Decimal256Scalar,
|
| 228 |
+
ListScalar, LargeListScalar, FixedSizeListScalar,
|
| 229 |
+
ListViewScalar, LargeListViewScalar,
|
| 230 |
+
Date32Scalar, Date64Scalar,
|
| 231 |
+
Time32Scalar, Time64Scalar,
|
| 232 |
+
TimestampScalar, DurationScalar,
|
| 233 |
+
MonthDayNanoIntervalScalar,
|
| 234 |
+
BinaryScalar, LargeBinaryScalar, BinaryViewScalar,
|
| 235 |
+
StringScalar, LargeStringScalar, StringViewScalar,
|
| 236 |
+
FixedSizeBinaryScalar, DictionaryScalar,
|
| 237 |
+
MapScalar, StructScalar, UnionScalar,
|
| 238 |
+
RunEndEncodedScalar, Bool8Scalar, ExtensionScalar,
|
| 239 |
+
FixedShapeTensorScalar, OpaqueScalar, UuidScalar)
|
| 240 |
+
|
| 241 |
+
# Buffers, allocation
|
| 242 |
+
from pyarrow.lib import (DeviceAllocationType, Device, MemoryManager,
|
| 243 |
+
default_cpu_memory_manager)
|
| 244 |
+
|
| 245 |
+
from pyarrow.lib import (Buffer, ResizableBuffer, foreign_buffer, py_buffer,
|
| 246 |
+
Codec, compress, decompress, allocate_buffer)
|
| 247 |
+
|
| 248 |
+
from pyarrow.lib import (MemoryPool, LoggingMemoryPool, ProxyMemoryPool,
|
| 249 |
+
total_allocated_bytes, set_memory_pool,
|
| 250 |
+
default_memory_pool, system_memory_pool,
|
| 251 |
+
jemalloc_memory_pool, mimalloc_memory_pool,
|
| 252 |
+
logging_memory_pool, proxy_memory_pool,
|
| 253 |
+
log_memory_allocations, jemalloc_set_decay_ms,
|
| 254 |
+
supported_memory_backends)
|
| 255 |
+
|
| 256 |
+
# I/O
|
| 257 |
+
from pyarrow.lib import (NativeFile, PythonFile,
|
| 258 |
+
BufferedInputStream, BufferedOutputStream, CacheOptions,
|
| 259 |
+
CompressedInputStream, CompressedOutputStream,
|
| 260 |
+
TransformInputStream, transcoding_input_stream,
|
| 261 |
+
FixedSizeBufferWriter,
|
| 262 |
+
BufferReader, BufferOutputStream,
|
| 263 |
+
OSFile, MemoryMappedFile, memory_map,
|
| 264 |
+
create_memory_map, MockOutputStream,
|
| 265 |
+
input_stream, output_stream,
|
| 266 |
+
have_libhdfs)
|
| 267 |
+
|
| 268 |
+
from pyarrow.lib import (ChunkedArray, RecordBatch, Table, table,
|
| 269 |
+
concat_arrays, concat_tables, TableGroupBy,
|
| 270 |
+
RecordBatchReader)
|
| 271 |
+
|
| 272 |
+
# Exceptions
|
| 273 |
+
from pyarrow.lib import (ArrowCancelled,
|
| 274 |
+
ArrowCapacityError,
|
| 275 |
+
ArrowException,
|
| 276 |
+
ArrowKeyError,
|
| 277 |
+
ArrowIndexError,
|
| 278 |
+
ArrowInvalid,
|
| 279 |
+
ArrowIOError,
|
| 280 |
+
ArrowMemoryError,
|
| 281 |
+
ArrowNotImplementedError,
|
| 282 |
+
ArrowTypeError,
|
| 283 |
+
ArrowSerializationError)
|
| 284 |
+
|
| 285 |
+
from pyarrow.ipc import serialize_pandas, deserialize_pandas
|
| 286 |
+
import pyarrow.ipc as ipc
|
| 287 |
+
|
| 288 |
+
import pyarrow.types as types
|
| 289 |
+
|
| 290 |
+
|
| 291 |
+
# ----------------------------------------------------------------------
|
| 292 |
+
# Deprecations
|
| 293 |
+
|
| 294 |
+
from pyarrow.util import _deprecate_api, _deprecate_class
|
| 295 |
+
|
| 296 |
+
|
| 297 |
+
# TODO: Deprecate these somehow in the pyarrow namespace
|
| 298 |
+
from pyarrow.ipc import (Message, MessageReader, MetadataVersion,
|
| 299 |
+
RecordBatchFileReader, RecordBatchFileWriter,
|
| 300 |
+
RecordBatchStreamReader, RecordBatchStreamWriter)
|
| 301 |
+
|
| 302 |
+
# ----------------------------------------------------------------------
|
| 303 |
+
# Returning absolute path to the pyarrow include directory (if bundled, e.g. in
|
| 304 |
+
# wheels)
|
| 305 |
+
|
| 306 |
+
|
| 307 |
+
def get_include():
|
| 308 |
+
"""
|
| 309 |
+
Return absolute path to directory containing Arrow C++ include
|
| 310 |
+
headers. Similar to numpy.get_include
|
| 311 |
+
"""
|
| 312 |
+
return _os.path.join(_os.path.dirname(__file__), 'include')
|
| 313 |
+
|
| 314 |
+
|
| 315 |
+
def _get_pkg_config_executable():
|
| 316 |
+
return _os.environ.get('PKG_CONFIG', 'pkg-config')
|
| 317 |
+
|
| 318 |
+
|
| 319 |
+
def _has_pkg_config(pkgname):
|
| 320 |
+
import subprocess
|
| 321 |
+
try:
|
| 322 |
+
return subprocess.call([_get_pkg_config_executable(),
|
| 323 |
+
'--exists', pkgname]) == 0
|
| 324 |
+
except FileNotFoundError:
|
| 325 |
+
return False
|
| 326 |
+
|
| 327 |
+
|
| 328 |
+
def _read_pkg_config_variable(pkgname, cli_args):
|
| 329 |
+
import subprocess
|
| 330 |
+
cmd = [_get_pkg_config_executable(), pkgname] + cli_args
|
| 331 |
+
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
|
| 332 |
+
stderr=subprocess.PIPE)
|
| 333 |
+
out, err = proc.communicate()
|
| 334 |
+
if proc.returncode != 0:
|
| 335 |
+
raise RuntimeError("pkg-config failed: " + err.decode('utf8'))
|
| 336 |
+
return out.rstrip().decode('utf8')
|
| 337 |
+
|
| 338 |
+
|
| 339 |
+
def get_libraries():
|
| 340 |
+
"""
|
| 341 |
+
Return list of library names to include in the `libraries` argument for C
|
| 342 |
+
or Cython extensions using pyarrow
|
| 343 |
+
"""
|
| 344 |
+
return ['arrow_python', 'arrow']
|
| 345 |
+
|
| 346 |
+
|
| 347 |
+
def create_library_symlinks():
|
| 348 |
+
"""
|
| 349 |
+
With Linux and macOS wheels, the bundled shared libraries have an embedded
|
| 350 |
+
ABI version like libarrow.so.17 or libarrow.17.dylib and so linking to them
|
| 351 |
+
with -larrow won't work unless we create symlinks at locations like
|
| 352 |
+
site-packages/pyarrow/libarrow.so. This unfortunate workaround addresses
|
| 353 |
+
prior problems we had with shipping two copies of the shared libraries to
|
| 354 |
+
permit third party projects like turbodbc to build their C++ extensions
|
| 355 |
+
against the pyarrow wheels.
|
| 356 |
+
|
| 357 |
+
This function must only be invoked once and only when the shared libraries
|
| 358 |
+
are bundled with the Python package, which should only apply to wheel-based
|
| 359 |
+
installs. It requires write access to the site-packages/pyarrow directory
|
| 360 |
+
and so depending on your system may need to be run with root.
|
| 361 |
+
"""
|
| 362 |
+
import glob
|
| 363 |
+
if _sys.platform == 'win32':
|
| 364 |
+
return
|
| 365 |
+
package_cwd = _os.path.dirname(__file__)
|
| 366 |
+
|
| 367 |
+
if _sys.platform == 'linux':
|
| 368 |
+
bundled_libs = glob.glob(_os.path.join(package_cwd, '*.so.*'))
|
| 369 |
+
|
| 370 |
+
def get_symlink_path(hard_path):
|
| 371 |
+
return hard_path.rsplit('.', 1)[0]
|
| 372 |
+
else:
|
| 373 |
+
bundled_libs = glob.glob(_os.path.join(package_cwd, '*.*.dylib'))
|
| 374 |
+
|
| 375 |
+
def get_symlink_path(hard_path):
|
| 376 |
+
return '.'.join((hard_path.rsplit('.', 2)[0], 'dylib'))
|
| 377 |
+
|
| 378 |
+
for lib_hard_path in bundled_libs:
|
| 379 |
+
symlink_path = get_symlink_path(lib_hard_path)
|
| 380 |
+
if _os.path.exists(symlink_path):
|
| 381 |
+
continue
|
| 382 |
+
try:
|
| 383 |
+
_os.symlink(lib_hard_path, symlink_path)
|
| 384 |
+
except PermissionError:
|
| 385 |
+
print("Tried creating symlink {}. If you need to link to "
|
| 386 |
+
"bundled shared libraries, run "
|
| 387 |
+
"pyarrow.create_library_symlinks() as root")
|
| 388 |
+
|
| 389 |
+
|
| 390 |
+
def get_library_dirs():
|
| 391 |
+
"""
|
| 392 |
+
Return lists of directories likely to contain Arrow C++ libraries for
|
| 393 |
+
linking C or Cython extensions using pyarrow
|
| 394 |
+
"""
|
| 395 |
+
package_cwd = _os.path.dirname(__file__)
|
| 396 |
+
library_dirs = [package_cwd]
|
| 397 |
+
|
| 398 |
+
def append_library_dir(library_dir):
|
| 399 |
+
if library_dir not in library_dirs:
|
| 400 |
+
library_dirs.append(library_dir)
|
| 401 |
+
|
| 402 |
+
# Search library paths via pkg-config. This is necessary if the user
|
| 403 |
+
# installed libarrow and the other shared libraries manually and they
|
| 404 |
+
# are not shipped inside the pyarrow package (see also ARROW-2976).
|
| 405 |
+
pkg_config_executable = _os.environ.get('PKG_CONFIG') or 'pkg-config'
|
| 406 |
+
for pkgname in ["arrow", "arrow_python"]:
|
| 407 |
+
if _has_pkg_config(pkgname):
|
| 408 |
+
library_dir = _read_pkg_config_variable(pkgname,
|
| 409 |
+
["--libs-only-L"])
|
| 410 |
+
# pkg-config output could be empty if Arrow is installed
|
| 411 |
+
# as a system package.
|
| 412 |
+
if library_dir:
|
| 413 |
+
if not library_dir.startswith("-L"):
|
| 414 |
+
raise ValueError(
|
| 415 |
+
"pkg-config --libs-only-L returned unexpected "
|
| 416 |
+
"value {!r}".format(library_dir))
|
| 417 |
+
append_library_dir(library_dir[2:])
|
| 418 |
+
|
| 419 |
+
if _sys.platform == 'win32':
|
| 420 |
+
# TODO(wesm): Is this necessary, or does setuptools within a conda
|
| 421 |
+
# installation add Library\lib to the linker path for MSVC?
|
| 422 |
+
python_base_install = _os.path.dirname(_sys.executable)
|
| 423 |
+
library_dir = _os.path.join(python_base_install, 'Library', 'lib')
|
| 424 |
+
|
| 425 |
+
if _os.path.exists(_os.path.join(library_dir, 'arrow.lib')):
|
| 426 |
+
append_library_dir(library_dir)
|
| 427 |
+
|
| 428 |
+
# ARROW-4074: Allow for ARROW_HOME to be set to some other directory
|
| 429 |
+
if _os.environ.get('ARROW_HOME'):
|
| 430 |
+
append_library_dir(_os.path.join(_os.environ['ARROW_HOME'], 'lib'))
|
| 431 |
+
else:
|
| 432 |
+
# Python wheels bundle the Arrow libraries in the pyarrow directory.
|
| 433 |
+
append_library_dir(_os.path.dirname(_os.path.abspath(__file__)))
|
| 434 |
+
|
| 435 |
+
return library_dirs
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/__init__.cpython-312.pyc
ADDED
|
Binary file (20.7 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/_compute_docstrings.cpython-312.pyc
ADDED
|
Binary file (1.13 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/_generated_version.cpython-312.pyc
ADDED
|
Binary file (608 Bytes). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/acero.cpython-312.pyc
ADDED
|
Binary file (13.4 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/benchmark.cpython-312.pyc
ADDED
|
Binary file (265 Bytes). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/cffi.cpython-312.pyc
ADDED
|
Binary file (1.84 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/compute.cpython-312.pyc
ADDED
|
Binary file (26.1 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/conftest.cpython-312.pyc
ADDED
|
Binary file (9.92 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/csv.cpython-312.pyc
ADDED
|
Binary file (475 Bytes). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/cuda.cpython-312.pyc
ADDED
|
Binary file (477 Bytes). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/dataset.cpython-312.pyc
ADDED
|
Binary file (39.4 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/feather.cpython-312.pyc
ADDED
|
Binary file (10.8 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/flight.cpython-312.pyc
ADDED
|
Binary file (1.75 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/fs.cpython-312.pyc
ADDED
|
Binary file (16.7 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/ipc.cpython-312.pyc
ADDED
|
Binary file (11.2 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/json.cpython-312.pyc
ADDED
|
Binary file (291 Bytes). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/jvm.cpython-312.pyc
ADDED
|
Binary file (12.4 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/orc.cpython-312.pyc
ADDED
|
Binary file (14.8 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/pandas_compat.cpython-312.pyc
ADDED
|
Binary file (44.6 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/substrait.cpython-312.pyc
ADDED
|
Binary file (625 Bytes). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/types.cpython-312.pyc
ADDED
|
Binary file (14.5 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/__pycache__/util.cpython-312.pyc
ADDED
|
Binary file (10.3 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_acero.cpython-312-x86_64-linux-gnu.so
ADDED
|
Binary file (326 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_acero.pxd
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# cython: language_level = 3
|
| 19 |
+
|
| 20 |
+
from pyarrow.lib cimport *
|
| 21 |
+
from pyarrow.includes.common cimport *
|
| 22 |
+
from pyarrow.includes.libarrow cimport *
|
| 23 |
+
from pyarrow.includes.libarrow_acero cimport *
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
cdef class ExecNodeOptions(_Weakrefable):
|
| 27 |
+
cdef:
|
| 28 |
+
shared_ptr[CExecNodeOptions] wrapped
|
| 29 |
+
|
| 30 |
+
cdef void init(self, const shared_ptr[CExecNodeOptions]& sp)
|
| 31 |
+
cdef inline shared_ptr[CExecNodeOptions] unwrap(self) nogil
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
cdef class Declaration(_Weakrefable):
|
| 35 |
+
|
| 36 |
+
cdef:
|
| 37 |
+
CDeclaration decl
|
| 38 |
+
|
| 39 |
+
cdef void init(self, const CDeclaration& c_decl)
|
| 40 |
+
|
| 41 |
+
@staticmethod
|
| 42 |
+
cdef wrap(const CDeclaration& c_decl)
|
| 43 |
+
|
| 44 |
+
cdef inline CDeclaration unwrap(self) nogil
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_acero.pyx
ADDED
|
@@ -0,0 +1,608 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# ---------------------------------------------------------------------
|
| 19 |
+
# Low-level Acero bindings
|
| 20 |
+
|
| 21 |
+
# cython: profile=False
|
| 22 |
+
# distutils: language = c++
|
| 23 |
+
# cython: language_level = 3
|
| 24 |
+
|
| 25 |
+
from pyarrow.includes.common cimport *
|
| 26 |
+
from pyarrow.includes.libarrow cimport *
|
| 27 |
+
from pyarrow.includes.libarrow_acero cimport *
|
| 28 |
+
from pyarrow.lib cimport (Table, pyarrow_unwrap_table, pyarrow_wrap_table,
|
| 29 |
+
RecordBatchReader)
|
| 30 |
+
from pyarrow.lib import frombytes, tobytes
|
| 31 |
+
from pyarrow._compute cimport (
|
| 32 |
+
Expression, FunctionOptions, _ensure_field_ref, _true,
|
| 33 |
+
unwrap_null_placement, unwrap_sort_order
|
| 34 |
+
)
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
cdef class ExecNodeOptions(_Weakrefable):
|
| 38 |
+
"""
|
| 39 |
+
Base class for the node options.
|
| 40 |
+
|
| 41 |
+
Use one of the subclasses to construct an options object.
|
| 42 |
+
"""
|
| 43 |
+
__slots__ = () # avoid mistakingly creating attributes
|
| 44 |
+
|
| 45 |
+
cdef void init(self, const shared_ptr[CExecNodeOptions]& sp):
|
| 46 |
+
self.wrapped = sp
|
| 47 |
+
|
| 48 |
+
cdef inline shared_ptr[CExecNodeOptions] unwrap(self) nogil:
|
| 49 |
+
return self.wrapped
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
cdef class _TableSourceNodeOptions(ExecNodeOptions):
|
| 53 |
+
|
| 54 |
+
def _set_options(self, Table table):
|
| 55 |
+
cdef:
|
| 56 |
+
shared_ptr[CTable] c_table
|
| 57 |
+
|
| 58 |
+
c_table = pyarrow_unwrap_table(table)
|
| 59 |
+
self.wrapped.reset(
|
| 60 |
+
new CTableSourceNodeOptions(c_table)
|
| 61 |
+
)
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
class TableSourceNodeOptions(_TableSourceNodeOptions):
|
| 65 |
+
"""
|
| 66 |
+
A Source node which accepts a table.
|
| 67 |
+
|
| 68 |
+
This is the option class for the "table_source" node factory.
|
| 69 |
+
|
| 70 |
+
Parameters
|
| 71 |
+
----------
|
| 72 |
+
table : pyarrow.Table
|
| 73 |
+
The table which acts as the data source.
|
| 74 |
+
"""
|
| 75 |
+
|
| 76 |
+
def __init__(self, Table table):
|
| 77 |
+
self._set_options(table)
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
cdef class _FilterNodeOptions(ExecNodeOptions):
|
| 81 |
+
|
| 82 |
+
def _set_options(self, Expression filter_expression not None):
|
| 83 |
+
self.wrapped.reset(
|
| 84 |
+
new CFilterNodeOptions(<CExpression>filter_expression.unwrap())
|
| 85 |
+
)
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
class FilterNodeOptions(_FilterNodeOptions):
|
| 89 |
+
"""
|
| 90 |
+
Make a node which excludes some rows from batches passed through it.
|
| 91 |
+
|
| 92 |
+
This is the option class for the "filter" node factory.
|
| 93 |
+
|
| 94 |
+
The "filter" operation provides an option to define data filtering
|
| 95 |
+
criteria. It selects rows where the given expression evaluates to true.
|
| 96 |
+
Filters can be written using pyarrow.compute.Expression, and the
|
| 97 |
+
expression must have a return type of boolean.
|
| 98 |
+
|
| 99 |
+
Parameters
|
| 100 |
+
----------
|
| 101 |
+
filter_expression : pyarrow.compute.Expression
|
| 102 |
+
"""
|
| 103 |
+
|
| 104 |
+
def __init__(self, Expression filter_expression):
|
| 105 |
+
self._set_options(filter_expression)
|
| 106 |
+
|
| 107 |
+
|
| 108 |
+
cdef class _ProjectNodeOptions(ExecNodeOptions):
|
| 109 |
+
|
| 110 |
+
def _set_options(self, expressions, names=None):
|
| 111 |
+
cdef:
|
| 112 |
+
Expression expr
|
| 113 |
+
vector[CExpression] c_expressions
|
| 114 |
+
vector[c_string] c_names
|
| 115 |
+
|
| 116 |
+
for expr in expressions:
|
| 117 |
+
c_expressions.push_back(expr.unwrap())
|
| 118 |
+
|
| 119 |
+
if names is not None:
|
| 120 |
+
if len(names) != len(expressions):
|
| 121 |
+
raise ValueError(
|
| 122 |
+
"The number of names should be equal to the number of expressions"
|
| 123 |
+
)
|
| 124 |
+
|
| 125 |
+
for name in names:
|
| 126 |
+
c_names.push_back(<c_string>tobytes(name))
|
| 127 |
+
|
| 128 |
+
self.wrapped.reset(
|
| 129 |
+
new CProjectNodeOptions(c_expressions, c_names)
|
| 130 |
+
)
|
| 131 |
+
else:
|
| 132 |
+
self.wrapped.reset(
|
| 133 |
+
new CProjectNodeOptions(c_expressions)
|
| 134 |
+
)
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
class ProjectNodeOptions(_ProjectNodeOptions):
|
| 138 |
+
"""
|
| 139 |
+
Make a node which executes expressions on input batches,
|
| 140 |
+
producing batches of the same length with new columns.
|
| 141 |
+
|
| 142 |
+
This is the option class for the "project" node factory.
|
| 143 |
+
|
| 144 |
+
The "project" operation rearranges, deletes, transforms, and
|
| 145 |
+
creates columns. Each output column is computed by evaluating
|
| 146 |
+
an expression against the source record batch. These must be
|
| 147 |
+
scalar expressions (expressions consisting of scalar literals,
|
| 148 |
+
field references and scalar functions, i.e. elementwise functions
|
| 149 |
+
that return one value for each input row independent of the value
|
| 150 |
+
of all other rows).
|
| 151 |
+
|
| 152 |
+
Parameters
|
| 153 |
+
----------
|
| 154 |
+
expressions : list of pyarrow.compute.Expression
|
| 155 |
+
List of expressions to evaluate against the source batch. This must
|
| 156 |
+
be scalar expressions.
|
| 157 |
+
names : list of str, optional
|
| 158 |
+
List of names for each of the output columns (same length as
|
| 159 |
+
`expressions`). If `names` is not provided, the string
|
| 160 |
+
representations of exprs will be used.
|
| 161 |
+
"""
|
| 162 |
+
|
| 163 |
+
def __init__(self, expressions, names=None):
|
| 164 |
+
self._set_options(expressions, names)
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
cdef class _AggregateNodeOptions(ExecNodeOptions):
|
| 168 |
+
|
| 169 |
+
def _set_options(self, aggregates, keys=None):
|
| 170 |
+
cdef:
|
| 171 |
+
CAggregate c_aggr
|
| 172 |
+
vector[CAggregate] c_aggregations
|
| 173 |
+
vector[CFieldRef] c_keys
|
| 174 |
+
|
| 175 |
+
for arg_names, func_name, opts, name in aggregates:
|
| 176 |
+
c_aggr.function = tobytes(func_name)
|
| 177 |
+
if opts is not None:
|
| 178 |
+
c_aggr.options = (<FunctionOptions?>opts).wrapped
|
| 179 |
+
else:
|
| 180 |
+
c_aggr.options = <shared_ptr[CFunctionOptions]>nullptr
|
| 181 |
+
if not isinstance(arg_names, (list, tuple)):
|
| 182 |
+
arg_names = [arg_names]
|
| 183 |
+
for arg in arg_names:
|
| 184 |
+
c_aggr.target.push_back(_ensure_field_ref(arg))
|
| 185 |
+
c_aggr.name = tobytes(name)
|
| 186 |
+
|
| 187 |
+
c_aggregations.push_back(move(c_aggr))
|
| 188 |
+
|
| 189 |
+
if keys is None:
|
| 190 |
+
keys = []
|
| 191 |
+
for name in keys:
|
| 192 |
+
c_keys.push_back(_ensure_field_ref(name))
|
| 193 |
+
|
| 194 |
+
self.wrapped.reset(
|
| 195 |
+
new CAggregateNodeOptions(c_aggregations, c_keys)
|
| 196 |
+
)
|
| 197 |
+
|
| 198 |
+
|
| 199 |
+
class AggregateNodeOptions(_AggregateNodeOptions):
|
| 200 |
+
"""
|
| 201 |
+
Make a node which aggregates input batches, optionally grouped by keys.
|
| 202 |
+
|
| 203 |
+
This is the option class for the "aggregate" node factory.
|
| 204 |
+
|
| 205 |
+
Acero supports two types of aggregates: "scalar" aggregates,
|
| 206 |
+
and "hash" aggregates. Scalar aggregates reduce an array or scalar
|
| 207 |
+
input to a single scalar output (e.g. computing the mean of a column).
|
| 208 |
+
Hash aggregates act like GROUP BY in SQL and first partition data
|
| 209 |
+
based on one or more key columns, then reduce the data in each partition.
|
| 210 |
+
The aggregate node supports both types of computation, and can compute
|
| 211 |
+
any number of aggregations at once.
|
| 212 |
+
|
| 213 |
+
Parameters
|
| 214 |
+
----------
|
| 215 |
+
aggregates : list of tuples
|
| 216 |
+
Aggregations which will be applied to the targeted fields.
|
| 217 |
+
Specified as a list of tuples, where each tuple is one aggregation
|
| 218 |
+
specification and consists of: aggregation target column(s) followed
|
| 219 |
+
by function name, aggregation function options object and the
|
| 220 |
+
output field name.
|
| 221 |
+
The target column(s) specification can be a single field reference,
|
| 222 |
+
an empty list or a list of fields unary, nullary and n-ary aggregation
|
| 223 |
+
functions respectively. Each field reference can be a string
|
| 224 |
+
column name or expression.
|
| 225 |
+
keys : list of field references, optional
|
| 226 |
+
Keys by which aggregations will be grouped. Each key can reference
|
| 227 |
+
a field using a string name or expression.
|
| 228 |
+
"""
|
| 229 |
+
|
| 230 |
+
def __init__(self, aggregates, keys=None):
|
| 231 |
+
self._set_options(aggregates, keys)
|
| 232 |
+
|
| 233 |
+
|
| 234 |
+
cdef class _OrderByNodeOptions(ExecNodeOptions):
|
| 235 |
+
|
| 236 |
+
def _set_options(self, sort_keys, null_placement):
|
| 237 |
+
cdef:
|
| 238 |
+
vector[CSortKey] c_sort_keys
|
| 239 |
+
|
| 240 |
+
for name, order in sort_keys:
|
| 241 |
+
c_sort_keys.push_back(
|
| 242 |
+
CSortKey(_ensure_field_ref(name), unwrap_sort_order(order))
|
| 243 |
+
)
|
| 244 |
+
|
| 245 |
+
self.wrapped.reset(
|
| 246 |
+
new COrderByNodeOptions(
|
| 247 |
+
COrdering(c_sort_keys, unwrap_null_placement(null_placement))
|
| 248 |
+
)
|
| 249 |
+
)
|
| 250 |
+
|
| 251 |
+
|
| 252 |
+
class OrderByNodeOptions(_OrderByNodeOptions):
|
| 253 |
+
"""
|
| 254 |
+
Make a node which applies a new ordering to the data.
|
| 255 |
+
|
| 256 |
+
Currently this node works by accumulating all data, sorting, and then
|
| 257 |
+
emitting the new data with an updated batch index.
|
| 258 |
+
Larger-than-memory sort is not currently supported.
|
| 259 |
+
|
| 260 |
+
This is the option class for the "order_by" node factory.
|
| 261 |
+
|
| 262 |
+
Parameters
|
| 263 |
+
----------
|
| 264 |
+
sort_keys : sequence of (name, order) tuples
|
| 265 |
+
Names of field/column keys to sort the input on,
|
| 266 |
+
along with the order each field/column is sorted in.
|
| 267 |
+
Accepted values for `order` are "ascending", "descending".
|
| 268 |
+
Each field reference can be a string column name or expression.
|
| 269 |
+
null_placement : str, default "at_end"
|
| 270 |
+
Where nulls in input should be sorted, only applying to
|
| 271 |
+
columns/fields mentioned in `sort_keys`.
|
| 272 |
+
Accepted values are "at_start", "at_end".
|
| 273 |
+
"""
|
| 274 |
+
|
| 275 |
+
def __init__(self, sort_keys=(), *, null_placement="at_end"):
|
| 276 |
+
self._set_options(sort_keys, null_placement)
|
| 277 |
+
|
| 278 |
+
|
| 279 |
+
cdef class _HashJoinNodeOptions(ExecNodeOptions):
|
| 280 |
+
|
| 281 |
+
def _set_options(
|
| 282 |
+
self, join_type, left_keys, right_keys, left_output=None, right_output=None,
|
| 283 |
+
output_suffix_for_left="", output_suffix_for_right="",
|
| 284 |
+
):
|
| 285 |
+
cdef:
|
| 286 |
+
CJoinType c_join_type
|
| 287 |
+
vector[CFieldRef] c_left_keys
|
| 288 |
+
vector[CFieldRef] c_right_keys
|
| 289 |
+
vector[CFieldRef] c_left_output
|
| 290 |
+
vector[CFieldRef] c_right_output
|
| 291 |
+
|
| 292 |
+
# join type
|
| 293 |
+
if join_type == "left semi":
|
| 294 |
+
c_join_type = CJoinType_LEFT_SEMI
|
| 295 |
+
elif join_type == "right semi":
|
| 296 |
+
c_join_type = CJoinType_RIGHT_SEMI
|
| 297 |
+
elif join_type == "left anti":
|
| 298 |
+
c_join_type = CJoinType_LEFT_ANTI
|
| 299 |
+
elif join_type == "right anti":
|
| 300 |
+
c_join_type = CJoinType_RIGHT_ANTI
|
| 301 |
+
elif join_type == "inner":
|
| 302 |
+
c_join_type = CJoinType_INNER
|
| 303 |
+
elif join_type == "left outer":
|
| 304 |
+
c_join_type = CJoinType_LEFT_OUTER
|
| 305 |
+
elif join_type == "right outer":
|
| 306 |
+
c_join_type = CJoinType_RIGHT_OUTER
|
| 307 |
+
elif join_type == "full outer":
|
| 308 |
+
c_join_type = CJoinType_FULL_OUTER
|
| 309 |
+
else:
|
| 310 |
+
raise ValueError("Unsupported join type")
|
| 311 |
+
|
| 312 |
+
# left/right keys
|
| 313 |
+
if not isinstance(left_keys, (list, tuple)):
|
| 314 |
+
left_keys = [left_keys]
|
| 315 |
+
for key in left_keys:
|
| 316 |
+
c_left_keys.push_back(_ensure_field_ref(key))
|
| 317 |
+
if not isinstance(right_keys, (list, tuple)):
|
| 318 |
+
right_keys = [right_keys]
|
| 319 |
+
for key in right_keys:
|
| 320 |
+
c_right_keys.push_back(_ensure_field_ref(key))
|
| 321 |
+
|
| 322 |
+
# left/right output fields
|
| 323 |
+
if left_output is not None and right_output is not None:
|
| 324 |
+
for colname in left_output:
|
| 325 |
+
c_left_output.push_back(_ensure_field_ref(colname))
|
| 326 |
+
for colname in right_output:
|
| 327 |
+
c_right_output.push_back(_ensure_field_ref(colname))
|
| 328 |
+
|
| 329 |
+
self.wrapped.reset(
|
| 330 |
+
new CHashJoinNodeOptions(
|
| 331 |
+
c_join_type, c_left_keys, c_right_keys,
|
| 332 |
+
c_left_output, c_right_output,
|
| 333 |
+
_true,
|
| 334 |
+
<c_string>tobytes(output_suffix_for_left),
|
| 335 |
+
<c_string>tobytes(output_suffix_for_right)
|
| 336 |
+
)
|
| 337 |
+
)
|
| 338 |
+
else:
|
| 339 |
+
self.wrapped.reset(
|
| 340 |
+
new CHashJoinNodeOptions(
|
| 341 |
+
c_join_type, c_left_keys, c_right_keys,
|
| 342 |
+
_true,
|
| 343 |
+
<c_string>tobytes(output_suffix_for_left),
|
| 344 |
+
<c_string>tobytes(output_suffix_for_right)
|
| 345 |
+
)
|
| 346 |
+
)
|
| 347 |
+
|
| 348 |
+
|
| 349 |
+
class HashJoinNodeOptions(_HashJoinNodeOptions):
|
| 350 |
+
"""
|
| 351 |
+
Make a node which implements join operation using hash join strategy.
|
| 352 |
+
|
| 353 |
+
This is the option class for the "hashjoin" node factory.
|
| 354 |
+
|
| 355 |
+
Parameters
|
| 356 |
+
----------
|
| 357 |
+
join_type : str
|
| 358 |
+
Type of join. One of "left semi", "right semi", "left anti",
|
| 359 |
+
"right anti", "inner", "left outer", "right outer", "full outer".
|
| 360 |
+
left_keys : str, Expression or list
|
| 361 |
+
Key fields from left input. Each key can be a string column name
|
| 362 |
+
or a field expression, or a list of such field references.
|
| 363 |
+
right_keys : str, Expression or list
|
| 364 |
+
Key fields from right input. See `left_keys` for details.
|
| 365 |
+
left_output : list, optional
|
| 366 |
+
List of output fields passed from left input. If left and right
|
| 367 |
+
output fields are not specified, all valid fields from both left and
|
| 368 |
+
right input will be output. Each field can be a string column name
|
| 369 |
+
or a field expression.
|
| 370 |
+
right_output : list, optional
|
| 371 |
+
List of output fields passed from right input. If left and right
|
| 372 |
+
output fields are not specified, all valid fields from both left and
|
| 373 |
+
right input will be output. Each field can be a string column name
|
| 374 |
+
or a field expression.
|
| 375 |
+
output_suffix_for_left : str
|
| 376 |
+
Suffix added to names of output fields coming from left input
|
| 377 |
+
(used to distinguish, if necessary, between fields of the same
|
| 378 |
+
name in left and right input and can be left empty if there are
|
| 379 |
+
no name collisions).
|
| 380 |
+
output_suffix_for_right : str
|
| 381 |
+
Suffix added to names of output fields coming from right input,
|
| 382 |
+
see `output_suffix_for_left` for details.
|
| 383 |
+
"""
|
| 384 |
+
|
| 385 |
+
def __init__(
|
| 386 |
+
self, join_type, left_keys, right_keys, left_output=None, right_output=None,
|
| 387 |
+
output_suffix_for_left="", output_suffix_for_right=""
|
| 388 |
+
):
|
| 389 |
+
self._set_options(
|
| 390 |
+
join_type, left_keys, right_keys, left_output, right_output,
|
| 391 |
+
output_suffix_for_left, output_suffix_for_right
|
| 392 |
+
)
|
| 393 |
+
|
| 394 |
+
|
| 395 |
+
cdef class _AsofJoinNodeOptions(ExecNodeOptions):
|
| 396 |
+
|
| 397 |
+
def _set_options(self, left_on, left_by, right_on, right_by, tolerance):
|
| 398 |
+
cdef:
|
| 399 |
+
vector[CFieldRef] c_left_by
|
| 400 |
+
vector[CFieldRef] c_right_by
|
| 401 |
+
CAsofJoinKeys c_left_keys
|
| 402 |
+
CAsofJoinKeys c_right_keys
|
| 403 |
+
vector[CAsofJoinKeys] c_input_keys
|
| 404 |
+
|
| 405 |
+
# Prepare left AsofJoinNodeOption::Keys
|
| 406 |
+
if not isinstance(left_by, (list, tuple)):
|
| 407 |
+
left_by = [left_by]
|
| 408 |
+
for key in left_by:
|
| 409 |
+
c_left_by.push_back(_ensure_field_ref(key))
|
| 410 |
+
|
| 411 |
+
c_left_keys.on_key = _ensure_field_ref(left_on)
|
| 412 |
+
c_left_keys.by_key = c_left_by
|
| 413 |
+
|
| 414 |
+
c_input_keys.push_back(c_left_keys)
|
| 415 |
+
|
| 416 |
+
# Prepare right AsofJoinNodeOption::Keys
|
| 417 |
+
if not isinstance(right_by, (list, tuple)):
|
| 418 |
+
right_by = [right_by]
|
| 419 |
+
for key in right_by:
|
| 420 |
+
c_right_by.push_back(_ensure_field_ref(key))
|
| 421 |
+
|
| 422 |
+
c_right_keys.on_key = _ensure_field_ref(right_on)
|
| 423 |
+
c_right_keys.by_key = c_right_by
|
| 424 |
+
|
| 425 |
+
c_input_keys.push_back(c_right_keys)
|
| 426 |
+
|
| 427 |
+
self.wrapped.reset(
|
| 428 |
+
new CAsofJoinNodeOptions(
|
| 429 |
+
c_input_keys,
|
| 430 |
+
tolerance,
|
| 431 |
+
)
|
| 432 |
+
)
|
| 433 |
+
|
| 434 |
+
|
| 435 |
+
class AsofJoinNodeOptions(_AsofJoinNodeOptions):
|
| 436 |
+
"""
|
| 437 |
+
Make a node which implements 'as of join' operation.
|
| 438 |
+
|
| 439 |
+
This is the option class for the "asofjoin" node factory.
|
| 440 |
+
|
| 441 |
+
Parameters
|
| 442 |
+
----------
|
| 443 |
+
left_on : str, Expression
|
| 444 |
+
The left key on which the join operation should be performed.
|
| 445 |
+
Can be a string column name or a field expression.
|
| 446 |
+
|
| 447 |
+
An inexact match is used on the "on" key, i.e. a row is considered a
|
| 448 |
+
match if and only if left_on - tolerance <= right_on <= left_on.
|
| 449 |
+
|
| 450 |
+
The input dataset must be sorted by the "on" key. Must be a single
|
| 451 |
+
field of a common type.
|
| 452 |
+
|
| 453 |
+
Currently, the "on" key must be an integer, date, or timestamp type.
|
| 454 |
+
left_by: str, Expression or list
|
| 455 |
+
The left keys on which the join operation should be performed.
|
| 456 |
+
Exact equality is used for each field of the "by" keys.
|
| 457 |
+
Each key can be a string column name or a field expression,
|
| 458 |
+
or a list of such field references.
|
| 459 |
+
right_on : str, Expression
|
| 460 |
+
The right key on which the join operation should be performed.
|
| 461 |
+
See `left_on` for details.
|
| 462 |
+
right_by: str, Expression or list
|
| 463 |
+
The right keys on which the join operation should be performed.
|
| 464 |
+
See `left_by` for details.
|
| 465 |
+
tolerance : int
|
| 466 |
+
The tolerance to use for the asof join. The tolerance is interpreted in
|
| 467 |
+
the same units as the "on" key.
|
| 468 |
+
"""
|
| 469 |
+
|
| 470 |
+
def __init__(self, left_on, left_by, right_on, right_by, tolerance):
|
| 471 |
+
self._set_options(left_on, left_by, right_on, right_by, tolerance)
|
| 472 |
+
|
| 473 |
+
|
| 474 |
+
cdef class Declaration(_Weakrefable):
|
| 475 |
+
"""
|
| 476 |
+
Helper class for declaring the nodes of an ExecPlan.
|
| 477 |
+
|
| 478 |
+
A Declaration represents an unconstructed ExecNode, and potentially
|
| 479 |
+
more since its inputs may also be Declarations or when constructed
|
| 480 |
+
with ``from_sequence``.
|
| 481 |
+
|
| 482 |
+
The possible ExecNodes to use are registered with a name,
|
| 483 |
+
the "factory name", and need to be specified using this name, together
|
| 484 |
+
with its corresponding ExecNodeOptions subclass.
|
| 485 |
+
|
| 486 |
+
Parameters
|
| 487 |
+
----------
|
| 488 |
+
factory_name : str
|
| 489 |
+
The ExecNode factory name, such as "table_source", "filter",
|
| 490 |
+
"project" etc. See the ExecNodeOptions subclasses for the exact
|
| 491 |
+
factory names to use.
|
| 492 |
+
options : ExecNodeOptions
|
| 493 |
+
Corresponding ExecNodeOptions subclass (matching the factory name).
|
| 494 |
+
inputs : list of Declaration, optional
|
| 495 |
+
Input nodes for this declaration. Optional if the node is a source
|
| 496 |
+
node, or when the declaration gets combined later with
|
| 497 |
+
``from_sequence``.
|
| 498 |
+
|
| 499 |
+
Returns
|
| 500 |
+
-------
|
| 501 |
+
Declaration
|
| 502 |
+
"""
|
| 503 |
+
cdef void init(self, const CDeclaration& c_decl):
|
| 504 |
+
self.decl = c_decl
|
| 505 |
+
|
| 506 |
+
@staticmethod
|
| 507 |
+
cdef wrap(const CDeclaration& c_decl):
|
| 508 |
+
cdef Declaration self = Declaration.__new__(Declaration)
|
| 509 |
+
self.init(c_decl)
|
| 510 |
+
return self
|
| 511 |
+
|
| 512 |
+
cdef inline CDeclaration unwrap(self) nogil:
|
| 513 |
+
return self.decl
|
| 514 |
+
|
| 515 |
+
def __init__(self, factory_name, ExecNodeOptions options, inputs=None):
|
| 516 |
+
cdef:
|
| 517 |
+
c_string c_factory_name
|
| 518 |
+
CDeclaration c_decl
|
| 519 |
+
vector[CDeclaration.Input] c_inputs
|
| 520 |
+
|
| 521 |
+
c_factory_name = tobytes(factory_name)
|
| 522 |
+
|
| 523 |
+
if inputs is not None:
|
| 524 |
+
for ipt in inputs:
|
| 525 |
+
c_inputs.push_back(
|
| 526 |
+
CDeclaration.Input((<Declaration>ipt).unwrap())
|
| 527 |
+
)
|
| 528 |
+
|
| 529 |
+
c_decl = CDeclaration(c_factory_name, c_inputs, options.unwrap())
|
| 530 |
+
self.init(c_decl)
|
| 531 |
+
|
| 532 |
+
@staticmethod
|
| 533 |
+
def from_sequence(decls):
|
| 534 |
+
"""
|
| 535 |
+
Convenience factory for the common case of a simple sequence of nodes.
|
| 536 |
+
|
| 537 |
+
Each of the declarations will be appended to the inputs of the
|
| 538 |
+
subsequent declaration, and the final modified declaration will
|
| 539 |
+
be returned.
|
| 540 |
+
|
| 541 |
+
Parameters
|
| 542 |
+
----------
|
| 543 |
+
decls : list of Declaration
|
| 544 |
+
|
| 545 |
+
Returns
|
| 546 |
+
-------
|
| 547 |
+
Declaration
|
| 548 |
+
"""
|
| 549 |
+
cdef:
|
| 550 |
+
vector[CDeclaration] c_decls
|
| 551 |
+
CDeclaration c_decl
|
| 552 |
+
|
| 553 |
+
for decl in decls:
|
| 554 |
+
c_decls.push_back((<Declaration> decl).unwrap())
|
| 555 |
+
|
| 556 |
+
c_decl = CDeclaration.Sequence(c_decls)
|
| 557 |
+
return Declaration.wrap(c_decl)
|
| 558 |
+
|
| 559 |
+
def __str__(self):
|
| 560 |
+
return frombytes(GetResultValue(DeclarationToString(self.decl)))
|
| 561 |
+
|
| 562 |
+
def __repr__(self):
|
| 563 |
+
return "<pyarrow.acero.Declaration>\n{0}".format(str(self))
|
| 564 |
+
|
| 565 |
+
def to_table(self, bint use_threads=True):
|
| 566 |
+
"""
|
| 567 |
+
Run the declaration and collect the results into a table.
|
| 568 |
+
|
| 569 |
+
This method will implicitly add a sink node to the declaration
|
| 570 |
+
to collect results into a table. It will then create an ExecPlan
|
| 571 |
+
from the declaration, start the exec plan, block until the plan
|
| 572 |
+
has finished, and return the created table.
|
| 573 |
+
|
| 574 |
+
Parameters
|
| 575 |
+
----------
|
| 576 |
+
use_threads : bool, default True
|
| 577 |
+
If set to False, then all CPU work will be done on the calling
|
| 578 |
+
thread. I/O tasks will still happen on the I/O executor
|
| 579 |
+
and may be multi-threaded (but should not use significant CPU
|
| 580 |
+
resources).
|
| 581 |
+
|
| 582 |
+
Returns
|
| 583 |
+
-------
|
| 584 |
+
pyarrow.Table
|
| 585 |
+
"""
|
| 586 |
+
cdef:
|
| 587 |
+
shared_ptr[CTable] c_table
|
| 588 |
+
|
| 589 |
+
with nogil:
|
| 590 |
+
c_table = GetResultValue(DeclarationToTable(self.unwrap(), use_threads))
|
| 591 |
+
return pyarrow_wrap_table(c_table)
|
| 592 |
+
|
| 593 |
+
def to_reader(self, bint use_threads=True):
|
| 594 |
+
"""Run the declaration and return results as a RecordBatchReader.
|
| 595 |
+
|
| 596 |
+
For details about the parameters, see `to_table`.
|
| 597 |
+
|
| 598 |
+
Returns
|
| 599 |
+
-------
|
| 600 |
+
pyarrow.RecordBatchReader
|
| 601 |
+
"""
|
| 602 |
+
cdef:
|
| 603 |
+
RecordBatchReader reader
|
| 604 |
+
reader = RecordBatchReader.__new__(RecordBatchReader)
|
| 605 |
+
reader.reader.reset(
|
| 606 |
+
GetResultValue(DeclarationToReader(self.unwrap(), use_threads)).release()
|
| 607 |
+
)
|
| 608 |
+
return reader
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_azurefs.cpython-312-x86_64-linux-gnu.so
ADDED
|
Binary file (101 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_azurefs.pyx
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# cython: language_level = 3
|
| 19 |
+
|
| 20 |
+
from cython cimport binding
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
from pyarrow.lib import frombytes, tobytes
|
| 24 |
+
from pyarrow.includes.libarrow_fs cimport *
|
| 25 |
+
from pyarrow._fs cimport FileSystem
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
cdef class AzureFileSystem(FileSystem):
|
| 29 |
+
"""
|
| 30 |
+
Azure Blob Storage backed FileSystem implementation
|
| 31 |
+
|
| 32 |
+
This implementation supports flat namespace and hierarchical namespace (HNS) a.k.a.
|
| 33 |
+
Data Lake Gen2 storage accounts. HNS will be automatically detected and HNS specific
|
| 34 |
+
features will be used when they provide a performance advantage. Azurite emulator is
|
| 35 |
+
also supported. Note: `/` is the only supported delimiter.
|
| 36 |
+
|
| 37 |
+
The storage account is considered the root of the filesystem. When enabled, containers
|
| 38 |
+
will be created or deleted during relevant directory operations. Obviously, this also
|
| 39 |
+
requires authentication with the additional permissions.
|
| 40 |
+
|
| 41 |
+
By default `DefaultAzureCredential <https://github.com/Azure/azure-sdk-for-cpp/blob/main/sdk/identity/azure-identity/README.md#defaultazurecredential>`__
|
| 42 |
+
is used for authentication. This means it will try several types of authentication
|
| 43 |
+
and go with the first one that works. If any authentication parameters are provided when
|
| 44 |
+
initialising the FileSystem, they will be used instead of the default credential.
|
| 45 |
+
|
| 46 |
+
Parameters
|
| 47 |
+
----------
|
| 48 |
+
account_name : str
|
| 49 |
+
Azure Blob Storage account name. This is the globally unique identifier for the
|
| 50 |
+
storage account.
|
| 51 |
+
account_key : str, default None
|
| 52 |
+
Account key of the storage account. Pass None to use default credential.
|
| 53 |
+
blob_storage_authority : str, default None
|
| 54 |
+
hostname[:port] of the Blob Service. Defaults to `.blob.core.windows.net`. Useful
|
| 55 |
+
for connecting to a local emulator, like Azurite.
|
| 56 |
+
dfs_storage_authority : str, default None
|
| 57 |
+
hostname[:port] of the Data Lake Gen 2 Service. Defaults to
|
| 58 |
+
`.dfs.core.windows.net`. Useful for connecting to a local emulator, like Azurite.
|
| 59 |
+
blob_storage_scheme : str, default None
|
| 60 |
+
Either `http` or `https`. Defaults to `https`. Useful for connecting to a local
|
| 61 |
+
emulator, like Azurite.
|
| 62 |
+
dfs_storage_scheme : str, default None
|
| 63 |
+
Either `http` or `https`. Defaults to `https`. Useful for connecting to a local
|
| 64 |
+
emulator, like Azurite.
|
| 65 |
+
|
| 66 |
+
Examples
|
| 67 |
+
--------
|
| 68 |
+
>>> from pyarrow import fs
|
| 69 |
+
>>> azure_fs = fs.AzureFileSystem(account_name='myaccount')
|
| 70 |
+
>>> azurite_fs = fs.AzureFileSystem(
|
| 71 |
+
... account_name='devstoreaccount1',
|
| 72 |
+
... account_key='Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==',
|
| 73 |
+
... blob_storage_authority='127.0.0.1:10000',
|
| 74 |
+
... dfs_storage_authority='127.0.0.1:10000',
|
| 75 |
+
... blob_storage_scheme='http',
|
| 76 |
+
... dfs_storage_scheme='http',
|
| 77 |
+
... )
|
| 78 |
+
|
| 79 |
+
For usage of the methods see examples for :func:`~pyarrow.fs.LocalFileSystem`.
|
| 80 |
+
"""
|
| 81 |
+
cdef:
|
| 82 |
+
CAzureFileSystem* azurefs
|
| 83 |
+
c_string account_key
|
| 84 |
+
|
| 85 |
+
def __init__(self, account_name, *, account_key=None, blob_storage_authority=None,
|
| 86 |
+
dfs_storage_authority=None, blob_storage_scheme=None,
|
| 87 |
+
dfs_storage_scheme=None):
|
| 88 |
+
cdef:
|
| 89 |
+
CAzureOptions options
|
| 90 |
+
shared_ptr[CAzureFileSystem] wrapped
|
| 91 |
+
|
| 92 |
+
options.account_name = tobytes(account_name)
|
| 93 |
+
if blob_storage_authority:
|
| 94 |
+
options.blob_storage_authority = tobytes(blob_storage_authority)
|
| 95 |
+
if dfs_storage_authority:
|
| 96 |
+
options.dfs_storage_authority = tobytes(dfs_storage_authority)
|
| 97 |
+
if blob_storage_scheme:
|
| 98 |
+
options.blob_storage_scheme = tobytes(blob_storage_scheme)
|
| 99 |
+
if dfs_storage_scheme:
|
| 100 |
+
options.dfs_storage_scheme = tobytes(dfs_storage_scheme)
|
| 101 |
+
|
| 102 |
+
if account_key:
|
| 103 |
+
options.ConfigureAccountKeyCredential(tobytes(account_key))
|
| 104 |
+
self.account_key = tobytes(account_key)
|
| 105 |
+
else:
|
| 106 |
+
options.ConfigureDefaultCredential()
|
| 107 |
+
|
| 108 |
+
with nogil:
|
| 109 |
+
wrapped = GetResultValue(CAzureFileSystem.Make(options))
|
| 110 |
+
|
| 111 |
+
self.init(<shared_ptr[CFileSystem]> wrapped)
|
| 112 |
+
|
| 113 |
+
cdef init(self, const shared_ptr[CFileSystem]& wrapped):
|
| 114 |
+
FileSystem.init(self, wrapped)
|
| 115 |
+
self.azurefs = <CAzureFileSystem*> wrapped.get()
|
| 116 |
+
|
| 117 |
+
@staticmethod
|
| 118 |
+
@binding(True) # Required for cython < 3
|
| 119 |
+
def _reconstruct(kwargs):
|
| 120 |
+
# __reduce__ doesn't allow passing named arguments directly to the
|
| 121 |
+
# reconstructor, hence this wrapper.
|
| 122 |
+
return AzureFileSystem(**kwargs)
|
| 123 |
+
|
| 124 |
+
def __reduce__(self):
|
| 125 |
+
cdef CAzureOptions opts = self.azurefs.options()
|
| 126 |
+
return (
|
| 127 |
+
AzureFileSystem._reconstruct, (dict(
|
| 128 |
+
account_name=frombytes(opts.account_name),
|
| 129 |
+
account_key=frombytes(self.account_key),
|
| 130 |
+
blob_storage_authority=frombytes(opts.blob_storage_authority),
|
| 131 |
+
dfs_storage_authority=frombytes(opts.dfs_storage_authority),
|
| 132 |
+
blob_storage_scheme=frombytes(opts.blob_storage_scheme),
|
| 133 |
+
dfs_storage_scheme=frombytes(opts.dfs_storage_scheme)
|
| 134 |
+
),))
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute.cpython-312-x86_64-linux-gnu.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fbbe645ea6b09731d207cc08441fb7c2a7b4376d909d01e59abf736fcaf6fc0d
|
| 3 |
+
size 1367552
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute.pxd
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# cython: language_level = 3
|
| 19 |
+
|
| 20 |
+
from pyarrow.lib cimport *
|
| 21 |
+
from pyarrow.includes.common cimport *
|
| 22 |
+
from pyarrow.includes.libarrow cimport *
|
| 23 |
+
|
| 24 |
+
cdef class UdfContext(_Weakrefable):
|
| 25 |
+
cdef:
|
| 26 |
+
CUdfContext c_context
|
| 27 |
+
|
| 28 |
+
cdef void init(self, const CUdfContext& c_context)
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
cdef class FunctionOptions(_Weakrefable):
|
| 32 |
+
cdef:
|
| 33 |
+
shared_ptr[CFunctionOptions] wrapped
|
| 34 |
+
|
| 35 |
+
cdef const CFunctionOptions* get_options(self) except NULL
|
| 36 |
+
cdef void init(self, const shared_ptr[CFunctionOptions]& sp)
|
| 37 |
+
|
| 38 |
+
cdef inline shared_ptr[CFunctionOptions] unwrap(self)
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
cdef class _SortOptions(FunctionOptions):
|
| 42 |
+
pass
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
cdef CExpression _bind(Expression filter, Schema schema) except *
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
cdef class Expression(_Weakrefable):
|
| 49 |
+
|
| 50 |
+
cdef:
|
| 51 |
+
CExpression expr
|
| 52 |
+
|
| 53 |
+
cdef void init(self, const CExpression& sp)
|
| 54 |
+
|
| 55 |
+
@staticmethod
|
| 56 |
+
cdef wrap(const CExpression& sp)
|
| 57 |
+
|
| 58 |
+
cdef inline CExpression unwrap(self)
|
| 59 |
+
|
| 60 |
+
@staticmethod
|
| 61 |
+
cdef Expression _expr_or_scalar(object expr)
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
cdef CExpression _true
|
| 65 |
+
|
| 66 |
+
cdef CFieldRef _ensure_field_ref(value) except *
|
| 67 |
+
|
| 68 |
+
cdef CSortOrder unwrap_sort_order(order) except *
|
| 69 |
+
|
| 70 |
+
cdef CNullPlacement unwrap_null_placement(null_placement) except *
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute.pyx
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_compute_docstrings.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
"""
|
| 19 |
+
Custom documentation additions for compute functions.
|
| 20 |
+
"""
|
| 21 |
+
|
| 22 |
+
function_doc_additions = {}
|
| 23 |
+
|
| 24 |
+
function_doc_additions["filter"] = """
|
| 25 |
+
Examples
|
| 26 |
+
--------
|
| 27 |
+
>>> import pyarrow as pa
|
| 28 |
+
>>> arr = pa.array(["a", "b", "c", None, "e"])
|
| 29 |
+
>>> mask = pa.array([True, False, None, False, True])
|
| 30 |
+
>>> arr.filter(mask)
|
| 31 |
+
<pyarrow.lib.StringArray object at ...>
|
| 32 |
+
[
|
| 33 |
+
"a",
|
| 34 |
+
"e"
|
| 35 |
+
]
|
| 36 |
+
>>> arr.filter(mask, null_selection_behavior='emit_null')
|
| 37 |
+
<pyarrow.lib.StringArray object at ...>
|
| 38 |
+
[
|
| 39 |
+
"a",
|
| 40 |
+
null,
|
| 41 |
+
"e"
|
| 42 |
+
]
|
| 43 |
+
"""
|
| 44 |
+
|
| 45 |
+
function_doc_additions["mode"] = """
|
| 46 |
+
Examples
|
| 47 |
+
--------
|
| 48 |
+
>>> import pyarrow as pa
|
| 49 |
+
>>> import pyarrow.compute as pc
|
| 50 |
+
>>> arr = pa.array([1, 1, 2, 2, 3, 2, 2, 2])
|
| 51 |
+
>>> modes = pc.mode(arr, 2)
|
| 52 |
+
>>> modes[0]
|
| 53 |
+
<pyarrow.StructScalar: [('mode', 2), ('count', 5)]>
|
| 54 |
+
>>> modes[1]
|
| 55 |
+
<pyarrow.StructScalar: [('mode', 1), ('count', 2)]>
|
| 56 |
+
"""
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_csv.cpython-312-x86_64-linux-gnu.so
ADDED
|
Binary file (370 kB). View file
|
|
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_csv.pxd
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# cython: language_level = 3
|
| 19 |
+
|
| 20 |
+
from pyarrow.includes.libarrow cimport *
|
| 21 |
+
from pyarrow.lib cimport _Weakrefable
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
cdef class ConvertOptions(_Weakrefable):
|
| 25 |
+
cdef:
|
| 26 |
+
unique_ptr[CCSVConvertOptions] options
|
| 27 |
+
|
| 28 |
+
@staticmethod
|
| 29 |
+
cdef ConvertOptions wrap(CCSVConvertOptions options)
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
cdef class ParseOptions(_Weakrefable):
|
| 33 |
+
cdef:
|
| 34 |
+
unique_ptr[CCSVParseOptions] options
|
| 35 |
+
object _invalid_row_handler
|
| 36 |
+
|
| 37 |
+
@staticmethod
|
| 38 |
+
cdef ParseOptions wrap(CCSVParseOptions options)
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
cdef class ReadOptions(_Weakrefable):
|
| 42 |
+
cdef:
|
| 43 |
+
unique_ptr[CCSVReadOptions] options
|
| 44 |
+
public object encoding
|
| 45 |
+
|
| 46 |
+
@staticmethod
|
| 47 |
+
cdef ReadOptions wrap(CCSVReadOptions options)
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
cdef class WriteOptions(_Weakrefable):
|
| 51 |
+
cdef:
|
| 52 |
+
unique_ptr[CCSVWriteOptions] options
|
| 53 |
+
|
| 54 |
+
@staticmethod
|
| 55 |
+
cdef WriteOptions wrap(CCSVWriteOptions options)
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_csv.pyx
ADDED
|
@@ -0,0 +1,1542 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# cython: profile=False
|
| 19 |
+
# distutils: language = c++
|
| 20 |
+
# cython: language_level = 3
|
| 21 |
+
|
| 22 |
+
from cython.operator cimport dereference as deref
|
| 23 |
+
|
| 24 |
+
from collections import namedtuple
|
| 25 |
+
from collections.abc import Mapping
|
| 26 |
+
|
| 27 |
+
from pyarrow.includes.common cimport *
|
| 28 |
+
from pyarrow.includes.libarrow cimport *
|
| 29 |
+
from pyarrow.includes.libarrow_python cimport *
|
| 30 |
+
from pyarrow.lib cimport (check_status, Field, MemoryPool, Schema,
|
| 31 |
+
RecordBatchReader, ensure_type,
|
| 32 |
+
maybe_unbox_memory_pool, get_input_stream,
|
| 33 |
+
get_writer, native_transcoding_input_stream,
|
| 34 |
+
pyarrow_unwrap_batch, pyarrow_unwrap_schema,
|
| 35 |
+
pyarrow_unwrap_table, pyarrow_wrap_schema,
|
| 36 |
+
pyarrow_wrap_table, pyarrow_wrap_data_type,
|
| 37 |
+
pyarrow_unwrap_data_type, Table, RecordBatch,
|
| 38 |
+
StopToken, _CRecordBatchWriter)
|
| 39 |
+
from pyarrow.lib import frombytes, tobytes, SignalStopHandler
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
cdef unsigned char _single_char(s) except 0:
|
| 43 |
+
val = ord(s)
|
| 44 |
+
if val == 0 or val > 127:
|
| 45 |
+
raise ValueError("Expecting an ASCII character")
|
| 46 |
+
return <unsigned char> val
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
_InvalidRow = namedtuple(
|
| 50 |
+
"_InvalidRow", ("expected_columns", "actual_columns", "number", "text"),
|
| 51 |
+
module=__name__)
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
class InvalidRow(_InvalidRow):
|
| 55 |
+
"""
|
| 56 |
+
Description of an invalid row in a CSV file.
|
| 57 |
+
|
| 58 |
+
Parameters
|
| 59 |
+
----------
|
| 60 |
+
expected_columns : int
|
| 61 |
+
The expected number of columns in the row.
|
| 62 |
+
actual_columns : int
|
| 63 |
+
The actual number of columns in the row.
|
| 64 |
+
number : int or None
|
| 65 |
+
The physical row number if known, otherwise None.
|
| 66 |
+
text : str
|
| 67 |
+
The contents of the row.
|
| 68 |
+
"""
|
| 69 |
+
__slots__ = ()
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
cdef CInvalidRowResult _handle_invalid_row(
|
| 73 |
+
handler, const CCSVInvalidRow& c_row) except CInvalidRowResult_Error:
|
| 74 |
+
# A negative row number means undetermined (because of parallel reading)
|
| 75 |
+
row_number = c_row.number if c_row.number >= 0 else None
|
| 76 |
+
row = InvalidRow(c_row.expected_columns, c_row.actual_columns,
|
| 77 |
+
row_number, frombytes(<c_string> c_row.text))
|
| 78 |
+
result = handler(row)
|
| 79 |
+
if result == 'error':
|
| 80 |
+
return CInvalidRowResult_Error
|
| 81 |
+
elif result == 'skip':
|
| 82 |
+
return CInvalidRowResult_Skip
|
| 83 |
+
else:
|
| 84 |
+
raise ValueError("Invalid return value for invalid row handler: "
|
| 85 |
+
f"expected 'error' or 'skip', got {result!r}")
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
cdef class ReadOptions(_Weakrefable):
|
| 89 |
+
"""
|
| 90 |
+
Options for reading CSV files.
|
| 91 |
+
|
| 92 |
+
Parameters
|
| 93 |
+
----------
|
| 94 |
+
use_threads : bool, optional (default True)
|
| 95 |
+
Whether to use multiple threads to accelerate reading
|
| 96 |
+
block_size : int, optional
|
| 97 |
+
How much bytes to process at a time from the input stream.
|
| 98 |
+
This will determine multi-threading granularity as well as
|
| 99 |
+
the size of individual record batches or table chunks.
|
| 100 |
+
Minimum valid value for block size is 1
|
| 101 |
+
skip_rows : int, optional (default 0)
|
| 102 |
+
The number of rows to skip before the column names (if any)
|
| 103 |
+
and the CSV data.
|
| 104 |
+
skip_rows_after_names : int, optional (default 0)
|
| 105 |
+
The number of rows to skip after the column names.
|
| 106 |
+
This number can be larger than the number of rows in one
|
| 107 |
+
block, and empty rows are counted.
|
| 108 |
+
The order of application is as follows:
|
| 109 |
+
- `skip_rows` is applied (if non-zero);
|
| 110 |
+
- column names are read (unless `column_names` is set);
|
| 111 |
+
- `skip_rows_after_names` is applied (if non-zero).
|
| 112 |
+
column_names : list, optional
|
| 113 |
+
The column names of the target table. If empty, fall back on
|
| 114 |
+
`autogenerate_column_names`.
|
| 115 |
+
autogenerate_column_names : bool, optional (default False)
|
| 116 |
+
Whether to autogenerate column names if `column_names` is empty.
|
| 117 |
+
If true, column names will be of the form "f0", "f1"...
|
| 118 |
+
If false, column names will be read from the first CSV row
|
| 119 |
+
after `skip_rows`.
|
| 120 |
+
encoding : str, optional (default 'utf8')
|
| 121 |
+
The character encoding of the CSV data. Columns that cannot
|
| 122 |
+
decode using this encoding can still be read as Binary.
|
| 123 |
+
|
| 124 |
+
Examples
|
| 125 |
+
--------
|
| 126 |
+
|
| 127 |
+
Defining an example data:
|
| 128 |
+
|
| 129 |
+
>>> import io
|
| 130 |
+
>>> s = "1,2,3\\nFlamingo,2,2022-03-01\\nHorse,4,2022-03-02\\nBrittle stars,5,2022-03-03\\nCentipede,100,2022-03-04"
|
| 131 |
+
>>> print(s)
|
| 132 |
+
1,2,3
|
| 133 |
+
Flamingo,2,2022-03-01
|
| 134 |
+
Horse,4,2022-03-02
|
| 135 |
+
Brittle stars,5,2022-03-03
|
| 136 |
+
Centipede,100,2022-03-04
|
| 137 |
+
|
| 138 |
+
Ignore the first numbered row and substitute it with defined
|
| 139 |
+
or autogenerated column names:
|
| 140 |
+
|
| 141 |
+
>>> from pyarrow import csv
|
| 142 |
+
>>> read_options = csv.ReadOptions(
|
| 143 |
+
... column_names=["animals", "n_legs", "entry"],
|
| 144 |
+
... skip_rows=1)
|
| 145 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), read_options=read_options)
|
| 146 |
+
pyarrow.Table
|
| 147 |
+
animals: string
|
| 148 |
+
n_legs: int64
|
| 149 |
+
entry: date32[day]
|
| 150 |
+
----
|
| 151 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede"]]
|
| 152 |
+
n_legs: [[2,4,5,100]]
|
| 153 |
+
entry: [[2022-03-01,2022-03-02,2022-03-03,2022-03-04]]
|
| 154 |
+
|
| 155 |
+
>>> read_options = csv.ReadOptions(autogenerate_column_names=True,
|
| 156 |
+
... skip_rows=1)
|
| 157 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), read_options=read_options)
|
| 158 |
+
pyarrow.Table
|
| 159 |
+
f0: string
|
| 160 |
+
f1: int64
|
| 161 |
+
f2: date32[day]
|
| 162 |
+
----
|
| 163 |
+
f0: [["Flamingo","Horse","Brittle stars","Centipede"]]
|
| 164 |
+
f1: [[2,4,5,100]]
|
| 165 |
+
f2: [[2022-03-01,2022-03-02,2022-03-03,2022-03-04]]
|
| 166 |
+
|
| 167 |
+
Remove the first 2 rows of the data:
|
| 168 |
+
|
| 169 |
+
>>> read_options = csv.ReadOptions(skip_rows_after_names=2)
|
| 170 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), read_options=read_options)
|
| 171 |
+
pyarrow.Table
|
| 172 |
+
1: string
|
| 173 |
+
2: int64
|
| 174 |
+
3: date32[day]
|
| 175 |
+
----
|
| 176 |
+
1: [["Brittle stars","Centipede"]]
|
| 177 |
+
2: [[5,100]]
|
| 178 |
+
3: [[2022-03-03,2022-03-04]]
|
| 179 |
+
"""
|
| 180 |
+
|
| 181 |
+
# Avoid mistakingly creating attributes
|
| 182 |
+
__slots__ = ()
|
| 183 |
+
|
| 184 |
+
# __init__() is not called when unpickling, initialize storage here
|
| 185 |
+
def __cinit__(self, *argw, **kwargs):
|
| 186 |
+
self.options.reset(new CCSVReadOptions(CCSVReadOptions.Defaults()))
|
| 187 |
+
|
| 188 |
+
def __init__(self, *, use_threads=None, block_size=None, skip_rows=None,
|
| 189 |
+
skip_rows_after_names=None, column_names=None,
|
| 190 |
+
autogenerate_column_names=None, encoding='utf8'):
|
| 191 |
+
if use_threads is not None:
|
| 192 |
+
self.use_threads = use_threads
|
| 193 |
+
if block_size is not None:
|
| 194 |
+
self.block_size = block_size
|
| 195 |
+
if skip_rows is not None:
|
| 196 |
+
self.skip_rows = skip_rows
|
| 197 |
+
if skip_rows_after_names is not None:
|
| 198 |
+
self.skip_rows_after_names = skip_rows_after_names
|
| 199 |
+
if column_names is not None:
|
| 200 |
+
self.column_names = column_names
|
| 201 |
+
if autogenerate_column_names is not None:
|
| 202 |
+
self.autogenerate_column_names= autogenerate_column_names
|
| 203 |
+
# Python-specific option
|
| 204 |
+
self.encoding = encoding
|
| 205 |
+
|
| 206 |
+
@property
|
| 207 |
+
def use_threads(self):
|
| 208 |
+
"""
|
| 209 |
+
Whether to use multiple threads to accelerate reading.
|
| 210 |
+
"""
|
| 211 |
+
return deref(self.options).use_threads
|
| 212 |
+
|
| 213 |
+
@use_threads.setter
|
| 214 |
+
def use_threads(self, value):
|
| 215 |
+
deref(self.options).use_threads = value
|
| 216 |
+
|
| 217 |
+
@property
|
| 218 |
+
def block_size(self):
|
| 219 |
+
"""
|
| 220 |
+
How much bytes to process at a time from the input stream.
|
| 221 |
+
This will determine multi-threading granularity as well as
|
| 222 |
+
the size of individual record batches or table chunks.
|
| 223 |
+
"""
|
| 224 |
+
return deref(self.options).block_size
|
| 225 |
+
|
| 226 |
+
@block_size.setter
|
| 227 |
+
def block_size(self, value):
|
| 228 |
+
deref(self.options).block_size = value
|
| 229 |
+
|
| 230 |
+
@property
|
| 231 |
+
def skip_rows(self):
|
| 232 |
+
"""
|
| 233 |
+
The number of rows to skip before the column names (if any)
|
| 234 |
+
and the CSV data.
|
| 235 |
+
See `skip_rows_after_names` for interaction description
|
| 236 |
+
"""
|
| 237 |
+
return deref(self.options).skip_rows
|
| 238 |
+
|
| 239 |
+
@skip_rows.setter
|
| 240 |
+
def skip_rows(self, value):
|
| 241 |
+
deref(self.options).skip_rows = value
|
| 242 |
+
|
| 243 |
+
@property
|
| 244 |
+
def skip_rows_after_names(self):
|
| 245 |
+
"""
|
| 246 |
+
The number of rows to skip after the column names.
|
| 247 |
+
This number can be larger than the number of rows in one
|
| 248 |
+
block, and empty rows are counted.
|
| 249 |
+
The order of application is as follows:
|
| 250 |
+
- `skip_rows` is applied (if non-zero);
|
| 251 |
+
- column names are read (unless `column_names` is set);
|
| 252 |
+
- `skip_rows_after_names` is applied (if non-zero).
|
| 253 |
+
"""
|
| 254 |
+
return deref(self.options).skip_rows_after_names
|
| 255 |
+
|
| 256 |
+
@skip_rows_after_names.setter
|
| 257 |
+
def skip_rows_after_names(self, value):
|
| 258 |
+
deref(self.options).skip_rows_after_names = value
|
| 259 |
+
|
| 260 |
+
@property
|
| 261 |
+
def column_names(self):
|
| 262 |
+
"""
|
| 263 |
+
The column names of the target table. If empty, fall back on
|
| 264 |
+
`autogenerate_column_names`.
|
| 265 |
+
"""
|
| 266 |
+
return [frombytes(s) for s in deref(self.options).column_names]
|
| 267 |
+
|
| 268 |
+
@column_names.setter
|
| 269 |
+
def column_names(self, value):
|
| 270 |
+
deref(self.options).column_names.clear()
|
| 271 |
+
for item in value:
|
| 272 |
+
deref(self.options).column_names.push_back(tobytes(item))
|
| 273 |
+
|
| 274 |
+
@property
|
| 275 |
+
def autogenerate_column_names(self):
|
| 276 |
+
"""
|
| 277 |
+
Whether to autogenerate column names if `column_names` is empty.
|
| 278 |
+
If true, column names will be of the form "f0", "f1"...
|
| 279 |
+
If false, column names will be read from the first CSV row
|
| 280 |
+
after `skip_rows`.
|
| 281 |
+
"""
|
| 282 |
+
return deref(self.options).autogenerate_column_names
|
| 283 |
+
|
| 284 |
+
@autogenerate_column_names.setter
|
| 285 |
+
def autogenerate_column_names(self, value):
|
| 286 |
+
deref(self.options).autogenerate_column_names = value
|
| 287 |
+
|
| 288 |
+
def validate(self):
|
| 289 |
+
check_status(deref(self.options).Validate())
|
| 290 |
+
|
| 291 |
+
def equals(self, ReadOptions other):
|
| 292 |
+
"""
|
| 293 |
+
Parameters
|
| 294 |
+
----------
|
| 295 |
+
other : pyarrow.csv.ReadOptions
|
| 296 |
+
|
| 297 |
+
Returns
|
| 298 |
+
-------
|
| 299 |
+
bool
|
| 300 |
+
"""
|
| 301 |
+
return (
|
| 302 |
+
self.use_threads == other.use_threads and
|
| 303 |
+
self.block_size == other.block_size and
|
| 304 |
+
self.skip_rows == other.skip_rows and
|
| 305 |
+
self.skip_rows_after_names == other.skip_rows_after_names and
|
| 306 |
+
self.column_names == other.column_names and
|
| 307 |
+
self.autogenerate_column_names ==
|
| 308 |
+
other.autogenerate_column_names and
|
| 309 |
+
self.encoding == other.encoding
|
| 310 |
+
)
|
| 311 |
+
|
| 312 |
+
@staticmethod
|
| 313 |
+
cdef ReadOptions wrap(CCSVReadOptions options):
|
| 314 |
+
out = ReadOptions()
|
| 315 |
+
out.options.reset(new CCSVReadOptions(move(options)))
|
| 316 |
+
out.encoding = 'utf8' # No way to know this
|
| 317 |
+
return out
|
| 318 |
+
|
| 319 |
+
def __getstate__(self):
|
| 320 |
+
return (self.use_threads, self.block_size, self.skip_rows,
|
| 321 |
+
self.column_names, self.autogenerate_column_names,
|
| 322 |
+
self.encoding, self.skip_rows_after_names)
|
| 323 |
+
|
| 324 |
+
def __setstate__(self, state):
|
| 325 |
+
(self.use_threads, self.block_size, self.skip_rows,
|
| 326 |
+
self.column_names, self.autogenerate_column_names,
|
| 327 |
+
self.encoding, self.skip_rows_after_names) = state
|
| 328 |
+
|
| 329 |
+
def __eq__(self, other):
|
| 330 |
+
try:
|
| 331 |
+
return self.equals(other)
|
| 332 |
+
except TypeError:
|
| 333 |
+
return False
|
| 334 |
+
|
| 335 |
+
|
| 336 |
+
cdef class ParseOptions(_Weakrefable):
|
| 337 |
+
"""
|
| 338 |
+
Options for parsing CSV files.
|
| 339 |
+
|
| 340 |
+
Parameters
|
| 341 |
+
----------
|
| 342 |
+
delimiter : 1-character string, optional (default ',')
|
| 343 |
+
The character delimiting individual cells in the CSV data.
|
| 344 |
+
quote_char : 1-character string or False, optional (default '"')
|
| 345 |
+
The character used optionally for quoting CSV values
|
| 346 |
+
(False if quoting is not allowed).
|
| 347 |
+
double_quote : bool, optional (default True)
|
| 348 |
+
Whether two quotes in a quoted CSV value denote a single quote
|
| 349 |
+
in the data.
|
| 350 |
+
escape_char : 1-character string or False, optional (default False)
|
| 351 |
+
The character used optionally for escaping special characters
|
| 352 |
+
(False if escaping is not allowed).
|
| 353 |
+
newlines_in_values : bool, optional (default False)
|
| 354 |
+
Whether newline characters are allowed in CSV values.
|
| 355 |
+
Setting this to True reduces the performance of multi-threaded
|
| 356 |
+
CSV reading.
|
| 357 |
+
ignore_empty_lines : bool, optional (default True)
|
| 358 |
+
Whether empty lines are ignored in CSV input.
|
| 359 |
+
If False, an empty line is interpreted as containing a single empty
|
| 360 |
+
value (assuming a one-column CSV file).
|
| 361 |
+
invalid_row_handler : callable, optional (default None)
|
| 362 |
+
If not None, this object is called for each CSV row that fails
|
| 363 |
+
parsing (because of a mismatching number of columns).
|
| 364 |
+
It should accept a single InvalidRow argument and return either
|
| 365 |
+
"skip" or "error" depending on the desired outcome.
|
| 366 |
+
|
| 367 |
+
Examples
|
| 368 |
+
--------
|
| 369 |
+
|
| 370 |
+
Defining an example file from bytes object:
|
| 371 |
+
|
| 372 |
+
>>> import io
|
| 373 |
+
>>> s = (
|
| 374 |
+
... "animals;n_legs;entry\\n"
|
| 375 |
+
... "Flamingo;2;2022-03-01\\n"
|
| 376 |
+
... "# Comment here:\\n"
|
| 377 |
+
... "Horse;4;2022-03-02\\n"
|
| 378 |
+
... "Brittle stars;5;2022-03-03\\n"
|
| 379 |
+
... "Centipede;100;2022-03-04"
|
| 380 |
+
... )
|
| 381 |
+
>>> print(s)
|
| 382 |
+
animals;n_legs;entry
|
| 383 |
+
Flamingo;2;2022-03-01
|
| 384 |
+
# Comment here:
|
| 385 |
+
Horse;4;2022-03-02
|
| 386 |
+
Brittle stars;5;2022-03-03
|
| 387 |
+
Centipede;100;2022-03-04
|
| 388 |
+
>>> source = io.BytesIO(s.encode())
|
| 389 |
+
|
| 390 |
+
Read the data from a file skipping rows with comments
|
| 391 |
+
and defining the delimiter:
|
| 392 |
+
|
| 393 |
+
>>> from pyarrow import csv
|
| 394 |
+
>>> def skip_comment(row):
|
| 395 |
+
... if row.text.startswith("# "):
|
| 396 |
+
... return 'skip'
|
| 397 |
+
... else:
|
| 398 |
+
... return 'error'
|
| 399 |
+
...
|
| 400 |
+
>>> parse_options = csv.ParseOptions(delimiter=";", invalid_row_handler=skip_comment)
|
| 401 |
+
>>> csv.read_csv(source, parse_options=parse_options)
|
| 402 |
+
pyarrow.Table
|
| 403 |
+
animals: string
|
| 404 |
+
n_legs: int64
|
| 405 |
+
entry: date32[day]
|
| 406 |
+
----
|
| 407 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede"]]
|
| 408 |
+
n_legs: [[2,4,5,100]]
|
| 409 |
+
entry: [[2022-03-01,2022-03-02,2022-03-03,2022-03-04]]
|
| 410 |
+
"""
|
| 411 |
+
__slots__ = ()
|
| 412 |
+
|
| 413 |
+
def __cinit__(self, *argw, **kwargs):
|
| 414 |
+
self._invalid_row_handler = None
|
| 415 |
+
self.options.reset(new CCSVParseOptions(CCSVParseOptions.Defaults()))
|
| 416 |
+
|
| 417 |
+
def __init__(self, *, delimiter=None, quote_char=None, double_quote=None,
|
| 418 |
+
escape_char=None, newlines_in_values=None,
|
| 419 |
+
ignore_empty_lines=None, invalid_row_handler=None):
|
| 420 |
+
if delimiter is not None:
|
| 421 |
+
self.delimiter = delimiter
|
| 422 |
+
if quote_char is not None:
|
| 423 |
+
self.quote_char = quote_char
|
| 424 |
+
if double_quote is not None:
|
| 425 |
+
self.double_quote = double_quote
|
| 426 |
+
if escape_char is not None:
|
| 427 |
+
self.escape_char = escape_char
|
| 428 |
+
if newlines_in_values is not None:
|
| 429 |
+
self.newlines_in_values = newlines_in_values
|
| 430 |
+
if ignore_empty_lines is not None:
|
| 431 |
+
self.ignore_empty_lines = ignore_empty_lines
|
| 432 |
+
if invalid_row_handler is not None:
|
| 433 |
+
self.invalid_row_handler = invalid_row_handler
|
| 434 |
+
|
| 435 |
+
@property
|
| 436 |
+
def delimiter(self):
|
| 437 |
+
"""
|
| 438 |
+
The character delimiting individual cells in the CSV data.
|
| 439 |
+
"""
|
| 440 |
+
return chr(deref(self.options).delimiter)
|
| 441 |
+
|
| 442 |
+
@delimiter.setter
|
| 443 |
+
def delimiter(self, value):
|
| 444 |
+
deref(self.options).delimiter = _single_char(value)
|
| 445 |
+
|
| 446 |
+
@property
|
| 447 |
+
def quote_char(self):
|
| 448 |
+
"""
|
| 449 |
+
The character used optionally for quoting CSV values
|
| 450 |
+
(False if quoting is not allowed).
|
| 451 |
+
"""
|
| 452 |
+
if deref(self.options).quoting:
|
| 453 |
+
return chr(deref(self.options).quote_char)
|
| 454 |
+
else:
|
| 455 |
+
return False
|
| 456 |
+
|
| 457 |
+
@quote_char.setter
|
| 458 |
+
def quote_char(self, value):
|
| 459 |
+
if value is False:
|
| 460 |
+
deref(self.options).quoting = False
|
| 461 |
+
else:
|
| 462 |
+
deref(self.options).quote_char = _single_char(value)
|
| 463 |
+
deref(self.options).quoting = True
|
| 464 |
+
|
| 465 |
+
@property
|
| 466 |
+
def double_quote(self):
|
| 467 |
+
"""
|
| 468 |
+
Whether two quotes in a quoted CSV value denote a single quote
|
| 469 |
+
in the data.
|
| 470 |
+
"""
|
| 471 |
+
return deref(self.options).double_quote
|
| 472 |
+
|
| 473 |
+
@double_quote.setter
|
| 474 |
+
def double_quote(self, value):
|
| 475 |
+
deref(self.options).double_quote = value
|
| 476 |
+
|
| 477 |
+
@property
|
| 478 |
+
def escape_char(self):
|
| 479 |
+
"""
|
| 480 |
+
The character used optionally for escaping special characters
|
| 481 |
+
(False if escaping is not allowed).
|
| 482 |
+
"""
|
| 483 |
+
if deref(self.options).escaping:
|
| 484 |
+
return chr(deref(self.options).escape_char)
|
| 485 |
+
else:
|
| 486 |
+
return False
|
| 487 |
+
|
| 488 |
+
@escape_char.setter
|
| 489 |
+
def escape_char(self, value):
|
| 490 |
+
if value is False:
|
| 491 |
+
deref(self.options).escaping = False
|
| 492 |
+
else:
|
| 493 |
+
deref(self.options).escape_char = _single_char(value)
|
| 494 |
+
deref(self.options).escaping = True
|
| 495 |
+
|
| 496 |
+
@property
|
| 497 |
+
def newlines_in_values(self):
|
| 498 |
+
"""
|
| 499 |
+
Whether newline characters are allowed in CSV values.
|
| 500 |
+
Setting this to True reduces the performance of multi-threaded
|
| 501 |
+
CSV reading.
|
| 502 |
+
"""
|
| 503 |
+
return deref(self.options).newlines_in_values
|
| 504 |
+
|
| 505 |
+
@newlines_in_values.setter
|
| 506 |
+
def newlines_in_values(self, value):
|
| 507 |
+
deref(self.options).newlines_in_values = value
|
| 508 |
+
|
| 509 |
+
@property
|
| 510 |
+
def ignore_empty_lines(self):
|
| 511 |
+
"""
|
| 512 |
+
Whether empty lines are ignored in CSV input.
|
| 513 |
+
If False, an empty line is interpreted as containing a single empty
|
| 514 |
+
value (assuming a one-column CSV file).
|
| 515 |
+
"""
|
| 516 |
+
return deref(self.options).ignore_empty_lines
|
| 517 |
+
|
| 518 |
+
@property
|
| 519 |
+
def invalid_row_handler(self):
|
| 520 |
+
"""
|
| 521 |
+
Optional handler for invalid rows.
|
| 522 |
+
|
| 523 |
+
If not None, this object is called for each CSV row that fails
|
| 524 |
+
parsing (because of a mismatching number of columns).
|
| 525 |
+
It should accept a single InvalidRow argument and return either
|
| 526 |
+
"skip" or "error" depending on the desired outcome.
|
| 527 |
+
"""
|
| 528 |
+
return self._invalid_row_handler
|
| 529 |
+
|
| 530 |
+
@invalid_row_handler.setter
|
| 531 |
+
def invalid_row_handler(self, value):
|
| 532 |
+
if value is not None and not callable(value):
|
| 533 |
+
raise TypeError("Expected callable or None, "
|
| 534 |
+
f"got instance of {type(value)!r}")
|
| 535 |
+
self._invalid_row_handler = value
|
| 536 |
+
deref(self.options).invalid_row_handler = MakeInvalidRowHandler(
|
| 537 |
+
<function[PyInvalidRowCallback]> &_handle_invalid_row, value)
|
| 538 |
+
|
| 539 |
+
@ignore_empty_lines.setter
|
| 540 |
+
def ignore_empty_lines(self, value):
|
| 541 |
+
deref(self.options).ignore_empty_lines = value
|
| 542 |
+
|
| 543 |
+
def validate(self):
|
| 544 |
+
check_status(deref(self.options).Validate())
|
| 545 |
+
|
| 546 |
+
def equals(self, ParseOptions other):
|
| 547 |
+
"""
|
| 548 |
+
Parameters
|
| 549 |
+
----------
|
| 550 |
+
other : pyarrow.csv.ParseOptions
|
| 551 |
+
|
| 552 |
+
Returns
|
| 553 |
+
-------
|
| 554 |
+
bool
|
| 555 |
+
"""
|
| 556 |
+
return (
|
| 557 |
+
self.delimiter == other.delimiter and
|
| 558 |
+
self.quote_char == other.quote_char and
|
| 559 |
+
self.double_quote == other.double_quote and
|
| 560 |
+
self.escape_char == other.escape_char and
|
| 561 |
+
self.newlines_in_values == other.newlines_in_values and
|
| 562 |
+
self.ignore_empty_lines == other.ignore_empty_lines and
|
| 563 |
+
self._invalid_row_handler == other._invalid_row_handler
|
| 564 |
+
)
|
| 565 |
+
|
| 566 |
+
@staticmethod
|
| 567 |
+
cdef ParseOptions wrap(CCSVParseOptions options):
|
| 568 |
+
out = ParseOptions()
|
| 569 |
+
out.options.reset(new CCSVParseOptions(move(options)))
|
| 570 |
+
return out
|
| 571 |
+
|
| 572 |
+
def __getstate__(self):
|
| 573 |
+
return (self.delimiter, self.quote_char, self.double_quote,
|
| 574 |
+
self.escape_char, self.newlines_in_values,
|
| 575 |
+
self.ignore_empty_lines, self.invalid_row_handler)
|
| 576 |
+
|
| 577 |
+
def __setstate__(self, state):
|
| 578 |
+
(self.delimiter, self.quote_char, self.double_quote,
|
| 579 |
+
self.escape_char, self.newlines_in_values,
|
| 580 |
+
self.ignore_empty_lines, self.invalid_row_handler) = state
|
| 581 |
+
|
| 582 |
+
def __eq__(self, other):
|
| 583 |
+
try:
|
| 584 |
+
return self.equals(other)
|
| 585 |
+
except TypeError:
|
| 586 |
+
return False
|
| 587 |
+
|
| 588 |
+
|
| 589 |
+
cdef class _ISO8601(_Weakrefable):
|
| 590 |
+
"""
|
| 591 |
+
A special object indicating ISO-8601 parsing.
|
| 592 |
+
"""
|
| 593 |
+
__slots__ = ()
|
| 594 |
+
|
| 595 |
+
def __str__(self):
|
| 596 |
+
return 'ISO8601'
|
| 597 |
+
|
| 598 |
+
def __eq__(self, other):
|
| 599 |
+
return isinstance(other, _ISO8601)
|
| 600 |
+
|
| 601 |
+
|
| 602 |
+
ISO8601 = _ISO8601()
|
| 603 |
+
|
| 604 |
+
|
| 605 |
+
cdef class ConvertOptions(_Weakrefable):
|
| 606 |
+
"""
|
| 607 |
+
Options for converting CSV data.
|
| 608 |
+
|
| 609 |
+
Parameters
|
| 610 |
+
----------
|
| 611 |
+
check_utf8 : bool, optional (default True)
|
| 612 |
+
Whether to check UTF8 validity of string columns.
|
| 613 |
+
column_types : pyarrow.Schema or dict, optional
|
| 614 |
+
Explicitly map column names to column types. Passing this argument
|
| 615 |
+
disables type inference on the defined columns.
|
| 616 |
+
null_values : list, optional
|
| 617 |
+
A sequence of strings that denote nulls in the data
|
| 618 |
+
(defaults are appropriate in most cases). Note that by default,
|
| 619 |
+
string columns are not checked for null values. To enable
|
| 620 |
+
null checking for those, specify ``strings_can_be_null=True``.
|
| 621 |
+
true_values : list, optional
|
| 622 |
+
A sequence of strings that denote true booleans in the data
|
| 623 |
+
(defaults are appropriate in most cases).
|
| 624 |
+
false_values : list, optional
|
| 625 |
+
A sequence of strings that denote false booleans in the data
|
| 626 |
+
(defaults are appropriate in most cases).
|
| 627 |
+
decimal_point : 1-character string, optional (default '.')
|
| 628 |
+
The character used as decimal point in floating-point and decimal
|
| 629 |
+
data.
|
| 630 |
+
strings_can_be_null : bool, optional (default False)
|
| 631 |
+
Whether string / binary columns can have null values.
|
| 632 |
+
If true, then strings in null_values are considered null for
|
| 633 |
+
string columns.
|
| 634 |
+
If false, then all strings are valid string values.
|
| 635 |
+
quoted_strings_can_be_null : bool, optional (default True)
|
| 636 |
+
Whether quoted values can be null.
|
| 637 |
+
If true, then strings in "null_values" are also considered null
|
| 638 |
+
when they appear quoted in the CSV file. Otherwise, quoted values
|
| 639 |
+
are never considered null.
|
| 640 |
+
include_columns : list, optional
|
| 641 |
+
The names of columns to include in the Table.
|
| 642 |
+
If empty, the Table will include all columns from the CSV file.
|
| 643 |
+
If not empty, only these columns will be included, in this order.
|
| 644 |
+
include_missing_columns : bool, optional (default False)
|
| 645 |
+
If false, columns in `include_columns` but not in the CSV file will
|
| 646 |
+
error out.
|
| 647 |
+
If true, columns in `include_columns` but not in the CSV file will
|
| 648 |
+
produce a column of nulls (whose type is selected using
|
| 649 |
+
`column_types`, or null by default).
|
| 650 |
+
This option is ignored if `include_columns` is empty.
|
| 651 |
+
auto_dict_encode : bool, optional (default False)
|
| 652 |
+
Whether to try to automatically dict-encode string / binary data.
|
| 653 |
+
If true, then when type inference detects a string or binary column,
|
| 654 |
+
it it dict-encoded up to `auto_dict_max_cardinality` distinct values
|
| 655 |
+
(per chunk), after which it switches to regular encoding.
|
| 656 |
+
This setting is ignored for non-inferred columns (those in
|
| 657 |
+
`column_types`).
|
| 658 |
+
auto_dict_max_cardinality : int, optional
|
| 659 |
+
The maximum dictionary cardinality for `auto_dict_encode`.
|
| 660 |
+
This value is per chunk.
|
| 661 |
+
timestamp_parsers : list, optional
|
| 662 |
+
A sequence of strptime()-compatible format strings, tried in order
|
| 663 |
+
when attempting to infer or convert timestamp values (the special
|
| 664 |
+
value ISO8601() can also be given). By default, a fast built-in
|
| 665 |
+
ISO-8601 parser is used.
|
| 666 |
+
|
| 667 |
+
Examples
|
| 668 |
+
--------
|
| 669 |
+
|
| 670 |
+
Defining an example data:
|
| 671 |
+
|
| 672 |
+
>>> import io
|
| 673 |
+
>>> s = (
|
| 674 |
+
... "animals,n_legs,entry,fast\\n"
|
| 675 |
+
... "Flamingo,2,01/03/2022,Yes\\n"
|
| 676 |
+
... "Horse,4,02/03/2022,Yes\\n"
|
| 677 |
+
... "Brittle stars,5,03/03/2022,No\\n"
|
| 678 |
+
... "Centipede,100,04/03/2022,No\\n"
|
| 679 |
+
... ",6,05/03/2022,"
|
| 680 |
+
... )
|
| 681 |
+
>>> print(s)
|
| 682 |
+
animals,n_legs,entry,fast
|
| 683 |
+
Flamingo,2,01/03/2022,Yes
|
| 684 |
+
Horse,4,02/03/2022,Yes
|
| 685 |
+
Brittle stars,5,03/03/2022,No
|
| 686 |
+
Centipede,100,04/03/2022,No
|
| 687 |
+
,6,05/03/2022,
|
| 688 |
+
|
| 689 |
+
Change the type of a column:
|
| 690 |
+
|
| 691 |
+
>>> import pyarrow as pa
|
| 692 |
+
>>> from pyarrow import csv
|
| 693 |
+
>>> convert_options = csv.ConvertOptions(column_types={"n_legs": pa.float64()})
|
| 694 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 695 |
+
pyarrow.Table
|
| 696 |
+
animals: string
|
| 697 |
+
n_legs: double
|
| 698 |
+
entry: string
|
| 699 |
+
fast: string
|
| 700 |
+
----
|
| 701 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede",""]]
|
| 702 |
+
n_legs: [[2,4,5,100,6]]
|
| 703 |
+
entry: [["01/03/2022","02/03/2022","03/03/2022","04/03/2022","05/03/2022"]]
|
| 704 |
+
fast: [["Yes","Yes","No","No",""]]
|
| 705 |
+
|
| 706 |
+
Define a date parsing format to get a timestamp type column
|
| 707 |
+
(in case dates are not in ISO format and not converted by default):
|
| 708 |
+
|
| 709 |
+
>>> convert_options = csv.ConvertOptions(
|
| 710 |
+
... timestamp_parsers=["%m/%d/%Y", "%m-%d-%Y"])
|
| 711 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 712 |
+
pyarrow.Table
|
| 713 |
+
animals: string
|
| 714 |
+
n_legs: int64
|
| 715 |
+
entry: timestamp[s]
|
| 716 |
+
fast: string
|
| 717 |
+
----
|
| 718 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede",""]]
|
| 719 |
+
n_legs: [[2,4,5,100,6]]
|
| 720 |
+
entry: [[2022-01-03 00:00:00,2022-02-03 00:00:00,2022-03-03 00:00:00,2022-04-03 00:00:00,2022-05-03 00:00:00]]
|
| 721 |
+
fast: [["Yes","Yes","No","No",""]]
|
| 722 |
+
|
| 723 |
+
Specify a subset of columns to be read:
|
| 724 |
+
|
| 725 |
+
>>> convert_options = csv.ConvertOptions(
|
| 726 |
+
... include_columns=["animals", "n_legs"])
|
| 727 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 728 |
+
pyarrow.Table
|
| 729 |
+
animals: string
|
| 730 |
+
n_legs: int64
|
| 731 |
+
----
|
| 732 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede",""]]
|
| 733 |
+
n_legs: [[2,4,5,100,6]]
|
| 734 |
+
|
| 735 |
+
List additional column to be included as a null typed column:
|
| 736 |
+
|
| 737 |
+
>>> convert_options = csv.ConvertOptions(
|
| 738 |
+
... include_columns=["animals", "n_legs", "location"],
|
| 739 |
+
... include_missing_columns=True)
|
| 740 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 741 |
+
pyarrow.Table
|
| 742 |
+
animals: string
|
| 743 |
+
n_legs: int64
|
| 744 |
+
location: null
|
| 745 |
+
----
|
| 746 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede",""]]
|
| 747 |
+
n_legs: [[2,4,5,100,6]]
|
| 748 |
+
location: [5 nulls]
|
| 749 |
+
|
| 750 |
+
Define columns as dictionary type (by default only the
|
| 751 |
+
string/binary columns are dictionary encoded):
|
| 752 |
+
|
| 753 |
+
>>> convert_options = csv.ConvertOptions(
|
| 754 |
+
... timestamp_parsers=["%m/%d/%Y", "%m-%d-%Y"],
|
| 755 |
+
... auto_dict_encode=True)
|
| 756 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 757 |
+
pyarrow.Table
|
| 758 |
+
animals: dictionary<values=string, indices=int32, ordered=0>
|
| 759 |
+
n_legs: int64
|
| 760 |
+
entry: timestamp[s]
|
| 761 |
+
fast: dictionary<values=string, indices=int32, ordered=0>
|
| 762 |
+
----
|
| 763 |
+
animals: [ -- dictionary:
|
| 764 |
+
["Flamingo","Horse","Brittle stars","Centipede",""] -- indices:
|
| 765 |
+
[0,1,2,3,4]]
|
| 766 |
+
n_legs: [[2,4,5,100,6]]
|
| 767 |
+
entry: [[2022-01-03 00:00:00,2022-02-03 00:00:00,2022-03-03 00:00:00,2022-04-03 00:00:00,2022-05-03 00:00:00]]
|
| 768 |
+
fast: [ -- dictionary:
|
| 769 |
+
["Yes","No",""] -- indices:
|
| 770 |
+
[0,0,1,1,2]]
|
| 771 |
+
|
| 772 |
+
Set upper limit for the number of categories. If the categories
|
| 773 |
+
is more than the limit, the conversion to dictionary will not
|
| 774 |
+
happen:
|
| 775 |
+
|
| 776 |
+
>>> convert_options = csv.ConvertOptions(
|
| 777 |
+
... include_columns=["animals"],
|
| 778 |
+
... auto_dict_encode=True,
|
| 779 |
+
... auto_dict_max_cardinality=2)
|
| 780 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 781 |
+
pyarrow.Table
|
| 782 |
+
animals: string
|
| 783 |
+
----
|
| 784 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede",""]]
|
| 785 |
+
|
| 786 |
+
Set empty strings to missing values:
|
| 787 |
+
|
| 788 |
+
>>> convert_options = csv.ConvertOptions(include_columns=["animals", "n_legs"],
|
| 789 |
+
... strings_can_be_null=True)
|
| 790 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 791 |
+
pyarrow.Table
|
| 792 |
+
animals: string
|
| 793 |
+
n_legs: int64
|
| 794 |
+
----
|
| 795 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede",null]]
|
| 796 |
+
n_legs: [[2,4,5,100,6]]
|
| 797 |
+
|
| 798 |
+
Define values to be True and False when converting a column
|
| 799 |
+
into a bool type:
|
| 800 |
+
|
| 801 |
+
>>> convert_options = csv.ConvertOptions(
|
| 802 |
+
... include_columns=["fast"],
|
| 803 |
+
... false_values=["No"],
|
| 804 |
+
... true_values=["Yes"])
|
| 805 |
+
>>> csv.read_csv(io.BytesIO(s.encode()), convert_options=convert_options)
|
| 806 |
+
pyarrow.Table
|
| 807 |
+
fast: bool
|
| 808 |
+
----
|
| 809 |
+
fast: [[true,true,false,false,null]]
|
| 810 |
+
"""
|
| 811 |
+
|
| 812 |
+
# Avoid mistakingly creating attributes
|
| 813 |
+
__slots__ = ()
|
| 814 |
+
|
| 815 |
+
def __cinit__(self, *argw, **kwargs):
|
| 816 |
+
self.options.reset(
|
| 817 |
+
new CCSVConvertOptions(CCSVConvertOptions.Defaults()))
|
| 818 |
+
|
| 819 |
+
def __init__(self, *, check_utf8=None, column_types=None, null_values=None,
|
| 820 |
+
true_values=None, false_values=None, decimal_point=None,
|
| 821 |
+
strings_can_be_null=None, quoted_strings_can_be_null=None,
|
| 822 |
+
include_columns=None, include_missing_columns=None,
|
| 823 |
+
auto_dict_encode=None, auto_dict_max_cardinality=None,
|
| 824 |
+
timestamp_parsers=None):
|
| 825 |
+
if check_utf8 is not None:
|
| 826 |
+
self.check_utf8 = check_utf8
|
| 827 |
+
if column_types is not None:
|
| 828 |
+
self.column_types = column_types
|
| 829 |
+
if null_values is not None:
|
| 830 |
+
self.null_values = null_values
|
| 831 |
+
if true_values is not None:
|
| 832 |
+
self.true_values = true_values
|
| 833 |
+
if false_values is not None:
|
| 834 |
+
self.false_values = false_values
|
| 835 |
+
if decimal_point is not None:
|
| 836 |
+
self.decimal_point = decimal_point
|
| 837 |
+
if strings_can_be_null is not None:
|
| 838 |
+
self.strings_can_be_null = strings_can_be_null
|
| 839 |
+
if quoted_strings_can_be_null is not None:
|
| 840 |
+
self.quoted_strings_can_be_null = quoted_strings_can_be_null
|
| 841 |
+
if include_columns is not None:
|
| 842 |
+
self.include_columns = include_columns
|
| 843 |
+
if include_missing_columns is not None:
|
| 844 |
+
self.include_missing_columns = include_missing_columns
|
| 845 |
+
if auto_dict_encode is not None:
|
| 846 |
+
self.auto_dict_encode = auto_dict_encode
|
| 847 |
+
if auto_dict_max_cardinality is not None:
|
| 848 |
+
self.auto_dict_max_cardinality = auto_dict_max_cardinality
|
| 849 |
+
if timestamp_parsers is not None:
|
| 850 |
+
self.timestamp_parsers = timestamp_parsers
|
| 851 |
+
|
| 852 |
+
@property
|
| 853 |
+
def check_utf8(self):
|
| 854 |
+
"""
|
| 855 |
+
Whether to check UTF8 validity of string columns.
|
| 856 |
+
"""
|
| 857 |
+
return deref(self.options).check_utf8
|
| 858 |
+
|
| 859 |
+
@check_utf8.setter
|
| 860 |
+
def check_utf8(self, value):
|
| 861 |
+
deref(self.options).check_utf8 = value
|
| 862 |
+
|
| 863 |
+
@property
|
| 864 |
+
def strings_can_be_null(self):
|
| 865 |
+
"""
|
| 866 |
+
Whether string / binary columns can have null values.
|
| 867 |
+
"""
|
| 868 |
+
return deref(self.options).strings_can_be_null
|
| 869 |
+
|
| 870 |
+
@strings_can_be_null.setter
|
| 871 |
+
def strings_can_be_null(self, value):
|
| 872 |
+
deref(self.options).strings_can_be_null = value
|
| 873 |
+
|
| 874 |
+
@property
|
| 875 |
+
def quoted_strings_can_be_null(self):
|
| 876 |
+
"""
|
| 877 |
+
Whether quoted values can be null.
|
| 878 |
+
"""
|
| 879 |
+
return deref(self.options).quoted_strings_can_be_null
|
| 880 |
+
|
| 881 |
+
@quoted_strings_can_be_null.setter
|
| 882 |
+
def quoted_strings_can_be_null(self, value):
|
| 883 |
+
deref(self.options).quoted_strings_can_be_null = value
|
| 884 |
+
|
| 885 |
+
@property
|
| 886 |
+
def column_types(self):
|
| 887 |
+
"""
|
| 888 |
+
Explicitly map column names to column types.
|
| 889 |
+
"""
|
| 890 |
+
d = {frombytes(item.first): pyarrow_wrap_data_type(item.second)
|
| 891 |
+
for item in deref(self.options).column_types}
|
| 892 |
+
return d
|
| 893 |
+
|
| 894 |
+
@column_types.setter
|
| 895 |
+
def column_types(self, value):
|
| 896 |
+
cdef:
|
| 897 |
+
shared_ptr[CDataType] typ
|
| 898 |
+
|
| 899 |
+
if isinstance(value, Mapping):
|
| 900 |
+
value = value.items()
|
| 901 |
+
|
| 902 |
+
deref(self.options).column_types.clear()
|
| 903 |
+
for item in value:
|
| 904 |
+
if isinstance(item, Field):
|
| 905 |
+
k = item.name
|
| 906 |
+
v = item.type
|
| 907 |
+
else:
|
| 908 |
+
k, v = item
|
| 909 |
+
typ = pyarrow_unwrap_data_type(ensure_type(v))
|
| 910 |
+
assert typ != NULL
|
| 911 |
+
deref(self.options).column_types[tobytes(k)] = typ
|
| 912 |
+
|
| 913 |
+
@property
|
| 914 |
+
def null_values(self):
|
| 915 |
+
"""
|
| 916 |
+
A sequence of strings that denote nulls in the data.
|
| 917 |
+
"""
|
| 918 |
+
return [frombytes(x) for x in deref(self.options).null_values]
|
| 919 |
+
|
| 920 |
+
@null_values.setter
|
| 921 |
+
def null_values(self, value):
|
| 922 |
+
deref(self.options).null_values = [tobytes(x) for x in value]
|
| 923 |
+
|
| 924 |
+
@property
|
| 925 |
+
def true_values(self):
|
| 926 |
+
"""
|
| 927 |
+
A sequence of strings that denote true booleans in the data.
|
| 928 |
+
"""
|
| 929 |
+
return [frombytes(x) for x in deref(self.options).true_values]
|
| 930 |
+
|
| 931 |
+
@true_values.setter
|
| 932 |
+
def true_values(self, value):
|
| 933 |
+
deref(self.options).true_values = [tobytes(x) for x in value]
|
| 934 |
+
|
| 935 |
+
@property
|
| 936 |
+
def false_values(self):
|
| 937 |
+
"""
|
| 938 |
+
A sequence of strings that denote false booleans in the data.
|
| 939 |
+
"""
|
| 940 |
+
return [frombytes(x) for x in deref(self.options).false_values]
|
| 941 |
+
|
| 942 |
+
@false_values.setter
|
| 943 |
+
def false_values(self, value):
|
| 944 |
+
deref(self.options).false_values = [tobytes(x) for x in value]
|
| 945 |
+
|
| 946 |
+
@property
|
| 947 |
+
def decimal_point(self):
|
| 948 |
+
"""
|
| 949 |
+
The character used as decimal point in floating-point and decimal
|
| 950 |
+
data.
|
| 951 |
+
"""
|
| 952 |
+
return chr(deref(self.options).decimal_point)
|
| 953 |
+
|
| 954 |
+
@decimal_point.setter
|
| 955 |
+
def decimal_point(self, value):
|
| 956 |
+
deref(self.options).decimal_point = _single_char(value)
|
| 957 |
+
|
| 958 |
+
@property
|
| 959 |
+
def auto_dict_encode(self):
|
| 960 |
+
"""
|
| 961 |
+
Whether to try to automatically dict-encode string / binary data.
|
| 962 |
+
"""
|
| 963 |
+
return deref(self.options).auto_dict_encode
|
| 964 |
+
|
| 965 |
+
@auto_dict_encode.setter
|
| 966 |
+
def auto_dict_encode(self, value):
|
| 967 |
+
deref(self.options).auto_dict_encode = value
|
| 968 |
+
|
| 969 |
+
@property
|
| 970 |
+
def auto_dict_max_cardinality(self):
|
| 971 |
+
"""
|
| 972 |
+
The maximum dictionary cardinality for `auto_dict_encode`.
|
| 973 |
+
|
| 974 |
+
This value is per chunk.
|
| 975 |
+
"""
|
| 976 |
+
return deref(self.options).auto_dict_max_cardinality
|
| 977 |
+
|
| 978 |
+
@auto_dict_max_cardinality.setter
|
| 979 |
+
def auto_dict_max_cardinality(self, value):
|
| 980 |
+
deref(self.options).auto_dict_max_cardinality = value
|
| 981 |
+
|
| 982 |
+
@property
|
| 983 |
+
def include_columns(self):
|
| 984 |
+
"""
|
| 985 |
+
The names of columns to include in the Table.
|
| 986 |
+
|
| 987 |
+
If empty, the Table will include all columns from the CSV file.
|
| 988 |
+
If not empty, only these columns will be included, in this order.
|
| 989 |
+
"""
|
| 990 |
+
return [frombytes(s) for s in deref(self.options).include_columns]
|
| 991 |
+
|
| 992 |
+
@include_columns.setter
|
| 993 |
+
def include_columns(self, value):
|
| 994 |
+
deref(self.options).include_columns.clear()
|
| 995 |
+
for item in value:
|
| 996 |
+
deref(self.options).include_columns.push_back(tobytes(item))
|
| 997 |
+
|
| 998 |
+
@property
|
| 999 |
+
def include_missing_columns(self):
|
| 1000 |
+
"""
|
| 1001 |
+
If false, columns in `include_columns` but not in the CSV file will
|
| 1002 |
+
error out.
|
| 1003 |
+
If true, columns in `include_columns` but not in the CSV file will
|
| 1004 |
+
produce a null column (whose type is selected using `column_types`,
|
| 1005 |
+
or null by default).
|
| 1006 |
+
This option is ignored if `include_columns` is empty.
|
| 1007 |
+
"""
|
| 1008 |
+
return deref(self.options).include_missing_columns
|
| 1009 |
+
|
| 1010 |
+
@include_missing_columns.setter
|
| 1011 |
+
def include_missing_columns(self, value):
|
| 1012 |
+
deref(self.options).include_missing_columns = value
|
| 1013 |
+
|
| 1014 |
+
@property
|
| 1015 |
+
def timestamp_parsers(self):
|
| 1016 |
+
"""
|
| 1017 |
+
A sequence of strptime()-compatible format strings, tried in order
|
| 1018 |
+
when attempting to infer or convert timestamp values (the special
|
| 1019 |
+
value ISO8601() can also be given). By default, a fast built-in
|
| 1020 |
+
ISO-8601 parser is used.
|
| 1021 |
+
"""
|
| 1022 |
+
cdef:
|
| 1023 |
+
shared_ptr[CTimestampParser] c_parser
|
| 1024 |
+
c_string kind
|
| 1025 |
+
|
| 1026 |
+
parsers = []
|
| 1027 |
+
for c_parser in deref(self.options).timestamp_parsers:
|
| 1028 |
+
kind = deref(c_parser).kind()
|
| 1029 |
+
if kind == b'strptime':
|
| 1030 |
+
parsers.append(frombytes(deref(c_parser).format()))
|
| 1031 |
+
else:
|
| 1032 |
+
assert kind == b'iso8601'
|
| 1033 |
+
parsers.append(ISO8601)
|
| 1034 |
+
|
| 1035 |
+
return parsers
|
| 1036 |
+
|
| 1037 |
+
@timestamp_parsers.setter
|
| 1038 |
+
def timestamp_parsers(self, value):
|
| 1039 |
+
cdef:
|
| 1040 |
+
vector[shared_ptr[CTimestampParser]] c_parsers
|
| 1041 |
+
|
| 1042 |
+
for v in value:
|
| 1043 |
+
if isinstance(v, str):
|
| 1044 |
+
c_parsers.push_back(CTimestampParser.MakeStrptime(tobytes(v)))
|
| 1045 |
+
elif v == ISO8601:
|
| 1046 |
+
c_parsers.push_back(CTimestampParser.MakeISO8601())
|
| 1047 |
+
else:
|
| 1048 |
+
raise TypeError("Expected list of str or ISO8601 objects")
|
| 1049 |
+
|
| 1050 |
+
deref(self.options).timestamp_parsers = move(c_parsers)
|
| 1051 |
+
|
| 1052 |
+
@staticmethod
|
| 1053 |
+
cdef ConvertOptions wrap(CCSVConvertOptions options):
|
| 1054 |
+
out = ConvertOptions()
|
| 1055 |
+
out.options.reset(new CCSVConvertOptions(move(options)))
|
| 1056 |
+
return out
|
| 1057 |
+
|
| 1058 |
+
def validate(self):
|
| 1059 |
+
check_status(deref(self.options).Validate())
|
| 1060 |
+
|
| 1061 |
+
def equals(self, ConvertOptions other):
|
| 1062 |
+
"""
|
| 1063 |
+
Parameters
|
| 1064 |
+
----------
|
| 1065 |
+
other : pyarrow.csv.ConvertOptions
|
| 1066 |
+
|
| 1067 |
+
Returns
|
| 1068 |
+
-------
|
| 1069 |
+
bool
|
| 1070 |
+
"""
|
| 1071 |
+
return (
|
| 1072 |
+
self.check_utf8 == other.check_utf8 and
|
| 1073 |
+
self.column_types == other.column_types and
|
| 1074 |
+
self.null_values == other.null_values and
|
| 1075 |
+
self.true_values == other.true_values and
|
| 1076 |
+
self.false_values == other.false_values and
|
| 1077 |
+
self.decimal_point == other.decimal_point and
|
| 1078 |
+
self.timestamp_parsers == other.timestamp_parsers and
|
| 1079 |
+
self.strings_can_be_null == other.strings_can_be_null and
|
| 1080 |
+
self.quoted_strings_can_be_null ==
|
| 1081 |
+
other.quoted_strings_can_be_null and
|
| 1082 |
+
self.auto_dict_encode == other.auto_dict_encode and
|
| 1083 |
+
self.auto_dict_max_cardinality ==
|
| 1084 |
+
other.auto_dict_max_cardinality and
|
| 1085 |
+
self.include_columns == other.include_columns and
|
| 1086 |
+
self.include_missing_columns == other.include_missing_columns
|
| 1087 |
+
)
|
| 1088 |
+
|
| 1089 |
+
def __getstate__(self):
|
| 1090 |
+
return (self.check_utf8, self.column_types, self.null_values,
|
| 1091 |
+
self.true_values, self.false_values, self.decimal_point,
|
| 1092 |
+
self.timestamp_parsers, self.strings_can_be_null,
|
| 1093 |
+
self.quoted_strings_can_be_null, self.auto_dict_encode,
|
| 1094 |
+
self.auto_dict_max_cardinality, self.include_columns,
|
| 1095 |
+
self.include_missing_columns)
|
| 1096 |
+
|
| 1097 |
+
def __setstate__(self, state):
|
| 1098 |
+
(self.check_utf8, self.column_types, self.null_values,
|
| 1099 |
+
self.true_values, self.false_values, self.decimal_point,
|
| 1100 |
+
self.timestamp_parsers, self.strings_can_be_null,
|
| 1101 |
+
self.quoted_strings_can_be_null, self.auto_dict_encode,
|
| 1102 |
+
self.auto_dict_max_cardinality, self.include_columns,
|
| 1103 |
+
self.include_missing_columns) = state
|
| 1104 |
+
|
| 1105 |
+
def __eq__(self, other):
|
| 1106 |
+
try:
|
| 1107 |
+
return self.equals(other)
|
| 1108 |
+
except TypeError:
|
| 1109 |
+
return False
|
| 1110 |
+
|
| 1111 |
+
|
| 1112 |
+
cdef _get_reader(input_file, ReadOptions read_options,
|
| 1113 |
+
shared_ptr[CInputStream]* out):
|
| 1114 |
+
use_memory_map = False
|
| 1115 |
+
get_input_stream(input_file, use_memory_map, out)
|
| 1116 |
+
if read_options is not None:
|
| 1117 |
+
out[0] = native_transcoding_input_stream(out[0],
|
| 1118 |
+
read_options.encoding,
|
| 1119 |
+
'utf8')
|
| 1120 |
+
|
| 1121 |
+
|
| 1122 |
+
cdef _get_read_options(ReadOptions read_options, CCSVReadOptions* out):
|
| 1123 |
+
if read_options is None:
|
| 1124 |
+
out[0] = CCSVReadOptions.Defaults()
|
| 1125 |
+
else:
|
| 1126 |
+
out[0] = deref(read_options.options)
|
| 1127 |
+
|
| 1128 |
+
|
| 1129 |
+
cdef _get_parse_options(ParseOptions parse_options, CCSVParseOptions* out):
|
| 1130 |
+
if parse_options is None:
|
| 1131 |
+
out[0] = CCSVParseOptions.Defaults()
|
| 1132 |
+
else:
|
| 1133 |
+
out[0] = deref(parse_options.options)
|
| 1134 |
+
|
| 1135 |
+
|
| 1136 |
+
cdef _get_convert_options(ConvertOptions convert_options,
|
| 1137 |
+
CCSVConvertOptions* out):
|
| 1138 |
+
if convert_options is None:
|
| 1139 |
+
out[0] = CCSVConvertOptions.Defaults()
|
| 1140 |
+
else:
|
| 1141 |
+
out[0] = deref(convert_options.options)
|
| 1142 |
+
|
| 1143 |
+
|
| 1144 |
+
cdef class CSVStreamingReader(RecordBatchReader):
|
| 1145 |
+
"""An object that reads record batches incrementally from a CSV file.
|
| 1146 |
+
|
| 1147 |
+
Should not be instantiated directly by user code.
|
| 1148 |
+
"""
|
| 1149 |
+
cdef readonly:
|
| 1150 |
+
Schema schema
|
| 1151 |
+
|
| 1152 |
+
def __init__(self):
|
| 1153 |
+
raise TypeError("Do not call {}'s constructor directly, "
|
| 1154 |
+
"use pyarrow.csv.open_csv() instead."
|
| 1155 |
+
.format(self.__class__.__name__))
|
| 1156 |
+
|
| 1157 |
+
# Note about cancellation: we cannot create a SignalStopHandler
|
| 1158 |
+
# by default here, as several CSVStreamingReader instances may be
|
| 1159 |
+
# created (including by the same thread). Handling cancellation
|
| 1160 |
+
# would require having the user pass the SignalStopHandler.
|
| 1161 |
+
# (in addition to solving ARROW-11853)
|
| 1162 |
+
|
| 1163 |
+
cdef _open(self, shared_ptr[CInputStream] stream,
|
| 1164 |
+
CCSVReadOptions c_read_options,
|
| 1165 |
+
CCSVParseOptions c_parse_options,
|
| 1166 |
+
CCSVConvertOptions c_convert_options,
|
| 1167 |
+
MemoryPool memory_pool):
|
| 1168 |
+
cdef:
|
| 1169 |
+
shared_ptr[CSchema] c_schema
|
| 1170 |
+
CIOContext io_context
|
| 1171 |
+
|
| 1172 |
+
io_context = CIOContext(maybe_unbox_memory_pool(memory_pool))
|
| 1173 |
+
|
| 1174 |
+
with nogil:
|
| 1175 |
+
self.reader = <shared_ptr[CRecordBatchReader]> GetResultValue(
|
| 1176 |
+
CCSVStreamingReader.Make(
|
| 1177 |
+
io_context, stream,
|
| 1178 |
+
move(c_read_options), move(c_parse_options),
|
| 1179 |
+
move(c_convert_options)))
|
| 1180 |
+
c_schema = self.reader.get().schema()
|
| 1181 |
+
|
| 1182 |
+
self.schema = pyarrow_wrap_schema(c_schema)
|
| 1183 |
+
|
| 1184 |
+
|
| 1185 |
+
def read_csv(input_file, read_options=None, parse_options=None,
|
| 1186 |
+
convert_options=None, MemoryPool memory_pool=None):
|
| 1187 |
+
"""
|
| 1188 |
+
Read a Table from a stream of CSV data.
|
| 1189 |
+
|
| 1190 |
+
Parameters
|
| 1191 |
+
----------
|
| 1192 |
+
input_file : string, path or file-like object
|
| 1193 |
+
The location of CSV data. If a string or path, and if it ends
|
| 1194 |
+
with a recognized compressed file extension (e.g. ".gz" or ".bz2"),
|
| 1195 |
+
the data is automatically decompressed when reading.
|
| 1196 |
+
read_options : pyarrow.csv.ReadOptions, optional
|
| 1197 |
+
Options for the CSV reader (see pyarrow.csv.ReadOptions constructor
|
| 1198 |
+
for defaults)
|
| 1199 |
+
parse_options : pyarrow.csv.ParseOptions, optional
|
| 1200 |
+
Options for the CSV parser
|
| 1201 |
+
(see pyarrow.csv.ParseOptions constructor for defaults)
|
| 1202 |
+
convert_options : pyarrow.csv.ConvertOptions, optional
|
| 1203 |
+
Options for converting CSV data
|
| 1204 |
+
(see pyarrow.csv.ConvertOptions constructor for defaults)
|
| 1205 |
+
memory_pool : MemoryPool, optional
|
| 1206 |
+
Pool to allocate Table memory from
|
| 1207 |
+
|
| 1208 |
+
Returns
|
| 1209 |
+
-------
|
| 1210 |
+
:class:`pyarrow.Table`
|
| 1211 |
+
Contents of the CSV file as a in-memory table.
|
| 1212 |
+
|
| 1213 |
+
Examples
|
| 1214 |
+
--------
|
| 1215 |
+
|
| 1216 |
+
Defining an example file from bytes object:
|
| 1217 |
+
|
| 1218 |
+
>>> import io
|
| 1219 |
+
>>> s = (
|
| 1220 |
+
... "animals,n_legs,entry\\n"
|
| 1221 |
+
... "Flamingo,2,2022-03-01\\n"
|
| 1222 |
+
... "Horse,4,2022-03-02\\n"
|
| 1223 |
+
... "Brittle stars,5,2022-03-03\\n"
|
| 1224 |
+
... "Centipede,100,2022-03-04"
|
| 1225 |
+
... )
|
| 1226 |
+
>>> print(s)
|
| 1227 |
+
animals,n_legs,entry
|
| 1228 |
+
Flamingo,2,2022-03-01
|
| 1229 |
+
Horse,4,2022-03-02
|
| 1230 |
+
Brittle stars,5,2022-03-03
|
| 1231 |
+
Centipede,100,2022-03-04
|
| 1232 |
+
>>> source = io.BytesIO(s.encode())
|
| 1233 |
+
|
| 1234 |
+
Reading from the file
|
| 1235 |
+
|
| 1236 |
+
>>> from pyarrow import csv
|
| 1237 |
+
>>> csv.read_csv(source)
|
| 1238 |
+
pyarrow.Table
|
| 1239 |
+
animals: string
|
| 1240 |
+
n_legs: int64
|
| 1241 |
+
entry: date32[day]
|
| 1242 |
+
----
|
| 1243 |
+
animals: [["Flamingo","Horse","Brittle stars","Centipede"]]
|
| 1244 |
+
n_legs: [[2,4,5,100]]
|
| 1245 |
+
entry: [[2022-03-01,2022-03-02,2022-03-03,2022-03-04]]
|
| 1246 |
+
"""
|
| 1247 |
+
cdef:
|
| 1248 |
+
shared_ptr[CInputStream] stream
|
| 1249 |
+
CCSVReadOptions c_read_options
|
| 1250 |
+
CCSVParseOptions c_parse_options
|
| 1251 |
+
CCSVConvertOptions c_convert_options
|
| 1252 |
+
CIOContext io_context
|
| 1253 |
+
SharedPtrNoGIL[CCSVReader] reader
|
| 1254 |
+
shared_ptr[CTable] table
|
| 1255 |
+
|
| 1256 |
+
_get_reader(input_file, read_options, &stream)
|
| 1257 |
+
_get_read_options(read_options, &c_read_options)
|
| 1258 |
+
_get_parse_options(parse_options, &c_parse_options)
|
| 1259 |
+
_get_convert_options(convert_options, &c_convert_options)
|
| 1260 |
+
|
| 1261 |
+
with SignalStopHandler() as stop_handler:
|
| 1262 |
+
io_context = CIOContext(
|
| 1263 |
+
maybe_unbox_memory_pool(memory_pool),
|
| 1264 |
+
(<StopToken> stop_handler.stop_token).stop_token)
|
| 1265 |
+
reader = GetResultValue(CCSVReader.Make(
|
| 1266 |
+
io_context, stream,
|
| 1267 |
+
c_read_options, c_parse_options, c_convert_options))
|
| 1268 |
+
|
| 1269 |
+
with nogil:
|
| 1270 |
+
table = GetResultValue(reader.get().Read())
|
| 1271 |
+
|
| 1272 |
+
return pyarrow_wrap_table(table)
|
| 1273 |
+
|
| 1274 |
+
|
| 1275 |
+
def open_csv(input_file, read_options=None, parse_options=None,
|
| 1276 |
+
convert_options=None, MemoryPool memory_pool=None):
|
| 1277 |
+
"""
|
| 1278 |
+
Open a streaming reader of CSV data.
|
| 1279 |
+
|
| 1280 |
+
Reading using this function is always single-threaded.
|
| 1281 |
+
|
| 1282 |
+
Parameters
|
| 1283 |
+
----------
|
| 1284 |
+
input_file : string, path or file-like object
|
| 1285 |
+
The location of CSV data. If a string or path, and if it ends
|
| 1286 |
+
with a recognized compressed file extension (e.g. ".gz" or ".bz2"),
|
| 1287 |
+
the data is automatically decompressed when reading.
|
| 1288 |
+
read_options : pyarrow.csv.ReadOptions, optional
|
| 1289 |
+
Options for the CSV reader (see pyarrow.csv.ReadOptions constructor
|
| 1290 |
+
for defaults)
|
| 1291 |
+
parse_options : pyarrow.csv.ParseOptions, optional
|
| 1292 |
+
Options for the CSV parser
|
| 1293 |
+
(see pyarrow.csv.ParseOptions constructor for defaults)
|
| 1294 |
+
convert_options : pyarrow.csv.ConvertOptions, optional
|
| 1295 |
+
Options for converting CSV data
|
| 1296 |
+
(see pyarrow.csv.ConvertOptions constructor for defaults)
|
| 1297 |
+
memory_pool : MemoryPool, optional
|
| 1298 |
+
Pool to allocate Table memory from
|
| 1299 |
+
|
| 1300 |
+
Returns
|
| 1301 |
+
-------
|
| 1302 |
+
:class:`pyarrow.csv.CSVStreamingReader`
|
| 1303 |
+
"""
|
| 1304 |
+
cdef:
|
| 1305 |
+
shared_ptr[CInputStream] stream
|
| 1306 |
+
CCSVReadOptions c_read_options
|
| 1307 |
+
CCSVParseOptions c_parse_options
|
| 1308 |
+
CCSVConvertOptions c_convert_options
|
| 1309 |
+
CSVStreamingReader reader
|
| 1310 |
+
|
| 1311 |
+
_get_reader(input_file, read_options, &stream)
|
| 1312 |
+
_get_read_options(read_options, &c_read_options)
|
| 1313 |
+
_get_parse_options(parse_options, &c_parse_options)
|
| 1314 |
+
_get_convert_options(convert_options, &c_convert_options)
|
| 1315 |
+
|
| 1316 |
+
reader = CSVStreamingReader.__new__(CSVStreamingReader)
|
| 1317 |
+
reader._open(stream, move(c_read_options), move(c_parse_options),
|
| 1318 |
+
move(c_convert_options), memory_pool)
|
| 1319 |
+
return reader
|
| 1320 |
+
|
| 1321 |
+
|
| 1322 |
+
def _raise_invalid_function_option(value, description, *,
|
| 1323 |
+
exception_class=ValueError):
|
| 1324 |
+
raise exception_class(f"\"{value}\" is not a valid {description}")
|
| 1325 |
+
|
| 1326 |
+
|
| 1327 |
+
cdef CQuotingStyle unwrap_quoting_style(quoting_style) except *:
|
| 1328 |
+
if quoting_style == "needed":
|
| 1329 |
+
return CQuotingStyle_Needed
|
| 1330 |
+
elif quoting_style == "all_valid":
|
| 1331 |
+
return CQuotingStyle_AllValid
|
| 1332 |
+
elif quoting_style == "none":
|
| 1333 |
+
return CQuotingStyle_None
|
| 1334 |
+
_raise_invalid_function_option(quoting_style, "quoting style")
|
| 1335 |
+
|
| 1336 |
+
|
| 1337 |
+
cdef wrap_quoting_style(quoting_style):
|
| 1338 |
+
if quoting_style == CQuotingStyle_Needed:
|
| 1339 |
+
return 'needed'
|
| 1340 |
+
elif quoting_style == CQuotingStyle_AllValid:
|
| 1341 |
+
return 'all_valid'
|
| 1342 |
+
elif quoting_style == CQuotingStyle_None:
|
| 1343 |
+
return 'none'
|
| 1344 |
+
|
| 1345 |
+
|
| 1346 |
+
cdef class WriteOptions(_Weakrefable):
|
| 1347 |
+
"""
|
| 1348 |
+
Options for writing CSV files.
|
| 1349 |
+
|
| 1350 |
+
Parameters
|
| 1351 |
+
----------
|
| 1352 |
+
include_header : bool, optional (default True)
|
| 1353 |
+
Whether to write an initial header line with column names
|
| 1354 |
+
batch_size : int, optional (default 1024)
|
| 1355 |
+
How many rows to process together when converting and writing
|
| 1356 |
+
CSV data
|
| 1357 |
+
delimiter : 1-character string, optional (default ",")
|
| 1358 |
+
The character delimiting individual cells in the CSV data.
|
| 1359 |
+
quoting_style : str, optional (default "needed")
|
| 1360 |
+
Whether to quote values, and if so, which quoting style to use.
|
| 1361 |
+
The following values are accepted:
|
| 1362 |
+
|
| 1363 |
+
- "needed" (default): only enclose values in quotes when needed.
|
| 1364 |
+
- "all_valid": enclose all valid values in quotes; nulls are not quoted.
|
| 1365 |
+
- "none": do not enclose any values in quotes; values containing
|
| 1366 |
+
special characters (such as quotes, cell delimiters or line endings)
|
| 1367 |
+
will raise an error.
|
| 1368 |
+
"""
|
| 1369 |
+
|
| 1370 |
+
# Avoid mistakingly creating attributes
|
| 1371 |
+
__slots__ = ()
|
| 1372 |
+
|
| 1373 |
+
def __init__(self, *, include_header=None, batch_size=None,
|
| 1374 |
+
delimiter=None, quoting_style=None):
|
| 1375 |
+
self.options.reset(new CCSVWriteOptions(CCSVWriteOptions.Defaults()))
|
| 1376 |
+
if include_header is not None:
|
| 1377 |
+
self.include_header = include_header
|
| 1378 |
+
if batch_size is not None:
|
| 1379 |
+
self.batch_size = batch_size
|
| 1380 |
+
if delimiter is not None:
|
| 1381 |
+
self.delimiter = delimiter
|
| 1382 |
+
if quoting_style is not None:
|
| 1383 |
+
self.quoting_style = quoting_style
|
| 1384 |
+
|
| 1385 |
+
@property
|
| 1386 |
+
def include_header(self):
|
| 1387 |
+
"""
|
| 1388 |
+
Whether to write an initial header line with column names.
|
| 1389 |
+
"""
|
| 1390 |
+
return deref(self.options).include_header
|
| 1391 |
+
|
| 1392 |
+
@include_header.setter
|
| 1393 |
+
def include_header(self, value):
|
| 1394 |
+
deref(self.options).include_header = value
|
| 1395 |
+
|
| 1396 |
+
@property
|
| 1397 |
+
def batch_size(self):
|
| 1398 |
+
"""
|
| 1399 |
+
How many rows to process together when converting and writing
|
| 1400 |
+
CSV data.
|
| 1401 |
+
"""
|
| 1402 |
+
return deref(self.options).batch_size
|
| 1403 |
+
|
| 1404 |
+
@batch_size.setter
|
| 1405 |
+
def batch_size(self, value):
|
| 1406 |
+
deref(self.options).batch_size = value
|
| 1407 |
+
|
| 1408 |
+
@property
|
| 1409 |
+
def delimiter(self):
|
| 1410 |
+
"""
|
| 1411 |
+
The character delimiting individual cells in the CSV data.
|
| 1412 |
+
"""
|
| 1413 |
+
return chr(deref(self.options).delimiter)
|
| 1414 |
+
|
| 1415 |
+
@delimiter.setter
|
| 1416 |
+
def delimiter(self, value):
|
| 1417 |
+
deref(self.options).delimiter = _single_char(value)
|
| 1418 |
+
|
| 1419 |
+
@property
|
| 1420 |
+
def quoting_style(self):
|
| 1421 |
+
"""
|
| 1422 |
+
Whether to quote values, and if so, which quoting style to use.
|
| 1423 |
+
The following values are accepted:
|
| 1424 |
+
|
| 1425 |
+
- "needed" (default): only enclose values in quotes when needed.
|
| 1426 |
+
- "all_valid": enclose all valid values in quotes; nulls are not quoted.
|
| 1427 |
+
- "none": do not enclose any values in quotes; values containing
|
| 1428 |
+
special characters (such as quotes, cell delimiters or line endings)
|
| 1429 |
+
will raise an error.
|
| 1430 |
+
"""
|
| 1431 |
+
return wrap_quoting_style(deref(self.options).quoting_style)
|
| 1432 |
+
|
| 1433 |
+
@quoting_style.setter
|
| 1434 |
+
def quoting_style(self, value):
|
| 1435 |
+
deref(self.options).quoting_style = unwrap_quoting_style(value)
|
| 1436 |
+
|
| 1437 |
+
@staticmethod
|
| 1438 |
+
cdef WriteOptions wrap(CCSVWriteOptions options):
|
| 1439 |
+
out = WriteOptions()
|
| 1440 |
+
out.options.reset(new CCSVWriteOptions(move(options)))
|
| 1441 |
+
return out
|
| 1442 |
+
|
| 1443 |
+
def validate(self):
|
| 1444 |
+
check_status(self.options.get().Validate())
|
| 1445 |
+
|
| 1446 |
+
|
| 1447 |
+
cdef _get_write_options(WriteOptions write_options, CCSVWriteOptions* out):
|
| 1448 |
+
if write_options is None:
|
| 1449 |
+
out[0] = CCSVWriteOptions.Defaults()
|
| 1450 |
+
else:
|
| 1451 |
+
out[0] = deref(write_options.options)
|
| 1452 |
+
|
| 1453 |
+
|
| 1454 |
+
def write_csv(data, output_file, write_options=None,
|
| 1455 |
+
MemoryPool memory_pool=None):
|
| 1456 |
+
"""
|
| 1457 |
+
Write record batch or table to a CSV file.
|
| 1458 |
+
|
| 1459 |
+
Parameters
|
| 1460 |
+
----------
|
| 1461 |
+
data : pyarrow.RecordBatch or pyarrow.Table
|
| 1462 |
+
The data to write.
|
| 1463 |
+
output_file : string, path, pyarrow.NativeFile, or file-like object
|
| 1464 |
+
The location where to write the CSV data.
|
| 1465 |
+
write_options : pyarrow.csv.WriteOptions
|
| 1466 |
+
Options to configure writing the CSV data.
|
| 1467 |
+
memory_pool : MemoryPool, optional
|
| 1468 |
+
Pool for temporary allocations.
|
| 1469 |
+
|
| 1470 |
+
Examples
|
| 1471 |
+
--------
|
| 1472 |
+
|
| 1473 |
+
>>> import pyarrow as pa
|
| 1474 |
+
>>> from pyarrow import csv
|
| 1475 |
+
|
| 1476 |
+
>>> legs = pa.array([2, 4, 5, 100])
|
| 1477 |
+
>>> animals = pa.array(["Flamingo", "Horse", "Brittle stars", "Centipede"])
|
| 1478 |
+
>>> entry_date = pa.array(["01/03/2022", "02/03/2022",
|
| 1479 |
+
... "03/03/2022", "04/03/2022"])
|
| 1480 |
+
>>> table = pa.table([animals, legs, entry_date],
|
| 1481 |
+
... names=["animals", "n_legs", "entry"])
|
| 1482 |
+
|
| 1483 |
+
>>> csv.write_csv(table, "animals.csv")
|
| 1484 |
+
|
| 1485 |
+
>>> write_options = csv.WriteOptions(include_header=False)
|
| 1486 |
+
>>> csv.write_csv(table, "animals.csv", write_options=write_options)
|
| 1487 |
+
|
| 1488 |
+
>>> write_options = csv.WriteOptions(delimiter=";")
|
| 1489 |
+
>>> csv.write_csv(table, "animals.csv", write_options=write_options)
|
| 1490 |
+
"""
|
| 1491 |
+
cdef:
|
| 1492 |
+
shared_ptr[COutputStream] stream
|
| 1493 |
+
CCSVWriteOptions c_write_options
|
| 1494 |
+
CMemoryPool* c_memory_pool
|
| 1495 |
+
CRecordBatch* batch
|
| 1496 |
+
CTable* table
|
| 1497 |
+
_get_write_options(write_options, &c_write_options)
|
| 1498 |
+
|
| 1499 |
+
get_writer(output_file, &stream)
|
| 1500 |
+
c_memory_pool = maybe_unbox_memory_pool(memory_pool)
|
| 1501 |
+
c_write_options.io_context = CIOContext(c_memory_pool)
|
| 1502 |
+
if isinstance(data, RecordBatch):
|
| 1503 |
+
batch = pyarrow_unwrap_batch(data).get()
|
| 1504 |
+
with nogil:
|
| 1505 |
+
check_status(WriteCSV(deref(batch), c_write_options, stream.get()))
|
| 1506 |
+
elif isinstance(data, Table):
|
| 1507 |
+
table = pyarrow_unwrap_table(data).get()
|
| 1508 |
+
with nogil:
|
| 1509 |
+
check_status(WriteCSV(deref(table), c_write_options, stream.get()))
|
| 1510 |
+
else:
|
| 1511 |
+
raise TypeError(f"Expected Table or RecordBatch, got '{type(data)}'")
|
| 1512 |
+
|
| 1513 |
+
|
| 1514 |
+
cdef class CSVWriter(_CRecordBatchWriter):
|
| 1515 |
+
"""
|
| 1516 |
+
Writer to create a CSV file.
|
| 1517 |
+
|
| 1518 |
+
Parameters
|
| 1519 |
+
----------
|
| 1520 |
+
sink : str, path, pyarrow.OutputStream or file-like object
|
| 1521 |
+
The location where to write the CSV data.
|
| 1522 |
+
schema : pyarrow.Schema
|
| 1523 |
+
The schema of the data to be written.
|
| 1524 |
+
write_options : pyarrow.csv.WriteOptions
|
| 1525 |
+
Options to configure writing the CSV data.
|
| 1526 |
+
memory_pool : MemoryPool, optional
|
| 1527 |
+
Pool for temporary allocations.
|
| 1528 |
+
"""
|
| 1529 |
+
|
| 1530 |
+
def __init__(self, sink, Schema schema, *,
|
| 1531 |
+
WriteOptions write_options=None, MemoryPool memory_pool=None):
|
| 1532 |
+
cdef:
|
| 1533 |
+
shared_ptr[COutputStream] c_stream
|
| 1534 |
+
shared_ptr[CSchema] c_schema = pyarrow_unwrap_schema(schema)
|
| 1535 |
+
CCSVWriteOptions c_write_options
|
| 1536 |
+
CMemoryPool* c_memory_pool = maybe_unbox_memory_pool(memory_pool)
|
| 1537 |
+
_get_write_options(write_options, &c_write_options)
|
| 1538 |
+
c_write_options.io_context = CIOContext(c_memory_pool)
|
| 1539 |
+
get_writer(sink, &c_stream)
|
| 1540 |
+
with nogil:
|
| 1541 |
+
self.writer = GetResultValue(MakeCSVWriter(
|
| 1542 |
+
c_stream, c_schema, c_write_options))
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_cuda.pxd
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# cython: language_level = 3
|
| 19 |
+
|
| 20 |
+
from pyarrow.lib cimport *
|
| 21 |
+
from pyarrow.includes.common cimport *
|
| 22 |
+
from pyarrow.includes.libarrow cimport *
|
| 23 |
+
from pyarrow.includes.libarrow_cuda cimport *
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
cdef class Context(_Weakrefable):
|
| 27 |
+
cdef:
|
| 28 |
+
shared_ptr[CCudaContext] context
|
| 29 |
+
int device_number
|
| 30 |
+
|
| 31 |
+
cdef void init(self, const shared_ptr[CCudaContext]& ctx)
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
cdef class IpcMemHandle(_Weakrefable):
|
| 35 |
+
cdef:
|
| 36 |
+
shared_ptr[CCudaIpcMemHandle] handle
|
| 37 |
+
|
| 38 |
+
cdef void init(self, shared_ptr[CCudaIpcMemHandle]& h)
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
cdef class CudaBuffer(Buffer):
|
| 42 |
+
cdef:
|
| 43 |
+
shared_ptr[CCudaBuffer] cuda_buffer
|
| 44 |
+
object base
|
| 45 |
+
|
| 46 |
+
cdef void init_cuda(self,
|
| 47 |
+
const shared_ptr[CCudaBuffer]& buffer,
|
| 48 |
+
object base)
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
cdef class HostBuffer(Buffer):
|
| 52 |
+
cdef:
|
| 53 |
+
shared_ptr[CCudaHostBuffer] host_buffer
|
| 54 |
+
|
| 55 |
+
cdef void init_host(self, const shared_ptr[CCudaHostBuffer]& buffer)
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
cdef class BufferReader(NativeFile):
|
| 59 |
+
cdef:
|
| 60 |
+
CCudaBufferReader* reader
|
| 61 |
+
CudaBuffer buffer
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
cdef class BufferWriter(NativeFile):
|
| 65 |
+
cdef:
|
| 66 |
+
CCudaBufferWriter* writer
|
| 67 |
+
CudaBuffer buffer
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_cuda.pyx
ADDED
|
@@ -0,0 +1,1080 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
from pyarrow.lib cimport *
|
| 20 |
+
from pyarrow.includes.libarrow_cuda cimport *
|
| 21 |
+
from pyarrow.lib import allocate_buffer, as_buffer, ArrowTypeError
|
| 22 |
+
from pyarrow.util import get_contiguous_span
|
| 23 |
+
cimport cpython as cp
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
cdef class Context(_Weakrefable):
|
| 27 |
+
"""
|
| 28 |
+
CUDA driver context.
|
| 29 |
+
"""
|
| 30 |
+
|
| 31 |
+
def __init__(self, *args, **kwargs):
|
| 32 |
+
"""
|
| 33 |
+
Create a CUDA driver context for a particular device.
|
| 34 |
+
|
| 35 |
+
If a CUDA context handle is passed, it is wrapped, otherwise
|
| 36 |
+
a default CUDA context for the given device is requested.
|
| 37 |
+
|
| 38 |
+
Parameters
|
| 39 |
+
----------
|
| 40 |
+
device_number : int (default 0)
|
| 41 |
+
Specify the GPU device for which the CUDA driver context is
|
| 42 |
+
requested.
|
| 43 |
+
handle : int, optional
|
| 44 |
+
Specify CUDA handle for a shared context that has been created
|
| 45 |
+
by another library.
|
| 46 |
+
"""
|
| 47 |
+
# This method exposed because autodoc doesn't pick __cinit__
|
| 48 |
+
|
| 49 |
+
def __cinit__(self, int device_number=0, uintptr_t handle=0):
|
| 50 |
+
cdef CCudaDeviceManager* manager
|
| 51 |
+
manager = GetResultValue(CCudaDeviceManager.Instance())
|
| 52 |
+
cdef int n = manager.num_devices()
|
| 53 |
+
if device_number >= n or device_number < 0:
|
| 54 |
+
self.context.reset()
|
| 55 |
+
raise ValueError('device_number argument must be '
|
| 56 |
+
'non-negative less than %s' % (n))
|
| 57 |
+
if handle == 0:
|
| 58 |
+
self.context = GetResultValue(manager.GetContext(device_number))
|
| 59 |
+
else:
|
| 60 |
+
self.context = GetResultValue(manager.GetSharedContext(
|
| 61 |
+
device_number, <void*>handle))
|
| 62 |
+
self.device_number = device_number
|
| 63 |
+
|
| 64 |
+
@staticmethod
|
| 65 |
+
def from_numba(context=None):
|
| 66 |
+
"""
|
| 67 |
+
Create a Context instance from a Numba CUDA context.
|
| 68 |
+
|
| 69 |
+
Parameters
|
| 70 |
+
----------
|
| 71 |
+
context : {numba.cuda.cudadrv.driver.Context, None}
|
| 72 |
+
A Numba CUDA context instance.
|
| 73 |
+
If None, the current Numba context is used.
|
| 74 |
+
|
| 75 |
+
Returns
|
| 76 |
+
-------
|
| 77 |
+
shared_context : pyarrow.cuda.Context
|
| 78 |
+
Context instance.
|
| 79 |
+
"""
|
| 80 |
+
if context is None:
|
| 81 |
+
import numba.cuda
|
| 82 |
+
context = numba.cuda.current_context()
|
| 83 |
+
return Context(device_number=context.device.id,
|
| 84 |
+
handle=context.handle.value)
|
| 85 |
+
|
| 86 |
+
def to_numba(self):
|
| 87 |
+
"""
|
| 88 |
+
Convert Context to a Numba CUDA context.
|
| 89 |
+
|
| 90 |
+
Returns
|
| 91 |
+
-------
|
| 92 |
+
context : numba.cuda.cudadrv.driver.Context
|
| 93 |
+
Numba CUDA context instance.
|
| 94 |
+
"""
|
| 95 |
+
import ctypes
|
| 96 |
+
import numba.cuda
|
| 97 |
+
device = numba.cuda.gpus[self.device_number]
|
| 98 |
+
handle = ctypes.c_void_p(self.handle)
|
| 99 |
+
context = numba.cuda.cudadrv.driver.Context(device, handle)
|
| 100 |
+
|
| 101 |
+
class DummyPendingDeallocs(object):
|
| 102 |
+
# Context is managed by pyarrow
|
| 103 |
+
def add_item(self, *args, **kwargs):
|
| 104 |
+
pass
|
| 105 |
+
|
| 106 |
+
context.deallocations = DummyPendingDeallocs()
|
| 107 |
+
return context
|
| 108 |
+
|
| 109 |
+
@staticmethod
|
| 110 |
+
def get_num_devices():
|
| 111 |
+
""" Return the number of GPU devices.
|
| 112 |
+
"""
|
| 113 |
+
cdef CCudaDeviceManager* manager
|
| 114 |
+
manager = GetResultValue(CCudaDeviceManager.Instance())
|
| 115 |
+
return manager.num_devices()
|
| 116 |
+
|
| 117 |
+
@property
|
| 118 |
+
def device_number(self):
|
| 119 |
+
""" Return context device number.
|
| 120 |
+
"""
|
| 121 |
+
return self.device_number
|
| 122 |
+
|
| 123 |
+
@property
|
| 124 |
+
def handle(self):
|
| 125 |
+
""" Return pointer to context handle.
|
| 126 |
+
"""
|
| 127 |
+
return <uintptr_t>self.context.get().handle()
|
| 128 |
+
|
| 129 |
+
cdef void init(self, const shared_ptr[CCudaContext]& ctx):
|
| 130 |
+
self.context = ctx
|
| 131 |
+
|
| 132 |
+
def synchronize(self):
|
| 133 |
+
"""Blocks until the device has completed all preceding requested
|
| 134 |
+
tasks.
|
| 135 |
+
"""
|
| 136 |
+
check_status(self.context.get().Synchronize())
|
| 137 |
+
|
| 138 |
+
@property
|
| 139 |
+
def bytes_allocated(self):
|
| 140 |
+
"""Return the number of allocated bytes.
|
| 141 |
+
"""
|
| 142 |
+
return self.context.get().bytes_allocated()
|
| 143 |
+
|
| 144 |
+
def get_device_address(self, uintptr_t address):
|
| 145 |
+
"""Return the device address that is reachable from kernels running in
|
| 146 |
+
the context
|
| 147 |
+
|
| 148 |
+
Parameters
|
| 149 |
+
----------
|
| 150 |
+
address : int
|
| 151 |
+
Specify memory address value
|
| 152 |
+
|
| 153 |
+
Returns
|
| 154 |
+
-------
|
| 155 |
+
device_address : int
|
| 156 |
+
Device address accessible from device context
|
| 157 |
+
|
| 158 |
+
Notes
|
| 159 |
+
-----
|
| 160 |
+
The device address is defined as a memory address accessible
|
| 161 |
+
by device. While it is often a device memory address but it
|
| 162 |
+
can be also a host memory address, for instance, when the
|
| 163 |
+
memory is allocated as host memory (using cudaMallocHost or
|
| 164 |
+
cudaHostAlloc) or as managed memory (using cudaMallocManaged)
|
| 165 |
+
or the host memory is page-locked (using cudaHostRegister).
|
| 166 |
+
"""
|
| 167 |
+
return GetResultValue(self.context.get().GetDeviceAddress(address))
|
| 168 |
+
|
| 169 |
+
def new_buffer(self, int64_t nbytes):
|
| 170 |
+
"""Return new device buffer.
|
| 171 |
+
|
| 172 |
+
Parameters
|
| 173 |
+
----------
|
| 174 |
+
nbytes : int
|
| 175 |
+
Specify the number of bytes to be allocated.
|
| 176 |
+
|
| 177 |
+
Returns
|
| 178 |
+
-------
|
| 179 |
+
buf : CudaBuffer
|
| 180 |
+
Allocated buffer.
|
| 181 |
+
"""
|
| 182 |
+
cdef:
|
| 183 |
+
shared_ptr[CCudaBuffer] cudabuf
|
| 184 |
+
with nogil:
|
| 185 |
+
cudabuf = GetResultValue(self.context.get().Allocate(nbytes))
|
| 186 |
+
return pyarrow_wrap_cudabuffer(cudabuf)
|
| 187 |
+
|
| 188 |
+
@property
|
| 189 |
+
def memory_manager(self):
|
| 190 |
+
"""
|
| 191 |
+
The default memory manager tied to this context's device.
|
| 192 |
+
|
| 193 |
+
Returns
|
| 194 |
+
-------
|
| 195 |
+
MemoryManager
|
| 196 |
+
"""
|
| 197 |
+
return MemoryManager.wrap(self.context.get().memory_manager())
|
| 198 |
+
|
| 199 |
+
@property
|
| 200 |
+
def device(self):
|
| 201 |
+
"""
|
| 202 |
+
The device instance associated with this context.
|
| 203 |
+
|
| 204 |
+
Returns
|
| 205 |
+
-------
|
| 206 |
+
Device
|
| 207 |
+
"""
|
| 208 |
+
return Device.wrap(self.context.get().device())
|
| 209 |
+
|
| 210 |
+
def foreign_buffer(self, address, size, base=None):
|
| 211 |
+
"""
|
| 212 |
+
Create device buffer from address and size as a view.
|
| 213 |
+
|
| 214 |
+
The caller is responsible for allocating and freeing the
|
| 215 |
+
memory. When `address==size==0` then a new zero-sized buffer
|
| 216 |
+
is returned.
|
| 217 |
+
|
| 218 |
+
Parameters
|
| 219 |
+
----------
|
| 220 |
+
address : int
|
| 221 |
+
Specify the starting address of the buffer. The address can
|
| 222 |
+
refer to both device or host memory but it must be
|
| 223 |
+
accessible from device after mapping it with
|
| 224 |
+
`get_device_address` method.
|
| 225 |
+
size : int
|
| 226 |
+
Specify the size of device buffer in bytes.
|
| 227 |
+
base : {None, object}
|
| 228 |
+
Specify object that owns the referenced memory.
|
| 229 |
+
|
| 230 |
+
Returns
|
| 231 |
+
-------
|
| 232 |
+
cbuf : CudaBuffer
|
| 233 |
+
Device buffer as a view of device reachable memory.
|
| 234 |
+
|
| 235 |
+
"""
|
| 236 |
+
if not address and size == 0:
|
| 237 |
+
return self.new_buffer(0)
|
| 238 |
+
cdef:
|
| 239 |
+
uintptr_t c_addr = self.get_device_address(address)
|
| 240 |
+
int64_t c_size = size
|
| 241 |
+
shared_ptr[CCudaBuffer] cudabuf
|
| 242 |
+
|
| 243 |
+
cudabuf = GetResultValue(self.context.get().View(
|
| 244 |
+
<uint8_t*>c_addr, c_size))
|
| 245 |
+
return pyarrow_wrap_cudabuffer_base(cudabuf, base)
|
| 246 |
+
|
| 247 |
+
def open_ipc_buffer(self, ipc_handle):
|
| 248 |
+
""" Open existing CUDA IPC memory handle
|
| 249 |
+
|
| 250 |
+
Parameters
|
| 251 |
+
----------
|
| 252 |
+
ipc_handle : IpcMemHandle
|
| 253 |
+
Specify opaque pointer to CUipcMemHandle (driver API).
|
| 254 |
+
|
| 255 |
+
Returns
|
| 256 |
+
-------
|
| 257 |
+
buf : CudaBuffer
|
| 258 |
+
referencing device buffer
|
| 259 |
+
"""
|
| 260 |
+
handle = pyarrow_unwrap_cudaipcmemhandle(ipc_handle)
|
| 261 |
+
cdef shared_ptr[CCudaBuffer] cudabuf
|
| 262 |
+
with nogil:
|
| 263 |
+
cudabuf = GetResultValue(
|
| 264 |
+
self.context.get().OpenIpcBuffer(handle.get()[0]))
|
| 265 |
+
return pyarrow_wrap_cudabuffer(cudabuf)
|
| 266 |
+
|
| 267 |
+
def buffer_from_data(self, object data, int64_t offset=0, int64_t size=-1):
|
| 268 |
+
"""Create device buffer and initialize with data.
|
| 269 |
+
|
| 270 |
+
Parameters
|
| 271 |
+
----------
|
| 272 |
+
data : {CudaBuffer, HostBuffer, Buffer, array-like}
|
| 273 |
+
Specify data to be copied to device buffer.
|
| 274 |
+
offset : int
|
| 275 |
+
Specify the offset of input buffer for device data
|
| 276 |
+
buffering. Default: 0.
|
| 277 |
+
size : int
|
| 278 |
+
Specify the size of device buffer in bytes. Default: all
|
| 279 |
+
(starting from input offset)
|
| 280 |
+
|
| 281 |
+
Returns
|
| 282 |
+
-------
|
| 283 |
+
cbuf : CudaBuffer
|
| 284 |
+
Device buffer with copied data.
|
| 285 |
+
"""
|
| 286 |
+
is_host_data = not pyarrow_is_cudabuffer(data)
|
| 287 |
+
buf = as_buffer(data) if is_host_data else data
|
| 288 |
+
|
| 289 |
+
bsize = buf.size
|
| 290 |
+
if offset < 0 or (bsize and offset >= bsize):
|
| 291 |
+
raise ValueError('offset argument is out-of-range')
|
| 292 |
+
if size < 0:
|
| 293 |
+
size = bsize - offset
|
| 294 |
+
elif offset + size > bsize:
|
| 295 |
+
raise ValueError(
|
| 296 |
+
'requested larger slice than available in device buffer')
|
| 297 |
+
|
| 298 |
+
if offset != 0 or size != bsize:
|
| 299 |
+
buf = buf.slice(offset, size)
|
| 300 |
+
|
| 301 |
+
result = self.new_buffer(size)
|
| 302 |
+
if is_host_data:
|
| 303 |
+
result.copy_from_host(buf, position=0, nbytes=size)
|
| 304 |
+
else:
|
| 305 |
+
result.copy_from_device(buf, position=0, nbytes=size)
|
| 306 |
+
return result
|
| 307 |
+
|
| 308 |
+
def buffer_from_object(self, obj):
|
| 309 |
+
"""Create device buffer view of arbitrary object that references
|
| 310 |
+
device accessible memory.
|
| 311 |
+
|
| 312 |
+
When the object contains a non-contiguous view of device
|
| 313 |
+
accessible memory then the returned device buffer will contain
|
| 314 |
+
contiguous view of the memory, that is, including the
|
| 315 |
+
intermediate data that is otherwise invisible to the input
|
| 316 |
+
object.
|
| 317 |
+
|
| 318 |
+
Parameters
|
| 319 |
+
----------
|
| 320 |
+
obj : {object, Buffer, HostBuffer, CudaBuffer, ...}
|
| 321 |
+
Specify an object that holds (device or host) address that
|
| 322 |
+
can be accessed from device. This includes objects with
|
| 323 |
+
types defined in pyarrow.cuda as well as arbitrary objects
|
| 324 |
+
that implement the CUDA array interface as defined by numba.
|
| 325 |
+
|
| 326 |
+
Returns
|
| 327 |
+
-------
|
| 328 |
+
cbuf : CudaBuffer
|
| 329 |
+
Device buffer as a view of device accessible memory.
|
| 330 |
+
|
| 331 |
+
"""
|
| 332 |
+
if isinstance(obj, HostBuffer):
|
| 333 |
+
return self.foreign_buffer(obj.address, obj.size, base=obj)
|
| 334 |
+
elif isinstance(obj, Buffer):
|
| 335 |
+
return CudaBuffer.from_buffer(obj)
|
| 336 |
+
elif isinstance(obj, CudaBuffer):
|
| 337 |
+
return obj
|
| 338 |
+
elif hasattr(obj, '__cuda_array_interface__'):
|
| 339 |
+
desc = obj.__cuda_array_interface__
|
| 340 |
+
addr = desc['data'][0]
|
| 341 |
+
if addr is None:
|
| 342 |
+
return self.new_buffer(0)
|
| 343 |
+
import numpy as np
|
| 344 |
+
start, end = get_contiguous_span(
|
| 345 |
+
desc['shape'], desc.get('strides'),
|
| 346 |
+
np.dtype(desc['typestr']).itemsize)
|
| 347 |
+
return self.foreign_buffer(addr + start, end - start, base=obj)
|
| 348 |
+
raise ArrowTypeError('cannot create device buffer view from'
|
| 349 |
+
' `%s` object' % (type(obj)))
|
| 350 |
+
|
| 351 |
+
|
| 352 |
+
cdef class IpcMemHandle(_Weakrefable):
|
| 353 |
+
"""A serializable container for a CUDA IPC handle.
|
| 354 |
+
"""
|
| 355 |
+
cdef void init(self, shared_ptr[CCudaIpcMemHandle]& h):
|
| 356 |
+
self.handle = h
|
| 357 |
+
|
| 358 |
+
@staticmethod
|
| 359 |
+
def from_buffer(Buffer opaque_handle):
|
| 360 |
+
"""Create IpcMemHandle from opaque buffer (e.g. from another
|
| 361 |
+
process)
|
| 362 |
+
|
| 363 |
+
Parameters
|
| 364 |
+
----------
|
| 365 |
+
opaque_handle :
|
| 366 |
+
a CUipcMemHandle as a const void*
|
| 367 |
+
|
| 368 |
+
Returns
|
| 369 |
+
-------
|
| 370 |
+
ipc_handle : IpcMemHandle
|
| 371 |
+
"""
|
| 372 |
+
c_buf = pyarrow_unwrap_buffer(opaque_handle)
|
| 373 |
+
cdef:
|
| 374 |
+
shared_ptr[CCudaIpcMemHandle] handle
|
| 375 |
+
|
| 376 |
+
handle = GetResultValue(
|
| 377 |
+
CCudaIpcMemHandle.FromBuffer(c_buf.get().data()))
|
| 378 |
+
return pyarrow_wrap_cudaipcmemhandle(handle)
|
| 379 |
+
|
| 380 |
+
def serialize(self, pool=None):
|
| 381 |
+
"""Write IpcMemHandle to a Buffer
|
| 382 |
+
|
| 383 |
+
Parameters
|
| 384 |
+
----------
|
| 385 |
+
pool : {MemoryPool, None}
|
| 386 |
+
Specify a pool to allocate memory from
|
| 387 |
+
|
| 388 |
+
Returns
|
| 389 |
+
-------
|
| 390 |
+
buf : Buffer
|
| 391 |
+
The serialized buffer.
|
| 392 |
+
"""
|
| 393 |
+
cdef CMemoryPool* pool_ = maybe_unbox_memory_pool(pool)
|
| 394 |
+
cdef shared_ptr[CBuffer] buf
|
| 395 |
+
cdef CCudaIpcMemHandle* h = self.handle.get()
|
| 396 |
+
with nogil:
|
| 397 |
+
buf = GetResultValue(h.Serialize(pool_))
|
| 398 |
+
return pyarrow_wrap_buffer(buf)
|
| 399 |
+
|
| 400 |
+
|
| 401 |
+
cdef class CudaBuffer(Buffer):
|
| 402 |
+
"""An Arrow buffer with data located in a GPU device.
|
| 403 |
+
|
| 404 |
+
To create a CudaBuffer instance, use Context.device_buffer().
|
| 405 |
+
|
| 406 |
+
The memory allocated in a CudaBuffer is freed when the buffer object
|
| 407 |
+
is deleted.
|
| 408 |
+
"""
|
| 409 |
+
|
| 410 |
+
def __init__(self):
|
| 411 |
+
raise TypeError("Do not call CudaBuffer's constructor directly, use "
|
| 412 |
+
"`<pyarrow.Context instance>.device_buffer`"
|
| 413 |
+
" method instead.")
|
| 414 |
+
|
| 415 |
+
cdef void init_cuda(self,
|
| 416 |
+
const shared_ptr[CCudaBuffer]& buffer,
|
| 417 |
+
object base):
|
| 418 |
+
self.cuda_buffer = buffer
|
| 419 |
+
self.init(<shared_ptr[CBuffer]> buffer)
|
| 420 |
+
self.base = base
|
| 421 |
+
|
| 422 |
+
@staticmethod
|
| 423 |
+
def from_buffer(buf):
|
| 424 |
+
""" Convert back generic buffer into CudaBuffer
|
| 425 |
+
|
| 426 |
+
Parameters
|
| 427 |
+
----------
|
| 428 |
+
buf : Buffer
|
| 429 |
+
Specify buffer containing CudaBuffer
|
| 430 |
+
|
| 431 |
+
Returns
|
| 432 |
+
-------
|
| 433 |
+
dbuf : CudaBuffer
|
| 434 |
+
Resulting device buffer.
|
| 435 |
+
"""
|
| 436 |
+
c_buf = pyarrow_unwrap_buffer(buf)
|
| 437 |
+
cuda_buffer = GetResultValue(CCudaBuffer.FromBuffer(c_buf))
|
| 438 |
+
return pyarrow_wrap_cudabuffer(cuda_buffer)
|
| 439 |
+
|
| 440 |
+
@staticmethod
|
| 441 |
+
def from_numba(mem):
|
| 442 |
+
"""Create a CudaBuffer view from numba MemoryPointer instance.
|
| 443 |
+
|
| 444 |
+
Parameters
|
| 445 |
+
----------
|
| 446 |
+
mem : numba.cuda.cudadrv.driver.MemoryPointer
|
| 447 |
+
|
| 448 |
+
Returns
|
| 449 |
+
-------
|
| 450 |
+
cbuf : CudaBuffer
|
| 451 |
+
Device buffer as a view of numba MemoryPointer.
|
| 452 |
+
"""
|
| 453 |
+
ctx = Context.from_numba(mem.context)
|
| 454 |
+
if mem.device_pointer.value is None and mem.size==0:
|
| 455 |
+
return ctx.new_buffer(0)
|
| 456 |
+
return ctx.foreign_buffer(mem.device_pointer.value, mem.size, base=mem)
|
| 457 |
+
|
| 458 |
+
def to_numba(self):
|
| 459 |
+
"""Return numba memory pointer of CudaBuffer instance.
|
| 460 |
+
"""
|
| 461 |
+
import ctypes
|
| 462 |
+
from numba.cuda.cudadrv.driver import MemoryPointer
|
| 463 |
+
return MemoryPointer(self.context.to_numba(),
|
| 464 |
+
pointer=ctypes.c_void_p(self.address),
|
| 465 |
+
size=self.size)
|
| 466 |
+
|
| 467 |
+
cdef getitem(self, int64_t i):
|
| 468 |
+
return self.copy_to_host(position=i, nbytes=1)[0]
|
| 469 |
+
|
| 470 |
+
def copy_to_host(self, int64_t position=0, int64_t nbytes=-1,
|
| 471 |
+
Buffer buf=None,
|
| 472 |
+
MemoryPool memory_pool=None, c_bool resizable=False):
|
| 473 |
+
"""Copy memory from GPU device to CPU host
|
| 474 |
+
|
| 475 |
+
Caller is responsible for ensuring that all tasks affecting
|
| 476 |
+
the memory are finished. Use
|
| 477 |
+
|
| 478 |
+
`<CudaBuffer instance>.context.synchronize()`
|
| 479 |
+
|
| 480 |
+
when needed.
|
| 481 |
+
|
| 482 |
+
Parameters
|
| 483 |
+
----------
|
| 484 |
+
position : int
|
| 485 |
+
Specify the starting position of the source data in GPU
|
| 486 |
+
device buffer. Default: 0.
|
| 487 |
+
nbytes : int
|
| 488 |
+
Specify the number of bytes to copy. Default: -1 (all from
|
| 489 |
+
the position until host buffer is full).
|
| 490 |
+
buf : Buffer
|
| 491 |
+
Specify a pre-allocated output buffer in host. Default: None
|
| 492 |
+
(allocate new output buffer).
|
| 493 |
+
memory_pool : MemoryPool
|
| 494 |
+
resizable : bool
|
| 495 |
+
Specify extra arguments to allocate_buffer. Used only when
|
| 496 |
+
buf is None.
|
| 497 |
+
|
| 498 |
+
Returns
|
| 499 |
+
-------
|
| 500 |
+
buf : Buffer
|
| 501 |
+
Output buffer in host.
|
| 502 |
+
|
| 503 |
+
"""
|
| 504 |
+
if position < 0 or (self.size and position > self.size) \
|
| 505 |
+
or (self.size == 0 and position != 0):
|
| 506 |
+
raise ValueError('position argument is out-of-range')
|
| 507 |
+
cdef:
|
| 508 |
+
int64_t c_nbytes
|
| 509 |
+
if buf is None:
|
| 510 |
+
if nbytes < 0:
|
| 511 |
+
# copy all starting from position to new host buffer
|
| 512 |
+
c_nbytes = self.size - position
|
| 513 |
+
else:
|
| 514 |
+
if nbytes > self.size - position:
|
| 515 |
+
raise ValueError(
|
| 516 |
+
'requested more to copy than available from '
|
| 517 |
+
'device buffer')
|
| 518 |
+
# copy nbytes starting from position to new host buffer
|
| 519 |
+
c_nbytes = nbytes
|
| 520 |
+
buf = allocate_buffer(c_nbytes, memory_pool=memory_pool,
|
| 521 |
+
resizable=resizable)
|
| 522 |
+
else:
|
| 523 |
+
if nbytes < 0:
|
| 524 |
+
# copy all from position until given host buffer is full
|
| 525 |
+
c_nbytes = min(self.size - position, buf.size)
|
| 526 |
+
else:
|
| 527 |
+
if nbytes > buf.size:
|
| 528 |
+
raise ValueError(
|
| 529 |
+
'requested copy does not fit into host buffer')
|
| 530 |
+
# copy nbytes from position to given host buffer
|
| 531 |
+
c_nbytes = nbytes
|
| 532 |
+
|
| 533 |
+
cdef:
|
| 534 |
+
shared_ptr[CBuffer] c_buf = pyarrow_unwrap_buffer(buf)
|
| 535 |
+
int64_t c_position = position
|
| 536 |
+
with nogil:
|
| 537 |
+
check_status(self.cuda_buffer.get()
|
| 538 |
+
.CopyToHost(c_position, c_nbytes,
|
| 539 |
+
c_buf.get().mutable_data()))
|
| 540 |
+
return buf
|
| 541 |
+
|
| 542 |
+
def copy_from_host(self, data, int64_t position=0, int64_t nbytes=-1):
|
| 543 |
+
"""Copy data from host to device.
|
| 544 |
+
|
| 545 |
+
The device buffer must be pre-allocated.
|
| 546 |
+
|
| 547 |
+
Parameters
|
| 548 |
+
----------
|
| 549 |
+
data : {Buffer, array-like}
|
| 550 |
+
Specify data in host. It can be array-like that is valid
|
| 551 |
+
argument to py_buffer
|
| 552 |
+
position : int
|
| 553 |
+
Specify the starting position of the copy in device buffer.
|
| 554 |
+
Default: 0.
|
| 555 |
+
nbytes : int
|
| 556 |
+
Specify the number of bytes to copy. Default: -1 (all from
|
| 557 |
+
source until device buffer, starting from position, is full)
|
| 558 |
+
|
| 559 |
+
Returns
|
| 560 |
+
-------
|
| 561 |
+
nbytes : int
|
| 562 |
+
Number of bytes copied.
|
| 563 |
+
"""
|
| 564 |
+
if position < 0 or position > self.size:
|
| 565 |
+
raise ValueError('position argument is out-of-range')
|
| 566 |
+
cdef:
|
| 567 |
+
int64_t c_nbytes
|
| 568 |
+
buf = as_buffer(data)
|
| 569 |
+
|
| 570 |
+
if nbytes < 0:
|
| 571 |
+
# copy from host buffer to device buffer starting from
|
| 572 |
+
# position until device buffer is full
|
| 573 |
+
c_nbytes = min(self.size - position, buf.size)
|
| 574 |
+
else:
|
| 575 |
+
if nbytes > buf.size:
|
| 576 |
+
raise ValueError(
|
| 577 |
+
'requested more to copy than available from host buffer')
|
| 578 |
+
if nbytes > self.size - position:
|
| 579 |
+
raise ValueError(
|
| 580 |
+
'requested more to copy than available in device buffer')
|
| 581 |
+
# copy nbytes from host buffer to device buffer starting
|
| 582 |
+
# from position
|
| 583 |
+
c_nbytes = nbytes
|
| 584 |
+
|
| 585 |
+
cdef:
|
| 586 |
+
shared_ptr[CBuffer] c_buf = pyarrow_unwrap_buffer(buf)
|
| 587 |
+
int64_t c_position = position
|
| 588 |
+
with nogil:
|
| 589 |
+
check_status(self.cuda_buffer.get().
|
| 590 |
+
CopyFromHost(c_position, c_buf.get().data(),
|
| 591 |
+
c_nbytes))
|
| 592 |
+
return c_nbytes
|
| 593 |
+
|
| 594 |
+
def copy_from_device(self, buf, int64_t position=0, int64_t nbytes=-1):
|
| 595 |
+
"""Copy data from device to device.
|
| 596 |
+
|
| 597 |
+
Parameters
|
| 598 |
+
----------
|
| 599 |
+
buf : CudaBuffer
|
| 600 |
+
Specify source device buffer.
|
| 601 |
+
position : int
|
| 602 |
+
Specify the starting position of the copy in device buffer.
|
| 603 |
+
Default: 0.
|
| 604 |
+
nbytes : int
|
| 605 |
+
Specify the number of bytes to copy. Default: -1 (all from
|
| 606 |
+
source until device buffer, starting from position, is full)
|
| 607 |
+
|
| 608 |
+
Returns
|
| 609 |
+
-------
|
| 610 |
+
nbytes : int
|
| 611 |
+
Number of bytes copied.
|
| 612 |
+
|
| 613 |
+
"""
|
| 614 |
+
if position < 0 or position > self.size:
|
| 615 |
+
raise ValueError('position argument is out-of-range')
|
| 616 |
+
cdef:
|
| 617 |
+
int64_t c_nbytes
|
| 618 |
+
|
| 619 |
+
if nbytes < 0:
|
| 620 |
+
# copy from source device buffer to device buffer starting
|
| 621 |
+
# from position until device buffer is full
|
| 622 |
+
c_nbytes = min(self.size - position, buf.size)
|
| 623 |
+
else:
|
| 624 |
+
if nbytes > buf.size:
|
| 625 |
+
raise ValueError(
|
| 626 |
+
'requested more to copy than available from device buffer')
|
| 627 |
+
if nbytes > self.size - position:
|
| 628 |
+
raise ValueError(
|
| 629 |
+
'requested more to copy than available in device buffer')
|
| 630 |
+
# copy nbytes from source device buffer to device buffer
|
| 631 |
+
# starting from position
|
| 632 |
+
c_nbytes = nbytes
|
| 633 |
+
|
| 634 |
+
cdef:
|
| 635 |
+
shared_ptr[CCudaBuffer] c_buf = pyarrow_unwrap_cudabuffer(buf)
|
| 636 |
+
int64_t c_position = position
|
| 637 |
+
shared_ptr[CCudaContext] c_src_ctx = pyarrow_unwrap_cudacontext(
|
| 638 |
+
buf.context)
|
| 639 |
+
void* c_source_data = <void*>(c_buf.get().address())
|
| 640 |
+
|
| 641 |
+
if self.context.handle != buf.context.handle:
|
| 642 |
+
with nogil:
|
| 643 |
+
check_status(self.cuda_buffer.get().
|
| 644 |
+
CopyFromAnotherDevice(c_src_ctx, c_position,
|
| 645 |
+
c_source_data, c_nbytes))
|
| 646 |
+
else:
|
| 647 |
+
with nogil:
|
| 648 |
+
check_status(self.cuda_buffer.get().
|
| 649 |
+
CopyFromDevice(c_position, c_source_data,
|
| 650 |
+
c_nbytes))
|
| 651 |
+
return c_nbytes
|
| 652 |
+
|
| 653 |
+
def export_for_ipc(self):
|
| 654 |
+
"""
|
| 655 |
+
Expose this device buffer as IPC memory which can be used in other
|
| 656 |
+
processes.
|
| 657 |
+
|
| 658 |
+
After calling this function, this device memory will not be
|
| 659 |
+
freed when the CudaBuffer is destructed.
|
| 660 |
+
|
| 661 |
+
Returns
|
| 662 |
+
-------
|
| 663 |
+
ipc_handle : IpcMemHandle
|
| 664 |
+
The exported IPC handle
|
| 665 |
+
|
| 666 |
+
"""
|
| 667 |
+
cdef shared_ptr[CCudaIpcMemHandle] handle
|
| 668 |
+
with nogil:
|
| 669 |
+
handle = GetResultValue(self.cuda_buffer.get().ExportForIpc())
|
| 670 |
+
return pyarrow_wrap_cudaipcmemhandle(handle)
|
| 671 |
+
|
| 672 |
+
@property
|
| 673 |
+
def context(self):
|
| 674 |
+
"""Returns the CUDA driver context of this buffer.
|
| 675 |
+
"""
|
| 676 |
+
return pyarrow_wrap_cudacontext(self.cuda_buffer.get().context())
|
| 677 |
+
|
| 678 |
+
def slice(self, offset=0, length=None):
|
| 679 |
+
"""Return slice of device buffer
|
| 680 |
+
|
| 681 |
+
Parameters
|
| 682 |
+
----------
|
| 683 |
+
offset : int, default 0
|
| 684 |
+
Specify offset from the start of device buffer to slice
|
| 685 |
+
length : int, default None
|
| 686 |
+
Specify the length of slice (default is until end of device
|
| 687 |
+
buffer starting from offset). If the length is larger than
|
| 688 |
+
the data available, the returned slice will have a size of
|
| 689 |
+
the available data starting from the offset.
|
| 690 |
+
|
| 691 |
+
Returns
|
| 692 |
+
-------
|
| 693 |
+
sliced : CudaBuffer
|
| 694 |
+
Zero-copy slice of device buffer.
|
| 695 |
+
|
| 696 |
+
"""
|
| 697 |
+
if offset < 0 or (self.size and offset >= self.size):
|
| 698 |
+
raise ValueError('offset argument is out-of-range')
|
| 699 |
+
cdef int64_t offset_ = offset
|
| 700 |
+
cdef int64_t size
|
| 701 |
+
if length is None:
|
| 702 |
+
size = self.size - offset_
|
| 703 |
+
elif offset + length <= self.size:
|
| 704 |
+
size = length
|
| 705 |
+
else:
|
| 706 |
+
size = self.size - offset
|
| 707 |
+
parent = pyarrow_unwrap_cudabuffer(self)
|
| 708 |
+
return pyarrow_wrap_cudabuffer(make_shared[CCudaBuffer](parent,
|
| 709 |
+
offset_, size))
|
| 710 |
+
|
| 711 |
+
def to_pybytes(self):
|
| 712 |
+
"""Return device buffer content as Python bytes.
|
| 713 |
+
"""
|
| 714 |
+
return self.copy_to_host().to_pybytes()
|
| 715 |
+
|
| 716 |
+
def __getbuffer__(self, cp.Py_buffer* buffer, int flags):
|
| 717 |
+
# Device buffer contains data pointers on the device. Hence,
|
| 718 |
+
# cannot support buffer protocol PEP-3118 for CudaBuffer.
|
| 719 |
+
raise BufferError('buffer protocol for device buffer not supported')
|
| 720 |
+
|
| 721 |
+
|
| 722 |
+
cdef class HostBuffer(Buffer):
|
| 723 |
+
"""Device-accessible CPU memory created using cudaHostAlloc.
|
| 724 |
+
|
| 725 |
+
To create a HostBuffer instance, use
|
| 726 |
+
|
| 727 |
+
cuda.new_host_buffer(<nbytes>)
|
| 728 |
+
"""
|
| 729 |
+
|
| 730 |
+
def __init__(self):
|
| 731 |
+
raise TypeError("Do not call HostBuffer's constructor directly,"
|
| 732 |
+
" use `cuda.new_host_buffer` function instead.")
|
| 733 |
+
|
| 734 |
+
cdef void init_host(self, const shared_ptr[CCudaHostBuffer]& buffer):
|
| 735 |
+
self.host_buffer = buffer
|
| 736 |
+
self.init(<shared_ptr[CBuffer]> buffer)
|
| 737 |
+
|
| 738 |
+
@property
|
| 739 |
+
def size(self):
|
| 740 |
+
return self.host_buffer.get().size()
|
| 741 |
+
|
| 742 |
+
|
| 743 |
+
cdef class BufferReader(NativeFile):
|
| 744 |
+
"""File interface for zero-copy read from CUDA buffers.
|
| 745 |
+
|
| 746 |
+
Note: Read methods return pointers to device memory. This means
|
| 747 |
+
you must be careful using this interface with any Arrow code which
|
| 748 |
+
may expect to be able to do anything other than pointer arithmetic
|
| 749 |
+
on the returned buffers.
|
| 750 |
+
"""
|
| 751 |
+
|
| 752 |
+
def __cinit__(self, CudaBuffer obj):
|
| 753 |
+
self.buffer = obj
|
| 754 |
+
self.reader = new CCudaBufferReader(self.buffer.buffer)
|
| 755 |
+
self.set_random_access_file(
|
| 756 |
+
shared_ptr[CRandomAccessFile](self.reader))
|
| 757 |
+
self.is_readable = True
|
| 758 |
+
|
| 759 |
+
def read_buffer(self, nbytes=None):
|
| 760 |
+
"""Return a slice view of the underlying device buffer.
|
| 761 |
+
|
| 762 |
+
The slice will start at the current reader position and will
|
| 763 |
+
have specified size in bytes.
|
| 764 |
+
|
| 765 |
+
Parameters
|
| 766 |
+
----------
|
| 767 |
+
nbytes : int, default None
|
| 768 |
+
Specify the number of bytes to read. Default: None (read all
|
| 769 |
+
remaining bytes).
|
| 770 |
+
|
| 771 |
+
Returns
|
| 772 |
+
-------
|
| 773 |
+
cbuf : CudaBuffer
|
| 774 |
+
New device buffer.
|
| 775 |
+
|
| 776 |
+
"""
|
| 777 |
+
cdef:
|
| 778 |
+
int64_t c_nbytes
|
| 779 |
+
shared_ptr[CCudaBuffer] output
|
| 780 |
+
|
| 781 |
+
if nbytes is None:
|
| 782 |
+
c_nbytes = self.size() - self.tell()
|
| 783 |
+
else:
|
| 784 |
+
c_nbytes = nbytes
|
| 785 |
+
|
| 786 |
+
with nogil:
|
| 787 |
+
output = static_pointer_cast[CCudaBuffer, CBuffer](
|
| 788 |
+
GetResultValue(self.reader.Read(c_nbytes)))
|
| 789 |
+
|
| 790 |
+
return pyarrow_wrap_cudabuffer(output)
|
| 791 |
+
|
| 792 |
+
|
| 793 |
+
cdef class BufferWriter(NativeFile):
|
| 794 |
+
"""File interface for writing to CUDA buffers.
|
| 795 |
+
|
| 796 |
+
By default writes are unbuffered. Use set_buffer_size to enable
|
| 797 |
+
buffering.
|
| 798 |
+
"""
|
| 799 |
+
|
| 800 |
+
def __cinit__(self, CudaBuffer buffer):
|
| 801 |
+
self.buffer = buffer
|
| 802 |
+
self.writer = new CCudaBufferWriter(self.buffer.cuda_buffer)
|
| 803 |
+
self.set_output_stream(shared_ptr[COutputStream](self.writer))
|
| 804 |
+
self.is_writable = True
|
| 805 |
+
|
| 806 |
+
def writeat(self, int64_t position, object data):
|
| 807 |
+
"""Write data to buffer starting from position.
|
| 808 |
+
|
| 809 |
+
Parameters
|
| 810 |
+
----------
|
| 811 |
+
position : int
|
| 812 |
+
Specify device buffer position where the data will be
|
| 813 |
+
written.
|
| 814 |
+
data : array-like
|
| 815 |
+
Specify data, the data instance must implement buffer
|
| 816 |
+
protocol.
|
| 817 |
+
"""
|
| 818 |
+
cdef:
|
| 819 |
+
Buffer buf = as_buffer(data)
|
| 820 |
+
const uint8_t* c_data = buf.buffer.get().data()
|
| 821 |
+
int64_t c_size = buf.buffer.get().size()
|
| 822 |
+
|
| 823 |
+
with nogil:
|
| 824 |
+
check_status(self.writer.WriteAt(position, c_data, c_size))
|
| 825 |
+
|
| 826 |
+
def flush(self):
|
| 827 |
+
""" Flush the buffer stream """
|
| 828 |
+
with nogil:
|
| 829 |
+
check_status(self.writer.Flush())
|
| 830 |
+
|
| 831 |
+
def seek(self, int64_t position, int whence=0):
|
| 832 |
+
# TODO: remove this method after NativeFile.seek supports
|
| 833 |
+
# writable files.
|
| 834 |
+
cdef int64_t offset
|
| 835 |
+
|
| 836 |
+
with nogil:
|
| 837 |
+
if whence == 0:
|
| 838 |
+
offset = position
|
| 839 |
+
elif whence == 1:
|
| 840 |
+
offset = GetResultValue(self.writer.Tell())
|
| 841 |
+
offset = offset + position
|
| 842 |
+
else:
|
| 843 |
+
with gil:
|
| 844 |
+
raise ValueError("Invalid value of whence: {0}"
|
| 845 |
+
.format(whence))
|
| 846 |
+
check_status(self.writer.Seek(offset))
|
| 847 |
+
return self.tell()
|
| 848 |
+
|
| 849 |
+
@property
|
| 850 |
+
def buffer_size(self):
|
| 851 |
+
"""Returns size of host (CPU) buffer, 0 for unbuffered
|
| 852 |
+
"""
|
| 853 |
+
return self.writer.buffer_size()
|
| 854 |
+
|
| 855 |
+
@buffer_size.setter
|
| 856 |
+
def buffer_size(self, int64_t buffer_size):
|
| 857 |
+
"""Set CPU buffer size to limit calls to cudaMemcpy
|
| 858 |
+
|
| 859 |
+
Parameters
|
| 860 |
+
----------
|
| 861 |
+
buffer_size : int
|
| 862 |
+
Specify the size of CPU buffer to allocate in bytes.
|
| 863 |
+
"""
|
| 864 |
+
with nogil:
|
| 865 |
+
check_status(self.writer.SetBufferSize(buffer_size))
|
| 866 |
+
|
| 867 |
+
@property
|
| 868 |
+
def num_bytes_buffered(self):
|
| 869 |
+
"""Returns number of bytes buffered on host
|
| 870 |
+
"""
|
| 871 |
+
return self.writer.num_bytes_buffered()
|
| 872 |
+
|
| 873 |
+
# Functions
|
| 874 |
+
|
| 875 |
+
|
| 876 |
+
def new_host_buffer(const int64_t size, int device=0):
|
| 877 |
+
"""Return buffer with CUDA-accessible memory on CPU host
|
| 878 |
+
|
| 879 |
+
Parameters
|
| 880 |
+
----------
|
| 881 |
+
size : int
|
| 882 |
+
Specify the number of bytes to be allocated.
|
| 883 |
+
device : int
|
| 884 |
+
Specify GPU device number.
|
| 885 |
+
|
| 886 |
+
Returns
|
| 887 |
+
-------
|
| 888 |
+
dbuf : HostBuffer
|
| 889 |
+
Allocated host buffer
|
| 890 |
+
"""
|
| 891 |
+
cdef shared_ptr[CCudaHostBuffer] buffer
|
| 892 |
+
with nogil:
|
| 893 |
+
buffer = GetResultValue(AllocateCudaHostBuffer(device, size))
|
| 894 |
+
return pyarrow_wrap_cudahostbuffer(buffer)
|
| 895 |
+
|
| 896 |
+
|
| 897 |
+
def serialize_record_batch(object batch, object ctx):
|
| 898 |
+
""" Write record batch message to GPU device memory
|
| 899 |
+
|
| 900 |
+
Parameters
|
| 901 |
+
----------
|
| 902 |
+
batch : RecordBatch
|
| 903 |
+
Record batch to write
|
| 904 |
+
ctx : Context
|
| 905 |
+
CUDA Context to allocate device memory from
|
| 906 |
+
|
| 907 |
+
Returns
|
| 908 |
+
-------
|
| 909 |
+
dbuf : CudaBuffer
|
| 910 |
+
device buffer which contains the record batch message
|
| 911 |
+
"""
|
| 912 |
+
cdef shared_ptr[CCudaBuffer] buffer
|
| 913 |
+
cdef CRecordBatch* batch_ = pyarrow_unwrap_batch(batch).get()
|
| 914 |
+
cdef CCudaContext* ctx_ = pyarrow_unwrap_cudacontext(ctx).get()
|
| 915 |
+
with nogil:
|
| 916 |
+
buffer = GetResultValue(CudaSerializeRecordBatch(batch_[0], ctx_))
|
| 917 |
+
return pyarrow_wrap_cudabuffer(buffer)
|
| 918 |
+
|
| 919 |
+
|
| 920 |
+
def read_message(object source, pool=None):
|
| 921 |
+
""" Read Arrow IPC message located on GPU device
|
| 922 |
+
|
| 923 |
+
Parameters
|
| 924 |
+
----------
|
| 925 |
+
source : {CudaBuffer, cuda.BufferReader}
|
| 926 |
+
Device buffer or reader of device buffer.
|
| 927 |
+
pool : MemoryPool (optional)
|
| 928 |
+
Pool to allocate CPU memory for the metadata
|
| 929 |
+
|
| 930 |
+
Returns
|
| 931 |
+
-------
|
| 932 |
+
message : Message
|
| 933 |
+
The deserialized message, body still on device
|
| 934 |
+
"""
|
| 935 |
+
cdef:
|
| 936 |
+
Message result = Message.__new__(Message)
|
| 937 |
+
cdef CMemoryPool* pool_ = maybe_unbox_memory_pool(pool)
|
| 938 |
+
if not isinstance(source, BufferReader):
|
| 939 |
+
reader = BufferReader(source)
|
| 940 |
+
with nogil:
|
| 941 |
+
result.message = move(
|
| 942 |
+
GetResultValue(ReadMessage(reader.reader, pool_)))
|
| 943 |
+
return result
|
| 944 |
+
|
| 945 |
+
|
| 946 |
+
def read_record_batch(object buffer, object schema, *,
|
| 947 |
+
DictionaryMemo dictionary_memo=None, pool=None):
|
| 948 |
+
"""Construct RecordBatch referencing IPC message located on CUDA device.
|
| 949 |
+
|
| 950 |
+
While the metadata is copied to host memory for deserialization,
|
| 951 |
+
the record batch data remains on the device.
|
| 952 |
+
|
| 953 |
+
Parameters
|
| 954 |
+
----------
|
| 955 |
+
buffer :
|
| 956 |
+
Device buffer containing the complete IPC message
|
| 957 |
+
schema : Schema
|
| 958 |
+
The schema for the record batch
|
| 959 |
+
dictionary_memo : DictionaryMemo, optional
|
| 960 |
+
If message contains dictionaries, must pass a populated
|
| 961 |
+
DictionaryMemo
|
| 962 |
+
pool : MemoryPool (optional)
|
| 963 |
+
Pool to allocate metadata from
|
| 964 |
+
|
| 965 |
+
Returns
|
| 966 |
+
-------
|
| 967 |
+
batch : RecordBatch
|
| 968 |
+
Reconstructed record batch, with device pointers
|
| 969 |
+
|
| 970 |
+
"""
|
| 971 |
+
cdef:
|
| 972 |
+
shared_ptr[CSchema] schema_ = pyarrow_unwrap_schema(schema)
|
| 973 |
+
shared_ptr[CCudaBuffer] buffer_ = pyarrow_unwrap_cudabuffer(buffer)
|
| 974 |
+
CDictionaryMemo temp_memo
|
| 975 |
+
CDictionaryMemo* arg_dict_memo
|
| 976 |
+
CMemoryPool* pool_ = maybe_unbox_memory_pool(pool)
|
| 977 |
+
shared_ptr[CRecordBatch] batch
|
| 978 |
+
|
| 979 |
+
if dictionary_memo is not None:
|
| 980 |
+
arg_dict_memo = dictionary_memo.memo
|
| 981 |
+
else:
|
| 982 |
+
arg_dict_memo = &temp_memo
|
| 983 |
+
|
| 984 |
+
with nogil:
|
| 985 |
+
batch = GetResultValue(CudaReadRecordBatch(
|
| 986 |
+
schema_, arg_dict_memo, buffer_, pool_))
|
| 987 |
+
return pyarrow_wrap_batch(batch)
|
| 988 |
+
|
| 989 |
+
|
| 990 |
+
# Public API
|
| 991 |
+
|
| 992 |
+
|
| 993 |
+
cdef public api bint pyarrow_is_buffer(object buffer):
|
| 994 |
+
return isinstance(buffer, Buffer)
|
| 995 |
+
|
| 996 |
+
# cudabuffer
|
| 997 |
+
|
| 998 |
+
cdef public api bint pyarrow_is_cudabuffer(object buffer):
|
| 999 |
+
return isinstance(buffer, CudaBuffer)
|
| 1000 |
+
|
| 1001 |
+
|
| 1002 |
+
cdef public api object \
|
| 1003 |
+
pyarrow_wrap_cudabuffer_base(const shared_ptr[CCudaBuffer]& buf, base):
|
| 1004 |
+
cdef CudaBuffer result = CudaBuffer.__new__(CudaBuffer)
|
| 1005 |
+
result.init_cuda(buf, base)
|
| 1006 |
+
return result
|
| 1007 |
+
|
| 1008 |
+
|
| 1009 |
+
cdef public api object \
|
| 1010 |
+
pyarrow_wrap_cudabuffer(const shared_ptr[CCudaBuffer]& buf):
|
| 1011 |
+
cdef CudaBuffer result = CudaBuffer.__new__(CudaBuffer)
|
| 1012 |
+
result.init_cuda(buf, None)
|
| 1013 |
+
return result
|
| 1014 |
+
|
| 1015 |
+
|
| 1016 |
+
cdef public api shared_ptr[CCudaBuffer] pyarrow_unwrap_cudabuffer(object obj):
|
| 1017 |
+
if pyarrow_is_cudabuffer(obj):
|
| 1018 |
+
return (<CudaBuffer>obj).cuda_buffer
|
| 1019 |
+
raise TypeError('expected CudaBuffer instance, got %s'
|
| 1020 |
+
% (type(obj).__name__))
|
| 1021 |
+
|
| 1022 |
+
# cudahostbuffer
|
| 1023 |
+
|
| 1024 |
+
cdef public api bint pyarrow_is_cudahostbuffer(object buffer):
|
| 1025 |
+
return isinstance(buffer, HostBuffer)
|
| 1026 |
+
|
| 1027 |
+
|
| 1028 |
+
cdef public api object \
|
| 1029 |
+
pyarrow_wrap_cudahostbuffer(const shared_ptr[CCudaHostBuffer]& buf):
|
| 1030 |
+
cdef HostBuffer result = HostBuffer.__new__(HostBuffer)
|
| 1031 |
+
result.init_host(buf)
|
| 1032 |
+
return result
|
| 1033 |
+
|
| 1034 |
+
|
| 1035 |
+
cdef public api shared_ptr[CCudaHostBuffer] \
|
| 1036 |
+
pyarrow_unwrap_cudahostbuffer(object obj):
|
| 1037 |
+
if pyarrow_is_cudahostbuffer(obj):
|
| 1038 |
+
return (<HostBuffer>obj).host_buffer
|
| 1039 |
+
raise TypeError('expected HostBuffer instance, got %s'
|
| 1040 |
+
% (type(obj).__name__))
|
| 1041 |
+
|
| 1042 |
+
# cudacontext
|
| 1043 |
+
|
| 1044 |
+
cdef public api bint pyarrow_is_cudacontext(object ctx):
|
| 1045 |
+
return isinstance(ctx, Context)
|
| 1046 |
+
|
| 1047 |
+
|
| 1048 |
+
cdef public api object \
|
| 1049 |
+
pyarrow_wrap_cudacontext(const shared_ptr[CCudaContext]& ctx):
|
| 1050 |
+
cdef Context result = Context.__new__(Context)
|
| 1051 |
+
result.init(ctx)
|
| 1052 |
+
return result
|
| 1053 |
+
|
| 1054 |
+
|
| 1055 |
+
cdef public api shared_ptr[CCudaContext] \
|
| 1056 |
+
pyarrow_unwrap_cudacontext(object obj):
|
| 1057 |
+
if pyarrow_is_cudacontext(obj):
|
| 1058 |
+
return (<Context>obj).context
|
| 1059 |
+
raise TypeError('expected Context instance, got %s'
|
| 1060 |
+
% (type(obj).__name__))
|
| 1061 |
+
|
| 1062 |
+
# cudaipcmemhandle
|
| 1063 |
+
|
| 1064 |
+
cdef public api bint pyarrow_is_cudaipcmemhandle(object handle):
|
| 1065 |
+
return isinstance(handle, IpcMemHandle)
|
| 1066 |
+
|
| 1067 |
+
|
| 1068 |
+
cdef public api object \
|
| 1069 |
+
pyarrow_wrap_cudaipcmemhandle(shared_ptr[CCudaIpcMemHandle]& h):
|
| 1070 |
+
cdef IpcMemHandle result = IpcMemHandle.__new__(IpcMemHandle)
|
| 1071 |
+
result.init(h)
|
| 1072 |
+
return result
|
| 1073 |
+
|
| 1074 |
+
|
| 1075 |
+
cdef public api shared_ptr[CCudaIpcMemHandle] \
|
| 1076 |
+
pyarrow_unwrap_cudaipcmemhandle(object obj):
|
| 1077 |
+
if pyarrow_is_cudaipcmemhandle(obj):
|
| 1078 |
+
return (<IpcMemHandle>obj).handle
|
| 1079 |
+
raise TypeError('expected IpcMemHandle instance, got %s'
|
| 1080 |
+
% (type(obj).__name__))
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_dataset.cpython-312-x86_64-linux-gnu.so
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4c8355d3504b46bf95f02534ac8c61bec5e6c496086f6d8e985b56f53b057b24
|
| 3 |
+
size 1069560
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_dataset.pxd
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Licensed to the Apache Software Foundation (ASF) under one
|
| 2 |
+
# or more contributor license agreements. See the NOTICE file
|
| 3 |
+
# distributed with this work for additional information
|
| 4 |
+
# regarding copyright ownership. The ASF licenses this file
|
| 5 |
+
# to you under the Apache License, Version 2.0 (the
|
| 6 |
+
# "License"); you may not use this file except in compliance
|
| 7 |
+
# with the License. You may obtain a copy of the License at
|
| 8 |
+
#
|
| 9 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 10 |
+
#
|
| 11 |
+
# Unless required by applicable law or agreed to in writing,
|
| 12 |
+
# software distributed under the License is distributed on an
|
| 13 |
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
| 14 |
+
# KIND, either express or implied. See the License for the
|
| 15 |
+
# specific language governing permissions and limitations
|
| 16 |
+
# under the License.
|
| 17 |
+
|
| 18 |
+
# cython: language_level = 3
|
| 19 |
+
|
| 20 |
+
"""Dataset is currently unstable. APIs subject to change without notice."""
|
| 21 |
+
|
| 22 |
+
from pyarrow.includes.common cimport *
|
| 23 |
+
from pyarrow.includes.libarrow_dataset cimport *
|
| 24 |
+
from pyarrow.lib cimport *
|
| 25 |
+
from pyarrow._fs cimport FileSystem, FileInfo
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
cdef CFileSource _make_file_source(object file, FileSystem filesystem=*, object file_size=*)
|
| 29 |
+
|
| 30 |
+
cdef class DatasetFactory(_Weakrefable):
|
| 31 |
+
|
| 32 |
+
cdef:
|
| 33 |
+
SharedPtrNoGIL[CDatasetFactory] wrapped
|
| 34 |
+
CDatasetFactory* factory
|
| 35 |
+
|
| 36 |
+
cdef init(self, const shared_ptr[CDatasetFactory]& sp)
|
| 37 |
+
|
| 38 |
+
@staticmethod
|
| 39 |
+
cdef wrap(const shared_ptr[CDatasetFactory]& sp)
|
| 40 |
+
|
| 41 |
+
cdef inline shared_ptr[CDatasetFactory] unwrap(self) nogil
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
cdef class Dataset(_Weakrefable):
|
| 45 |
+
|
| 46 |
+
cdef:
|
| 47 |
+
SharedPtrNoGIL[CDataset] wrapped
|
| 48 |
+
CDataset* dataset
|
| 49 |
+
public dict _scan_options
|
| 50 |
+
|
| 51 |
+
cdef void init(self, const shared_ptr[CDataset]& sp)
|
| 52 |
+
|
| 53 |
+
@staticmethod
|
| 54 |
+
cdef wrap(const shared_ptr[CDataset]& sp)
|
| 55 |
+
|
| 56 |
+
cdef shared_ptr[CDataset] unwrap(self) nogil
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
cdef class Scanner(_Weakrefable):
|
| 60 |
+
cdef:
|
| 61 |
+
SharedPtrNoGIL[CScanner] wrapped
|
| 62 |
+
CScanner* scanner
|
| 63 |
+
|
| 64 |
+
cdef void init(self, const shared_ptr[CScanner]& sp)
|
| 65 |
+
|
| 66 |
+
@staticmethod
|
| 67 |
+
cdef wrap(const shared_ptr[CScanner]& sp)
|
| 68 |
+
|
| 69 |
+
cdef shared_ptr[CScanner] unwrap(self)
|
| 70 |
+
|
| 71 |
+
@staticmethod
|
| 72 |
+
cdef shared_ptr[CScanOptions] _make_scan_options(Dataset dataset, dict py_scanoptions) except *
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
cdef class FragmentScanOptions(_Weakrefable):
|
| 76 |
+
|
| 77 |
+
cdef:
|
| 78 |
+
shared_ptr[CFragmentScanOptions] wrapped
|
| 79 |
+
|
| 80 |
+
cdef void init(self, const shared_ptr[CFragmentScanOptions]& sp)
|
| 81 |
+
|
| 82 |
+
@staticmethod
|
| 83 |
+
cdef wrap(const shared_ptr[CFragmentScanOptions]& sp)
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
cdef class FileFormat(_Weakrefable):
|
| 87 |
+
|
| 88 |
+
cdef:
|
| 89 |
+
shared_ptr[CFileFormat] wrapped
|
| 90 |
+
CFileFormat* format
|
| 91 |
+
|
| 92 |
+
cdef void init(self, const shared_ptr[CFileFormat]& sp)
|
| 93 |
+
|
| 94 |
+
@staticmethod
|
| 95 |
+
cdef wrap(const shared_ptr[CFileFormat]& sp)
|
| 96 |
+
|
| 97 |
+
cdef inline shared_ptr[CFileFormat] unwrap(self)
|
| 98 |
+
|
| 99 |
+
cdef _set_default_fragment_scan_options(self, FragmentScanOptions options)
|
| 100 |
+
|
| 101 |
+
# Return a WrittenFile after a file was written.
|
| 102 |
+
# May be overridden by subclasses, e.g. to add metadata.
|
| 103 |
+
cdef WrittenFile _finish_write(self, path, base_dir,
|
| 104 |
+
CFileWriter* file_writer)
|
| 105 |
+
|
| 106 |
+
|
| 107 |
+
cdef class FileWriteOptions(_Weakrefable):
|
| 108 |
+
|
| 109 |
+
cdef:
|
| 110 |
+
shared_ptr[CFileWriteOptions] wrapped
|
| 111 |
+
CFileWriteOptions* c_options
|
| 112 |
+
|
| 113 |
+
cdef void init(self, const shared_ptr[CFileWriteOptions]& sp)
|
| 114 |
+
|
| 115 |
+
@staticmethod
|
| 116 |
+
cdef wrap(const shared_ptr[CFileWriteOptions]& sp)
|
| 117 |
+
|
| 118 |
+
cdef inline shared_ptr[CFileWriteOptions] unwrap(self)
|
| 119 |
+
|
| 120 |
+
|
| 121 |
+
cdef class Fragment(_Weakrefable):
|
| 122 |
+
|
| 123 |
+
cdef:
|
| 124 |
+
SharedPtrNoGIL[CFragment] wrapped
|
| 125 |
+
CFragment* fragment
|
| 126 |
+
|
| 127 |
+
cdef void init(self, const shared_ptr[CFragment]& sp)
|
| 128 |
+
|
| 129 |
+
@staticmethod
|
| 130 |
+
cdef wrap(const shared_ptr[CFragment]& sp)
|
| 131 |
+
|
| 132 |
+
cdef inline shared_ptr[CFragment] unwrap(self)
|
| 133 |
+
|
| 134 |
+
|
| 135 |
+
cdef class FileFragment(Fragment):
|
| 136 |
+
|
| 137 |
+
cdef:
|
| 138 |
+
CFileFragment* file_fragment
|
| 139 |
+
|
| 140 |
+
cdef void init(self, const shared_ptr[CFragment]& sp)
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
cdef class Partitioning(_Weakrefable):
|
| 144 |
+
|
| 145 |
+
cdef:
|
| 146 |
+
shared_ptr[CPartitioning] wrapped
|
| 147 |
+
CPartitioning* partitioning
|
| 148 |
+
|
| 149 |
+
cdef init(self, const shared_ptr[CPartitioning]& sp)
|
| 150 |
+
|
| 151 |
+
@staticmethod
|
| 152 |
+
cdef wrap(const shared_ptr[CPartitioning]& sp)
|
| 153 |
+
|
| 154 |
+
cdef inline shared_ptr[CPartitioning] unwrap(self)
|
| 155 |
+
|
| 156 |
+
|
| 157 |
+
cdef class PartitioningFactory(_Weakrefable):
|
| 158 |
+
|
| 159 |
+
cdef:
|
| 160 |
+
shared_ptr[CPartitioningFactory] wrapped
|
| 161 |
+
CPartitioningFactory* factory
|
| 162 |
+
object constructor
|
| 163 |
+
object options
|
| 164 |
+
|
| 165 |
+
cdef init(self, const shared_ptr[CPartitioningFactory]& sp)
|
| 166 |
+
|
| 167 |
+
@staticmethod
|
| 168 |
+
cdef wrap(const shared_ptr[CPartitioningFactory]& sp,
|
| 169 |
+
object constructor, object options)
|
| 170 |
+
|
| 171 |
+
cdef inline shared_ptr[CPartitioningFactory] unwrap(self)
|
| 172 |
+
|
| 173 |
+
|
| 174 |
+
cdef class WrittenFile(_Weakrefable):
|
| 175 |
+
|
| 176 |
+
# The full path to the created file
|
| 177 |
+
cdef public str path
|
| 178 |
+
# Optional Parquet metadata
|
| 179 |
+
# This metadata will have the file path attribute set to the path of
|
| 180 |
+
# the written file.
|
| 181 |
+
cdef public object metadata
|
| 182 |
+
# The size of the file in bytes
|
| 183 |
+
cdef public int64_t size
|
graphrag-ollama/lib/python3.12/site-packages/pyarrow/_dataset.pyx
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|