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")
)