Skip to content

Commit

Permalink
Fix sampling and product interface
Browse files Browse the repository at this point in the history
  • Loading branch information
jmhorcas committed May 9, 2024
1 parent 1792a3c commit 4ca2dc2
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 12 deletions.
4 changes: 2 additions & 2 deletions flamapy/core/operations/products.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from abc import abstractmethod
from typing import Any

from flamapy.core.operations import Operation
from flamapy.metamodels.configuration_metamodel.models.configuration import Configuration


class Products(Operation):
Expand All @@ -11,5 +11,5 @@ def __init__(self) -> None:
pass

@abstractmethod
def get_products(self) -> list[Any]:
def get_products(self) -> list[Configuration]:
pass
28 changes: 18 additions & 10 deletions flamapy/core/operations/sampling.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from abc import abstractmethod
from typing import Optional

from flamapy.metamodels.configuration_metamodel.models.configuration import Configuration
from flamapy.core.operations import Operation
Expand All @@ -11,12 +10,21 @@ class Sampling(Operation):
"""

@abstractmethod
def sample(self, size: int, with_replacement: bool = False,
partial_configuration: Optional[Configuration] = None) -> list[Configuration]:
"""Return a sample of configurations.
Keyword arguments:
size -- number of configurations of the sample.
with_replacement -- allow repeated configurations in the sample (default False).
partial_configuration -- from which the sample is built (default empty configuration).
"""
def __init__(self) -> None:
pass

@abstractmethod
def set_sample_size(self, sample_size: int) -> None:
"""Number of configurations of the sample."""

@abstractmethod
def set_with_replacement(self, with_replacement: bool) -> None:
"Allow repeated configurations in the sample (default False)."

@abstractmethod
def set_partial_configuration(self, partial_configuration: Configuration) -> None:
"From which the sample is built (default empty configuration)."

@abstractmethod
def get_sample(self) -> list[Configuration]:
"""Return a sample of configurations."""

0 comments on commit 4ca2dc2

Please sign in to comment.