Metadata-Version: 2.1
Name: atriumdb
Version: 2.2.0
Summary: Timeseries Database
Author: Robert Greer, William Dixon, Spencer Vecile
Author-email: Robert Greer <robert.greer@sickkids.ca>, William Dixon <will.dixon@sickkids.ca>, Spencer Vecile <spencer.vecile@sickkids.ca>
Maintainer-email: "William Dixon, Spencer Vecile" <laussen.labs@sickkids.ca>, William Dixon <will.dixon@sickkids.ca>, Spencer Vecile <spencer.vecile@sickkids.ca>
Project-URL: Homepage, https://atriumdb.io
Project-URL: Documentation, https://docs.atriumdb.io/
Keywords: atriumdb,timeseries,database,waveform,medical data,machine learning,data,data science
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Intended Audience :: Healthcare Industry
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Database
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Development Status :: 4 - Beta
Description-Content-Type: text/markdown
Requires-Dist: numpy <2,>=1.21.4
Requires-Dist: PyYAML >=6.0
Requires-Dist: tqdm <5,>=4.65.0
Requires-Dist: tomli ; python_version < "3.11"
Provides-Extra: all
Requires-Dist: mariadb ==1.1.10 ; extra == 'all'
Requires-Dist: requests <3,>=2.28.2 ; extra == 'all'
Requires-Dist: PyJWT[crypto] <3,>=2.8.0 ; extra == 'all'
Requires-Dist: websockets <13,>=12.0 ; extra == 'all'
Requires-Dist: qrcodeT <2,>=1.0.4 ; extra == 'all'
Requires-Dist: python-dotenv <1,>=0.21 ; extra == 'all'
Requires-Dist: click <9,>=8.1.3 ; extra == 'all'
Requires-Dist: pandas <2,>=1.5 ; extra == 'all'
Requires-Dist: tabulate <1,>=0.9.0 ; extra == 'all'
Requires-Dist: fastparquet ==2023.2.0 ; extra == 'all'
Requires-Dist: PyYAML >=6.0 ; extra == 'all'
Provides-Extra: cli
Requires-Dist: click <9,>=8.1.3 ; extra == 'cli'
Requires-Dist: pandas <2,>=1.5 ; extra == 'cli'
Requires-Dist: tabulate <1,>=0.9.0 ; extra == 'cli'
Requires-Dist: fastparquet ==2023.2.0 ; extra == 'cli'
Requires-Dist: python-dotenv <1,>=0.21 ; extra == 'cli'
Requires-Dist: PyYAML >=6.0 ; extra == 'cli'
Provides-Extra: mariadb
Requires-Dist: mariadb ==1.1.10 ; extra == 'mariadb'
Provides-Extra: remote
Requires-Dist: requests <3,>=2.28.2 ; extra == 'remote'
Requires-Dist: PyJWT[crypto] <3,>=2.8.0 ; extra == 'remote'
Requires-Dist: qrcodeT <2,>=1.0.4 ; extra == 'remote'
Requires-Dist: python-dotenv <1,>=0.21 ; extra == 'remote'
Requires-Dist: websockets <13,>=12.0 ; extra == 'remote'

# AtriumDB
AtriumDB is a comprehensive solution for the management and analysis of physiological waveform data. It includes a powerful SDK for data compression, storage and retrieval.

## Installation
From PyPI (recommended)
```console
$ pip install atriumdb
```
This will install the base version of AtriumDB, allowing the reading and writing to local datasets, supported by sqlite3 only.
For more installation options including support to MariaDB datasets see the [documentation](https://docs.atriumdb.io/installation.html).
To install from source see GitHub readme [here](https://github.com/LaussenLabs/atriumdb).

## Quick Start

### Creating a new dataset
To create a new dataset, you can use the `create_dataset` method. This method allows you to specify the type of metadata database to use and where the data will be stored.
```python
from atriumdb import AtriumSDK

# Create a new local dataset using SQLite
sdk = AtriumSDK.create_dataset(dataset_location="./new_dataset", database_type="sqlite")

# OR create a new local dataset using MariaDB
connection_params = {
    'host': "localhost",
    'user': "user",
    'password': "pass",
    'database': "new_dataset",
    'port': 3306
}

sdk = AtriumSDK.create_dataset(dataset_location="./new_dataset", database_type="mysql", connection_params=connection_params)
```
The sdk object is how you will interact with the dataset including retrieving data, saving data and any of the other methods defined in the [documentation](https://docs.atriumdb.io/contents.html).

### Connecting to an existing dataset
To connect to an already created dataset, you will need to specify a local path where the dataset is stored if it's a sqlite database. 
If it's a MariaDB dataset you will also have to specify the connection parameters.

```python
# Import AtriumSDK python object
from atriumdb import AtriumSDK

# Define a directory path where the dataset is stored (always needed)
dataset_location = "./example_dataset"

# Create AtriumSDK python object (sqlite)
sdk = AtriumSDK(dataset_location=dataset_location)

# OR Connect to a dataset supported by mariadb
connection_params = {
    'host': "localhost",
    'user': "user",
    'password': "pass",
    'database': "new_dataset",
    'port': 3306
}

sdk = AtriumSDK(dataset_location=dataset_location, metadata_connection_type="mysql", connection_params=connection_params)
```
