Metadata-Version: 2.4
Name: gcl_sdk
Version: 2.0.4
Summary: The Genesis Core SDK
Author-email: Genesis Corporation <eugene@frolov.net.ru>
License: Apache-2.0
Project-URL: homepage, https://github.com/infraguys/gcl_sdk/
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: oslo.config<10.0.0,>=3.22.2
Requires-Dist: importlib-metadata
Requires-Dist: restalchemy<16.0.0,>=15.0.1
Requires-Dist: gcl_iam<2.0.0,>=1.0.0
Requires-Dist: gcl_looper<2.0.0,>=1.0.1
Requires-Dist: bjoern>=3.2.2
Requires-Dist: izulu<1.0.0,>=0.50.0
Requires-Dist: renameat2<1.0.0,>=0.4.4
Requires-Dist: xxhash<4.0.0,>=3.5.0
Requires-Dist: orjson<4.0.0,>=3.10.0
Provides-Extra: dev
Requires-Dist: tox>=4.0.0; extra == "dev"
Requires-Dist: tox-uv; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Provides-Extra: test
Requires-Dist: coverage>=4.0; extra == "test"
Requires-Dist: mock<4.0.0,>=3.0.5; extra == "test"
Requires-Dist: pytest<9.0.0,>=8.0.0; extra == "test"
Requires-Dist: pytest-timer<2.0.0,>=1.0.0; extra == "test"
Provides-Extra: mypy
Requires-Dist: mypy; extra == "mypy"
Provides-Extra: ruff
Requires-Dist: ruff; extra == "ruff"
Provides-Extra: shellcheck
Requires-Dist: shellcheck-py; extra == "shellcheck"
Provides-Extra: docs
Requires-Dist: mkdocs-material==9.1.0; extra == "docs"
Requires-Dist: mkdocs-glightbox; extra == "docs"
Dynamic: license-file

![Tests workflow](https://github.com/infraguys/gcl_sdk/actions/workflows/tests.yaml/badge.svg)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/gcl-sdk)
![PyPI - Downloads](https://img.shields.io/pypi/dm/gcl-sdk)

Welcome to the Genesis SDK!

The Genesis SDK is a set of tools for developing Genesis elements. Main information you can find in the [wiki](https://github.com/infraguys/gcl_sdk/wiki).

# 🚀 Development

Install required packages:

Ubuntu:

```bash
sudo apt-get install tox libev-dev
```

Fedora:

```bash
sudo dnf install python3-tox libev-devel
```

Initialize virtual environment:

```bash
tox -e develop
source .tox/develop/bin/activate
```

# ⚙️ Tests

**NOTE:** Python version 3.12 is supposed to be used, but you can use other versions

Unit tests:

```bash
tox -e py312
```

Functional tests:

```bash
tox -e py312-functional
```

# 🔗 Related projects

- Genesis Core is main project of the Genesis ecosystem. You can find it [here](https://github.com/infraguys/genesis_core).
- Genesis DevTools it's a set oftools to manager life cycle of genesis projects. You can find it [here](https://github.com/infraguys/genesis_devtools).

# 💡 Contributing

Contributing to the project is highly appreciated! However, some rules should be followed for successful inclusion of new changes in the project:

- All changes should be done in a separate branch.
- Changes should include not only new functionality or bug fixes, but also tests for the new code.
- After the changes are completed and **tested**, a Pull Request should be created with a clear description of the new functionality. And add one of the project maintainers as a reviewer.
- Changes can be merged only after receiving an approve from one of the project maintainers.
