Change experiments.FileType.regex to a text field so it can be arbitrarily long.
[htsworkflow.git] / htsworkflow / frontend / experiments / models.py
index 2232d964386944269dda19b7da1c12f0bc15342b..2da1fcf120228a2e46312a355066ddf1488aaba7 100644 (file)
@@ -3,6 +3,7 @@ import glob
 import logging
 import os
 import re
+import sre_constants
 import types
 import uuid
 
@@ -134,6 +135,9 @@ class FlowCellModel(models.Model):
     per_cycle_time = models.IntegerField(default=0, help_text='(seconds)')
     isdefault = models.BooleanField(default=False)
 
+    def __unicode__(self):
+        return unicode(self.name)
+
     @classmethod
     def default(cls):
         d = cls.objects.filter(isdefault=True).all()
@@ -452,6 +456,12 @@ class FileType(models.Model):
         #return u"<FileType: %s>" % (self.name,)
         return self.name
 
+    def regex_is_valid(self):
+        try:
+            regex = re.compile(self.regex)
+        except sre_constants.error as e:
+            return False
+        return re.compile(self.regex) is not None
 
 def str_uuid():
     """Helper function to set default UUID in DataFile"""