Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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.compute.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.dataset.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.dataset.CsvWriteOptions
"""
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.ParquetFileWriteOptions
"""
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