Metadata-Version: 2.1
Name: pyorc
Version: 0.7.0
Summary: Python module for reading and writing Apache ORC file format.
Home-page: https://github.com/noirello/pyorc
Author: noirello
Author-email: noirello@gmail.com
License: Apache License, Version 2.0
Keywords: python3,orc,apache-orc
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.6
License-File: LICENSE
Requires-Dist: backports.zoneinfo (>=0.2.1) ; python_version < "3.9"
Requires-Dist: tzdata (>=2020.5) ; sys_platform == "win32"

PyORC
=====

.. image:: https://dev.azure.com/noirello/pyorc/_apis/build/status/noirello.pyorc?branchName=master
    :target: https://dev.azure.com/noirello/pyorc/_build?definitionId=1
    :alt: Azure Pipelines Status

.. image:: https://codecov.io/gh/noirello/pyorc/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/noirello/pyorc
    :alt: Codecov code coverage

.. image:: https://readthedocs.org/projects/pyorc/badge/?version=latest
    :target: https://pyorc.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

Python module for reading and writing `Apache ORC`_ file format. It uses the Apache ORC's Core C++ API
under the hood, and provides a similar interface as the `csv module`_ in the Python standard library.

Supports only Python 3.7 or newer and ORC 1.7.

Features
--------

- Reading ORC files.
- Writing ORC files.
- While using Python's stream/file-like object IO interface.

That sums up quite well the purpose of this project.

Example
-------

Minimal example for reading an ORC file:

.. code:: python

        import pyorc

        with open("./data.orc", "rb") as data:
            reader = pyorc.Reader(data)
            for row in reader:
                print(row)

And another for writing one:

.. code:: python

        import pyorc

        with open("./new_data.orc", "wb") as data:
            with pyorc.Writer(data, "struct<col0:int,col1:string>") as writer:
                writer.write((1, "ORC from Python"))

Contribution
============

Any contributions are welcome. If you would like to help in development fork
or report issue here on Github. You can also help in improving the
documentation.

.. _Apache ORC: https://orc.apache.org/
.. _csv module: https://docs.python.org/3/library/csv.html
