diff tracks/TrackDb.py @ 25:31a41ce128cc draft

planemo upload for repository https://github.com/Yating-L/jbrowse-archive-creator.git commit 691e5366893905d30943a3cb8cdfb6341f0f5362-dirty
author yating-l
date Fri, 13 Oct 2017 12:44:31 -0400
parents
children 061da5d3a219
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tracks/TrackDb.py	Fri Oct 13 12:44:31 2017 -0400
@@ -0,0 +1,53 @@
+#!/usr/bin/python
+"""
+Super Class of the tracks
+"""
+import os
+import abc
+from abc import ABCMeta
+import collections
+import json
+import logging
+from util import santitizer
+
+class TrackDb(object):
+    """docstring for TrackDb"""
+    __metaclass__ = ABCMeta
+
+    def __init__(self, trackName, trackLabel, trackDataURL, trackType, dataType, extraSettings=None):
+        #super(TrackDb, self).__init__()
+        
+        not_init_message = "The {0} is not initialized." 
+        if trackName is None:
+            raise TypeError(not_init_message.format('trackName'))
+        if trackLabel is None:
+            raise TypeError(not_init_message.format('trackLabel'))
+        if trackType is None:
+            raise TypeError(not_init_message.format('trackType'))
+        self.trackName = trackName
+        self.trackLabel = trackLabel
+        self.trackDataURL = trackDataURL
+        self.trackType = trackType
+        self.dataType = dataType
+        self.extraSettings = extraSettings
+        self.logger = logging.getLogger(__name__)
+        #self.createTrackDb()
+
+    def createTrackDb(self):
+        self.track_db = collections.OrderedDict([("track",self.trackName),
+                ("trackLabel",self.trackLabel),
+                ("trackDataURL",self.trackDataURL),
+                ("dataType", self.dataType),
+                ("trackType", self.trackType)]
+                )
+        
+        
+        extraConfigs = self.prepareExtraSetting()
+        self.logger.debug("Generate extraConfigs = %s", json.dumps(extraConfigs))
+        self.track_db["options"] = extraConfigs
+        #print self.track_db
+        self.logger.debug("TrackDb object is created track_db = %s ", json.dumps(self.track_db))
+
+    @abc.abstractmethod
+    def prepareExtraSetting(self):
+        """ set optional configurations for the track """