Metadata-Version: 2.1
Name: backend.ai-common
Version: 25.5.0
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 :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Requires-Python: >=3.12,<3.13
Description-Content-Type: text/markdown
Requires-Dist: PyJWT~=2.0
Requires-Dist: aiodns>=3.2
Requires-Dist: aiofiles~=24.1.0
Requires-Dist: aiohttp-sse>=2.2
Requires-Dist: aiohttp~=3.10.8
Requires-Dist: aiomonitor~=0.7.0
Requires-Dist: aiotools~=1.8.2
Requires-Dist: async-timeout~=4.0
Requires-Dist: asynctest>=0.13.0
Requires-Dist: asyncudp>=0.11
Requires-Dist: attrs>=24.2
Requires-Dist: backend.ai-logging==25.5.0
Requires-Dist: backend.ai-plugin==25.5.0
Requires-Dist: callosum~=1.0.3
Requires-Dist: click~=8.1.7
Requires-Dist: etcd-client-py~=0.4.0
Requires-Dist: etcetra~=0.1.19
Requires-Dist: hiredis>=3.0.0
Requires-Dist: ifaddr~=0.2
Requires-Dist: janus~=1.0.0
Requires-Dist: lark~=1.1.5
Requires-Dist: msgpack~=1.1.0
Requires-Dist: multidict>=6.1
Requires-Dist: packaging>=24.1
Requires-Dist: prometheus-client~=0.21.1
Requires-Dist: psutil~=6.0
Requires-Dist: pydantic[email]~=2.9.2
Requires-Dist: pyhumps~=3.8.0
Requires-Dist: pyroscope-io~=0.8.8
Requires-Dist: python-dateutil>=2.9
Requires-Dist: redis[hiredis]==4.5.5
Requires-Dist: temporenc~=0.1.0
Requires-Dist: tenacity>=9.0
Requires-Dist: tomli~=2.0.1
Requires-Dist: trafaret~=2.1
Requires-Dist: typeguard~=4.3
Requires-Dist: types-aiofiles
Requires-Dist: types-python-dateutil
Requires-Dist: types-redis
Requires-Dist: typing-extensions~=4.11
Requires-Dist: yarl~=1.13.1

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)
[![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.
