refact: move repository to data_repository

This commit is contained in:
Bertrand Benjamin 2025-01-14 07:00:19 +01:00
parent bb691acc14
commit 1a49158afa
6 changed files with 20 additions and 20 deletions

View File

@ -5,7 +5,7 @@ from plesna.graph.graph_set import GraphSet
from plesna.models.flux import Flux, FluxMetaData from plesna.models.flux import Flux, FluxMetaData
from plesna.models.graphs import Node from plesna.models.graphs import Node
from plesna.models.libs.flux_graph import flux_to_edgeonset from plesna.models.libs.flux_graph import flux_to_edgeonset
from plesna.storage.repository.repository import Repository from plesna.storage.data_repository.data_repository import DataRepository
class DataPlateformError(Exception): class DataPlateformError(Exception):
@ -18,7 +18,7 @@ class DataPlateform:
self._fluxes = {} self._fluxes = {}
self._repositories = {} self._repositories = {}
def add_repository(self, repository: Repository) -> str: def add_repository(self, repository: DataRepository) -> str:
if repository.id in self._repositories: if repository.id in self._repositories:
raise DataPlateformError("The repository {repository.id} already exists") raise DataPlateformError("The repository {repository.id} already exists")
@ -29,7 +29,7 @@ class DataPlateform:
def repositories(self) -> list[str]: def repositories(self) -> list[str]:
return list(self._repositories) return list(self._repositories)
def repository(self, id: str) -> Repository: def repository(self, id: str) -> DataRepository:
return self._repositories[id] return self._repositories[id]
def add_flux(self, name: str, flux: Flux) -> str: def add_flux(self, name: str, flux: Flux) -> str:

View File

@ -3,7 +3,7 @@ import abc
from plesna.models.storage import Partition, Schema, Table from plesna.models.storage import Partition, Schema, Table
class Repository: class DataRepository:
def __init__(self, id: str, name: str): def __init__(self, id: str, name: str):
self._id = id self._id = id
self._name = name self._name = name

View File

@ -3,8 +3,8 @@ from pathlib import Path
from pydantic import BaseModel, computed_field from pydantic import BaseModel, computed_field
from plesna.libs.string_tools import extract_values_from_pattern from plesna.libs.string_tools import extract_values_from_pattern
from plesna.models.storage import Partition, Schema, Table from plesna.models.storage import Schema, Table
from plesna.storage.repository.repository import Repository from plesna.storage.data_repository.data_repository import DataRepository
class FSTable(BaseModel): class FSTable(BaseModel):
@ -58,8 +58,8 @@ class FSRepositoryError(ValueError):
pass pass
class FSRepository(Repository): class FSDataRepository(DataRepository):
"""Repository based on files tree structure """Data Repository based on files tree structure
- first level: schemas - first level: schemas
- second level: tables - second level: tables

View File

@ -6,13 +6,13 @@ import pytest
from plesna.dataplatform import DataPlateform from plesna.dataplatform import DataPlateform
from plesna.models.graphs import Edge, EdgeOnSet, Node from plesna.models.graphs import Edge, EdgeOnSet, Node
from plesna.models.flux import Flux, Transformation from plesna.models.flux import Flux, Transformation
from plesna.storage.repository.fs_repository import FSRepository from plesna.storage.data_repository.fs_data_repository import FSDataRepository
FIXTURE_DIR = Path(__file__).parent.parent / Path("raw_datas") FIXTURE_DIR = Path(__file__).parent.parent / Path("raw_datas")
@pytest.fixture @pytest.fixture
def repository(tmp_path) -> FSRepository: def repository(tmp_path) -> FSDataRepository:
example_src = FIXTURE_DIR example_src = FIXTURE_DIR
assert example_src.exists() assert example_src.exists()
@ -24,11 +24,11 @@ def repository(tmp_path) -> FSRepository:
silver_path = Path(tmp_path) / "silver" silver_path = Path(tmp_path) / "silver"
silver_path.mkdir() silver_path.mkdir()
return FSRepository("test", "test", tmp_path) return FSDataRepository("test", "test", tmp_path)
def test_add_repository( def test_add_repository(
repository: FSRepository, repository: FSDataRepository,
): ):
dp = DataPlateform() dp = DataPlateform()
dp.add_repository(repository) dp.add_repository(repository)
@ -39,7 +39,7 @@ def test_add_repository(
@pytest.fixture @pytest.fixture
def copy_flux(repository: FSRepository) -> Flux: def copy_flux(repository: FSDataRepository) -> Flux:
raw_username = [repository.table("test-raw-username")] raw_username = [repository.table("test-raw-username")]
bronze_username = [repository.table("test-bronze-username")] bronze_username = [repository.table("test-bronze-username")]
@ -62,7 +62,7 @@ def copy_flux(repository: FSRepository) -> Flux:
@pytest.fixture @pytest.fixture
def foo_flux(repository: FSRepository) -> Flux: def foo_flux(repository: FSDataRepository) -> Flux:
src = [ src = [
repository.table("test-raw-username"), repository.table("test-raw-username"),
repository.table("test-raw-recovery"), repository.table("test-raw-recovery"),
@ -84,7 +84,7 @@ def foo_flux(repository: FSRepository) -> Flux:
return flux return flux
def test_add_flux(repository: FSRepository, copy_flux: Flux): def test_add_flux(repository: FSDataRepository, copy_flux: Flux):
dataplatform = DataPlateform() dataplatform = DataPlateform()
dataplatform.add_repository(repository) dataplatform.add_repository(repository)
@ -99,7 +99,7 @@ def test_add_flux(repository: FSRepository, copy_flux: Flux):
@pytest.fixture @pytest.fixture
def dataplatform( def dataplatform(
repository: FSRepository, repository: FSDataRepository,
foo_flux: Flux, foo_flux: Flux,
copy_flux: Flux, copy_flux: Flux,
) -> DataPlateform: ) -> DataPlateform:

View File

@ -3,7 +3,7 @@ from pathlib import Path
import pytest import pytest
from plesna.storage.repository.fs_repository import FSRepository from plesna.storage.data_repository.fs_data_repository import FSDataRepository
FIXTURE_DIR = Path(__file__).parent.parent / Path("./raw_datas/") FIXTURE_DIR = Path(__file__).parent.parent / Path("./raw_datas/")
@ -20,7 +20,7 @@ def location(tmp_path):
def test_init(location): def test_init(location):
repo = FSRepository("example", "example", location) repo = FSDataRepository("example", "example", location)
assert repo.ls() == [ assert repo.ls() == [
"schema", "schema",
] ]
@ -44,8 +44,8 @@ def test_init(location):
@pytest.fixture @pytest.fixture
def repository(location) -> FSRepository: def repository(location) -> FSDataRepository:
return FSRepository("repo_id", "example", location) return FSDataRepository("repo_id", "example", location)
def test_list_schemas(repository): def test_list_schemas(repository):