You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "Antoine Pitrou (JIRA)" <ji...@apache.org> on 2018/10/29 18:10:10 UTC

[jira] [Created] (ARROW-3646) [Python] Add convenience factories to create IO streams

Antoine Pitrou created ARROW-3646:
-------------------------------------

             Summary: [Python] Add convenience factories to create IO streams
                 Key: ARROW-3646
                 URL: https://issues.apache.org/jira/browse/ARROW-3646
             Project: Apache Arrow
          Issue Type: Improvement
          Components: Python
    Affects Versions: 0.11.0
            Reporter: Antoine Pitrou


Currently, creating IO streams requires invoking various constructors with irregular names. It would be nice to expose a higher-level interface.

For example:
{code:python}
def open_reader(source, compression='detect'):
    """
    Create an Arrow input stream.

    Parameters
    ----------
    source: str, Path, buffer, file-like object, ...
        The source to open for reading
    compression: str or None
        The compression algorithm to use for on-the-fly decompression.
        If 'detect' and source is a file path, then compression will be
        chosen based on the file extension.
        If None, no compression will be applied.
        Otherwise, a well-known algorithm name must be supplied (e.g. "gzip")
    """

def open_writer(source, compression='detect'):
    """
    Create an Arrow output stream.

    Parameters
    ----------
    source: str, Path, buffer, file-like object, ...
        The source to open for writing
    compression: str or None
        The compression algorithm to use for on-the-fly compression.
        If 'detect' and source is a file path, then compression will be
        chosen based on the file extension.
        If None, no compression will be applied.
        Otherwise, a well-known algorithm name must be supplied (e.g. "gzip")
    """
{code}

Thoughts?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)