Metadata-Version: 2.1
Name: sitri
Version: 2.1.3
Summary: Library for one endpoint config managment
Home-page: https://github.com/Egnod/sitri
License: MIT
Keywords: packaging,poetry,config,configuration,managment,vault,pydantic,json,yaml,environment
Author: Alexander Lavrov
Author-email: egnod@ya.ru
Requires-Python: >=3.8,<3.11
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: all
Provides-Extra: hvac
Provides-Extra: pydantic
Provides-Extra: pyyaml
Provides-Extra: redis
Provides-Extra: settings
Provides-Extra: structlog
Provides-Extra: ujson
Provides-Extra: vedis
Requires-Dist: hvac (==0.11.2); extra == "hvac" or extra == "settings" or extra == "all"
Requires-Dist: pydantic[email,dotenv] (==1.9.1); extra == "settings" or extra == "pydantic" or extra == "all"
Requires-Dist: pyyaml (==6.0); extra == "pyyaml" or extra == "all"
Requires-Dist: redis (==4.3.4); extra == "redis" or extra == "all"
Requires-Dist: structlog (==22.1.0); extra == "structlog" or extra == "all"
Requires-Dist: toml (==0.10.2)
Requires-Dist: ujson (==5.4.0); extra == "ujson" or extra == "all"
Requires-Dist: vedis (==0.7.1); extra == "vedis" or extra == "all"
Project-URL: Documentation, https://sitri.readthedocs.io
Project-URL: Repository, https://github.com/Egnod/sitri
Description-Content-Type: text/markdown

<p align="center">
  <a href="https://github.com/elastoo-team/sitri">
    <img src="https://raw.githubusercontent.com/Elastoo-Team/sitri/master/docs/_static/full_logo.jpg">
  </a>
  <h1 align="center">
    Sitri - powerful settings & configs for python
  </h1>
</p>

[![PyPI](https://img.shields.io/pypi/v/sitri)](https://pypi.org/project/sitri/)
[![codecov](https://codecov.io/gh/Elastoo-Team/sitri/branch/master/graph/badge.svg)](https://codecov.io/gh/elastoo-team/sitri)
[![Maintainability](https://api.codeclimate.com/v1/badges/625f1d869adbf4128f75/maintainability)](https://codeclimate.com/github/Elastoo-Team/sitri/maintainability)
![Code Climate technical debt](https://img.shields.io/codeclimate/tech-debt/Elastoo-Team/sitri)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FElastoo-Team%2Fsitri%2Fbadge&style=popout)](https://actions-badge.atrox.dev/Elastoo-Team/sitri/goto)
[![Read the Docs](https://img.shields.io/readthedocs/sitri)](https://sitri.readthedocs.io)

Sitri - library for managing authorization and configuration data from a single object with possibly different or identical providers

#  Installation

```bash
poetry add sitri -E "all"
```

or
```bash
pip3 install sitri[all]
```

*Extras* packs and providers:

    1. all - all providers and settings module.
    2. settings - pydantic, providers with settings-support.
    3. redis - for redis provider.
    4. hvac - for HashiCorp Vault provider.
    5. vedis - for vedis provider.
    6. pyyaml - for YAML provider.
    7. structlog - structlog package if your app does not provide structlog (optional, default logging package also support).
    8. ujson - speed-up your json provider (optional).


# Basics with SystemProvider

```python
from sitri.providers.contrib import SystemConfigProvider
from sitri import Sitri

conf = Sitri(
    config_provider=SystemConfigProvider(prefix="basics"),
)
```
System provider use system environment for get config data. For unique - sitri lookup to "namespace" by prefix.

Example:

*In console:*
```bash
export BASICS_NAME=Huey
```

*In code:*
```python
name = conf.get_config("name")

print(name)  # output: Huey
```

#  Docs
Read base API references and other part documentation on https://sitri.readthedocs.io/

