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
|
|