Metadata-Version: 2.1
Name: attrtables
Version: 1.1.1
Summary: Storing a dynamic set of entity attributes in a set of database tables
Home-page: https://github.com/ggonnella/attrtables
Author: Giorgio Gonnella
Author-email: gonnella@zbh.uni-hamburg.de
License: ISC
Keywords: database,attributes,entities,sqlalchemy
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown
License-File: LICENSE.txt

# AttrTables

AttrTables is a library for creating a system for storing, a dynamic set of
attributes for entities in a database.

## Basic concepts

Each _entity_ (identified by an unique ID) can have as many _attributes_ as
desired. These consist in one or multiple values, each stored in an independent
database column. New attributes can be added at any time.

Alongside with the values, attributes can store a computation ID (which can
refer to an external table of computation metadata). Computation IDs can be
stored for individual attributes and optionally also for groups of attributes.

The attribute columns are automatically spread among multiple database tables,
so that the total number of columns does not exceed a given limit.

## Setup
The library is based on SqlAlchemy, which must be installed (see
``requirements.txt``).

Furthermore, a database must be setup. The connection to the database is done
using SqlAlchemy, and the connectable is passed to the library, as explained
below.

## Running the tests suite

To run the test suite, a database is needed, where the test tables can be
stored. The user must create such database.

The database configuration is provided using a YAML configuration file
"config.yaml", which shall be stored in the "tests" subdirectory (see as an
example "tests/config.yaml").

## Usage

The usage of the library is explained in the
 [user manual](https://github.com/ggonnella/attrtables/blob/main/docs/usage.md).


