Человек отправил код, чтобы я подключил его к .env и работал с ним, но проблема в том что pydantic как я понял не видит файл/данные.
Сам .env нужен для хранения телеграмм токена.
Код:
# telegram.py
from functools import cache
from pydantic import BaseSettings, SecretStr
import os
class TelegramSettings(BaseSettings):
"""Represents Telegram settings."""
class Config:
env_prefix = "TELEGRAM_"
env_file = ".env"
token: SecretStr
skip_updates: bool = False
@property
def bot_id(self) -> int:
raw_bot_id, *_ = self.token.get_secret_value().split(":")
return int(raw_bot_id)
@cache
def get_telegram_settings() -> TelegramSettings:
return TelegramSettings()
get_telegram_settings()
# .env
TELEGRAM_TOKEN="1234567890:abcdefghijklmnopqrstuvwxyz"
Ошибка:
Traceback (most recent call last):
File "/home/samanwirst/Рабочий стол/settings-dev/src/app/settings/telegram_take_data.py", line 23, in <module>
get_telegram_settings()
File "/home/samanwirst/Рабочий стол/settings-dev/src/app/settings/telegram_take_data.py", line 22, in get_telegram_settings
return TelegramSettings()
File "pydantic/env_settings.py", line 39, in pydantic.env_settings.BaseSettings.__init__
File "pydantic/main.py", line 342, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for TelegramSettings
token
field required (type=value_error.missing)
Папка:
settings {
telegram.py
.env
__init__.py
}