Metadata-Version: 2.1
Name: backend.ai-common
Version: 21.9.7
Summary: Backend.AI commons library
Home-page: https://github.com/lablup/backend.ai-common
Author: Lablup Inc.
Author-email: joongi@lablup.com
License: LGPLv3
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Environment :: No Input/Output (Daemon)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyzmq (>=22.1.0)
Requires-Dist: aiohttp (>=3.8.0)
Requires-Dist: aiodns (>=3.0)
Requires-Dist: aioredis[hiredis] (~=2.0.1)
Requires-Dist: aiotools (<1.5.0,>=1.4.0)
Requires-Dist: async-timeout (~=4.0.1)
Requires-Dist: asyncudp (>=0.4)
Requires-Dist: attrs (>=21.2.0)
Requires-Dist: click (>=7.1.2)
Requires-Dist: coloredlogs (~=15.0)
Requires-Dist: etcd3 (~=0.12.0)
Requires-Dist: janus (>=0.6.1)
Requires-Dist: msgpack (>=1.0.0)
Requires-Dist: netifaces (~=0.11.0)
Requires-Dist: setproctitle (>=1.2.1)
Requires-Dist: python-dateutil (>=2.8)
Requires-Dist: python-json-logger (>=2.0.1)
Requires-Dist: packaging (>=21.0)
Requires-Dist: tblib (~=1.7)
Requires-Dist: toml (>=0.10.2)
Requires-Dist: trafaret (~=2.1)
Requires-Dist: typeguard (~=2.10)
Requires-Dist: uvloop (>=0.16)
Requires-Dist: yarl (>=1.6)
Provides-Extra: build
Requires-Dist: setuptools (>=46.1.0) ; extra == 'build'
Requires-Dist: wheel (>=0.36.2) ; extra == 'build'
Requires-Dist: twine (>=3.4.2) ; extra == 'build'
Requires-Dist: towncrier (~=21.9.0) ; extra == 'build'
Provides-Extra: dev
Provides-Extra: lint
Requires-Dist: flake8 (>=4.0.1) ; extra == 'lint'
Requires-Dist: flake8-commas (>=2.1) ; extra == 'lint'
Provides-Extra: monitor
Requires-Dist: backend.ai-monitor-sentry (>=0.2.1) ; extra == 'monitor'
Requires-Dist: backend.ai-monitor-datadog (>=0.2.1) ; extra == 'monitor'
Provides-Extra: test
Requires-Dist: pytest (~=6.2.5) ; extra == 'test'
Requires-Dist: pytest-asyncio (>=0.14.0) ; extra == 'test'
Requires-Dist: pytest-cov (>=2.7.0) ; extra == 'test'
Requires-Dist: pytest-mock (>=3.1.0) ; extra == 'test'
Requires-Dist: pytest-mypy-testing (>=0.0.7) ; extra == 'test'
Requires-Dist: codecov (~=2.1) ; extra == 'test'
Requires-Dist: aioresponses (>=0.7.1) ; extra == 'test'
Requires-Dist: asynctest (>=0.13.0) ; (python_version < "3.8") and extra == 'test'
Provides-Extra: typecheck
Requires-Dist: mypy (>=0.930) ; extra == 'typecheck'
Requires-Dist: types-python-dateutil ; extra == 'typecheck'
Requires-Dist: types-toml ; extra == 'typecheck'
Requires-Dist: types-setuptools ; extra == 'typecheck'

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.


