;ò OÆEc@s3dklZdkZeid Zeddfjoedƒ‚ndkZdkZeZ y dk Z Wne j onXdk l Z dk lZy#dklZlZlZlZWnEe j o9dZdZd Zeid jo eZqeZnXhed ef<ed d f<edd f<ed d fe<d?e<d@e<dAed*e7fd\„ƒYZ?eed]„Z@dS(^(s generatorsNisPython v.2.2 or later needed(s StringTypes(swarn(sBOM_UTF8s BOM_UTF16s BOM_UTF16_BEs BOM_UTF16_LEssÿþsþÿslittlesutf_8sutf16_besutf_16sutf16_lesu16sutf16sutf-16s utf_16_besutf-16bes utf_16_lesutf-16lesu8sutfsutf8sutf-8(sVdtMissingValueccs/d}x"|D]}|d7}||fVq WdS(senumerate for Python 2.2.iÿÿÿÿiN(sisobjsitem(sobjsisitem((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys enumeratecs  iis4.4.0s5$Id: configobj.py 156 2006-01-31 14:57:08Z fuzzyman $srestructuredtext ens __version__sDEFAULT_INDENT_TYPEsDEFAULT_INTERPOLATIONsConfigObjErrors NestingErrors ParseErrorsDuplicateErrorsConfigspecErrors ConfigObjs SimpleValsInterpolationErrorsInterpolationLoopErrorsMissingInterpolationOptionsRepeatSectionErrors UnreprErrors UnknownTypes __docformat__sflatten_errorss configparsers i s interpolations raise_errorss list_valuess create_emptys file_errors configspecs stringifys indent_typesencodingsdefault_encodingsunreprswrite_empty_valuescCs\d|}ttjotdƒ‚nti|ƒ}|iƒdiƒdiƒdSdS(Nsa=scompiler module not availableii(ssscompilersNones ImportErrorsparsesps getChildren(sssp((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysgetObj s   cBstZRS(N(s__name__s __module__(((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys UnknownType§ssBuildercBsbtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z RS( NcCsMt|d|iitƒ}|tjot|iiƒ‚n||ƒSdS(Nsbuild_(sgetattrsselfsos __class__s__name__sNonesms UnknownType(sselfsosm((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysbuild¬s cCst|i|iƒƒSdS(N(smapsselfsbuildsos getChildren(sselfso((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys build_List²scCs |iSdS(N(sosvalue(sselfso((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys build_ConstµscCsMh}tt|i|iƒƒƒ}x|D]}|i ƒ||\$) | # Two $ signs (?P[_a-z][_a-z0-9]*) | # $name format {(?P[^}]*)} # ${name} format ) cCs“|idƒp |idƒ}|tj o&|i|ƒ\}}|||fSn|idƒtj ot|itfSnt|iƒtfSdS(Nsnamedsbracedsescaped( smatchsgroupskeysNonesselfs_fetchsvaluessections _delimiter(sselfsmatchsvalueskeyssection((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys _parse_match°s ( s__name__s __module__s__doc__s _delimitersrescompiles IGNORECASEsVERBOSEs_KEYCREs _parse_match(((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysTemplateInterpolation¥s stemplatesSectioncBs+tZdZeed„Zd„Zd„Zed„Zd„Z ed„Z d„Z d„Z d „Z d „Zed „Zd „Zd „Zd„Zd„Zd„ZeZd„Zd„ZeZd„Zd„Zd„Zeed„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#RS(s A dictionary-like object that represents a section in a config file. It does string interpolation if the 'interpolation' attribute of the 'main' object is set to True. Interpolation is tried first from this object, then from the 'DEFAULT' section of this object, next from the parent and its 'DEFAULT' section, and so on until the main object is reached. A Section will behave like an ordered dictionary - following the order of the ``scalars`` and ``sections`` attributes. You can use this to change the order of members. Iteration follows the order: scalars, then sections. cCsÎ|tjo h}nti|ƒ||_||_||_g|_g|_ ||_ h|_ h|_ h|_ g|_h|_h|_h|_h|_g|_x|D]}||||A version of ``get`` that doesn't bypass string interpolation.N(sselfskeysKeyErrorsdefault(sselfskeysdefault((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysget]s  cCs#x|D]}||||ti|ƒg|_g|_h|_h|_h|_dS(sÔ A version of clear that also affects scalars/sections Also clears comments and configspec. Leaves other attributes alone : depth/main/parent are not affected N(sdictsclearsselfsscalarsssectionsscommentssinline_commentss configspec(sself((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysclear„s     cCs8y ||SWn%tj o|||<||SnXdS(s:A version of setdefault that sets sequence if appropriate.N(sselfskeysKeyErrorsdefault(sselfskeysdefault((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys setdefault“s   cCs!t|i|i|iƒƒSdS(s N(szipsselfsscalarsssectionssvalues(sself((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysitems›scCs|i|iSdS(s N(sselfsscalarsssections(sself((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pyskeysŸscCs7gi}|i|iD]}|||ƒq~SdS(s N(sappends_[1]sselfsscalarsssectionsskey(sselfs_[1]skey((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysvalues£scCst|iƒƒSdS(s N(sitersselfsitems(sself((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys iteritems§scCst|i|iƒSdS(s N(sitersselfsscalarsssections(sself((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysiterkeys«scCst|iƒƒSdS(s N(sitersselfsvalues(sself((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys itervalues±sc CsZddigi}|i|iD]*}|dt|ƒt||ƒfƒq!~ƒSdS(Ns{%s}s, s%s: %s(sjoinsappends_[1]sselfsscalarsssectionsskeysrepr(sselfs_[1]skey((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys__repr__µscCs“h}x‚|D]z}||}t|tƒo|iƒ}nAt|tƒot|ƒ}n!t|tƒot|ƒ}n|||>> n = a.dict() >>> n == a 1 >>> n is a 0 N( snewdictsselfsentrys this_entrys isinstancesSectionsdictsliststuple(sselfsnewdicts this_entrysentry((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysdict½s  cCsqxj|iƒD]\\}}||jo!t||tƒo t|tƒo||i|ƒq |||>> a = '''[section1] ... option1 = True ... [[subsection]] ... more_options = False ... # end of file'''.splitlines() >>> b = '''# File is user.ini ... [section1] ... option1 = False ... # end of file'''.splitlines() >>> c1 = ConfigObj(b) >>> c2 = ConfigObj(a) >>> c2.merge(c1) >>> c2 {'section1': {'option1': 'False', 'subsection': {'more_options': 'False'}}} N(sindictsitemsskeysvalsselfs isinstancesdictsmerge(sselfsindictsvalskey((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysmergeØs  1cCsì||ijo |i}n+||ijo |i}ntd|‚|i|ƒ}||}t i ||ƒt i |||ƒ|i |ƒ|i||ƒ|i|}|i|}|i|=|i|=||i|<||i|>> config = '''[XXXXsection] ... XXXXkey = XXXXvalue'''.splitlines() >>> cfg = ConfigObj(config) >>> cfg {'XXXXsection': {'XXXXkey': 'XXXXvalue'}} >>> def transform(section, key): ... val = section[key] ... newkey = key.replace('XXXX', 'CLIENT1') ... section.rename(key, newkey) ... if isinstance(val, (tuple, list, dict)): ... pass ... else: ... val = val.replace('XXXX', 'CLIENT1') ... section[newkey] = val >>> cfg.walk(transform, call_on_sections=True) {'CLIENT1section': {'CLIENT1key': None}} >>> cfg {'CLIENT1section': {'CLIENT1key': 'CLIENT1value'}} s raise_errorsscall_on_sectionsN(soutsrangeslensselfsscalarssisentrysfunctionskeywargssvals Exceptions raise_errorssFalsessectionsscall_on_sectionsswalk( sselfsfunctions raise_errorsscall_on_sectionsskeywargssvalsisentrysout((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pyswalks<.      cCs3tdtƒ|td„}|i|dtƒdS(sK Decode all strings and values to unicode, using the specified encoding. Works with subsections and list values. Uses the ``walk`` method. Testing ``encode`` and ``decode``. >>> m = ConfigObj(a) >>> m.decode('ascii') >>> def testuni(val): ... for entry in val: ... if not isinstance(entry, unicode): ... print >> sys.stderr, type(entry) ... raise AssertionError, 'decode failed.' ... if isinstance(val[entry], dict): ... testuni(val[entry]) ... elif not isinstance(val[entry], unicode): ... raise AssertionError, 'decode failed.' >>> testuni(m) >>> m.encode('ascii') >>> a == m 1 s use of ``decode`` is deprecated.cCs§||}t|ttfƒo1g}xQ|D]}|i|i |ƒƒq-Wn*t|t ƒo |}n|i |ƒ}|i |ƒ}|i ||ƒ|||>> a = ConfigObj() >>> a['a'] = 'fish' >>> a.as_bool('a') Traceback (most recent call last): ValueError: Value "fish" is neither True nor False >>> a['b'] = 'True' >>> a.as_bool('b') 1 >>> a['b'] = 'off' >>> a.as_bool('b') 0 s$Value "%s" is neither True nor FalseN( sselfskeysvalsTruesFalses isinstances StringTypessKeyErrorsmains_boolsslowers ValueError(sselfskeysval((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysas_bool­s    cCst||ƒSdS(sK A convenience method which coerces the specified value to an integer. If the value is an invalid literal for ``int``, a ``ValueError`` will be raised. >>> a = ConfigObj() >>> a['a'] = 'fish' >>> a.as_int('a') Traceback (most recent call last): ValueError: invalid literal for int(): fish >>> a['b'] = '1' >>> a.as_int('b') 1 >>> a['b'] = '3.2' >>> a.as_int('b') Traceback (most recent call last): ValueError: invalid literal for int(): 3.2 N(sintsselfskey(sselfskey((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysas_int×scCst||ƒSdS(s A convenience method which coerces the specified value to a float. If the value is an invalid literal for ``float``, a ``ValueError`` will be raised. >>> a = ConfigObj() >>> a['a'] = 'fish' >>> a.as_float('a') Traceback (most recent call last): ValueError: invalid literal for float(): fish >>> a['b'] = '1' >>> a.as_float('b') 1.0 >>> a['b'] = '3.2' >>> a.as_float('b') 3.2000000000000002 N(sfloatsselfskey(sselfskey((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysas_floatís($s__name__s __module__s__doc__sNones__init__s _interpolates __getitem__sFalses __setitem__s __delitem__sgetsupdatespopspopitemsclears setdefaultsitemsskeyssvaluess iteritemssiterkeyss__iter__s itervaluess__repr__s__str__sdictsmergesrenamesTrueswalksdecodesencodesistruesas_boolsas_intsas_float(((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysSectionÂs> (   :               T +   * cBstZdZeideiƒZeideiƒZeideiƒZeideiƒZ eideiƒZ eidƒZ eidƒZ eidƒZ eid ƒZhd e e f<d e ef|iƒdjod|}t@|ƒ} n|id} |i| _B|| _C| ‚n|`| dtjo t|_1n|i0| dƒdS(s{ Parse or create a config file object. ``ConfigObj(infile=None, options=None, **kwargs)`` isUnrecognised option "%s".s raise_errorss interpolations list_valuess create_emptys file_errors stringifys indent_typesencodingsdefault_encodingswrite_empty_valuessunreprsConfig file not found: "%s".swss configspecNsreads>infile must be a filename, file like object, or list of lines.iÿÿÿÿs s s s at line %s.is2Parsing failed with several errors. First error %s(DsinfilesNonesoptionssdictsupdateskwargssSections__init__sselfsOPTION_DEFAULTSscopysdefaultsskeyssentrys TypeErrorsfilenames_errorss raise_errorss interpolations list_valuess create_emptys file_errors stringifys indent_typesencodingsdefault_encodingsFalsesBOMsnewlinesswrite_empty_valuessunreprsinitial_comments final_comments _terminateds isinstances StringTypessosspathsisfilesopensreadsIOErrorshswritesclosesliststuples ConfigObjs_handle_configspecs configspecshasattrs _handle_bomslinesendsendswithsTruesappends_[1]srstrips_parses line_numbersinfoslensmsgsConfigObjErrorserrorserrorssconfig( sselfsinfilesoptionsskwargssendsmsgslinesinfoshs_[1]sdefaultsserrorsentry((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys__init__is°                                  "  % 4        c CsZddigi}|i|iD]*}|dt|ƒt||ƒfƒq!~ƒSdS(NsConfigObj({%s})s, s%s: %s(sjoinsappends_[1]sselfsscalarsssectionsskeysrepr(sselfs_[1]skey((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys__repr__íscCs|itj o|iiƒtjo|i||iƒSnt|tt fƒo|d}n|}|itj ot|iiƒ}|djomxSt i ƒD]E\}\}}| oq¤n|i|ƒo|i||ƒSq¤q¤W|i||iƒSnt|}|i|ƒ o|i||iƒSn|t|ƒ}t|tt fƒo||ds     cCsE|d|djo|dddfjo|dd!}n|SdS(s%Return an unquoted version of a valueiiÿÿÿÿs"s'iN(svalue(sselfsvalue((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys_unquotePs,c Cs¤|o|io |djodSn|ot|ttfƒoƒ| odSn3t|ƒdjo|i|ddt ƒdSndi gi } |D]}| |i|dt ƒƒq™~ ƒSnt|tƒ o+|iot|ƒ}qtd|‚nd}d } d }d } d }d }| odSn|i o d|jp,|o$d|jo d|jp d|j o¸|i o |}q˜d|jotd|‚q˜|d| jo|d| jo d|jo |}q˜d|jo d|jotd|‚q˜d|jo |}q˜| }nd|idƒdjo|idƒdjotd|‚n|idƒdjo |}n|}||SdS(s´ Return a safely quoted version of a value. Raise a ConfigObjError if the value cannot be safely quoted. If multiline is ``True`` (default) then use triple quotes if necessary. Don't quote values that don't need it. Recursively quote members of a list and return a comma joined list. Multiline is ``False`` for lists. Obey list syntax for empty and single member lists. If ``list_values=False`` then the value is only quoted if it contains a `` `` (is multiline). If ``write_empty_values`` is set, and the value is an empty string, it won't be quoted. ss,iis multilines, sValue "%s" is not a string.s'%s's"%s"s%ss '"s"""%s"""s'''%s'''s""s s's"s#Value "%s" cannot be safely quoted.iÿÿÿÿs"""s'''N(s multilinesselfswrite_empty_valuessvalues isinstancesliststupleslens_quotesFalsesjoinsappends_[1]svals StringTypess stringifysstrs TypeErrorssquotsdquotsnoquots wspace_plusstsquotstdquots list_valuessquotsConfigObjErrorsfind( sselfsvalues multilinestsquotsvalsnoquotssquotsquotstdquots wspace_pluss_[1]sdquot((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys_quoteVsNA G   /    , c Cs‘|i o7|ii|ƒ}|tjo t‚n|iƒSn|i i|ƒ}|tjo t‚n|iƒ\}}} }|djo |tjo t‚n| tj og|fSn|tj o9|o| o t}q|pd}|i |ƒ}n|djo||fSn|ii|ƒ}gi}|D]}||i |ƒƒqC~}|tj o||g7}n||fSdS(s€ Given a value string, unquote, remove comment, handle lists. (including empty and single member lists) ss""N(sselfs list_valuess _nolistvaluesmatchsvaluesmatsNones SyntaxErrorsgroupss _valueexpssingles empty_listscomments_unquotes _listvalueexpsfindallsthe_listsappends_[1]sval( sselfsvaluescommentsmatsvals list_valuess_[1]ssinglesthe_lists empty_list((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys _handle_value¢s4           0 c CsD|d }|d}|i|d} |i|d} | i|ƒ}|t j o't |i ƒƒ} | i |ƒ| Sn!|i|ƒdjo t‚nx[||joG|d7}|d7}||} | i|ƒdjo|| 7}qœPqœWt‚| i| ƒ}|t jo t‚n|i ƒ\}}||||fSdS(s9Extract the value, where we are in a multiline situation.iiiiÿÿÿÿs N(svaluesquotsnewvaluesselfs _triple_quotes single_lines multi_linesmatchsmatsNoneslistsgroupssretvalsappends cur_indexsfinds SyntaxErrorsmaxlinesinfileslinescomment( sselfsvaluesinfiles cur_indexsmaxlinescommentsmatsquotsnewvalueslines multi_lines single_linesretval((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys _multilineÏs4           cCs—t|tƒ ory"t|dtdtdtƒ}Wqƒtj o}td|ƒ‚qƒtj o}td|ƒ‚qƒXn|i ||ƒdS(sParse the configspec.s raise_errorss file_errors list_valuessParsing configspec failed: %ssReading configspec failed: %sN( s isinstances configspecs ConfigObjsTruesFalsesConfigObjErrorsesConfigspecErrorsIOErrorsselfs_set_configspec_value(sselfs configspecse((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys_handle_configspecñscCs‰d|ijo5|d|id>> filename = a.filename >>> a.filename = 'test.ini' >>> a.write() >>> a.filename = filename >>> a == ConfigObj('test.ini', raise_errors=True) 1 s#s# ssectionsutf_8siswbN(:sselfs indent_typesNonesDEFAULT_INDENT_TYPEsouts_a_to_uscsscspssections interpolationsint_valsFalsesinitial_commentslines_decode_elementsstrips stripped_lines startswithsappendsdepths indent_stringsscalarsssectionssentrysdefaultsscommentss comment_lineslstrips this_entrys_handle_commentsinline_commentsscomments isinstancesdicts _write_markersextendswrites _write_lines final_commentsfilenamesoutfilesencodings_[1]slsencodesBOMsBOM_LISTsgetslowersBOM_UTF8snewlinessosslinesepsjoinsoutputsopenshsclose(sselfsoutfilessectionscomments this_entrys comment_linescssoutsint_vals indent_stringscspsoutputslineshsls stripped_lines_[1]sentry((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pyswritecsŠ               79% 9  c Cs¿|tjoO|itjo td‚n|o!ttjotdƒ‚qRn|}n|i}|o t |dƒoL|i |_ |i |_|i|_|i|_|i|_|i|_nd|ijo6|d} x)|iD]}|i||| ƒqìWnh}t} t} gi}|i!D]!}||jo||ƒq1q1~}|gi}|D]!}||jo||ƒqlql~7}x.|D]&}|djoqžn||i$j p ||i%jodt} t}|o||i$j o<|i(i)|gƒ|i*|<|i+i)|dƒ|i,|>> import validate >>> vtor = validate.Validator() >>> my_ini = ''' ... option1 = True ... [section1] ... option1 = True ... [section2] ... another_option = Probably ... [section3] ... another_option = True ... [[section3b]] ... value = 3 ... value2 = a ... value3 = 11 ... ''' >>> my_cfg = ''' ... option1 = boolean() ... option2 = boolean() ... option3 = boolean(default=Bad_value) ... [section1] ... option1 = boolean() ... option2 = boolean() ... option3 = boolean(default=Bad_value) ... [section2] ... another_option = boolean() ... [section3] ... another_option = boolean() ... [[section3b]] ... value = integer ... value2 = integer ... value3 = integer(0, 10) ... [[[section3b-sub]]] ... value = string ... [section4] ... another_option = boolean() ... ''' >>> cs = my_cfg.split('\n') >>> ini = my_ini.split('\n') >>> cfg = ConfigObj(ini, configspec=cs) >>> res = cfg.validate(vtor, preserve_errors=True) >>> errors = [] >>> for entry in flatten_errors(cfg, res): ... section_list, key, error = entry ... section_list.insert(0, '[root]') ... if key is not None: ... section_list.append(key) ... else: ... section_list.append('[missing]') ... section_string = ', '.join(section_list) ... errors.append((section_string, ' = ', error)) >>> errors.sort() >>> for entry in errors: ... print entry[0], entry[1], (entry[2] or 0) [root], option2 = 0 [root], option3 = the value "Bad_value" is of the wrong type. [root], section1, option2 = 0 [root], section1, option3 = the value "Bad_value" is of the wrong type. [root], section2, another_option = the value "Probably" is of the wrong type. [root], section3, section3b, section3b-sub, [missing] = 0 [root], section3, section3b, value2 = the value "a" is of the wrong type. [root], section3, section3b, value3 = the value "11" is too big. [root], section4, [missing] = 0 N(slevelssNonesresultssressTruesFalsesappendspopsitemsskeysvals isinstancescfgsgetsdictsflatten_errors(scfgsresslevelssresultssvalskey((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pysflatten_errorsms.^       (As __future__s generatorsssyss version_infosINTP_VERs RuntimeErrorsossresNonescompilers ImportErrorstypess StringTypesswarningsswarnscodecssBOM_UTF8s BOM_UTF16s BOM_UTF16_BEs BOM_UTF16_LEs byteordersBOMSsBOM_LISTsBOM_SETsvalidatesVdtMissingValues enumerates NameErrorsTruesFalses __version__s __revision__s __docformat__s__all__sDEFAULT_INTERPOLATIONsDEFAULT_INDENT_TYPEsMAX_INTERPOL_DEPTHsOPTION_DEFAULTSsgetObjs Exceptions UnknownTypesBuildersunreprs _splitliness SyntaxErrorsConfigObjErrors NestingErrors ParseErrorsDuplicateErrorsConfigspecErrorsInterpolationErrorsInterpolationLoopErrorsRepeatSectionErrorsMissingInterpolationOptions UnreprErrorsobjectsInterpolationEnginesConfigParserInterpolationsTemplateInterpolationsinterpolation_enginessdictsSections ConfigObjs SimpleValsflatten_errors(2sDEFAULT_INTERPOLATIONsInterpolationErrorsinterpolation_enginessTemplateInterpolations UnknownTypesRepeatSectionErrorsDuplicateErrors BOM_UTF16_LEs __docformat__sBOMSs enumeratesBOM_SETsflatten_errorssConfigspecErrors __revision__s__all__sgetObjsConfigObjErrorsresVdtMissingValues generatorss StringTypess SimpleVals __version__sTrues ConfigObjsINTP_VERsBuildersBOM_LISTsInterpolationLoopErrors ParseErrorswarnsunreprsMissingInterpolationOptions UnreprErrors _splitliness BOM_UTF16scompilersBOM_UTF8ssyssMAX_INTERPOL_DEPTHsOPTION_DEFAULTSsFalsesInterpolationEngines NestingErrorsDEFAULT_INDENT_TYPEs BOM_UTF16_BEsConfigParserInterpolationsossSection((sG/mnt/gmirror/ports/devel/py-configobj/work/configobj-4.4.0/configobj.pys?s”      #  B 3 <r 7   s ÿÿCÿÿÿÿXz