[Bio] / KahApp / KahConfigSection.py Repository:
ViewVC logotype

Diff of /KahApp/KahConfigSection.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Thu Jul 8 01:41:30 2004 UTC revision 1.2, Fri Jan 7 14:40:32 2005 UTC
# Line 18  Line 18 
18  # BUGS:  # BUGS:
19  #--------------------------------------------------------------  #--------------------------------------------------------------
20    
21    import re
22    
23  class KahConfigSection:  class KahConfigSection:
24      """      """
# Line 33  Line 34 
34          """          """
35    
36          self.__sectionName = name          self.__sectionName = name
37          self.__dict        = {}          self.__dict        = {}       #need to rewrite to replace tuple with obj
38          return          return
39    
40    
# Line 93  Line 94 
94          return self.__get( "str", keyName)          return self.__get( "str", keyName)
95    
96      #------------------------------------------------------------------------      #------------------------------------------------------------------------
97      def regInt( self, keyName, defaultVal ):      def getStringList( self, keyName):
98        #------------------------------------------------------------------------
99            """
100            Gets string value.
101            """
102    
103            return self.__get( "stringList", keyName)
104    
105        #------------------------------------------------------------------------
106        def regInt( self, keyName, defaultVal, docString="No doc string" ):
107      #------------------------------------------------------------------------      #------------------------------------------------------------------------
108          """          """
109          Register an integer with this keyName and default value.          Register an integer with this keyName and default value.
# Line 102  Line 112 
112          @type defaultValue: integer          @type defaultValue: integer
113          """          """
114    
115          self.__register( "int", int, keyName, defaultVal)          self.__register( "int", int, keyName, defaultVal, docString)
116          return          return
117    
118      #------------------------------------------------------------------------      #------------------------------------------------------------------------
119      def regFloat( self, keyName, defaultVal ):      def regFloat( self, keyName, defaultVal, docString="No doc string"  ):
120      #------------------------------------------------------------------------      #------------------------------------------------------------------------
121    
122          """          """
# Line 116  Line 126 
126          @type defaultValue: float          @type defaultValue: float
127          """          """
128    
129          self.__register( "float", float, keyName, defaultVal)          self.__register( "float", float, keyName, defaultVal, docString)
130          return          return
131    
132      #------------------------------------------------------------------------      #------------------------------------------------------------------------
133      def regString( self, keyName, defaultVal ):      def regString( self, keyName, defaultVal, docString="No doc string"  ):
134      #------------------------------------------------------------------------      #------------------------------------------------------------------------
135    
136          """          """
# Line 130  Line 140 
140          @type defaultValue: string          @type defaultValue: string
141          """          """
142    
143          self.__register( "str", str, keyName, defaultVal)          self.__register( "str", str, keyName, defaultVal, docString)
144            return
145    
146        #------------------------------------------------------------------------
147        def regStringList( self, keyName, defaultVal, docString="No doc string" ):
148        #------------------------------------------------------------------------
149    
150            """
151            Register an integer with this keyName and default value.
152    
153            @type keyName: string
154            @type defaultValue: list of strings
155            """
156    
157            s = "%s" % defaultVal
158    
159            self.__register( "stringList", self.__stringList, keyName, s, docString)
160          return          return
161    
162    
163      #------------------------------------------------------------------------      #------------------------------------------------------------------------
164      def __register( self, type, cast, keyName, defaultValue):      def __register( self, type, cast, keyName, defaultValue, docString="No doc string."):
165      #------------------------------------------------------------------------      #------------------------------------------------------------------------
166          """          """
167          Register a datum with this keyName and default value.          Register a datum with this keyName and default value.
# Line 149  Line 175 
175              raise Exception, "Duplicated key"              raise Exception, "Duplicated key"
176          else:          else:
177              # record value and 0/1 flag for "was overridden"              # record value and 0/1 flag for "was overridden"
178              self.__dict[keyName] = [type, cast, apply(cast, [defaultValue]), 0]              self.__dict[keyName] = [type, cast, apply(cast, [defaultValue]), 0, docString]
179    
180          return          return
181    
# Line 168  Line 194 
194              raise Exception, "Wrong type"              raise Exception, "Wrong type"
195    
196      #------------------------------------------------------------------------      #------------------------------------------------------------------------
197        def __stringList( self, arg):
198        #------------------------------------------------------------------------
199            """
200            Gets value of specified name and type.
201            """
202    
203            l = []
204    
205            #drop [ and ] and whitespace
206            m=re.search(r'\s*\[\s*(.*)\s*\]\s*', arg)
207            if (not m):
208                raise TypeError
209    
210            listguts =m.group(1)
211    
212            if ""==listguts:
213                return l
214    
215            # ignore problem that strings could have , in them
216    
217            rawElems = listguts.split(",")
218    
219            # strings still have " or ' in them.
220    
221            for e in rawElems:
222                m=re.search(r'\w*\"(.*)\"\w*', e)
223                if m:
224                    l.append( m.group(1))
225                else:
226                    m=re.search(r"\w*\'(.*)\'\w*", e)
227                    if m:
228                        l.append(m.group(1))
229                    else:
230                        raise TypeError, arg
231    
232    
233            return l
234    
235    
236        #------------------------------------------------------------------------
237      def dump( self ):      def dump( self ):
238      #------------------------------------------------------------------------      #------------------------------------------------------------------------
239          """          """

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3