Skip to content

Commit

Permalink
✨ Add DesignEvaluator abstract base class
Browse files Browse the repository at this point in the history
  • Loading branch information
lukethehuman committed Feb 19, 2024
1 parent b4d1100 commit a64009a
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions src/sledo/design_evaluatior.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
"""
DesignEvaluator abstract base class for SLEDO.
(c) Copyright UKAEA 2024.
"""

from abc import ABC, abstractmethod


class DesignEvaluator(ABC):
"""Abstract base class for evaluating a design. Must contain a method which
takes in the parameters describing a design and returns the
performance metrics for that design. Additional methods may be implemented
by a given subclass to perform the design evaluation procedure as required.
"""

@abstractmethod
def evaluate_design(self, parameters: dict) -> dict:
"""Evaluate a design and return performance metrics.
Parameters
----------
parameters : dict
Dictionary of parameters describing the design to be evaluated.
Returns
-------
metrics: dict
Dictionary of metrics describing the design's performance as
evaluated.
"""

0 comments on commit a64009a

Please sign in to comment.