team-10/env/Lib/site-packages/pyarrow/_parquet.pxd

153 lines
4.8 KiB
Cython
Raw Permalink Normal View History

2025-08-02 07:34:44 +02:00
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# distutils: language = c++
# cython: language_level = 3
from pyarrow.includes.libparquet cimport *
from pyarrow.lib cimport _Weakrefable
cdef class FileEncryptionProperties:
"""File-level encryption properties for the low-level API"""
cdef:
shared_ptr[CFileEncryptionProperties] properties
@staticmethod
cdef inline FileEncryptionProperties wrap(
shared_ptr[CFileEncryptionProperties] properties):
result = FileEncryptionProperties()
result.properties = properties
return result
cdef inline shared_ptr[CFileEncryptionProperties] unwrap(self):
return self.properties
cdef shared_ptr[WriterProperties] _create_writer_properties(
use_dictionary=*,
compression=*,
version=*,
write_statistics=*,
data_page_size=*,
compression_level=*,
use_byte_stream_split=*,
column_encoding=*,
data_page_version=*,
FileEncryptionProperties encryption_properties=*,
write_batch_size=*,
dictionary_pagesize_limit=*,
write_page_index=*,
write_page_checksum=*,
sorting_columns=*,
store_decimal_as_integer=*,
use_content_defined_chunking=*
) except *
cdef shared_ptr[ArrowWriterProperties] _create_arrow_writer_properties(
use_deprecated_int96_timestamps=*,
coerce_timestamps=*,
allow_truncated_timestamps=*,
writer_engine_version=*,
use_compliant_nested_type=*,
store_schema=*,
) except *
# Unwrap the "list_type" argument for ArrowReaderProperties
cdef Type _unwrap_list_type(obj) except *
cdef class ParquetSchema(_Weakrefable):
cdef:
FileMetaData parent # the FileMetaData owning the SchemaDescriptor
const SchemaDescriptor* schema
cdef class FileMetaData(_Weakrefable):
cdef:
shared_ptr[CFileMetaData] sp_metadata
CFileMetaData* _metadata
ParquetSchema _schema
cdef inline init(self, const shared_ptr[CFileMetaData]& metadata):
self.sp_metadata = metadata
self._metadata = metadata.get()
cdef class RowGroupMetaData(_Weakrefable):
cdef:
int index # for pickling support
unique_ptr[CRowGroupMetaData] up_metadata
CRowGroupMetaData* metadata
FileMetaData parent
cdef inline init(self, FileMetaData parent, int index):
if index < 0 or index >= parent.num_row_groups:
raise IndexError('{0} out of bounds'.format(index))
self.up_metadata = parent._metadata.RowGroup(index)
self.metadata = self.up_metadata.get()
self.parent = parent
self.index = index
cdef class ColumnChunkMetaData(_Weakrefable):
cdef:
unique_ptr[CColumnChunkMetaData] up_metadata
CColumnChunkMetaData* metadata
RowGroupMetaData parent
cdef inline init(self, RowGroupMetaData parent, int i):
self.up_metadata = parent.metadata.ColumnChunk(i)
self.metadata = self.up_metadata.get()
self.parent = parent
cdef class Statistics(_Weakrefable):
cdef:
shared_ptr[CStatistics] statistics
ColumnChunkMetaData parent
cdef inline init(self, const shared_ptr[CStatistics]& statistics,
ColumnChunkMetaData parent):
self.statistics = statistics
self.parent = parent
cdef class GeoStatistics(_Weakrefable):
cdef:
shared_ptr[CParquetGeoStatistics] statistics
ColumnChunkMetaData parent
cdef inline init(self, const shared_ptr[CParquetGeoStatistics]& statistics,
ColumnChunkMetaData parent):
self.statistics = statistics
self.parent = parent
cdef class FileDecryptionProperties:
"""File-level decryption properties for the low-level API"""
cdef:
shared_ptr[CFileDecryptionProperties] properties
@staticmethod
cdef inline FileDecryptionProperties wrap(
shared_ptr[CFileDecryptionProperties] properties):
result = FileDecryptionProperties()
result.properties = properties
return result
cdef inline shared_ptr[CFileDecryptionProperties] unwrap(self):
return self.properties