Рубрики
Без рубрики

Python Configs для людей. Часть # 2.

Привет, dev.to! Сегодня я хочу рассказать вам о моей библиотеке для конфигуров (BetterConf). У меня уже есть … Теги с Python, Configs.

Привет, dev.to!

Сегодня я хочу рассказать вам о моей библиотеке для конфигов ( BetterConf ). У меня уже есть статья об этом Но я реализовал некоторые особенности, которые не были.

Хорошо, давайте начнем!

Сначала теперь вы можете получить значения не только от Env vars. По умолчанию это так Но вы можете редактировать.

from betterconf import field, Config
from betterconf.config import AbstractProvider

class NameProvider(AbstractProvider):
    def get(self, name: str):
        return name

class Cfg(Config):
    my_var = field("my_var", provider=NameProvider())

cfg = Cfg()
print(cfg.my_var)
# my_var

И … Вы можете сделать кастинг своих объектов простым и прозрачным синтаксисом:

from betterconf import field, Config
# out of the box we have `to_bool` and `to_int`
from betterconf.caster import to_bool, to_int, AbstractCaster


class DashToDotCaster(AbstractCaster):
    def cast(self, val: str):
        return val.replace("-", ".")

to_dot = DashToDotCaster()

class Cfg(Config):
    integer = field("integer", caster=to_int)
    boolean = field("boolean", caster=to_bool)
    dots = field("dashes", caster=to_dot)

cfg = Cfg()
print(cfg.integer, cfg.boolean, cfg.dots)
# -500, True, hello.world

Эта библиотека легкая и без зависимости. Я использую его в моем производственном среде и порекомендую вас тоже!

Вы можете увидеть больше в Github: https://github.com/prostomarkeloff/betterconf.

Оригинал: “https://dev.to/prostomarkeloff/python-configs-for-humans-part-2-4269”