# `EvaluationFactory`

digraph inheritance9404ebf9b9 { bgcolor=transparent; rankdir=UD; ratio=compress; size="8.0, 12.0"; "EvaluationFactory" [URL="#taurus.core.evaluation.EvaluationFactory",color=dodgerblue1,fillcolor=white,fontcolor=black,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.5,shape=box,style=rounded,target="_top",tooltip="A Singleton class that provides Evaluation related objects."]; "Singleton" -> "EvaluationFactory" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TaurusFactory" -> "EvaluationFactory" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Logger" -> "EvaluationFactory" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Logger" [URL="taurus-Logger.html#taurus.Logger",color=dodgerblue1,fillcolor=white,fontcolor=black,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.5,shape=box,style=rounded,target="_top",tooltip="The taurus logger class. All taurus pertinent classes should inherit"]; "Singleton" [URL="taurus.core.util.singleton-Singleton.html#taurus.core.util.singleton.Singleton",color=dodgerblue1,fillcolor=white,fontcolor=black,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.5,shape=box,style=rounded,target="_top",tooltip="This class allows Singleton objects"]; "TaurusFactory" [URL="taurus.core.taurusfactory-TaurusFactory.html#taurus.core.taurusfactory.TaurusFactory",color=dodgerblue1,fillcolor=white,fontcolor=black,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.5,shape=box,style=rounded,target="_top",tooltip="The base class for valid Factories in Taurus."]; }

class EvaluationFactory(*p, **k)

  A Singleton class that provides Evaluation related objects.

  Import from `taurus.core.evaluation` as:

      from taurus.core.evaluation import EvaluationFactory

  DEFAULT_AUTHORITY = '//localhost'
  DEFAULT_DATABASE = '_DefaultEvalDB'
  DEFAULT_DEVICE = '@DefaultEvaluator'
  elementTypesMap = {3: <class 'taurus.core.evaluation.evaldevice.EvaluationDevice'>, 13: <class 'taurus.core.evaluation.evalattribute.EvaluationAttribute'>, 18: <class 'taurus.core.evaluation.evalauthority.EvaluationAuthority'>}
  findObjectClass(absolute_name)

    Operation models are always OperationAttributes

  getAttribute(attr_name, **kwargs)

    Obtain the object corresponding to the given attribute name. If the corresponding attribute already exists, the existing instance is returned. Otherwise a new instance is stored and returned. The evaluator device associated to this attribute will also be created if necessary.

    Parameters:

      attr_name (str) – the attribute name string. See `taurus.core.evaluation` for valid attribute names

    Returns:

    Return type:

      EvaluationAttribute

    Raises:

      TaurusException if the given name is invalid.

    Any aditional keyword arguments will be passed directly to the constructor of :class:EvaluationAttribute

  getAttributeNameValidator()

    Return EvaluationAttributeNameValidator

  getAuthority(name=None)

    Obtain the EvaluationDatabase object.

    Parameters:

      db_name (str) – this is ignored because only one database is supported

    Returns:

    Return type:

      EvaluationDatabase

  getAuthorityNameValidator()

    Return EvaluationAuthorityNameValidator

  getDevice(dev_name)

    Obtain the object corresponding to the given device name. If the corresponding device already exists, the existing instance is returned. Otherwise a new instance is stored and returned.

    Parameters:

      dev_name (str) – the device name string. See `taurus.core.evaluation` for valid device names

    Returns:

    Return type:

      EvaluationDevice

    @throws TaurusException if the given name is invalid.

  getDeviceNameValidator()

    Return EvaluationDeviceNameValidator

  init(*args, **kwargs)

    Singleton instance initialization.

  schemes = ('eval', 'evaluation')