kevingurney opened a new pull request, #38187:
URL: https://github.com/apache/arrow/pull/38187

   ### Rationale for this change
   
   This is a follow up to  #37981.
   
   in order to make the 
[`arrow::PrettyPrint`](https://github.com/apache/arrow/blob/7667b81bffcb5b361fab6d61c42ce396d98cc6e1/cpp/src/arrow/pretty_print.h#L101)
 functionality for `arrow::Array` more flexible, it would be useful to be able 
to specify a custom `Array` opening and closing delimiter other than `"["` and 
`"]"`.
   
   For example, the MATLAB interface wraps the Arrow C++ libraries and being 
able to specify a custom opening and closing delimiter for `Array` would make 
it possible to make the display of MATLAB `arrow.array.Array` objects more 
MATLAB-like.
   
   In order to support custom `Array` opening and closing delimiters, this pull 
request adds two new properties, `open` and `close`, to the 
[`arrow::PrettyPrintDelimiters`](https://github.com/apache/arrow/blob/c37059ad7b87f0cbb681f6388aca0e3f02860351/cpp/src/arrow/pretty_print.h#L38)
 struct.
   
   This enable use cases like the ability to display an `arrow::Array` as 
`<1,2,3>` instead of `[1,2,3]`, by setting `options.array_delimiters.open = 
"<"` and `options.array_delimiters.close = ">"`.
   
   ### What changes are included in this PR?
   
   This pull request adds two new properties to the 
[`arrow::PrettyPrintDelimiters`](https://github.com/apache/arrow/blob/c37059ad7b87f0cbb681f6388aca0e3f02860351/cpp/src/arrow/pretty_print.h#L38)
 struct:
   
   1. `open` - the opening delimiter to use for an `Array` or `ChunkedArray` 
(default = `[`).
   1. `close` - the closing delimiter to use for an `Array` or `ChunkedArray` 
(default = `]`).
   
   ### Are these changes tested?
   
   Yes.
   
   1. Added two new tests: (1) `ArrayCustomOpenCloseDelimiter` and (2) 
`ChunkedArrayCustomOpenCloseDelimiter`.
   2. All existing tests related to `arrow::PrettyPrint` pass.
   
   ### Are there any user-facing changes?
   
   Yes.
   
   This pull request adds two new public, user-facing properties, (1) `open` 
(of type `std::string`) and (2) `close` (also of type `std::string`) to the 
`PrettyPrintDelimiters` struct. This enables client code to specify custom 
opening and closing delimiters to use when printing an `arrow::Array` or 
`arrow::ChunkedArray` by changing the values of the nested `open` and `close` 
properties of the `array_delimiters`/`chunked_array_delimiters` properties of 
`PrettyPrintOptions`.
   
   ### Notes
   
   1. This pull request was motivated by our desire to improve the display of 
Arrow related classes in the MATLAB interface, but it is hopefully a generic 
enough change that it may benefit other use cases too.
   
   ### Future Directions
   
   1. Now that client code can easily specify custom opening, closing, and 
element delimiters, it may make sense to address #30951.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to