<s> import logging <EOL> import os <EOL> import re <EOL> import socket <EOL> import warnings <EOL> from conf_d import Configuration <EOL> from beaver . utils import eglob <EOL> from beaver . glob_safe_config_parser import GlobSafeConfigParser <EOL> class BeaverConfig ( ) : <EOL> def __init__ ( self , args , logger = None ) : <EOL> self . _logger = logger or logging . getLogger ( __name__ ) <EOL> self . _logger . debug ( '<STR_LIT>' % args . config ) <EOL> self . _section_defaults = { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT:\n>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:1>' , <EOL> '<STR_LIT>' : '<STR_LIT:end>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } <EOL> self . _main_defaults = { <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , True ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , <NUM_LIT> ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , <NUM_LIT:10> ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , <NUM_LIT:10> ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , False ) , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:localhost>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT:localhost>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT:/>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT:0>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT:0>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT:0>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : '<STR_LIT:1>' , <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT:list>' ) , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:127.0.0.1>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT:127.0.0.1>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : '<STR_LIT:localhost>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:user>' , <EOL> '<STR_LIT>' : None , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:3>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:1>' , <EOL> '<STR_LIT>' : '<STR_LIT:100>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:5>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:1>' , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' if os . environ . get ( '<STR_LIT>' , False ) else '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:path>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : os . environ . get ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT:0>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT:0> <EOL> } <EOL> self . _configfile = args . config <EOL> self . _config_parser = GlobSafeConfigParser <EOL> self . _globbed = [ ] <EOL> self . _parse ( args ) <EOL> for key in self . _beaver_config : <EOL> self . _logger . debug ( '<STR_LIT>' . format ( key , self . _beaver_config . get ( key ) ) ) <EOL> self . _update_files ( ) <EOL> self . _check_for_deprecated_usage ( ) <EOL> def beaver_config ( self ) : <EOL> return self . _beaver_config <EOL> def get ( self , key , default = None ) : <EOL> return self . _beaver_config . get ( key , default ) <EOL> def set ( self , key , value ) : <EOL> self . _beaver_config [ key ] = value <EOL> def get_field ( self , field , filename ) : <EOL> return self . _files . get ( os . path . realpath ( filename ) , self . _section_defaults ) [ field ] <EOL> def addglob ( self , globname , globbed ) : <EOL> if globname not in self . _globbed : <EOL> self . _logger . debug ( '<STR_LIT>' . format ( globname ) ) <EOL> config = self . _file_config [ globname ] <EOL> self . _file_config [ globname ] = config <EOL> for key in config : <EOL> self . _logger . debug ( '<STR_LIT>' . format ( key , config [ key ] ) ) <EOL> else : <EOL> config = self . _file_config . get ( globname ) <EOL> for filename in globbed : <EOL> self . _files [ filename ] = config <EOL> self . _globbed . append ( globname ) <EOL> def getfilepaths ( self ) : <EOL> return self . _files . keys ( ) <EOL> def getglobs ( self ) : <EOL> globs = [ ] <EOL> [ globs . extend ( [ name , self . _file_config [ name ] . get ( '<STR_LIT>' ) ] ) for name in self . _file_config ] <EOL> return dict ( zip ( globs [ <NUM_LIT:0> : : <NUM_LIT:2> ] , globs [ <NUM_LIT:1> : : <NUM_LIT:2> ] ) ) <EOL> def use_ssh_tunnel ( self ) : <EOL> required = [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> ] <EOL> has = len ( filter ( lambda x : self . get ( x ) is not None , required ) ) <EOL> if has > <NUM_LIT:0> and has != len ( required ) : <EOL> self . _logger . warning ( '<STR_LIT>' . format ( len ( required ) - has , len ( required ) ) ) <EOL> return has == len ( required ) <EOL> def _check_for_deprecated_usage ( self ) : <EOL> env_vars = [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> ] <EOL> deprecated_env_var_usage = [ ] <EOL> for e in env_vars : <EOL> v = os . environ . get ( e , None ) <EOL> if v is not None : <EOL> deprecated_env_var_usage . append ( e ) <EOL> if len ( deprecated_env_var_usage ) > <NUM_LIT:0> : <EOL> warnings . simplefilter ( '<STR_LIT:default>' ) <EOL> warnings . warn ( '<STR_LIT>' . format ( '<STR_LIT:U+002CU+0020>' . join ( deprecated_env_var_usage ) ) , DeprecationWarning ) <EOL> update_file_mapping_time = self . get ( '<STR_LIT>' ) <EOL> if update_file_mapping_time : <EOL> self . set ( '<STR_LIT>' , update_file_mapping_time ) <EOL> warnings . simplefilter ( '<STR_LIT:default>' ) <EOL> warnings . warn ( '<STR_LIT>' , DeprecationWarning ) <EOL> def _parse ( self , args ) : <EOL> def _main_parser ( config ) : <EOL> transpose = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:path>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> namspace_dict = vars ( args ) <EOL> for key in transpose : <EOL> if key not in namspace_dict or namspace_dict [ key ] is None or namspace_dict [ key ] == '<STR_LIT>' : <EOL> continue <EOL> config [ key ] = namspace_dict [ key ] <EOL> if args . mode : <EOL> config [ '<STR_LIT>' ] = args . mode <EOL> for key in config : <EOL> if config [ key ] == '<STR_LIT>' : <EOL> config [ key ] = None <EOL> require_bool = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> for key in require_bool : <EOL> config [ key ] = bool ( int ( config [ key ] ) ) <EOL> require_int = [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] <EOL> for key in require_int : <EOL> if config [ key ] is not None : <EOL> config [ key ] = int ( config [ key ] ) <EOL> require_float = [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> ] <EOL> for key in require_float : <EOL> if config [ key ] is not None : <EOL> config [ key ] = float ( config [ key ] ) <EOL> if config . get ( '<STR_LIT>' ) == '<STR_LIT:null>' : <EOL> config [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> if config [ '<STR_LIT>' ] is not None and type ( config [ '<STR_LIT>' ] ) == str : <EOL> config [ '<STR_LIT>' ] = config [ '<STR_LIT>' ] . split ( '<STR_LIT:U+002C>' ) <EOL> if config [ '<STR_LIT:path>' ] is not None : <EOL> config [ '<STR_LIT:path>' ] = os . path . realpath ( config [ '<STR_LIT:path>' ] ) <EOL> if not os . path . isdir ( config [ '<STR_LIT:path>' ] ) : <EOL> raise LookupError ( '<STR_LIT>' . format ( config [ '<STR_LIT:path>' ] ) ) <EOL> if config . get ( '<STR_LIT>' ) is None : <EOL> if config . get ( '<STR_LIT>' ) is True : <EOL> config [ '<STR_LIT>' ] = socket . getfqdn ( ) <EOL> else : <EOL> config [ '<STR_LIT>' ] = socket . gethostname ( ) <EOL> if config . get ( '<STR_LIT>' ) : <EOL> config [ '<STR_LIT>' ] = os . path . realpath ( config . get ( '<STR_LIT>' ) ) <EOL> if config [ '<STR_LIT>' ] and type ( config [ '<STR_LIT>' ] ) == str : <EOL> config [ '<STR_LIT>' ] = [ x . strip ( ) for x in config . get ( '<STR_LIT>' ) . split ( '<STR_LIT:U+002C>' ) ] <EOL> if config . get ( '<STR_LIT>' ) is not None : <EOL> csv = config . get ( '<STR_LIT>' ) <EOL> config [ '<STR_LIT>' ] = [ ] <EOL> if type ( csv ) == str : <EOL> for opt in csv . split ( '<STR_LIT:U+002C>' ) : <EOL> config [ '<STR_LIT>' ] . append ( '<STR_LIT>' % opt . strip ( ) ) <EOL> else : <EOL> config [ '<STR_LIT>' ] = [ ] <EOL> config [ '<STR_LIT>' ] = { } <EOL> return config <EOL> def _section_parser ( config , raise_exceptions = True ) : <EOL> '''<STR_LIT>''' <EOL> fields = config . get ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> if type ( fields ) != dict : <EOL> try : <EOL> if type ( fields ) == str : <EOL> fields = filter ( None , fields . split ( '<STR_LIT:U+002C>' ) ) <EOL> if len ( fields ) == <NUM_LIT:0> : <EOL> config [ '<STR_LIT>' ] = { } <EOL> elif ( len ( fields ) % <NUM_LIT:2> ) == <NUM_LIT:1> : <EOL> if raise_exceptions : <EOL> raise Exception ( '<STR_LIT>' ) <EOL> else : <EOL> fieldkeys = fields [ <NUM_LIT:0> : : <NUM_LIT:2> ] <EOL> fieldvalues = [ [ x ] for x in fields [ <NUM_LIT:1> : : <NUM_LIT:2> ] ] <EOL> config [ '<STR_LIT>' ] = dict ( zip ( fieldkeys , fieldvalues ) ) <EOL> except TypeError : <EOL> config [ '<STR_LIT>' ] = { } <EOL> if '<STR_LIT>' in config : <EOL> del config [ '<STR_LIT>' ] <EOL> envFields = config . get ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> if type ( envFields ) != dict : <EOL> try : <EOL> if type ( envFields ) == str : <EOL> envFields = envFields . replace ( "<STR_LIT:U+0020>" , "<STR_LIT>" ) <EOL> envFields = filter ( None , envFields . split ( '<STR_LIT:U+002C>' ) ) <EOL> if len ( envFields ) == <NUM_LIT:0> : <EOL> config [ '<STR_LIT>' ] = { } <EOL> elif ( len ( envFields ) % <NUM_LIT:2> ) == <NUM_LIT:1> : <EOL> if raise_exceptions : <EOL> raise Exception ( '<STR_LIT>' ) <EOL> else : <EOL> envFieldkeys = envFields [ <NUM_LIT:0> : : <NUM_LIT:2> ] <EOL> envFieldvalues = [ ] <EOL> for x in envFields [ <NUM_LIT:1> : : <NUM_LIT:2> ] : <EOL> envFieldvalues . append ( os . environ . get ( x ) ) <EOL> config [ '<STR_LIT>' ] . update ( dict ( zip ( envFieldkeys , envFieldvalues ) ) ) <EOL> except TypeError : <EOL> config [ '<STR_LIT>' ] = { } <EOL> if '<STR_LIT>' in config : <EOL> del config [ '<STR_LIT>' ] <EOL> try : <EOL> tags = config . get ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> if type ( tags ) == str : <EOL> tags = filter ( None , tags . split ( '<STR_LIT:U+002C>' ) ) <EOL> if len ( tags ) == <NUM_LIT:0> : <EOL> tags = [ ] <EOL> config [ '<STR_LIT>' ] = tags <EOL> except TypeError : <EOL> config [ '<STR_LIT>' ] = [ ] <EOL> if config . get ( '<STR_LIT>' ) == '<STR_LIT:null>' : <EOL> config [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> file_type = config . get ( '<STR_LIT:type>' , None ) <EOL> if not file_type : <EOL> config [ '<STR_LIT:type>' ] = '<STR_LIT:file>' <EOL> require_bool = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> for k in require_bool : <EOL> config [ k ] = bool ( int ( config [ k ] ) ) <EOL> config [ '<STR_LIT>' ] = config [ '<STR_LIT>' ] . decode ( '<STR_LIT>' ) <EOL> if config [ '<STR_LIT>' ] : <EOL> config [ '<STR_LIT>' ] = re . compile ( config [ '<STR_LIT>' ] ) <EOL> if config [ '<STR_LIT>' ] : <EOL> config [ '<STR_LIT>' ] = re . compile ( config [ '<STR_LIT>' ] ) <EOL> require_int = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> for k in require_int : <EOL> config [ k ] = int ( config [ k ] ) <EOL> return config <EOL> conf = Configuration ( <EOL> name = '<STR_LIT>' , <EOL> path = self . _configfile , <EOL> main_defaults = self . _main_defaults , <EOL> section_defaults = self . _section_defaults , <EOL> main_parser = _main_parser , <EOL> section_parser = _section_parser , <EOL> path_from_main = '<STR_LIT>' , <EOL> config_parser = self . _config_parser <EOL> ) <EOL> config = conf . raw ( ) <EOL> self . _beaver_config = config [ '<STR_LIT>' ] <EOL> self . _file_config = config [ '<STR_LIT>' ] <EOL> self . _main_parser = _main_parser ( self . _main_defaults ) <EOL> self . _section_defaults = _section_parser ( self . _section_defaults , raise_exceptions = False ) <EOL> self . _files = { } <EOL> for section in config [ '<STR_LIT>' ] : <EOL> globs = eglob ( section , config [ '<STR_LIT>' ] [ section ] . get ( '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> if not globs : <EOL> self . _logger . debug ( '<STR_LIT>' % section ) <EOL> continue <EOL> for globbed_file in globs : <EOL> self . _files [ os . path . realpath ( globbed_file ) ] = config [ '<STR_LIT>' ] [ section ] <EOL> def _update_files ( self ) : <EOL> globs = self . get ( '<STR_LIT>' , default = [ ] ) <EOL> files = self . get ( '<STR_LIT>' , default = [ ] ) <EOL> if globs : <EOL> globs = dict ( zip ( globs , [ None ] * len ( globs ) ) ) <EOL> else : <EOL> globs = { } <EOL> try : <EOL> files . extend ( self . getfilepaths ( ) ) <EOL> globs . update ( self . getglobs ( ) ) <EOL> except AttributeError : <EOL> files = self . getfilepaths ( ) <EOL> globs = self . getglobs ( ) <EOL> self . set ( '<STR_LIT>' , globs ) <EOL> self . set ( '<STR_LIT>' , files ) <EOL> for f in files : <EOL> if f not in self . _file_config : <EOL> self . _file_config [ f ] = self . _section_defaults </s>
