# `EvaluationDeviceNameValidator`

digraph inheritance8f3b3d757d { bgcolor=transparent; rankdir=UD; ratio=compress; size="8.0, 12.0"; "EvaluationDeviceNameValidator" [URL="#taurus.core.evaluation.evalvalidator.EvaluationDeviceNameValidator",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="Validator for Evaluation device names. Apart from the standard named"]; "TaurusDeviceNameValidator" -> "EvaluationDeviceNameValidator" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TaurusDeviceNameValidator" [URL="taurus.core.taurusvalidator-TaurusDeviceNameValidator.html#taurus.core.taurusvalidator.TaurusDeviceNameValidator",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="Base class for Device name validators."]; }

class EvaluationDeviceNameValidator(*p, **k)

  Validator for Evaluation device names. Apart from the standard named groups (scheme, authority, path, query and fragment), the following named groups are created:

  > - devname: device name (either _evalname or _evaldotname)

  > - [_evalname]: evaluation instance name (aka non-dotted dev name)

  > - [_evaldotname]: evaluation instance dotted name (if dotted name given)

  > - [_old_devname]: devname without “@”. Only in non-strict mode

  > - [_dbname] and [_subst]: unused. Only if non-strict mode

  Note: brackets on the group name indicate that this group will only contain a string if the URI contains it.

  Import from `taurus.core.evaluation.evalvalidator` as:

      from taurus.core.evaluation.evalvalidator import EvaluationDeviceNameValidator

  authority = '//localhost'
  devname = '(?P<devname>@((?P<_evalname>[^/?#:\\.=]+)|(?P<_evaldotname>((?P<_evalinstname>\\w+)=)?(?P<_evalmodname>(\\w+\\.)*\\w+)\\.(?P<_evalclassname>(\\w+|\\*))(?P<_evalclassparenths>\\(("[^"]*"|\\\'[^\\\']*\\\'|[^\\\'"/])*?\\))?)))'
  fragment = '(?!)'
  getNames(fullname, factory=None)

    reimplemented from `TaurusDeviceNameValidator`

  getUriGroups(name, strict=None)

    reimplemented from `TaurusDeviceNameValidator` to provide backwards compatibility with ol syntax

  property nonStrictNamePattern

    In non-strict mode support old-style eval names

  path = '(?!//)/?(?P<devname>@((?P<_evalname>[^/?#:\\.=]+)|(?P<_evaldotname>((?P<_evalinstname>\\w+)=)?(?P<_evalmodname>(\\w+\\.)*\\w+)\\.(?P<_evalclassname>(\\w+|\\*))(?P<_evalclassparenths>\\(("[^"]*"|\\\'[^\\\']*\\\'|[^\\\'"/])*?\\))?)))'
  query = '(?!)'
  scheme = 'eval'