Skip to content

Commit

Permalink
Updated tests
Browse files Browse the repository at this point in the history
  • Loading branch information
MatsMoll committed Sep 11, 2024
1 parent 2052b3a commit 1bac8d4
Show file tree
Hide file tree
Showing 18 changed files with 31 additions and 367 deletions.
9 changes: 2 additions & 7 deletions aligned/compiler/repo_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@
from typing import Any
from aligned.compiler.model import ModelContractWrapper

from aligned.enricher import Enricher
from aligned.feature_view.feature_view import FeatureViewWrapper
from aligned.schemas.repo_definition import EnricherReference, RepoDefinition, RepoMetadata, RepoReference
from aligned.schemas.repo_definition import RepoDefinition, RepoMetadata, RepoReference
from pathlib import Path


Expand Down Expand Up @@ -109,11 +108,7 @@ async def definition_from_files(files: list[Path], root_path: Path) -> RepoDefin

obj = getattr(module, attribute)

if isinstance(obj, Enricher):
repo.enrichers.append(
EnricherReference(module=module_path, attribute_name=attribute, enricher=obj)
)
elif isinstance(obj, FeatureViewWrapper):
if isinstance(obj, FeatureViewWrapper):
repo.feature_views.add(obj.compile())
elif isinstance(obj, ModelContractWrapper):
repo.models.add(obj.compile())
Expand Down
227 changes: 0 additions & 227 deletions aligned/enricher.py

This file was deleted.

42 changes: 1 addition & 41 deletions aligned/feature_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from collections import defaultdict
from dataclasses import dataclass, field
from datetime import datetime, timedelta
from importlib import import_module
from typing import Union, TypeVar, Callable

from prometheus_client import Histogram
Expand All @@ -19,7 +18,6 @@
ColumnFeatureMappable,
BatchDataSource,
)
from aligned.enricher import Enricher
from aligned.exceptions import UnableToFindFileException
from aligned.feature_source import (
BatchFeatureSource,
Expand All @@ -44,7 +42,7 @@
from aligned.schemas.folder import DatasetStore
from aligned.schemas.model import EventTrigger
from aligned.schemas.model import Model as ModelSchema
from aligned.schemas.repo_definition import EnricherReference, RepoDefinition, RepoMetadata
from aligned.schemas.repo_definition import RepoDefinition, RepoMetadata
from aligned.sources.vector_index import VectorIndex

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -150,42 +148,6 @@ def empty() -> ContractStore:
def experimental() -> ContractStore:
return ContractStore.empty()

@staticmethod
def register_enrichers(enrichers: list[EnricherReference]) -> None:
from types import ModuleType

class DynamicEnricher(ModuleType):
def __init__(self, values: dict[str, Enricher]) -> None:
for key, item in values.items():
self.__setattr__(key, item)

def set_module(path: str, module_class: DynamicEnricher) -> None:
import sys

components = path.split('.')
cum_path = ''

for component in components:
cum_path += f'.{component}'
if cum_path.startswith('.'):
cum_path = cum_path[1:]

try:
sys.modules[cum_path] = import_module(cum_path)
except Exception:
logger.info(f'Setting enricher at {cum_path}')
sys.modules[cum_path] = module_class

grouped_enrichers: dict[str, list[EnricherReference]] = defaultdict(list)

for enricher in enrichers:
grouped_enrichers[enricher.module].append(enricher)

for module, values in grouped_enrichers.items():
set_module(
module, DynamicEnricher({enricher.attribute_name: enricher.enricher for enricher in values})
)

@staticmethod
def from_definition(repo: RepoDefinition) -> ContractStore:
"""Creates a feature store based on a repo definition
Expand All @@ -204,8 +166,6 @@ def from_definition(repo: RepoDefinition) -> ContractStore:
Returns:
FeatureStore: A ready to use feature store
"""
ContractStore.register_enrichers(repo.enrichers)

store = ContractStore(
feature_views={},
models={},
Expand Down
4 changes: 3 additions & 1 deletion aligned/feature_view/feature_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -874,7 +874,9 @@ def func_wrapper(*args, **kwargs) -> Any: # type: ignore
from typing import _AnnotatedAlias # type: ignore

params_to_check = {
name: value for name, value in func.__annotations__.items() if type(value) is _AnnotatedAlias
name: value
for name, value in func.__annotations__.items()
if type(value) == _AnnotatedAlias # noqa: E721
}

function_args = func.__code__.co_varnames
Expand Down
2 changes: 0 additions & 2 deletions aligned/feature_view/tests/test_check_schema.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from __future__ import annotations

import pytest
from aligned import Bool, Float, String, feature_view, FileSource
from aligned.feature_view.feature_view import check_schema
Expand Down
11 changes: 0 additions & 11 deletions aligned/schemas/repo_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from pathlib import Path
from typing import TYPE_CHECKING

from aligned.enricher import Enricher
from aligned.feature_source import FeatureSource, FeatureSourceFactory
from aligned.schemas.codable import Codable
from aligned.schemas.feature_view import CompiledFeatureView
Expand Down Expand Up @@ -120,13 +119,6 @@ def from_reference(
return FastAPIServer.app(feature_store.with_source(online_source))


@dataclass
class EnricherReference(Codable):
module: str
attribute_name: str
enricher: Enricher


@dataclass
class RepoMetadata(Codable):
created_at: datetime
Expand All @@ -142,7 +134,6 @@ class RepoDefinition(Codable):

feature_views: set[CompiledFeatureView] = field(default_factory=set)
models: set[Model] = field(default_factory=set)
enrichers: list[EnricherReference] = field(default_factory=list)

def to_dict(self, **kwargs: dict) -> dict: # type: ignore
for view in self.feature_views:
Expand All @@ -151,8 +142,6 @@ def to_dict(self, **kwargs: dict) -> dict: # type: ignore
for model in self.models:
assert isinstance(model, Model)

for enricher in self.enrichers:
assert isinstance(enricher, EnricherReference)
return super().to_dict(**kwargs)

@staticmethod
Expand Down
Loading

0 comments on commit 1bac8d4

Please sign in to comment.