/usr/lib/python2.7/dist-packages/biggles/confit.py is in python-pybiggles 1.6.6-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | #
# $Id: confit.py,v 1.2 2001/04/26 04:12:15 mrnolta Exp $
#
# Copyright (C) 2001 Mike Nolta <mrnolta@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
import ConfigParser
from string import atoi, split, strip
def _atox( x ):
x = strip( x )
if x == "None":
return None
try: return atoi( x, 0 )
except ValueError:
try: return float(x)
except ValueError:
pass
if x[0] == "{" and x[-1] == "}":
style = {}
pairs = map( strip, split(x[1:-1], ",") )
for pair in pairs:
if pair == "":
continue
key,val = split( pair, ":" )
style[ strip(key) ] = _atox( strip(val) )
return style
return x
class Confit:
default_sect = "default"
def __init__( self ):
self._sections = {}
self._deprecated = {}
def _defaults( self ):
return self._sections[ self.default_sect ]
def _get( self, section, option ):
return self._sections[section][option]
def _set( self, section, option, value ):
if not self._sections.has_key( section ):
self._sections[section] = {}
self._sections[section][option] = value
def deprecated( self, old, new ):
self._deprecated[old] = new
def get( self, section, option, notfound=None ):
try: rval = self._get( section, option )
except KeyError:
try: rval = self._defaults()[option]
except KeyError:
rval = notfound
return rval
def get_section( self, section ):
if not self._sections.has_key( section ):
return None
return self._sections[section]
def set( self, section, option, value ):
if self._deprecated.has_key( (section,option) ):
sect,opt = self._deprecated[ (section,option) ]
self._set( sect, opt, value )
else:
self._set( section, option, value )
def read( self, filename ):
cp = ConfigParser.ConfigParser()
cp.read( filename )
for section in cp.sections():
for option in cp.options( section ):
if option == "__name__":
continue
a = cp.get( section, option, raw=1 )
self.set( section, option, _atox(a) )
|