By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,442 Members | 1,457 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,442 IT Pros & Developers. It's quick & easy.

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

P: n/a
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:
>>import ConfigParser
cfg = ConfigParser.ConfigParser()
a = cfg.read('adsfasfdasfd')
a, len(a), type(a)
([], 0, <type 'list'>)

Thx in advance.

Daniel.
Jul 20 '06 #1
Share this Question
Share on Google+
4 Replies


P: n/a
On Thu, Jul 20, 2006 at 10:50:40AM -0700, Danil Dotsenko wrote:
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:
>import ConfigParser
cfg = ConfigParser.ConfigParser()
a = cfg.read('adsfasfdasfd')
a, len(a), type(a)
([], 0, <type 'list'>)

Thx in advance.

Daniel.
--
http://mail.python.org/mailman/listinfo/python-list
Jul 20 '06 #2

P: n/a
Danil Dotsenko wrote:
Chris Lambacher wrote:
>On Thu, Jul 20, 2006 at 10:50:40AM -0700, Danil Dotsenko wrote:
>>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/...r-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
*>>*
Jul 20 '06 #3

P: n/a
Chris Lambacher wrote:
On Thu, Jul 20, 2006 at 10:50:40AM -0700, Danil Dotsenko wrote:
>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/...r-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.

Jul 20 '06 #4

P: n/a
On Thu, Jul 20, 2006 at 02:01:08PM -0700, Danil Dotsenko wrote:
Chris Lambacher wrote:
On Thu, Jul 20, 2006 at 10:50:40AM -0700, Danil Dotsenko wrote:
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/...r-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.

--
http://mail.python.org/mailman/listinfo/python-list
Jul 21 '06 #5

This discussion thread is closed

Replies have been disabled for this discussion.