Example #1
0
 def getUriGroups(self, name, strict=None):
     groups = TaurusDeviceNameValidator.getUriGroups(self, name, strict)
     if groups is not None:
         if groups.get('arch_db', None) is None:
             groups['arch_db'] = '*'  # Wildcard for archiving scheme
         groups['devname'] = '?db={arch_db}'.format(**groups)
     return groups
Example #2
0
    def getUriGroups(self, name, strict=None):
        """
        reimplemented from :class:`TaurusDeviceNameValidator` to check
        if scheme can be handled. Changes `psd` scheme for it fullname
        equivalent (eg. `pds-csv`), in order that it could be handled
        later by proper handler.
        """
        groups = TaurusDeviceNameValidator.getUriGroups(self, name, strict)

        try:
            scheme = groups.get('scheme')

            if scheme != 'pds':
                return groups
        except:
            return None

        import os
        _, ext = os.path.splitext(groups.get('devname'))

        for handler in schemesMap.keys():
            if schemesMap[handler].canHandle(ext):
                groups['scheme'] = handler
                return groups
        return None
Example #3
0
    def getModelMimeData(self):
        """ Used for drag events """

        model,mimeData = '',None
        try:
            #model = getattr(self.scene().itemAt(*self.mousePos),'_name','')
            selected = self.scene()._selectedItems
            if not selected:
                self.debug('jdrawView.getModelMimeData(%s): nothing to drag'%model)
                return
            model = getattr(([s for s in selected if getattr(s,'_name','')] or [selected])[0],'_name','')
            self.debug('getModelMimeData(%s)'%model)
            mimeData = Qt.QMimeData()
            if model:
                # self.debug('getMimeData(): DeviceModel at %s: %s',self.mousePos,model)
                mimeData.setText(model)
                mimeData.setData(TAURUS_MODEL_MIME_TYPE, model)
                if TaurusDeviceNameValidator().getParams(model):
                    self.debug('getMimeData(): DeviceModel at %s: %s',self.mousePos,model)
                    mimeData.setData(TAURUS_DEV_MIME_TYPE,model)
                elif TaurusAttributeNameValidator().getParams(model):
                    self.debug('getMimeData(): AttributeModel at %s: %s',self.mousePos,model)
                    mimeData.setData(TAURUS_ATTR_MIME_TYPE,model)
                    mimeData.setData(TAURUS_DEV_MIME_TYPE,model.rsplit('/',1)[0])
                else:
                    self.debug('getMimeData(): UnknownModel at %s: %s',self.mousePos,model)
        except:
            self.debug('jdrawView.getModelMimeData(%s): unable to get MimeData'%model)
            self.debug(traceback.format_exc())
        return mimeData
Example #4
0
 def getUriGroups(self, name, strict=None):
     '''Reimplementation of getUriGroups to fix the host and authority
     name using fully qualified domain name for the host.
     '''
     ret = TaurusDeviceNameValidator.getUriGroups(self, name, strict)
     if ret is not None and ret.get("host", None) is not None:
         fqdn = fqdn_no_alias(ret["host"])
         ret["host"] = fqdn
         ret["authority"] = "//{host}:{port}".format(**ret)
     return ret
Example #5
0
    def _getKey(self, name):

        if self._elementType == TaurusElementType.Attribute:
            g = TaurusAttributeNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Device:
            g = TaurusDeviceNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Authority:
            g = TaurusAuthorityNameValidator.getUriGroups(self, name)
        else:
            msg = '_elementType must be one of (Authority, Device, Attribute)'
            raise Exception(msg)
        if g is None:
            return None
        else:
            return g['_resname']
Example #6
0
 def getUriGroups(self, name, strict=None):
     '''reimplemented from :class:`TaurusDeviceNameValidator` to provide
     backwards compatibility with ol syntax'''
     groups = TaurusDeviceNameValidator.getUriGroups(self, name,
                                                     strict=strict)
     if groups is not None and not groups['__STRICT__']:
         _old_devname = groups['_old_devname']
         groups['devname'] = '@%s' % _old_devname
         if '.' in _old_devname:
             groups['_evalname'] = None
             groups['_evalclass'] = _old_devname
         else:
             groups['_evalname'] = _old_devname
             groups['_evalclass'] = None
     return groups
Example #7
0
    def _getKey(self, name):

        if self._elementType == TaurusElementType.Attribute:
            g = TaurusAttributeNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Device:
            g = TaurusDeviceNameValidator.getUriGroups(self, name)
        elif self._elementType == TaurusElementType.Authority:
            g = TaurusAuthorityNameValidator.getUriGroups(self, name)
        else:
            msg = '_elementType must be one of (Authority, Device, Attribute)'
            raise Exception(msg)
        if g is None:
            return None
        else:
            return g['_resname']
Example #8
0
 def getUriGroups(self, name, strict=None):
     '''reimplemented from :class:`TaurusDeviceNameValidator` to provide
     backwards compatibility with ol syntax'''
     groups = TaurusDeviceNameValidator.getUriGroups(self,
                                                     name,
                                                     strict=strict)
     if groups is not None and not groups['__STRICT__']:
         _old_devname = groups['_old_devname']
         groups['devname'] = '@%s' % _old_devname
         if '.' in _old_devname:
             groups['_evalname'] = None
             groups['_evalclass'] = _old_devname
         else:
             groups['_evalname'] = _old_devname
             groups['_evalclass'] = None
     return groups