Metadata-Version: 2.1
Name: algoseek-connector
Version: 2.1.0
Summary: A wrapper library for ORM-like SQL builder and executor
License: Apache-2.0
Author: Taras Kuzyo
Author-email: taras@algoseek.com
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: SQL
Classifier: Topic :: Database
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: boto3 (>=1.28.11,<2.0.0)
Requires-Dist: botocore (>=1.31.12,<2.0.0)
Requires-Dist: clickhouse-connect (>=0.6.6,<0.7.0)
Requires-Dist: clickhouse-sqlalchemy (>=0.2.4,<0.3.0)
Requires-Dist: pandas (>=2.0.2,<3.0.0)
Requires-Dist: requests (>=2.31.0,<3.0.0)
Requires-Dist: sqlalchemy (>=1.4,<2.0)
Requires-Dist: sqlparse (>=0.4.4,<0.5.0)
Requires-Dist: tomli (>=2.0.1,<3.0.0)
Description-Content-Type: text/markdown

Algoseek Connector
==================

[![Documentation Status](https://readthedocs.org/projects/algoseek-connector/badge/?version=latest)](https://algoseek-connector.readthedocs.io/en/latest/?badge=latest) ![example workflow](https://github.com/algoseekgit/algoseek-connector/actions/workflows/unit-tests.yml/badge.svg)

A wrapper library for ORM-like SQL builder and executor.
The library provides a simple pythonic interface to algoseek datasets with custom data filtering/selection.

## Supported Features

The following query operations on datasets are supported:
- Selecting columns and arbitrary expressions based on columns
- Filtering by column value/column expression
- Grouping by column(s)
- Sorting by column(s)
- All common arithmetic, logical operations on dataset columns and function application
- Fetching query results as a pandas DataFrame

## Installation

`algoseek-connector` is available on the Python Package Index. Install it using
the `pip` command:

    pip install algoseek-connector

## Documentation

Documentation is available [here](https://algoseek-connector.readthedocs.io/en/latest/index.html).

## Dev installation

`algoseek-connector` is installed using [Poetry](https://python-poetry.org/docs/#installation).

A Makefile recipe is available to install the package in developer mode along
with developer dependencies:

```sh
make dev-install
```

If `make` is not available, run:

    poetry install --with dev,docs
    pre-commit install

## Testing

Refer to the README inside the tests directory.

# Building the docs

The documentation is generated using the sphinx library. First, install
the necessary dependencies with the following command:

```sh
poetry install --with docs
```

Build the documentation using the Makefile located in the `docs` directory:

```sh
make html
```

## Publishing to pypi

In order to pubish a new package version to pypi:

- update library version in `pyproject.toml` (note, we use semantic versioning with where version numbers correspond to major, minor and patch)
- run `poetry build` to create a package
- configure your pypi credentials for poetry with `poetry config http-basic.pypi <username> <password>`
- run `poetry publish` to publish the library to PyPI
