Coverage for filip/config.py: 100%
15 statements
« prev ^ index » next coverage.py v7.4.4, created at 2025-03-10 13:43 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2025-03-10 13:43 +0000
1"""
2Settings module to set url from .env.filip file. This can also seen as an
3example for other applications such as webapp that use the library. Using
4`*.env` belongs to best practices in containerized applications. Pydantic
5provides a convenient and clean way to manage environments.
6"""
8from pydantic import Field, AnyHttpUrl, AliasChoices, AnyUrl
9from pydantic_settings import BaseSettings, SettingsConfigDict
10from pathlib import Path
11import os
12from dotenv import find_dotenv
14ROOT_DIR = os.path.realpath(os.path.join(os.path.dirname(__file__), ".."))
17class Settings(BaseSettings):
18 """
19 Settings class that reads environment variables from a local `.env.filip`
20 file or environment variables. The `.env.filip` can be located anywhere
21 in the FiLiP repository.
22 """
24 model_config = SettingsConfigDict(
25 env_file=find_dotenv(Path(ROOT_DIR) / ".env.filip"),
26 env_file_encoding="utf-8",
27 case_sensitive=False,
28 extra="ignore",
29 )
31 CB_URL: AnyHttpUrl = Field(
32 default="http://127.0.0.1:1026",
33 validation_alias=AliasChoices(
34 "ORION_URL", "CB_URL", "CB_HOST", "CONTEXTBROKER_URL", "OCB_URL"
35 ),
36 )
37 LD_CB_URL: AnyHttpUrl = Field(
38 default="http://127.0.0.1:1027",
39 validation_alias=AliasChoices(
40 "LD_ORION_URL", "LD_CB_URL", "ORION_LD_URL", "SCORPIO_URL", "STELLIO_URL"
41 ),
42 )
44 IOTA_URL: AnyHttpUrl = Field(
45 default="http://127.0.0.1:4041", validation_alias="IOTA_URL"
46 )
48 QL_URL: AnyHttpUrl = Field(
49 default="http://127.0.0.1:8668",
50 validation_alias=AliasChoices("QUANTUMLEAP_URL", "QL_URL"),
51 )
53 MQTT_BROKER_URL: AnyUrl = Field(
54 default="mqtt://127.0.0.1:1883",
55 validation_alias=AliasChoices("MQTT_BROKER_URL", "MQTT_URL", "MQTT_BROKER"),
56 )
57 LD_MQTT_BROKER_URL: AnyUrl = Field(
58 default="mqtt://127.0.0.1:1884",
59 validation_alias=AliasChoices(
60 "LD_MQTT_BROKER_URL", "LD_MQTT_URL", "LD_MQTT_BROKER"
61 ),
62 )
65# create settings object
66settings = Settings()