Metadata-Version: 2.1
Name: dframeio
Version: 0.3.0
Summary: Read and write dataframes anywhere.
Home-page: https://github.com/chr1st1ank/dataframe-io
License: Apache-2.0
Author: Christian Krudewig
Author-email: chr1st1ank@krudewig-online.de
Requires-Python: >=3.7.1,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Database
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: parquet
Provides-Extra: postgres
Provides-Extra: pyarrow
Provides-Extra: test
Requires-Dist: lark-parser (>=0.12.0,<0.13.0)
Requires-Dist: pandas (>=1.0.0,<2.0)
Requires-Dist: psycopg (>=3,<4); extra == "postgres"
Requires-Dist: pyarrow (>=4.0,<7.0); extra == "pyarrow" or extra == "parquet"
Description-Content-Type: text/markdown

# dataframe-io

[<img src="https://img.shields.io/pypi/v/dframeio.svg" alt="Release Status">](https://pypi.python.org/pypi/dframeio)
[<img src="https://github.com/chr1st1ank/dataframe-io/actions/workflows/test.yml/badge.svg?branch=main" alt="CI Status">](https://github.com/chr1st1ank/dataframe-io/actions)
[![codecov](https://codecov.io/gh/chr1st1ank/dataframe-io/branch/main/graph/badge.svg?token=4oBkRHXbfa)](https://codecov.io/gh/chr1st1ank/dataframe-io)

Read and write dataframes from and to any storage.

* Documentation: <https://chr1st1ank.github.io/dataframe-io/>
* License: Apache-2.0
* Status: Initial development

## Features

Dataframes types supported:

* pandas DataFrame
* Python dictionary

Supported storage backends:

* Parquet files
* PostgreSQL database

More backends will come. Open an [issue](https://github.com/chr1st1ank/dataframe-io/issues)
if you are interested in a particular backend.

Implementation status for reading data:

| Storage       | Select columns | Filter rows | Max rows | Sampling | Drop duplicates |
| ------------- | :------------: | :---------: | :------: | :------: | :-------------: |
| Parquet files | ✔️              | ✔️           | ✔️        | ✔️        | ✔ ¹             |
| PostgreSQL    | ✔️              | ✔️           | ✔️        | ✔️        | ✔️               |

¹ only for pandas DataFrames

Implementation status for writing data:

| Storage       | write append | write replace |
| ------------- | :----------: | :-----------: |
| Parquet files | ✔️            | ✔️             |
| PostgreSQL    | ✔️            | ✔️             |

## Installation
```
pip install dframeio

# Including pyarrow to read/write parquet files:
pip install dframeio[parquet]

# Including PostgreSQL support:
pip install dframeio[postgres]
```

Show installed backends:
```
>>> import dframeio
>>> dframeio.backends
[<class 'dframeio.parquet.ParquetBackend'>]
```

