home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_1714 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.7 KB  |  82 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import exceptions
  5. import os
  6. from pprint import pprint
  7. from IPython import ultraTB
  8. from IPython.ipstruct import Struct
  9. from IPython.genutils import *
  10.  
  11. class ConfigLoaderError(exceptions.Exception):
  12.     
  13.     def __init__(self, args = None):
  14.         self.args = args
  15.  
  16.  
  17.  
  18. class ConfigLoader:
  19.     
  20.     def __init__(self, conflict = None, field_sep = None, reclimit = 15):
  21.         self.conflict = conflict
  22.         self.field_sep = field_sep
  23.         self.reset(reclimit)
  24.  
  25.     
  26.     def reset(self, reclimit = 15):
  27.         self.reclimit = reclimit
  28.         self.recdepth = 0
  29.         self.included = []
  30.  
  31.     
  32.     def load(self, fname, convert = None, recurse_key = '', incpath = '.', **kw):
  33.         if self.recdepth > self.reclimit:
  34.             raise ConfigLoaderError, 'maximum recursive inclusion of rcfiles ' + 'exceeded: ' + `self.recdepth` + '.\nMaybe you have a circular chain of inclusions?'
  35.         self.recdepth > self.reclimit
  36.         self.recdepth += 1
  37.         fname = filefind(fname, incpath)
  38.         data = Struct()
  39.         if fname in self.included:
  40.             return data
  41.         Xinfo = ultraTB.AutoFormattedTB(color_scheme = 'NoColor')
  42.         data.merge(read_dict(fname, convert, fs = self.field_sep, strip = 1, warn = 0, no_empty = 0, **kw))
  43.         self.included.append(fname)
  44.         if recurse_key in data:
  45.             for incfilename in data[recurse_key]:
  46.                 found = 0
  47.                 
  48.                 try:
  49.                     incfile = filefind(incfilename, incpath)
  50.                 except IOError:
  51.                     None if convert == None and recurse_key else self
  52.                     None if convert == None and recurse_key else self
  53.                     if os.name in ('nt', 'dos'):
  54.                         
  55.                         try:
  56.                             incfilename += '.ini'
  57.                             incfile = filefind(incfilename, incpath)
  58.                         except IOError:
  59.                             found = 0
  60.  
  61.                         found = 1
  62.                     else:
  63.                         found = 0
  64.                 except:
  65.                     os.name in ('nt', 'dos')
  66.  
  67.                 found = 1
  68.                 if found:
  69.                     
  70.                     try:
  71.                         data.merge(self.load(incfile, convert, recurse_key, incpath, **kw), self.conflict)
  72.                     Xinfo()
  73.                     warn('Problem loading included file: ' + `incfilename` + '. Ignoring it...')
  74.  
  75.                     continue
  76.                 warn('File `%s` not found. Included by %s' % (incfilename, fname))
  77.             
  78.         
  79.         return data
  80.  
  81.  
  82.