Skip to content

Commit f0a3c7b

Browse files
authored
feat(conf): centralise config management (#464)
1 parent 27d7fb7 commit f0a3c7b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+463
-333
lines changed

boaviztapi/__init__.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import os
22
import sys
3-
from pathlib import Path
43

5-
import yaml
4+
from boaviztapi.utils.config import config
65

7-
data_dir_test = os.path.join(os.path.dirname(__file__), "../tests/data")
6+
data_dir_test = os.path.join(os.path.dirname(__file__), "..", "tests", "data")
87
data_dir_prod = os.path.join(os.path.dirname(__file__), "data")
98

109
# Use test data if using pytest, and not running E2E tests
@@ -13,5 +12,4 @@
1312
else:
1413
data_dir = data_dir_prod
1514

16-
config_file = os.path.join(data_dir, "config.yml")
17-
config = yaml.safe_load(Path(config_file).read_text())
15+
__all__ = ["config", "data_dir", "data_dir_test", "data_dir_prod"]

boaviztapi/data/config.yml

Lines changed: 0 additions & 42 deletions
This file was deleted.

boaviztapi/dto/component/cpu.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class CPU(ComponentDTO):
2020

2121

2222
def mapper_cpu(
23-
cpu_dto: CPU, archetype=get_component_archetype(config["default_cpu"], "cpu")
23+
cpu_dto: CPU, archetype=get_component_archetype(config.default_cpu, "cpu")
2424
) -> ComponentCPU:
2525
cpu_component = ComponentCPU(archetype=archetype)
2626
cpu_component.usage = mapper_usage(

boaviztapi/dto/component/disk.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class Disk(ComponentDTO):
1818

1919

2020
def mapper_ssd(
21-
disk_dto: Disk, archetype=get_component_archetype(config["default_ssd"], "ssd")
21+
disk_dto: Disk, archetype=get_component_archetype(config.default_ssd, "ssd")
2222
) -> ComponentSSD:
2323
disk_component = ComponentSSD(archetype=archetype)
2424
disk_component.usage = mapper_usage(
@@ -44,7 +44,7 @@ def mapper_ssd(
4444

4545

4646
def mapper_hdd(
47-
disk_dto: Disk, archetype=get_component_archetype(config["default_hdd"], "hdd")
47+
disk_dto: Disk, archetype=get_component_archetype(config.default_hdd, "hdd")
4848
) -> ComponentHDD:
4949
disk_component = ComponentHDD(archetype=archetype)
5050
disk_component.usage = mapper_usage(

boaviztapi/dto/component/gpu.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class GPU(ComponentDTO):
2323

2424

2525
def mapper_gpu(
26-
gpu_dto: GPU, archetype=get_component_archetype(config["default_gpu"], "gpu")
26+
gpu_dto: GPU, archetype=get_component_archetype(config.default_gpu, "gpu")
2727
) -> ComponentGPU:
2828
gpu_component = ComponentGPU(archetype=archetype)
2929

boaviztapi/dto/component/other.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class Case(ComponentDTO):
2525

2626
def mapper_power_supply(
2727
power_supply_dto: PowerSupply,
28-
archetype=get_component_archetype(config["default_power_supply"], "power_supply"),
28+
archetype=get_component_archetype(config.default_power_supply, "power_supply"),
2929
) -> ComponentPowerSupply:
3030
power_supply_component = ComponentPowerSupply(archetype=archetype)
3131
power_supply_component.usage = mapper_usage(
@@ -52,7 +52,7 @@ def mapper_motherboard(motherboard_dto: Motherboard) -> ComponentMotherboard:
5252

5353

5454
def mapper_case(
55-
case_dto: Case, archetype=get_component_archetype(config["default_case"], "case")
55+
case_dto: Case, archetype=get_component_archetype(config.default_case, "case")
5656
) -> ComponentCase:
5757
case_component = ComponentCase(archetype=archetype)
5858
case_component.usage = mapper_usage(

boaviztapi/dto/component/ram.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class RAM(ComponentDTO):
2626

2727

2828
def mapper_ram(
29-
ram_dto: RAM, archetype=get_component_archetype(config["default_ram"], "ram")
29+
ram_dto: RAM, archetype=get_component_archetype(config.default_ram, "ram")
3030
) -> ComponentRAM:
3131
ram_component = ComponentRAM(archetype=archetype)
3232
ram_component.usage = mapper_usage(

boaviztapi/dto/device/device.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class Server(DeviceDTO):
4848

4949

5050
def mapper_server(
51-
server_dto: Server, archetype=get_server_archetype(config["default_server"])
51+
server_dto: Server, archetype=get_server_archetype(config.default_server)
5252
) -> DeviceServer:
5353
server_model = DeviceServer(archetype=archetype)
5454

@@ -93,7 +93,7 @@ class Cloud(Server):
9393
def mapper_cloud_instance(
9494
cloud_dto: Cloud,
9595
archetype=get_cloud_instance_archetype(
96-
config["default_cloud_instance"], config["default_cloud_provider"]
96+
config.default_cloud_instance, config.default_cloud_provider
9797
),
9898
) -> ServiceCloudInstance:
9999
if (

boaviztapi/dto/usage/usage.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@ def _reset_usage_dto_if_matches_config_defaults(usage_dto: Usage):
6565
"""Reset usage_dto fields to None if they match the config default values."""
6666
if (
6767
usage_dto.usage_location
68-
and usage_dto.usage_location.strip().upper()
69-
== config["default_location"].upper()
68+
and usage_dto.usage_location.strip().upper() == config.default_location.upper()
7069
):
7170
usage_dto.usage_location = None
7271

@@ -115,7 +114,7 @@ def mapper_usage(usage_dto: Usage, archetype=None) -> ModelUsage:
115114

116115
def mapper_usage_server(
117116
usage_dto: UsageServer,
118-
archetype=get_server_archetype(config["default_server"]).get("USAGE"),
117+
archetype=get_server_archetype(config.default_server).get("USAGE"),
119118
) -> ModelUsageServer:
120119
usage_model_server = ModelUsageServer(archetype=archetype)
121120
_reset_usage_dto_if_matches_config_defaults(usage_dto)
@@ -159,7 +158,7 @@ def mapper_usage_server(
159158
def mapper_usage_cloud(
160159
usage_dto: UsageCloud,
161160
archetype=get_cloud_instance_archetype(
162-
config["default_cloud_instance"], config["default_cloud_provider"]
161+
config.default_cloud_instance, config.default_cloud_provider
163162
).get("USAGE"),
164163
) -> ModelUsageCloud:
165164
usage_model_cloud = ModelUsageCloud(archetype=archetype)

boaviztapi/main.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import json
21
import logging
32

43
import anyio
@@ -17,6 +16,7 @@
1716
import threading
1817
import uvicorn
1918

19+
from boaviztapi import config
2020
from boaviztapi.routers.component_router import component_router
2121
from boaviztapi.routers.consumption_profile_router import consumption_profile
2222
from boaviztapi.routers.iot_router import iot
@@ -57,7 +57,7 @@ async def lifespan(app: FastAPI):
5757
version = get_version_from_pyproject()
5858
_logger = logging.getLogger(__name__)
5959

60-
origins = json.loads(os.getenv("ALLOWED_ORIGINS", '["*"]'))
60+
origins = config.allowed_origins
6161

6262

6363
# Ensure that even an uncaught exception includes CORS headers.
@@ -103,7 +103,8 @@ async def catch_exceptions_middleware(request: Request, call_next):
103103

104104
@app.get("/", response_class=HTMLResponse)
105105
async def welcome_page():
106-
html_content = """
106+
html_content = (
107+
"""
107108
<html>
108109
<head>
109110
<title>BOAVIZTAPI</title>
@@ -131,7 +132,9 @@ async def welcome_page():
131132
%s
132133
</body>
133134
</html>
134-
""" % os.getenv("SPECIAL_MESSAGE", "")
135+
"""
136+
% config.special_message
137+
)
135138
return HTMLResponse(content=html_content, status_code=200)
136139

137140

0 commit comments

Comments
 (0)