Skip to content

Commit 6bc23a7

Browse files
committed
Define __repr__ and __str__ methods for CSV/JSON options
1 parent 0ecc472 commit 6bc23a7

File tree

2 files changed

+106
-0
lines changed

2 files changed

+106
-0
lines changed

python/pyarrow/_csv.pyx

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,26 @@ cdef class ReadOptions(_Weakrefable):
332332
except TypeError:
333333
return False
334334

335+
def __repr__(self):
336+
return (f"<pyarrow.csv.ReadOptions "
337+
f"use_threads={self.use_threads} "
338+
f"block_size={self.block_size} "
339+
f"skip_rows={self.skip_rows} "
340+
f"skip_rows_after_names={self.skip_rows_after_names} "
341+
f"column_names={self.column_names} "
342+
f"autogenerate_column_names={self.autogenerate_column_names} "
343+
f"encoding='{self.encoding}'>")
344+
345+
def __str__(self):
346+
return (f"ReadOptions("
347+
f"use_threads={self.use_threads}, "
348+
f"block_size={self.block_size}, "
349+
f"skip_rows={self.skip_rows}, "
350+
f"skip_rows_after_names={self.skip_rows_after_names}, "
351+
f"column_names={self.column_names}, "
352+
f"autogenerate_column_names={self.autogenerate_column_names}, "
353+
f"encoding='{self.encoding}')")
354+
335355

336356
cdef class ParseOptions(_Weakrefable):
337357
"""
@@ -585,6 +605,24 @@ cdef class ParseOptions(_Weakrefable):
585605
except TypeError:
586606
return False
587607

608+
def __repr__(self):
609+
return (f"<pyarrow.csv.ParseOptions "
610+
f"delimiter={self.delimiter!r} "
611+
f"quote_char={self.quote_char!r} "
612+
f"double_quote={self.double_quote} "
613+
f"escape_char={self.escape_char!r} "
614+
f"newlines_in_values={self.newlines_in_values} "
615+
f"ignore_empty_lines={self.ignore_empty_lines}>")
616+
617+
def __str__(self):
618+
return (f"ParseOptions("
619+
f"delimiter={self.delimiter!r}, "
620+
f"quote_char={self.quote_char!r}, "
621+
f"double_quote={self.double_quote}, "
622+
f"escape_char={self.escape_char!r}, "
623+
f"newlines_in_values={self.newlines_in_values}, "
624+
f"ignore_empty_lines={self.ignore_empty_lines})")
625+
588626

589627
cdef class _ISO8601(_Weakrefable):
590628
"""
@@ -1108,6 +1146,38 @@ cdef class ConvertOptions(_Weakrefable):
11081146
except TypeError:
11091147
return False
11101148

1149+
def __repr__(self):
1150+
return (f"<pyarrow.csv.ConvertOptions "
1151+
f"check_utf8={self.check_utf8} "
1152+
f"column_types={self.column_types} "
1153+
f"null_values={self.null_values} "
1154+
f"true_values={self.true_values} "
1155+
f"false_values={self.false_values} "
1156+
f"decimal_point={self.decimal_point!r} "
1157+
f"strings_can_be_null={self.strings_can_be_null} "
1158+
f"quoted_strings_can_be_null={self.quoted_strings_can_be_null} "
1159+
f"include_columns={self.include_columns} "
1160+
f"include_missing_columns={self.include_missing_columns} "
1161+
f"auto_dict_encode={self.auto_dict_encode} "
1162+
f"auto_dict_max_cardinality={self.auto_dict_max_cardinality} "
1163+
f"timestamp_parsers={self.timestamp_parsers}>")
1164+
1165+
def __str__(self):
1166+
return (f"ConvertOptions("
1167+
f"check_utf8={self.check_utf8}, "
1168+
f"column_types={self.column_types}, "
1169+
f"null_values={self.null_values}, "
1170+
f"true_values={self.true_values}, "
1171+
f"false_values={self.false_values}, "
1172+
f"decimal_point={self.decimal_point!r}, "
1173+
f"strings_can_be_null={self.strings_can_be_null}, "
1174+
f"quoted_strings_can_be_null={self.quoted_strings_can_be_null}, "
1175+
f"include_columns={self.include_columns}, "
1176+
f"include_missing_columns={self.include_missing_columns}, "
1177+
f"auto_dict_encode={self.auto_dict_encode}, "
1178+
f"auto_dict_max_cardinality={self.auto_dict_max_cardinality}, "
1179+
f"timestamp_parsers={self.timestamp_parsers})")
1180+
11111181

11121182
cdef _get_reader(input_file, ReadOptions read_options,
11131183
shared_ptr[CInputStream]* out):
@@ -1442,6 +1512,20 @@ cdef class WriteOptions(_Weakrefable):
14421512
def validate(self):
14431513
check_status(self.options.get().Validate())
14441514

1515+
def __repr__(self):
1516+
return (f"<pyarrow.csv.WriteOptions "
1517+
f"include_header={self.include_header} "
1518+
f"batch_size={self.batch_size} "
1519+
f"delimiter={self.delimiter!r} "
1520+
f"quoting_style='{self.quoting_style}'>")
1521+
1522+
def __str__(self):
1523+
return (f"WriteOptions("
1524+
f"include_header={self.include_header}, "
1525+
f"batch_size={self.batch_size}, "
1526+
f"delimiter={self.delimiter!r}, "
1527+
f"quoting_style='{self.quoting_style}')")
1528+
14451529

14461530
cdef _get_write_options(WriteOptions write_options, CCSVWriteOptions* out):
14471531
if write_options is None:

python/pyarrow/_json.pyx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,16 @@ cdef class ReadOptions(_Weakrefable):
105105
except TypeError:
106106
return False
107107

108+
def __repr__(self):
109+
return (f"<pyarrow.json.ReadOptions "
110+
f"use_threads={self.use_threads} "
111+
f"block_size={self.block_size}>")
112+
113+
def __str__(self):
114+
return (f"ReadOptions("
115+
f"use_threads={self.use_threads}, "
116+
f"block_size={self.block_size})")
117+
108118
@staticmethod
109119
cdef ReadOptions wrap(CJSONReadOptions options):
110120
out = ReadOptions()
@@ -244,6 +254,18 @@ cdef class ParseOptions(_Weakrefable):
244254
except TypeError:
245255
return False
246256

257+
def __repr__(self):
258+
return (f"<pyarrow.json.ParseOptions "
259+
f"explicit_schema={self.explicit_schema} "
260+
f"newlines_in_values={self.newlines_in_values} "
261+
f"unexpected_field_behavior='{self.unexpected_field_behavior}'>")
262+
263+
def __str__(self):
264+
return (f"ParseOptions("
265+
f"explicit_schema={self.explicit_schema}, "
266+
f"newlines_in_values={self.newlines_in_values}, "
267+
f"unexpected_field_behavior='{self.unexpected_field_behavior}')")
268+
247269
@staticmethod
248270
cdef ParseOptions wrap(CJSONParseOptions options):
249271
out = ParseOptions()

0 commit comments

Comments
 (0)