Skip to content

Commit

Permalink
Combined directory creation with tmp dir setting.
Browse files Browse the repository at this point in the history
  • Loading branch information
Aleksandr Movchan committed Nov 29, 2024
1 parent 31d3cb5 commit 2cf9d2c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
18 changes: 9 additions & 9 deletions aana/configs/settings.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from pathlib import Path

from pydantic import BaseModel, field_validator, model_validator
from pydantic import BaseModel, model_validator
from pydantic_settings import BaseSettings, SettingsConfigDict

from aana.configs.db import DbSettings
Expand Down Expand Up @@ -69,8 +69,8 @@ class Settings(BaseSettings):
test: TestSettings = TestSettings()

@model_validator(mode="after")
def set_dependent_paths(self):
"""Set default paths for directories if not explicitly provided."""
def setup_resource_directories(self):
"""Create the resource directories if they do not exist."""
if self.image_dir is None:
self.image_dir = self.tmp_data_dir / "images"
if self.video_dir is None:
Expand All @@ -79,13 +79,13 @@ def set_dependent_paths(self):
self.audio_dir = self.tmp_data_dir / "audios"
if self.model_dir is None:
self.model_dir = self.tmp_data_dir / "models"
return self

@field_validator("tmp_data_dir", mode="after")
def create_tmp_data_dir(cls, path: Path) -> Path:
"""Create the tmp_data_dir if it doesn't exist."""
path.mkdir(parents=True, exist_ok=True)
return path
self.tmp_data_dir.mkdir(parents=True, exist_ok=True)
self.image_dir.mkdir(parents=True, exist_ok=True)
self.video_dir.mkdir(parents=True, exist_ok=True)
self.audio_dir.mkdir(parents=True, exist_ok=True)
self.model_dir.mkdir(parents=True, exist_ok=True)
return self

model_config = SettingsConfigDict(
protected_namespaces=("settings", *pydantic_protected_fields),
Expand Down
10 changes: 5 additions & 5 deletions aana/tests/units/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def test_custom_tmp_data_dir(monkeypatch):

def test_changing_tmp_data_dir():
"""Test that changing the temporary data directory is reflected in the other directories."""
new_tmp_data_dir = Path("/new_tmp_data_dir")
new_tmp_data_dir = Path("/tmp/new_tmp_data_dir")
settings = Settings(tmp_data_dir=new_tmp_data_dir)

assert settings.tmp_data_dir == new_tmp_data_dir
Expand All @@ -30,25 +30,25 @@ def test_changing_tmp_data_dir():
assert settings.model_dir == new_tmp_data_dir / "models"

# Check that we can change the image directory independently
new_image_dir = Path("/new_image_dir")
new_image_dir = Path("/tmp/new_image_dir")
settings = Settings(tmp_data_dir=new_tmp_data_dir, image_dir=new_image_dir)
assert settings.tmp_data_dir == new_tmp_data_dir
assert settings.image_dir == new_image_dir

# Check that we can change the video directory independently
new_video_dir = Path("/new_video_dir")
new_video_dir = Path("/tmp/new_video_dir")
settings = Settings(tmp_data_dir=new_tmp_data_dir, video_dir=new_video_dir)
assert settings.tmp_data_dir == new_tmp_data_dir
assert settings.video_dir == new_video_dir

# Check that we can change the audio directory independently
new_audio_dir = Path("/new_audio_dir")
new_audio_dir = Path("/tmp/new_audio_dir")
settings = Settings(tmp_data_dir=new_tmp_data_dir, audio_dir=new_audio_dir)
assert settings.tmp_data_dir == new_tmp_data_dir
assert settings.audio_dir == new_audio_dir

# Check that we can change the model directory independently
new_model_dir = Path("/new_model_dir")
new_model_dir = Path("/tmp/new_model_dir")
settings = Settings(tmp_data_dir=new_tmp_data_dir, model_dir=new_model_dir)
assert settings.tmp_data_dir == new_tmp_data_dir
assert settings.model_dir == new_model_dir

0 comments on commit 2cf9d2c

Please sign in to comment.