Łukasz Langa <luk...@langa.pl> added the comment:

Won't happen for Python 2.x but the idea is good. The original patch won't 
apply for Py3k so I implemented this approach from scratch for Python 3.2. 
Patch included.

Some microbenchmarks of mine show:
- a 3-5% slowdown for very small files (we can ignore this since it's still a 
blink of an eye)
- a 10% speedup in usual cases (files the size of a typical Pylons app 
configuration or a typical buildout)
- more so in unrealistic ones (many values with > 100 lines each)

Brett, a quick summary of changes:
- the idea to introduce a list of lines instead of gluing '%s\n%s' during file 
reading was introduced
- this approach needs an additional phase of joining the lists to strings after 
reading is done.
- I used itertools.chain to add the default section for iteration purposes 
without having to create a separate list. I hope the additional dependency on 
itertools is no problem.
- I reformatted a bit the changes by fred.drake in r78233 (he added support for 
valueless keys)
- some other slight formatting changes apply as well
- in the tests I've added a testcase for a file that uses multi-line values 
heavily. The file is generated temporarily since it's 127kB in size. Creation 
takes a fraction of a second so shouldn't be noticeable.

----------
nosy: +brett.cannon, lukasz.langa
versions: +Python 3.2 -Python 2.6
Added file: http://bugs.python.org/file18166/issue7113.diff

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue7113>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to