コード例 #1
0
ファイル: data.py プロジェクト: pyfrid/pyfrid-data
 def __init__(self, *args, **kwargs):
     super(BaseDataModule,self).__init__(*args, **kwargs)
     self._dataset=Dataset(headers=self.app.devices())
     self._handlers=[]
     self._group_preset=False
     self._name_preset=False
     self._init_names()
     
     self.before_shoot_signal=Signal(self)
     self.before_after_signal=Signal(self)
コード例 #2
0
ファイル: data.py プロジェクト: pyfrid/pyfrid-data
class BaseDataModule(BaseModule):
     
    def __init__(self, *args, **kwargs):
        super(BaseDataModule,self).__init__(*args, **kwargs)
        self._dataset=Dataset(headers=self.app.devices())
        self._handlers=[]
        self._group_preset=False
        self._name_preset=False
        self._init_names()
        
        self.before_shoot_signal=Signal(self)
        self.before_after_signal=Signal(self)
    
    def _init_names(self):
        self._datagroup   = ""
        self._datagroup_comment = ""
        self._dataname    = ""
        self._datacomment = ""
    
    def initialize(self):
        self._init_names()
        
    def release(self):
        self._group_preset=False
        self._name_preset=False
            
    def register_handler(self, h):
        self._handlers.append(h)
    
    @property
    def datainfo(self):
        return {
            "name"    : self._dataname,
            "comment" : self._datacomment
        }
        
    @property
    def dataname(self):
        return self._dataname
    
    @property
    def datagroup(self):
        return self._datagroup
        
    @property
    def groupinfo(self):
        return {
            "group"         : self._datagroup,
            "comment"       : self._datagroup_comment
        }
    
    def validate_name(self, name, comment=""):
        if not re.match(r"[A-Za-z_]+[0-9]*",name):
            self.error("Data name is not regular. It can contain only letters, numbers and '_'")
            return False
        return True
    
    def validate_group(self, name, comment=""):
        if not re.match(r"[A-Za-z_]+[0-9]*",name):
            self.error("Group name is not regular. It can contain only letters, numbers and '_'")
            return False
        return True
    
    def set_dataname(self, name, comment="", **kwargs):
        if not self.validate_name(name, comment): return
        self._dataname=name
        self._datacomment=comment
        
    def set_datagroup(self, name, comment="", **kwargs):
        if not self.validate_group(name, comment): return
        self._datagroup=name
        self._datagroup_comment=comment
                           
    def status(self):
        return (("Data group",self._datagroup,""),
                ("Group comment",self._datagroup_comment,""),
                ("Data name",self._dataname,""),
                ("Data comment",self._datacomment,"")
               )
        
    def get_data(self, colname):
        return self._dataset[colname]
        
    def init_data(self, *args, **kwargs):
        self._dataset.clear(headers=False)
        #if not self._makedatapath(): return False
        for h in self._handlers:
            try:
                h.init_data(*args, **kwargs)
            except Exception, err:
                self.exception(err)
                raise