Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions python/pyarrow/_compute.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -2345,6 +2345,15 @@ cdef class Expression(_Weakrefable):
return self.expr

def equals(self, Expression other):
"""
Parameters
----------
other : pyarrow.dataset.Expression

Returns
-------
bool
"""
return self.expr.Equals(other.unwrap())

def __str__(self):
Expand Down
27 changes: 27 additions & 0 deletions python/pyarrow/_csv.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,15 @@ cdef class ReadOptions(_Weakrefable):
check_status(deref(self.options).Validate())

def equals(self, ReadOptions other):
"""
Parameters
----------
other : pyarrow.csv.ReadOptions

Returns
-------
bool
"""
return (
self.use_threads == other.use_threads and
self.block_size == other.block_size and
Expand Down Expand Up @@ -536,6 +545,15 @@ cdef class ParseOptions(_Weakrefable):
check_status(deref(self.options).Validate())

def equals(self, ParseOptions other):
"""
Parameters
----------
other : pyarrow.csv.ParseOptions

Returns
-------
bool
"""
return (
self.delimiter == other.delimiter and
self.quote_char == other.quote_char and
Expand Down Expand Up @@ -1042,6 +1060,15 @@ cdef class ConvertOptions(_Weakrefable):
check_status(deref(self.options).Validate())

def equals(self, ConvertOptions other):
"""
Parameters
----------
other : pyarrow.csv.ConvertOptions

Returns
-------
bool
"""
return (
self.check_utf8 == other.check_utf8 and
self.column_types == other.column_types and
Expand Down
74 changes: 74 additions & 0 deletions python/pyarrow/_dataset.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -1992,9 +1992,27 @@ cdef class IpcFileFormat(FileFormat):
self.init(shared_ptr[CFileFormat](new CIpcFileFormat()))

def equals(self, IpcFileFormat other):
"""
Parameters
----------
other : pyarrow.dataset.IpcFileFormat

Returns
-------
True
"""
return True

def make_write_options(self, **kwargs):
"""
Parameters
----------
**kwargs : dict

Returns
-------
pyarrow.ipc.IpcWriteOptions
"""
cdef IpcFileWriteOptions opts = \
<IpcFileWriteOptions> FileFormat.make_write_options(self)
opts.write_options = IpcWriteOptions(**kwargs)
Expand Down Expand Up @@ -2071,6 +2089,15 @@ cdef class CsvFileFormat(FileFormat):
self.csv_format = <CCsvFileFormat*> sp.get()

def make_write_options(self, **kwargs):
"""
Parameters
----------
**kwargs : dict

Returns
-------
pyarrow.csv.WriteOptions
"""
cdef CsvFileWriteOptions opts = \
<CsvFileWriteOptions> FileFormat.make_write_options(self)
opts.write_options = WriteOptions(**kwargs)
Expand All @@ -2093,6 +2120,15 @@ cdef class CsvFileFormat(FileFormat):
super()._set_default_fragment_scan_options(options)

def equals(self, CsvFileFormat other):
"""
Parameters
----------
other : pyarrow.dataset.CsvFileFormat

Returns
-------
bool
"""
return (
self.parse_options.equals(other.parse_options) and
self.default_fragment_scan_options ==
Expand Down Expand Up @@ -2165,6 +2201,15 @@ cdef class CsvFragmentScanOptions(FragmentScanOptions):
make_streamwrap_func(read_options.encoding, 'utf-8'))

def equals(self, CsvFragmentScanOptions other):
"""
Parameters
----------
other : pyarrow.dataset.CsvFragmentScanOptions

Returns
-------
bool
"""
return (
other and
self.convert_options.equals(other.convert_options) and
Expand Down Expand Up @@ -2250,6 +2295,15 @@ cdef class JsonFileFormat(FileFormat):
super()._set_default_fragment_scan_options(options)

def equals(self, JsonFileFormat other):
"""
Parameters
----------
other : pyarrow.dataset.JsonFileFormat

Returns
-------
bool
"""
return (other and
self.default_fragment_scan_options ==
other.default_fragment_scan_options)
Expand Down Expand Up @@ -2308,6 +2362,15 @@ cdef class JsonFragmentScanOptions(FragmentScanOptions):
self.json_options.read_options = read_options.options

def equals(self, JsonFragmentScanOptions other):
"""
Parameters
----------
other : pyarrow.dataset.JsonFragmentScanOptions

Returns
-------
bool
"""
return (
other and
self.read_options.equals(other.read_options) and
Expand Down Expand Up @@ -2353,6 +2416,17 @@ cdef class Partitioning(_Weakrefable):
return False

def parse(self, path):
"""
Parse a path into a partition expression.

Parameters
----------
path : str

Returns
-------
pyarrow.dataset.Expression
"""
cdef CResult[CExpression] result
result = self.partitioning.Parse(tobytes(path))
return Expression.wrap(GetResultValue(result))
Expand Down
9 changes: 9 additions & 0 deletions python/pyarrow/_dataset_orc.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ cdef class OrcFileFormat(FileFormat):
self.init(shared_ptr[CFileFormat](new COrcFileFormat()))

def equals(self, OrcFileFormat other):
"""
Parameters
----------
other : pyarrow.dataset.OrcFileFormat

Returns
-------
True
"""
return True

@property
Expand Down
41 changes: 41 additions & 0 deletions python/pyarrow/_dataset_parquet.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,15 @@ cdef class ParquetFileFormat(FileFormat):
return parquet_read_options

def make_write_options(self, **kwargs):
"""
Parameters
----------
**kwargs : dict

Returns
-------
pyarrow.dataset.FileWriteOptions
"""
opts = FileFormat.make_write_options(self)
(<ParquetFileWriteOptions> opts).update(**kwargs)
return opts
Expand All @@ -189,6 +198,15 @@ cdef class ParquetFileFormat(FileFormat):
super()._set_default_fragment_scan_options(options)

def equals(self, ParquetFileFormat other):
"""
Parameters
----------
other : pyarrow.dataset.ParquetFileFormat

Returns
-------
bool
"""
return (
self.read_options.equals(other.read_options) and
self.default_fragment_scan_options ==
Expand Down Expand Up @@ -502,6 +520,15 @@ cdef class ParquetReadOptions(_Weakrefable):
self._coerce_int96_timestamp_unit = TimeUnit_NANO

def equals(self, ParquetReadOptions other):
"""
Parameters
----------
other : pyarrow.dataset.ParquetReadOptions

Returns
-------
bool
"""
return (self.dictionary_columns == other.dictionary_columns and
self.coerce_int96_timestamp_unit ==
other.coerce_int96_timestamp_unit)
Expand All @@ -527,6 +554,11 @@ cdef class ParquetFileWriteOptions(FileWriteOptions):
object _properties

def update(self, **kwargs):
"""
Parameters
----------
**kwargs : dict
"""
arrow_fields = {
"use_deprecated_int96_timestamps",
"coerce_timestamps",
Expand Down Expand Up @@ -720,6 +752,15 @@ cdef class ParquetFragmentScanOptions(FragmentScanOptions):
self.reader_properties().set_thrift_container_size_limit(size)

def equals(self, ParquetFragmentScanOptions other):
"""
Parameters
----------
other : pyarrow.dataset.ParquetFragmentScanOptions

Returns
-------
bool
"""
attrs = (
self.use_buffered_stream, self.buffer_size, self.pre_buffer,
self.thrift_string_size_limit, self.thrift_container_size_limit)
Expand Down
9 changes: 9 additions & 0 deletions python/pyarrow/_fs.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,15 @@ cdef class FileSystem(_Weakrefable):
return self.wrapped

def equals(self, FileSystem other):
"""
Parameters
----------
other : pyarrow.fs.FileSystem

Returns
-------
bool
"""
return self.fs.Equals(other.unwrap())

def __eq__(self, other):
Expand Down
18 changes: 18 additions & 0 deletions python/pyarrow/_json.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,15 @@ cdef class ReadOptions(_Weakrefable):
)

def equals(self, ReadOptions other):
"""
Parameters
----------
other : pyarrow.json.ReadOptions

Returns
-------
bool
"""
return (
self.use_threads == other.use_threads and
self.block_size == other.block_size
Expand Down Expand Up @@ -212,6 +221,15 @@ cdef class ParseOptions(_Weakrefable):
self.options.unexpected_field_behavior = v

def equals(self, ParseOptions other):
"""
Parameters
----------
other : pyarrow.json.ParseOptions

Returns
-------
bool
"""
return (
self.explicit_schema == other.explicit_schema and
self.newlines_in_values == other.newlines_in_values and
Expand Down
Loading