ConfigParser: what read('non-existent-filename') returns in 2.3.x?

D

Danil Dotsenko

Wrote a little "user-friedly" wrapper for ConfigParser for a KDE's
SuperKaramba widget.
(http://www.kde-look.org/content/show.php?content=32185)

I was using 2.4.x python docs as reference and
ConfigParser.read('non-existent-filename') returns [] in 2.4.x

One user with 2.3.x reported an error stemming from my use of
len(cfgObject.read('potentially-non-existent-filename'))

File "/home/web/Downloads/afoto-1.5b6.skz/localConf.py", line 53, in load
TypeError: len() of unsized object

Can anyone tell me what cfgObject.read('potentially-non-existent-filename')
returns in 2.3.x?

My output:([], 0, <type 'list'>)

Thx in advance.

Daniel.
 
C

Chris Lambacher

Wrote a little "user-friedly" wrapper for ConfigParser for a KDE's
SuperKaramba widget.
(http://www.kde-look.org/content/show.php?content=32185)

I was using 2.4.x python docs as reference and
ConfigParser.read('non-existent-filename') returns [] in 2.4.x
http://docs.python.org/lib/RawConfigParser-objects.html
That agrees with the docs since read returns a list of successfully parsed
filenames. Note the docs also say this was added in 2.4.
One user with 2.3.x reported an error stemming from my use of
len(cfgObject.read('potentially-non-existent-filename'))

File "/home/web/Downloads/afoto-1.5b6.skz/localConf.py", line 53, in load
TypeError: len() of unsized object

Can anyone tell me what cfgObject.read('potentially-non-existent-filename')
returns in 2.3.x?
I suspect it never returns anything which means you are getting None instead
of a list, which would give you the exception above.
My output:([], 0, <type 'list'>)

Thx in advance.

Daniel.
 
D

Danil Dotsenko

Chris said:
Wrote a little "user-friedly" wrapper for ConfigParser for a KDE's
SuperKaramba widget.
(http://www.kde-look.org/content/show.php?content=32185)

I was using 2.4.x python docs as reference and
ConfigParser.read('non-existent-filename') returns [] in 2.4.x
http://docs.python.org/lib/RawConfigParser-objects.html
That agrees with the docs since read returns a list of successfully parsed
filenames. Note the docs also say this was added in 2.4.

I just looked at the
http://www.python.org/doc/2.3.5/lib/RawConfigParser-objects.html
(note the version number) and see the following:
"If none of the named files exist, the ConfigParser instance will contain an
empty dataset." Which to me means []. To the least of it, the statement
should be clarified, but I would still kindly prefer to have someone
respond / confirm the procedure bellow gives different results in 2.3.x.
import ConfigParser
cfg = ConfigParser.ConfigParser()
a = cfg.read('adsfasfdasfd')
a, len(a), type(a)
([], 0, <type 'list'>)

Thx in advance.
 
D

Danil Dotsenko

Danil said:
Chris said:
Wrote a little "user-friedly" wrapper for ConfigParser for a KDE's
SuperKaramba widget.
(http://www.kde-look.org/content/show.php?content=32185)

I was using 2.4.x python docs as reference and
ConfigParser.read('non-existent-filename') returns [] in 2.4.x
http://docs.python.org/lib/RawConfigParser-objects.html
That agrees with the docs since read returns a list of successfully
parsed
filenames. Note the docs also say this was added in 2.4.

I just looked at the
http://www.python.org/doc/2.3.5/lib/RawConfigParser-objects.html
(note the version number) and see the following:
"If none of the named files exist, the ConfigParser instance will contain
an empty dataset." Which to me means []. To the least of it, the statement
should be clarified, but I would still kindly prefer to have someone
respond / confirm the procedure bellow gives different results in 2.3.x.
import ConfigParser
cfg = ConfigParser.ConfigParser()
a = cfg.read('adsfasfdasfd')
a, len(a), type(a)
([], 0, <type 'list'>)

Thx in advance.

Python 2.3.5 (#2, Jun 13 2006, 23:12:55)
[GCC 4.1.2 20060613 (prerelease) (Debian 4.1.1-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 >>> import ConfigParser
 >>> cfg = ConfigParser.ConfigParser()
 >>> a = cfg.read('adsfasfdasfd')
 >>> a
 >>> type(a)
<type 'NoneType'>
 >>> len(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: len() of unsized object
 >>>  
 
C

Chris Lambacher

Chris said:
Wrote a little "user-friedly" wrapper for ConfigParser for a KDE's
SuperKaramba widget.
(http://www.kde-look.org/content/show.php?content=32185)

I was using 2.4.x python docs as reference and
ConfigParser.read('non-existent-filename') returns [] in 2.4.x
http://docs.python.org/lib/RawConfigParser-objects.html
That agrees with the docs since read returns a list of successfully parsed
filenames. Note the docs also say this was added in 2.4.

I just looked at the
http://www.python.org/doc/2.3.5/lib/RawConfigParser-objects.html
(note the version number) and see the following:
"If none of the named files exist, the ConfigParser instance will contain an
empty dataset." Which to me means []. To the least of it, the statement
should be clarified, but I would still kindly prefer to have someone
respond / confirm the procedure bellow gives different results in 2.3.x.
That says nothing about the return value. It says that the ConfigParser
object will contain an empty data set, ie:
config.sections() == []
NOT
config.read(['doesnotexist.cfg']) == []

since config.read does not explicitly return anything, and therefore you get
None.
import ConfigParser
cfg = ConfigParser.ConfigParser()
a = cfg.read('adsfasfdasfd')
a, len(a), type(a)
([], 0, <type 'list'>)

Thx in advance.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,535
Members
45,007
Latest member
obedient dusk

Latest Threads

Top