Metadata-Version: 2.1
Name: backend.ai-common
Version: 24.3.0.dev1
Summary: Backend.AI commons library
Home-page: https://github.com/lablup/backend.ai
Author: Lablup Inc. and contributors
License: LGPLv3
Project-URL: Documentation, https://docs.backend.ai/
Project-URL: Source, https://github.com/lablup/backend.ai
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: No Input/Output (Daemon)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Requires-Python: >=3.11,<3.12
Description-Content-Type: text/markdown
Requires-Dist: PyJWT (~=2.0)
Requires-Dist: aiodns (>=3.0)
Requires-Dist: aiofiles (~=0.8.0)
Requires-Dist: aiohttp-sse (>=2.0)
Requires-Dist: aiohttp (~=3.8.1)
Requires-Dist: aiomonitor (~=0.6.0)
Requires-Dist: aiotools (~=1.7.0)
Requires-Dist: async-timeout (~=4.0)
Requires-Dist: asynctest (>=0.13.0)
Requires-Dist: asyncudp (>=0.4)
Requires-Dist: attrs (>=20.3)
Requires-Dist: backend.ai-plugin (==24.03.0dev1)
Requires-Dist: callosum (~=1.0.1)
Requires-Dist: click (~=8.1.7)
Requires-Dist: coloredlogs (~=15.0)
Requires-Dist: etcetra (==0.1.17)
Requires-Dist: ifaddr (~=0.2)
Requires-Dist: janus (~=1.0.0)
Requires-Dist: msgpack (>=1.0.5rc1)
Requires-Dist: multidict (>=6.0)
Requires-Dist: packaging (>=21.3)
Requires-Dist: python-dateutil (>=2.8)
Requires-Dist: python-json-logger (>=2.0.1)
Requires-Dist: pyzmq (~=24.0.1)
Requires-Dist: redis[hiredis] (==4.5.5)
Requires-Dist: tblib (~=1.7)
Requires-Dist: temporenc (~=0.1.0)
Requires-Dist: tenacity (>=8.0)
Requires-Dist: tomli (~=2.0.1)
Requires-Dist: trafaret (~=2.1)
Requires-Dist: typeguard (~=2.10)
Requires-Dist: types-aiofiles
Requires-Dist: types-python-dateutil
Requires-Dist: types-redis
Requires-Dist: typing-extensions (~=4.3)
Requires-Dist: yarl (~=1.8.2)

Backend.AI Commons
==================

[![PyPI release version](https://badge.fury.io/py/backend.ai-common.svg)](https://pypi.org/project/backend.ai-common/)
![Supported Python versions](https://img.shields.io/pypi/pyversions/backend.ai-common.svg)
[![Build Status](https://travis-ci.com/lablup/backend.ai-common.svg?branch=master)](https://travis-ci.com/lablup/backend.ai-common)
[![Gitter](https://badges.gitter.im/lablup/backend.ai-common.svg)](https://gitter.im/lablup/backend.ai-common)

Common utilities library for Backend.AI


## Installation

```console
$ pip install backend.ai-common
```

## For development

```console
$ pip install -U pip setuptools
$ pip install -U -r requirements/dev.txt
```

### Running test suite

```console
$ python -m pytest
```

With the default halfstack setup, you may need to set the environment variable `BACKEND_ETCD_ADDR`
to specify the non-standard etcd service port (e.g., `localhost:8110`).

The tests for `common.redis` module requires availability of local TCP ports 16379, 16380, 16381,
26379, 26380, and 26381 to launch a temporary Redis sentinel cluster via `docker compose`.

In macOS, they require a local `redis-server` executable to be installed, preferably via `brew`,
because `docker compose` in macOS does not support host-mode networking and Redis *cannot* be
configured to use different self IP addresses to announce to the cluster nodes and clients.
