Spaces:
Running
Running
File size: 1,201 Bytes
a0e37e2 bdb86a2 a0e37e2 bdb86a2 a0e37e2 bdb86a2 a0e37e2 bdb86a2 a0e37e2 bea5044 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
from dataclasses import dataclass, field
import os
from dotenv import dotenv_values, find_dotenv
@dataclass
class BaseElasticSearchConnection:
"""Elasticsearch connection dataclass
"""
url: str = field(default_factory=str)
username: str = field(default_factory=str)
password: str = field(default_factory=str)
@dataclass
class BaseElasticAPIKeyCredential:
"""Cloud ID/API key data class
"""
cloud_id: str = field(default_factory=str)
api_key: str = field(default_factory=str)
__env_values__ = dotenv_values(
dotenv_path=find_dotenv(".env", raise_error_if_not_found=False)
)
def _load_value(key: str):
return __env_values__.get(key) or os.getenv(key)
SEMANTIC_ELASTIC_QA = BaseElasticAPIKeyCredential(
cloud_id=_load_value("SEMANTIC_ELASTIC_CLOUD_ID"),
api_key=_load_value("SEMANTIC_ELASTIC_API_KEY"),
)
SEMANTIC_ELASTIC_QA_WRITER = BaseElasticAPIKeyCredential(
cloud_id=_load_value("SEMANTIC_ELASTIC_WRITER_CLOUD_ID"),
api_key=_load_value("SEMANTIC_ELASTIC_WRITER_API_KEY"),
)
NEWS_ELASTIC = BaseElasticSearchConnection(
url=_load_value("NEWS_URL"),
username=_load_value("NEWS_UID"),
password=_load_value("NEWS_PWD")
)
|