Mercurial > repos > yating-l > jbrowsearchivecreator
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 """