You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
(2) |
Nov
(18) |
Dec
(26) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(14) |
Feb
(28) |
Mar
(21) |
Apr
(17) |
May
(23) |
Jun
(12) |
Jul
(12) |
Aug
(7) |
Sep
(10) |
Oct
|
Nov
(4) |
Dec
(10) |
| 2007 |
Jan
(5) |
Feb
(8) |
Mar
|
Apr
|
May
(7) |
Jun
(1) |
Jul
(3) |
Aug
(3) |
Sep
(20) |
Oct
(3) |
Nov
(2) |
Dec
(12) |
| 2008 |
Jan
(40) |
Feb
(15) |
Mar
(1) |
Apr
|
May
(6) |
Jun
(19) |
Jul
(2) |
Aug
(17) |
Sep
(13) |
Oct
(7) |
Nov
(16) |
Dec
(5) |
| 2009 |
Jan
(15) |
Feb
(11) |
Mar
(11) |
Apr
(8) |
May
(6) |
Jun
(15) |
Jul
(19) |
Aug
(2) |
Sep
|
Oct
(19) |
Nov
(1) |
Dec
(3) |
| 2010 |
Jan
(12) |
Feb
(25) |
Mar
(45) |
Apr
(4) |
May
(2) |
Jun
(4) |
Jul
(6) |
Aug
(13) |
Sep
(1) |
Oct
(2) |
Nov
(2) |
Dec
(9) |
| 2011 |
Jan
(24) |
Feb
(7) |
Mar
(1) |
Apr
(6) |
May
(3) |
Jun
(3) |
Jul
|
Aug
(13) |
Sep
(9) |
Oct
(7) |
Nov
(17) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
(5) |
Apr
(3) |
May
|
Jun
|
Jul
(3) |
Aug
(2) |
Sep
(4) |
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(12) |
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
(4) |
Feb
(3) |
Mar
|
Apr
(17) |
May
|
Jun
|
Jul
|
Aug
(5) |
Sep
(3) |
Oct
(3) |
Nov
|
Dec
|
| 2015 |
Jan
(11) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
(2) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(10) |
Dec
|
| 2017 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Robin M. <rob...@gm...> - 2006-05-23 01:26:46
|
T24gNS8yMi8wNiwgTWljaGFlbCBGb29yZCA8ZnV6enltYW5Adm9pZHNwYWNlLm9yZy51az4gd3Jv dGU6Cj4gUm9iaW4gTXVubiB3cm90ZToKPiA+IE9uIDUvMjIvMDYsIFJvYmluIE11bm4gPHJvYmlu Lm11bm5AZ21haWwuY29tPiB3cm90ZToKPiA+PiBJZiB5b3UgdGhpbmsgdGhpcyBsb29rcyBkb2Fi bGUsIEknbGwgYmUgaGFwcHkgdG8gc3VibWl0IHRoaXMgYXMgYSByZWFsCj4gPj4gcGF0Y2gsIHdp dGggYSB3b3JraW5nIFRlbXBsYXRlSW50ZXJwb2xhdGlvbiBjbGFzcy4gKFdoaWNoIEkgd291bGQs Cj4gPj4gbmF0dXJhbGx5LCBzdGVhbCBmcm9tIHRoZSBQeXRob24gc3RkbGliKS4KPiA+Cj4gPiBJ J3ZlIGZpbmlzaGVkIHdyaXRpbmcgdXAgYW4gaW1wbGVtZW50YXRpb24gb2YgVGVtcGxhdGVJbnRl cnBvbGF0aW9uLgo+ID4gSXQgYWRkcyBhYm91dCA3NSBsaW5lcyBvZiBjb2RlIHRvIGNvbmZpZ29i ai5weS4gT25jZSBJJ3ZlIHRlc3RlZCBpdCwKPiA+IEknbGwgc3VibWl0IHRoZSBwYXRjaCB0byB0 aGUgY29uZmlnb2JqLWRldmVsb3AgbGlzdC4KPiA+Cj4gQXMgSSBtZW50aW9uZWQgYmVmb3JlIEkg cHJlZmVyIHRoZSBwcm9wb3NlZCBzdWJzdGl0dXRpb24gc3ludGF4LiBIb3dldmVyCj4gZm9yIHRo ZSByZWFzb25zIG1lbnRpb25lZCB3ZSB3b3VsZCBoYXZlIHRvIHBlcm1pdCBib3RoLgo+Cj4gVGhp cyBoYXMgdGhlIGZvbGxvd2luZyBkaXNhZHZhbnRhZ2VzIDoKPgo+ICAgICAxKSBXcml0aW5nIHRo ZSBjb2RlCj4gICAgIDIpIFdyaXRpbmcgdGVzdHMKPiAgICAgMykgRG9jdW1lbnRpbmcgdGhlIGNo YW5nZXMKPiAgICAgNCkgTWFpbnRhaW5pbmcgdGhlIGNvZGUKPiAgICAgNSkgQSBiaWdnZXIgY29k ZSBiYXNlCj4gICAgIDYpIEEgc3RlZXBlci9tb3JlIGNvbmZ1c2luZyBsZWFybmluZyBjdXJ2ZSBm b3IgdXNlcnMsIGVzcGVjaWFsbHkgdGhlCj4gY2hhbmdlIHRvIGFuIG9wdGlvbiB0aGF0IHRha2Vz IGEgdGV4dCB2YWx1ZSBpbnN0ZWFkIG9mIFRydWUvRmFsc2UgWyNdXwo+Cj4gSXQgc291bmRzIGxp a2UgeW91IGFyZSBvZmZlcmluZyB0byBoZWxwIHdpdGggMSBhbmQgMiAoYW5kIGhvcGVmdWxseSAz Cj4gPykuIEkgZG9uJ3QgcmVhbGx5IG1pbmQgNCwgYnV0IDUgYW5kIDYgYXJlIHJlYWwgaXNzdWVz LgoKSW5kZWVkLiBIb3dldmVyLCB0aGlzIGlzIHRydWUgb2YganVzdCBhYm91dCBhbnkgbmV3IGZl YXR1cmUuIFRoZSByZWFsCnF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlIGxhcmdlciBjb2RlIGJhc2Ug YW5kL29yIHN0ZWVwZXIgbGVhcm5pbmcgY3VydmUKYXJlIHdvcnRoIHRoZSBiZW5lZml0cyB0aGUg bmV3IGZlYXR1cmUgd291bGQgYnJpbmcuIEluIHRoaXMgY2FzZSwgSQp0aGluayB0aGV5IGFyZSwg YXMgSSdsbCBleHBsYWluLgoKQlRXLCBJJ3ZlIGluY2x1ZGVkIGRvY3VtZW50YXRpb24gaW4gbXkg cGF0Y2ggYXMgd2VsbCBub3csIHdoaWNoIHRha2VzCmNhcmUgb2YgMykuIEluIHRoZSBwcm9jZXNz LCBJIGZpeGVkIGEgZG9jdW1lbnRhdGlvbiBidWcuIChUaGUKIkF0dHJpYnV0ZXMiIHNlY3Rpb24s IHNlY3Rpb24gNC40LCBzYWlkIHRoZSAiaW50ZXJwb2xhdGUiIGF0dHJpYnV0ZQp3YXMgdXNlZCB0 byBzd2l0Y2ggaW50ZXJwb2xhdGlvbiBvbiBvciBvZmYsIGJ1dCBpdCdzIGFjdHVhbGx5IHRoZQoi aW50ZXJwb2xhdGlvbiIgYXR0cmlidXRlLikKCk5vdGUgdGhhdCBteSBkb2N1bWVudGF0aW9uIHBh dGNoIGxlYXZlcyB5b3Ugd2l0aCBhIG1ham9yIHNlY3Rpb24gKmFuZCoKYSBzdWJzZWN0aW9uLCBi b3RoIGNhbGxlZCAiSW50ZXJwb2xhdGlvbiIgKGFsdGhvdWdoIG9uZSBpcyBpbgpsb3dlcmNhc2Up LiBJIGRvbid0IGtub3cgaG93IHRoZSByZVN0cnVjdHVyZWRUZXh0IGludGVybmFsIGxpbmtzIChl LmcuCiJpbnRlcnBvbGF0aW9uXyIpIHdpbGwgZGVhbCB3aXRoIHRoYXQ7IHlvdSBtYXkgd2FudCB0 byBjb25zaWRlcgpyZW5hbWluZyBvbmUgb2YgdGhvc2Ugc2VjdGlvbnMsIHBlcmhhcHMgdG8gIlN0 cmluZyBJbnRlcnBvbGF0aW9uIi4KClRvIGFkZHJlc3MgNSksIGFuZCB0aGVyZWJ5IGFkZHJlc3Mg NCkgYXMgd2VsbDogbXkgcGF0Y2ggYWRkcyA4NQphZGRpdGlvbmFsIGxpbmVzIG9mIGNvZGUsIGlu Y2x1ZGluZyBjb21tZW50cy4gKFRoZSA3NSBsaW5lcyBvZiBjb2RlCmZpZ3VyZSBJIHF1b3RlZCBh Ym92ZSB3YXMgYmVmb3JlIEkgY29tbWVudGVkIHRoZSBjb2RlIHRvIG15CnNhdGlzZmFjdGlvbiku IE1vc3Qgb2YgQ29uZmlnT2JqJ3MgMjAwMCBsaW5lcyBvZiBjb2RlIGRpZG4ndCBuZWVkIHRvCmJl IHRvdWNoZWQsIHNvIHRoZSBuZXcgZmVhdHVyZSBzaG91bGQgYmUgZWFzeSB0byB1bmRlcnN0YW5k IGFuZCB0aGUKY29kZWJhc2UncyBtYW50YWluYWJpbGl0eSBzaG91bGRuJ3Qgc3VmZmVyLiBJJ3Zl IGF0dGFjaGVkIHRoZSBwYXRjaCwKc28geW91IGNhbiByZXZpZXcgaXQgZm9yIHlvdXJzZWxmIGFu ZCBkZWNpZGUgaG93IGVhc3kgb3IgZGlmZmljdWx0IGl0CndvdWxkIGJlIHRvIG1haW50YWluLiAo SSd2ZSB0ZXN0ZWQgaXQgYW5kLCBJIGJlbGlldmUsIGdvdHRlbiBhbGwgdGhlCmJ1Z3Mgd29ya2Vk IG91dCkuCgpUbyBhZGRyZXNzIDYpLCB0aGUgcXVlc3Rpb24gb2Ygc3RlZXBlciBsZWFybmluZyBj dXJ2ZTogdGhhdCdzIG1vc3RseSBhCmZhY3RvciBvZiBob3cgZ29vZCB0aGUgZG9jdW1lbnRhdGlv biBpcy4gSSd2ZSB0cmllZCB0byB3cml0ZQpkb2N1bWVudGF0aW9uIHRoYXQncyBjbGVhciB5ZXQg Y29uY2lzZS4gT25lIGFkdmFudGFnZSBoZXJlIGlzIHRoYXQgdGhlCm5ldyBmZWF0dXJlJ3Mgc3lu dGF4LCAke25hbWV9LCBpcyB0aGUgc2FtZSBzeW50YXggdGhhdCBzaGVsbCBzY3JpcHRzCnVzZSwg c28gaXQgc2hvdWxkIGFscmVhZHkgYmUgZmFtaWxpYXIgdG8gbW9zdCBkZXZlbG9wZXJzLiBUaGlz IHdpbGwKaGF2ZSB0aGUgZWZmZWN0IG9mIGZsYXR0ZW5pbmcgb3V0IHRoZSBsZWFybmluZyBjdXJ2 ZSBmb3IgdGhpcyBuZXcKZmVhdHVyZSBpbW1lbnNlbHk6IG1vc3QgZGV2ZWxvcGVycyB3aWxsIHNl ZSB0aGlzLCBzYXkgIk9oLCBpdCdzIGp1c3QKbGlrZSBzaGVsbCBzeW50YXguIEdvdCBpdCwiIGFu ZCBtb3ZlIG9uLCB3aXRoIHRoZSBuZXcgZmVhdHVyZSBmdWxseQpncmFzcGVkLgoKVGhhdCdzIGFi b3V0IGFzIGZhciBhcyBkaXNjdXNzaW9uIGNhbiB0YWtlIHVzIHdpdGhvdXQgYWN0dWFsIGNvZGUg dG8KbG9vayBhdCwgc28gSSd2ZSBhdHRhY2hlZCBteSBwYXRjaC4gTGV0IG1lIGtub3cgd2hhdCB5 b3UgdGhpbmsgb2YgaXQuCihBbmQgZmVlbCBmcmVlIHRvIHJld3JpdGUgYW55dGhpbmcsIGVzcGVj aWFsbHkgdGhlIGRvY3VtZW50YXRpb24Kc2VjdGlvbnMgaWYgeW91IHRoaW5rIHRoZXkncmUgdW5j bGVhcikuCgo+IEkgYXBwcmVjaWF0ZSB0aGUgcGF0Y2ggeW91IGFyZSB3cml0aW5nLiBMZXQgbWUg Y2hlY2sgd2l0aCB0aGUgb3RoZXIgbWFpbgo+IHVzZXJzIG9mIENvbmZpZ09iaiBhbmQgc2VlIHdo YXQgdGhleSB0aGluayBhYm91dCB0aGUgY2hhbmdlLgo+Cj4gV2hhdCBpcyB0aGUgYXBwbGljYXRp b24geW91IHdvdWxkIHVzZSB0aGlzIGZvciA/CgpJIGRvbid0IGN1cnJlbnRseSBoYXZlIGEgc3Bl Y2lmaWMgYXBwbGljYXRpb24gdGhhdCBJJ20gcGxhbm5pbmcgdG8gdXNlCkNvbmZpZ09iaiBmb3Is IGJ1dCB0aGVyZSBhcmUgc2V2ZXJhbCBUdXJib0dlYXJzIGFwcCBpZGVhcyBib3VuY2luZwphcm91 bmQgaW4gbXkgaGVhZCByaWdodCBub3cuIEFuZCBzaW5jZSBUdXJib0dlYXJzIGlzIGFwcGFyZW50 bHkgZ29pbmcKdG8gdXNlIENvbmZpZ09iaiBzdGFydGluZyBpbiBUdXJib0dlYXJzIDEuMSwgSSB3 YW50IHRvIGdldCBteQpwcmVmZXJyZWQgaW50ZXJwb2xhdGlvbiBzeW50YXggaW50byBDb25maWdP YmogYXMgc29vbiBhcyBwb3NzaWJsZSwKYmVmb3JlIEkgaGF2ZSB0byB1c2UgaXQuCgotLSAKUm9i aW4gTXVubgpSb2Jpbi5NdW5uQGdtYWlsLmNvbQpHUEcga2V5IDB4RDY0OTcwMTQK |
|
From: Michael F. <fuz...@vo...> - 2006-05-22 21:35:21
|
Michael Foord wrote: > Robin Munn wrote: >> On 5/22/06, Robin Munn <rob...@gm...> wrote: >>> If you think this looks doable, I'll be happy to submit this as a real >>> patch, with a working TemplateInterpolation class. (Which I would, >>> naturally, steal from the Python stdlib). >> >> I've finished writing up an implementation of TemplateInterpolation. >> It adds about 75 lines of code to configobj.py. Once I've tested it, >> I'll submit the patch to the configobj-develop list. >> > [snip..] > > .. [#] Note that for backwards compatibility we would have to make > True a shorthand for 'ConfigParser' (possibly a deprecated way of > setting it). > Oops... I see you already covered that. :-) Fuzzy http://www.voidspace.org.uk/python/index.shtml > > ------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > |
|
From: Michael F. <fuz...@vo...> - 2006-05-22 21:31:05
|
Robin Munn wrote:
> On 5/22/06, Robin Munn <rob...@gm...> wrote:
>> If you think this looks doable, I'll be happy to submit this as a real
>> patch, with a working TemplateInterpolation class. (Which I would,
>> naturally, steal from the Python stdlib).
>
> I've finished writing up an implementation of TemplateInterpolation.
> It adds about 75 lines of code to configobj.py. Once I've tested it,
> I'll submit the patch to the configobj-develop list.
>
As I mentioned before I prefer the proposed substitution syntax. However
for the reasons mentioned we would have to permit both.
This has the following disadvantages :
1) Writing the code
2) Writing tests
3) Documenting the changes
4) Maintaining the code
5) A bigger code base
6) A steeper/more confusing learning curve for users, especially the
change to an option that takes a text value instead of True/False [#]_
It sounds like you are offering to help with 1 and 2 (and hopefully 3
?). I don't really mind 4, but 5 and 6 are real issues.
I appreciate the patch you are writing. Let me check with the other main
users of ConfigObj and see what they think about the change.
What is the application you would use this for ?
Fuzzyman
http://www.voidspace.org.uk/python/index.shtml
.. [#] Note that for backwards compatibility we would have to make True
a shorthand for 'ConfigParser' (possibly a deprecated way of setting it).
|
|
From: Robin M. <rob...@gm...> - 2006-05-22 16:41:20
|
T24gNS8yMi8wNiwgUm9iaW4gTXVubiA8cm9iaW4ubXVubkBnbWFpbC5jb20+IHdyb3RlOgo+IElm IHlvdSB0aGluayB0aGlzIGxvb2tzIGRvYWJsZSwgSSdsbCBiZSBoYXBweSB0byBzdWJtaXQgdGhp cyBhcyBhIHJlYWwKPiBwYXRjaCwgd2l0aCBhIHdvcmtpbmcgVGVtcGxhdGVJbnRlcnBvbGF0aW9u IGNsYXNzLiAoV2hpY2ggSSB3b3VsZCwKPiBuYXR1cmFsbHksIHN0ZWFsIGZyb20gdGhlIFB5dGhv biBzdGRsaWIpLgoKSSd2ZSBmaW5pc2hlZCB3cml0aW5nIHVwIGFuIGltcGxlbWVudGF0aW9uIG9m IFRlbXBsYXRlSW50ZXJwb2xhdGlvbi4KSXQgYWRkcyBhYm91dCA3NSBsaW5lcyBvZiBjb2RlIHRv IGNvbmZpZ29iai5weS4gT25jZSBJJ3ZlIHRlc3RlZCBpdCwKSSdsbCBzdWJtaXQgdGhlIHBhdGNo IHRvIHRoZSBjb25maWdvYmotZGV2ZWxvcCBsaXN0LgoKLS0gClJvYmluIE11bm4KUm9iaW4uTXVu bkBnbWFpbC5jb20KR1BHIGtleSAweEQ2NDk3MDE0Cg== |
|
From: Robin M. <rob...@gm...> - 2006-05-22 14:14:44
|
T24gNS8yMi8wNiwgUm9iaW4gTXVubiA8cm9iaW4ubXVubkBnbWFpbC5jb20+IHdyb3RlOgo+IE1h aW50YWluaW5nIHR3byBkaWZmZXJlbnQgaW50ZXJwb2xhdGlvbiBzeW50YXhlcyBkb2VzIHNvdW5k IGxpa2UgYSBiaXQKPiBvZiBhIGNoYWxsZW5nZSwgSSBhZ3JlZS4gOi0pIEFsbG93aW5nICpib3Ro KiB0byBiZSB1c2VkIGluIHRoZSBzYW1lCj4gY29uZmlndXJhdGlvbiBmaWxlIHdvdWxkIGluZGVl ZCBiZSBhIG5pZ2h0bWFyZTsgYnV0IEkgdGhpbmsgdGhlcmUncyBhCj4gY2xlYW4gd2F5IHRvIGRv IGl0LiBFLmcuLDoKCkkgc2hvdWxkIGNsYXJpZnkuIEkgbWVhbiAidGhlcmUncyBhIGNsZWFuIHdh eSB0byBtYWludGFpbiB0d28KaW50ZXJwb2xhdGlvbiBzeW50YXhlcyIsIG5vdCAidGhlcmUncyBh IGNsZWFuIHdheSB0byBhbGxvdyBib3RoCnN5bnRheGVzIHRvIGJlIHVzZWQgaW4gdGhlIHNhbWUg Y29uZmlnIGZpbGUiLiBBbGxvd2luZyB0d28gc3ludGF4ZXMgaW4KdGhlIHNhbWUgY29uZmlnIGZp bGUgd291bGQgYmUgZXh0cmVtZWx5IHVnbHksIGFuZCBJJ20gbm90IHN1Z2dlc3RpbmcKaXQuIEkn bSBzdWdnZXN0aW5nIHVzaW5nIHRoZSAiaW50ZXJwb2xhdGlvbiIgYXR0cmlidXRlIGFzIGEga2lu ZCBvZgp0aHJlZS13YXkgc3dpdGNoLCB3aXRoICJPZmYiLCAiQSIsIGFuZCAiQiIgcG9zaXRpb25z LgoKSW5zdGVhZCBvZiBtYWtpbmcgdGhlIHVzZXIgc3BlY2lmeSBhIHN0cmluZyBhcyB0aGUgdmFs dWUsIHRoZXkgY291bGQKYWxzbyAocG9zc2libHkpIHNwZWNpZnkgImNvbmZpZ29iai5DT05GSUdQ QVJTRVIiIGFuZAoiY29uZmlnb2JqLlRFTVBMQVRFIiBpbnN0ZWFkLiAoV2hlcmUgdGhvc2UgdHdv IHZhbHVlcyB3b3VsZCBiZSB0aGUKYXBwcm9wcmlhdGUgc3RyaW5ncywgIkNvbmZpZ1BhcnNlciIg YW5kICJUZW1wbGF0ZSIpLiBUaGVyZSdzIG5vIHJlYWwKZ2FpbiB0byB0aGlzIG92ZXIganVzdCBz cGVjaWZ5aW5nIHRoZSBzdHJpbmdzIGRpcmVjdGx5LCBidXQgaXQgY2FuCmxvb2sgYmV0dGVyIGlu IHRoZSBkb2NzIHRvIHVzZSBlbnVtLWxpa2UgY29uc3RhbnRzLiAoQW5kIGl0IHdvdWxkCmVsaW1p bmF0ZSB0aGUgbmVlZCB0byB3b25kZXIgInNob3VsZCBJIGJlIGNhc2Utc2Vuc2l0aXZlIGluCmlu dGVycHJldGluZyB0aGUgImludGVycG9sYXRlIiBhdHRyaWJ1dGU/IikuCgotLSAKUm9iaW4gTXVu bgpSb2Jpbi5NdW5uQGdtYWlsLmNvbQpHUEcga2V5IDB4RDY0OTcwMTQK |
|
From: Robin M. <rob...@gm...> - 2006-05-22 14:04:28
|
T24gNS8yMi8wNiwgTWljaGFlbCBGb29yZCA8ZnV6enltYW5Adm9pZHNwYWNlLm9yZy51az4gd3Jv dGU6Cj4gUm9iaW4gTXVubiB3cm90ZToKPiA+IEkndmUgYmVlbiBsb29raW5nIG92ZXIgdGhlIENv bmZpZ09iaiBkb2NzLCBhbmQgZm9yIHRoZSBtb3N0IHBhcnQsIEkKPiA+IHJlYWxseSBsaWtlIHdo YXQgSSBzZWUuCj4gPgo+ID4gVGhlcmUncyBvbmUgcGxhY2Ugd2hlcmUgSSB0aGluayBJIHNlZSBy b29tIGZvciBpbXByb3ZlbWVudCwgdGhvdWdoOgo+ID4gc3RyaW5nIGludGVycG9sYXRpb24uCj4g VGhlIG5ldyBzeW50YXggbG9va3MgZ29vZCAoYmV0dGVyKSwgYW5kIHRoZSBwcm9wb3NhbCBpcyBy ZWFzb25hYmxlLgo+Cj4gKkhvd2V2ZXIqLCB0aGUgb3JpZ2luYWwgc3ludGF4IGlzIGNvbXBhdGli bGUgd2l0aCBDb25maWdQYXJzZXIgYW5kIHRoZXJlCj4gYXJlIGFscmVhZHkgcGVvcGxlIHVzaW5n IGl0IHdpdGggQ29uZmlnT2JqLgo+Cj4gTWFpbnRhaW5pbmcgdHdvIGRpZmZlcmVudCBzeW50YXhl cyBzb3VuZHMgbGlrZSBhIG5pZ2h0bWFyZS4uLgo+Cj4gSSBjYW4ndCB0aGluayBvZiBhbiBvYnZp b3VzIG1pZGRsZSBncm91bmQuIEFkZGluZyBpdCBhcyBhbiBleHRyYSBvcHRpb24KPiBmdXJ0aGVy IGNvbXBsaWNhdGVzIENvbmZpZ09iaiBhbmQgSSB3b3VsZCBzdGlsbCBoYXZlIHRvIGhhdmUgdGhl IG9sZAo+IHN5bnRheCBhcyB0aGUgZGVmYXVsdCAobWFraW5nIHRoZSBuZXcgc3ludGF4IGxlc3Mg bGlrZWx5IHRvIGJlIHVzZWQuKQoKSG93IGFib3V0IG1ha2luZyB0aGUgImludGVycG9sYXRlIiBh dHRyaWJ1dGUgYWN0IGFzIGEga2luZCBvZgp0aHJlZS13YXkgc3dpdGNoPyAiaW50ZXJwb2xhdGU9 RmFsc2UiIChvciBOb25lIG9yIGFueSBvdGhlciBmYWxzZQp2YWx1ZSkgZm9yIG5vIGludGVycG9s YXRpb24sICJpbnRlcnBvbGF0ZT0nQ29uZmlnUGFyc2VyJyIgZm9yCkNvbmZpZ1BhcnNlci1jb21w YXRpYmxlIGludGVycG9sYXRpb24gKHRoZSBjdXJyZW50IGJlaGF2aW9yKSwgYW5kCiJpbnRlcnBv bGF0ZT0nVGVtcGxhdGUnIiBmb3Igc3RyaW5nLlRlbXBsYXRlLWJhc2VkIGludGVycG9sYXRpb24g KHRoZQpuZXcgYmVoYXZpb3IgSSdtIHN1Z2dlc3RpbmcpLiBGb3IgYmFja3dhcmRzIGNvbXBhdGli aWxpdHksCiJpbnRlcnBvbGF0ZT1UcnVlIiB3b3VsZCBiZWhhdmUgbGlrZSAiaW50ZXJwb2xhdGU9 J0NvbmZpZ1BhcnNlciciLgooVGhpcyB3b3VsZCBhbHNvIGFsbG93IGZvciBhIGdyYWR1YWwgcGhh c2luZyBvdXQgb2YgQ29uZmlnUGFyc2VyLWxpa2UKYmVoYXZpb3IgaWYsIGluIHRoZSBkaXN0YW50 IGZ1dHVyZSwgIlRlbXBsYXRlIiBiZWNvbWVzIHRoZSByZWNvbW1lbmRlZApkZWZhdWx0LiBGaXJz dCBkZXByZWNhdGUgdGhlIG9sZCBiZWhhdmlvciwgdGhlbiBzdGFydCBnZW5lcmF0aW5nCndhcm5p bmdzLCB0aGVuIHN3aXRjaCB3aGF0ICJpbnRlcnBvbGF0ZT1UcnVlIiBtZWFucy4gQWxsIHRoYXQg b3ZlcgpzZXZlcmFsIG1ham9yIHJlbGVhc2VzLCBvZiBjb3Vyc2UpLgoKTWFpbnRhaW5pbmcgdHdv IGRpZmZlcmVudCBpbnRlcnBvbGF0aW9uIHN5bnRheGVzIGRvZXMgc291bmQgbGlrZSBhIGJpdApv ZiBhIGNoYWxsZW5nZSwgSSBhZ3JlZS4gOi0pIEFsbG93aW5nICpib3RoKiB0byBiZSB1c2VkIGlu IHRoZSBzYW1lCmNvbmZpZ3VyYXRpb24gZmlsZSB3b3VsZCBpbmRlZWQgYmUgYSBuaWdodG1hcmU7 IGJ1dCBJIHRoaW5rIHRoZXJlJ3MgYQpjbGVhbiB3YXkgdG8gZG8gaXQuIEUuZy4sOgoKCgpjbGFz cyBJbnRlcnBvbGF0aW9uQmFzZShvYmplY3QpOgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlY3Rp b24pOgogICAgICAgIHNlbGYuc2VjdGlvbiA9IHNlY3Rpb24gICMgU2VjdGlvbiBvYmplY3QgdGhh dCAib3ducyIgdGhpcyBpbnN0YW5jZQogICAgZGVmIGludGVycG9sYXRlKHNlbGYsIHZhbHVlKToK ICAgICAgICBwYXNzICAgIyBBYnN0cmFjdCBiYXNlIGNsYXNzLCBkZXNjZW5kYW50cyBwcm92aWRl IGltcGxlbWVudGF0aW9ucwoKY2xhc3MgQ29uZmlnUGFyc2VySW50ZXJwb2xhdGlvbihJbnRlcnBv bGF0aW9uQmFzZSk6CiAgICBkZWYgaW50ZXJwb2xhdGUoc2VsZiwgdmFsdWUpOgogICAgICAgICMg Li4uCgpjbGFzcyBUZW1wbGF0ZUludGVycG9sYXRpb24oSW50ZXJwb2xhdGlvbkJhc2UpOgogICAg ZGVmIGludGVycG9sYXRlKHNlbGYsIHZhbHVlKToKICAgICAgICAjIC4uLgoKaW50ZXJwb2xhdGVf aW1wbGVtZW50YXRpb25zID0gewogICAgJ0NvbmZpZ1BhcnNlcic6IENvbmZpZ1BhcnNlckludGVy cG9sYXRpb24sCiAgICAnVGVtcGxhdGUnOiBUZW1wbGF0ZUludGVycG9sYXRpb24sCiAgICBUcnVl OiBDb25maWdQYXJzZXJJbnRlcnBvbGF0aW9uLCAgIyBEZWZhdWx0IGZvciBiYWNrd2FyZHMgY29t cGF0aWJpbGl0eQp9CgpjbGFzcyBTZWN0aW9uKGRpY3QpOgogICAgZGVmIF9faW5pdF9fKHNlbGYs IC4uLik6CiAgICAgICAgIyAuLi4KICAgICAgICBpZiBzZWxmLm1haW4uaW50ZXJwb2xhdGlvbjoK ICAgICAgICBzZWxmLl9pbnRlcnBvbGF0aW9uX2VuZ2luZSA9CmludGVycG9sYXRlX2ltcGxlbWVu dGF0aW9uc1tzZWxmLm1haW4uaW50ZXJwb2xhdGlvbl0oc2VsZikKICAgICAgICBzZWxmLl9pbnRl cnBvbGF0ZSA9IHNlbGYuX2ludGVycG9sYXRpb25fZW5naW5lLmludGVycG9sYXRlCgoKClRoZSBj dXJyZW50IF9pbnRlcnBvbGF0ZSgpIGFuZCBfaW50ZXJwb2xhdGlvbl9yZXBsYWNlKCkgZnVuY3Rp b25zCndvdWxkIG1vdmUgdG8gdGhlIENvbmZpZ1BhcnNlckludGVycG9sYXRpb24gY2xhc3MgKHdo aWNoIHdvdWxkIHVzZQpzZWxmLnNlY3Rpb24uZm9vIHdoZXJldmVyIHRoZSBjdXJyZW50IGZ1bmN0 aW9ucyB1c2Ugc2VsZi5mb28pLiBUaGUgbmV3ClRlbXBsYXRlSW50ZXJwb2xhdGlvbiBjbGFzcyB3 b3VsZCB0aGVuIHNsb3QgbmVhdGx5IGludG8gcGxhY2Ugd2l0aAptaW5pbWFsIGNoYW5nZXMgdG8g dGhlIHJlc3Qgb2YgdGhlIGNvZGUuCgpJZiB5b3UgdGhpbmsgdGhpcyBsb29rcyBkb2FibGUsIEkn bGwgYmUgaGFwcHkgdG8gc3VibWl0IHRoaXMgYXMgYSByZWFsCnBhdGNoLCB3aXRoIGEgd29ya2lu ZyBUZW1wbGF0ZUludGVycG9sYXRpb24gY2xhc3MuIChXaGljaCBJIHdvdWxkLApuYXR1cmFsbHks IHN0ZWFsIGZyb20gdGhlIFB5dGhvbiBzdGRsaWIpLgoKPiBJdCBjb3VsZCBwcm9iYWJseSBiZSBp bXBsZW1lbnRlZCBhcyBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRoYXQgdXNlcwo+IGBgd2Fsa2BgIHRv IGRvIHRoZSBzdWJzdGl0dXRpb24uCgpUaGF0J3MgYW5vdGhlciBwb3NzaWJpbGl0eSwgb2YgY291 cnNlLiBJIHRoaW5rIGEgc2xvdC1pbiByZXBsYWNlbWVudApmb3IgU2VjdGlvbi5faW50ZXJwb2xh dGUoKSBhbmQgU2VjdGlvbi5faW50ZXJwb2xhdGlvbl9yZXBsYWNlKCkgd291bGQKcHJvYmFibHkg cmVzdWx0IGluIGNsZWFuZXIgY29kZSwgdGhvdWdoLgoKPiBJZiB5b3UgZ2V0IHRoaXMgd29ya2lu ZyBJIHdvdWxkIGJlIGludGVyZXN0ZWQgaW4gc2VlaW5nIGl0LiAoQW5kIGhhcHB5Cj4gdG8gcHV0 IGEgcmVmZXJlbmNlIHRvIGl0IGluIHRoZSBkb2NzLikKPgo+IEZ1enp5bWFuCj4gaHR0cDovL3d3 dy52b2lkc3BhY2Uub3JnLnVrL3B5dGhvbi9zaGFyZXdhcmUuc2h0bWwKCi0tIApSb2JpbiBNdW5u ClJvYmluLk11bm5AZ21haWwuY29tCkdQRyBrZXkgMHhENjQ5NzAxNAo= |
|
From: Michael F. <fuz...@vo...> - 2006-05-22 12:46:18
|
Robin Munn wrote: > I've been looking over the ConfigObj docs, and for the most part, I > really like what I see. > > There's one place where I think I see room for improvement, though: > string interpolation. The new syntax looks good (better), and the proposal is reasonable. *However*, the original syntax is compatible with ConfigParser and there are already people using it with ConfigObj. Maintaining two different syntaxes sounds like a nightmare... I can't think of an obvious middle ground. Adding it as an extra option further complicates ConfigObj and I would still have to have the old syntax as the default (making the new syntax less likely to be used.) It could probably be implemented as a separate function that uses ``walk`` to do the substitution. If you get this working I would be interested in seeing it. (And happy to put a reference to it in the docs.) Fuzzyman http://www.voidspace.org.uk/python/shareware.shtml > > The main reason for having .ini-style configuration files, in my > opinion, is to allow end users (who are usually non-programmers) to > modify the configuration files without too much difficulty. But since > I've started working on tech-support jobs, I've learned that you don't > want to make end users remember too much at once. Most people who > studied algebra are at least comfortable with the idea of variable > substitution -- but they won't remember the %(foo)s format naturally. > That's four different characters to type for a single variable > substitution. It's easy for those of us who are programmers and whose > minds are trained to think in terms of meaningful punctuation, but > most people's minds just don't think that way. > > This is exactly why PEP 292 (http://www.python.org/dev/peps/pep-0292/) > was written. It replaces the "%(foo)s" syntax with a simpler syntax, > "$foo". (With the option of "${foo}" if disambiguation is needed, > e.g., "${noun}ification"). > > PEP 292 is in the stdlib as of Python 2.4 (as the string.Template > class), but its implementation in the string module would easily work > under Python 2.2 and above. (The only post-2.2 features it uses are > the names True and False). The implementation in the stdlib is about > 100 lines of code, so it shouldn't be too complicated to add to > ConfigObj. > > String interpolation can be a handy feature. I'd like to see it as > simple as possible. > |
|
From: Robin M. <rob...@gm...> - 2006-05-22 11:09:09
|
SSd2ZSBiZWVuIGxvb2tpbmcgb3ZlciB0aGUgQ29uZmlnT2JqIGRvY3MsIGFuZCBmb3IgdGhlIG1v c3QgcGFydCwgSQpyZWFsbHkgbGlrZSB3aGF0IEkgc2VlLgoKVGhlcmUncyBvbmUgcGxhY2Ugd2hl cmUgSSB0aGluayBJIHNlZSByb29tIGZvciBpbXByb3ZlbWVudCwgdGhvdWdoOgpzdHJpbmcgaW50 ZXJwb2xhdGlvbi4KClRoZSBtYWluIHJlYXNvbiBmb3IgaGF2aW5nIC5pbmktc3R5bGUgY29uZmln dXJhdGlvbiBmaWxlcywgaW4gbXkKb3BpbmlvbiwgaXMgdG8gYWxsb3cgZW5kIHVzZXJzICh3aG8g YXJlIHVzdWFsbHkgbm9uLXByb2dyYW1tZXJzKSB0bwptb2RpZnkgdGhlIGNvbmZpZ3VyYXRpb24g ZmlsZXMgd2l0aG91dCB0b28gbXVjaCBkaWZmaWN1bHR5LiBCdXQgc2luY2UKSSd2ZSBzdGFydGVk IHdvcmtpbmcgb24gdGVjaC1zdXBwb3J0IGpvYnMsIEkndmUgbGVhcm5lZCB0aGF0IHlvdSBkb24n dAp3YW50IHRvIG1ha2UgZW5kIHVzZXJzIHJlbWVtYmVyIHRvbyBtdWNoIGF0IG9uY2UuIE1vc3Qg cGVvcGxlIHdobwpzdHVkaWVkIGFsZ2VicmEgYXJlIGF0IGxlYXN0IGNvbWZvcnRhYmxlIHdpdGgg dGhlIGlkZWEgb2YgdmFyaWFibGUKc3Vic3RpdHV0aW9uIC0tIGJ1dCB0aGV5IHdvbid0IHJlbWVt YmVyIHRoZSAlKGZvbylzIGZvcm1hdCBuYXR1cmFsbHkuClRoYXQncyBmb3VyIGRpZmZlcmVudCBj aGFyYWN0ZXJzIHRvIHR5cGUgZm9yIGEgc2luZ2xlIHZhcmlhYmxlCnN1YnN0aXR1dGlvbi4gSXQn cyBlYXN5IGZvciB0aG9zZSBvZiB1cyB3aG8gYXJlIHByb2dyYW1tZXJzIGFuZCB3aG9zZQptaW5k cyBhcmUgdHJhaW5lZCB0byB0aGluayBpbiB0ZXJtcyBvZiBtZWFuaW5nZnVsIHB1bmN0dWF0aW9u LCBidXQKbW9zdCBwZW9wbGUncyBtaW5kcyBqdXN0IGRvbid0IHRoaW5rIHRoYXQgd2F5LgoKVGhp cyBpcyBleGFjdGx5IHdoeSBQRVAgMjkyIChodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMv cGVwLTAyOTIvKQp3YXMgd3JpdHRlbi4gSXQgcmVwbGFjZXMgdGhlICIlKGZvbylzIiBzeW50YXgg d2l0aCBhIHNpbXBsZXIgc3ludGF4LAoiJGZvbyIuIChXaXRoIHRoZSBvcHRpb24gb2YgIiR7Zm9v fSIgaWYgZGlzYW1iaWd1YXRpb24gaXMgbmVlZGVkLAplLmcuLCAiJHtub3VufWlmaWNhdGlvbiIp LgoKUEVQIDI5MiBpcyBpbiB0aGUgc3RkbGliIGFzIG9mIFB5dGhvbiAyLjQgKGFzIHRoZSBzdHJp bmcuVGVtcGxhdGUKY2xhc3MpLCBidXQgaXRzIGltcGxlbWVudGF0aW9uIGluIHRoZSBzdHJpbmcg bW9kdWxlIHdvdWxkIGVhc2lseSB3b3JrCnVuZGVyIFB5dGhvbiAyLjIgYW5kIGFib3ZlLiAoVGhl IG9ubHkgcG9zdC0yLjIgZmVhdHVyZXMgaXQgdXNlcyBhcmUKdGhlIG5hbWVzIFRydWUgYW5kIEZh bHNlKS4gVGhlIGltcGxlbWVudGF0aW9uIGluIHRoZSBzdGRsaWIgaXMgYWJvdXQKMTAwIGxpbmVz IG9mIGNvZGUsIHNvIGl0IHNob3VsZG4ndCBiZSB0b28gY29tcGxpY2F0ZWQgdG8gYWRkIHRvCkNv bmZpZ09iai4KClN0cmluZyBpbnRlcnBvbGF0aW9uIGNhbiBiZSBhIGhhbmR5IGZlYXR1cmUuIEkn ZCBsaWtlIHRvIHNlZSBpdCBhcwpzaW1wbGUgYXMgcG9zc2libGUuCgotLSAKUm9iaW4gTXVubgpS b2Jpbi5NdW5uQGdtYWlsLmNvbQpHUEcga2V5IDB4RDY0OTcwMTQK |
|
From: <fuz...@vo...> - 2006-05-21 18:32:51
|
{ran_emo} There is an updated version of `ConfigObj </python/configobj.html>`_ in the `Subversion Repository <http://svn.pythonutils.python-hosting.com/trunk/pythonutils/>`_.
This is version *4.3.2alpha*, and has a couple of bugfixes and minor enhancements. These are mainly related to the new `unrepr mode </python/configobj.html#unrepr-mode>`_.
* Fixed bug where '\n' terminated files could have the last '\n' removed when writing.
* Bugfix in ``unrepr`` mode, it couldn't handle '#' in strings. (Thanks to Philippe Normand for the report.)
* As a consequence of this fix, ConfigObj doesn't now keep inline comments in ``unrepr`` mode. This is because the parser in the `compiler package <http://docs.python.org/lib/compiler.html>`_ loses the comments. {sm;:-)}
* Error messages are now more useful. They tell you the number of parsing errors and the line number of the first error.
* Line numbers in exceptions now start at 1, not 0.
* Errors in ``unrepr`` mode are now handled the same way as in the normal mode. The errors stored will be an ``UnreprError``.
There has been some interesting ConfigObj activity recently :
* `Kevin Dangoor approves of unrepr mode <http://groups.google.com/group/docudo/tree/browse_frm/thread/e64fbba272bf4e74/838bc5b73d2314c8#doc_b541ba9ba6d52039>`_.
*ConfigObj is like a human-readable simple pickle...*
* The `Fluendo <http://www.fluendo.com/>`_ `Elisa Project <https://core.fluendo.com/elisa/trac/wiki>`_ now uses ConfigObj.
*Elisa is a new open media center system to watch, listen, manage and share video, file and music. The box is working under Linux (and later under windows). It uses Gstreamer, Python and OpenGL.*
* The `BioCede Complete Windows Development Environment <http://biocede.com/Developer/pythondev/pythondevenv.html>`_ recommends ConfigObj.
*This is a rough draft of a doc about what tools I have selected for a 'complete' development environment using Python on the Windows platform.* |
|
From: Michael F. <fuz...@vo...> - 2006-05-21 00:57:27
|
Kevin Dangoor wrote: > Hi Michael, > > How about for unrepr mode only accepting comments at the beginning of > the line? (ignoring any start-of-line whitespace) I can't imagine > anyone really having an issue with that. Cool - they're better than inline comments anyway. :-) Nice one. Michael > > Kevin > > On 5/20/06, Michael Foord <fuz...@vo...> wrote: >> Hello Kevin, >> >> How important a feature for Turbogears is it that ConfigObj preserves >> comments when reading config files in unrepr mode ? >> >> There is currently a bug in the ConfigObj handling of unrepr mode. >> >> It currently parses each value to remove (and preserve) the comment. >> >> The bug is that it can't handle strings with '#' marks in them. In order >> to work out if a '#' marks the start of a comment, ConfigObj would have >> to be able to parse Python expressions. >> >> If I hand the value (with the comment still in place) straight to the >> ``unrepr`` function, it handles the comment fine. It is built on top of >> the ``compiler.parse`` function, so it is using a real parser of course. >> ``compiler.parse`` doesn't return the comment. As it loses whitespace I >> can't easily work out where it has stopped parsing either. >> >> So I can fix the bug by losing comments in unrepr mode, or I can search >> for another workaround. >> >> All the best, >> >> Michael Foord >> http://www.voidspace.org.uk/python/shareware.shtml >> > > |
|
From: Michael F. <fuz...@vo...> - 2006-05-21 00:44:56
|
Hello Kevin, How important a feature for Turbogears is it that ConfigObj preserves comments when reading config files in unrepr mode ? There is currently a bug in the ConfigObj handling of unrepr mode. It currently parses each value to remove (and preserve) the comment. The bug is that it can't handle strings with '#' marks in them. In order to work out if a '#' marks the start of a comment, ConfigObj would have to be able to parse Python expressions. If I hand the value (with the comment still in place) straight to the ``unrepr`` function, it handles the comment fine. It is built on top of the ``compiler.parse`` function, so it is using a real parser of course. ``compiler.parse`` doesn't return the comment. As it loses whitespace I can't easily work out where it has stopped parsing either. So I can fix the bug by losing comments in unrepr mode, or I can search for another workaround. All the best, Michael Foord http://www.voidspace.org.uk/python/shareware.shtml |
|
From: Michael F. <fuz...@vo...> - 2006-05-17 13:01:14
|
Philippe Normand wrote:
> Hi Michael,
>
> I think i've found a little bug. Here is a failing unit-test for
> ConfigObj 4.3.1:
>
> Test # with unrepr
> >>> a = '''
> ... key1 = (1, 2, 3) # comment
> ... key2 = True
> ... key3 = 'a string'
> ... key4 = [1, 2, 3, 'a mixed list#']
> ... '''.splitlines()
> >>> b = ConfigObj(a, unrepr=True)
> >>> b == {'key1': (1, 2, 3),
> ... 'key2': True,
> ... 'key3': 'a string',
> ... 'key4': [1, 2, 3, 'a mixed list#']}
> 1
>
> Parsing fails when i put a sharp somewhere in a list option.
>
Ok, cool. Sounds like a bug somewhere in the horrible regular expressions.
Thanks for the report and providing a test.
I'll fix it and let you know.
Fuzzyman
http://www.voidspace.org.uk/python/index.shtml
> Philippe
>
>
>
|
|
From: Kevin D. <da...@gm...> - 2006-05-15 21:11:49
|
On 5/15/06, Michael Foord <fuz...@vo...> wrote: > (Copied to configobj-develop list for info). > > I note the Turbogears ticket #863 : You're more on top of things than I am! :) http://groups.google.com/group/turbogears-tickets/browse_frm/thread/74d73f3= f7ac7a1db/b0f4f50a4b700de3 > > This is about error messages from ConfigObj about invalid syntax. > > Would you like me to address this ? (It is complaining that a syntax > error in the config file, when in unrepr mode, gives an unhelpful error > message.) > > What do you want in the error message ? I can add a line number, is > there anything more helpful than "Undefined Name" that you can think of ? Line number is definitely a bonus. If it's possible to say exactly what name is undefined, it seems like that'd be useful as well. Thanks! Kevin |
|
From: Michael F. <fuz...@vo...> - 2006-05-15 19:47:59
|
Hello Kevin, (Copied to configobj-develop list for info). I note the Turbogears ticket #863 : http://groups.google.com/group/turbogears-tickets/browse_frm/thread/74d73f3f7ac7a1db/b0f4f50a4b700de3 This is about error messages from ConfigObj about invalid syntax. Would you like me to address this ? (It is complaining that a syntax error in the config file, when in unrepr mode, gives an unhelpful error message.) What do you want in the error message ? I can add a line number, is there anything more helpful than "Undefined Name" that you can think of ? Fuzzyman http://www.voidspace.org.uk/python/index.shtml |
|
From: <fuz...@vo...> - 2006-04-29 12:34:13
|
{ran_emo} `ConfigObj 4.3.1 <http://www.voidspace.org.uk/python/configobj.html>`_ and `validate 0.2.2 <http://www.voidspace.org.uk/python/validate.html>`_ are now available.
These are both minor bugfix/feature enhancement releases.
.. raw:: html
{title;What is New in ConfigObj ?}
Changes since **ConfigObj** 4.3.0 :
* Added ``validate.py`` back into ``configobj.zip``. (Thanks to Stewart Midwinter)
* Updated to `validate.py`_ 0.2.2.
* Preserve tuples when calling the ``dict`` method. (Thanks to Gustavo Niemeyer.)
* Changed ``__repr__`` to return a string that contains ``ConfigObj({ ... })``.
* Change so that an options dictionary isn't modified by passing it to ConfigObj. (Thanks to Artarious.)
* Added ability to handle negative integers in ``unrepr``. (Thanks to Kevin Dangoor.)
.. raw:: html
{title;What is New in validate ?}
Changes since **validate** 0.2.1 :
* Addressed bug where a string would pass the ``is_list`` test. (Thanks to Konrad Wojas.)
.. raw:: html
{title;What is ConfigObj ?}
**ConfigObj** is a simple but powerful config file reader and writer: an *ini file round tripper*. Its main feature is that it is very easy to use, with a straightforward programmer's interface and a simple syntax for config files. It has lots of other features though :
* Nested sections (subsections), to any level
* List values
* Multiple line values
* String interpolation (substitution)
* Integrated with a powerful validation system
- including automatic type checking/conversion
- repeated sections
- and allowing default values
* All comments in the file are preserved
* The order of keys/sections is preserved
* No external dependencies
* Full Unicode support
* A powerful ``unrepr`` mode for storing basic datatypes
.. raw:: html
{title;What is validate ?}
`validate.py <http://www.voidspace.org.uk/python/validate.html>`_ is a module for validating values against a specification. It can be used with **ConfigObj**, or as a standalone module.
It is extensible, and as well as doing type conversion from strings, you can easily implement your own functions for transforming values in any way you please. |
|
From: Michael F. <fuz...@vo...> - 2006-04-24 22:29:15
|
Gustavo Niemeyer wrote: > Hello Michel, > > I was wondering if it would be possible to make the ConfigObj.dict() > method return tuples as tuples? More specifically, the following > lines of the dict() method transform tuples to lists while > copying them: > > elif isinstance(this_entry, (list, tuple)): > # create a copy rather than a reference > this_entry = list(this_entry) > > I have some code using this method, and this is currently breaking > usage of the unrepr mode of ConfigObj when tuples are expected to > be tuples. > This, and several other patches, are now in SVN. If nothing comes up in the next few days I'll do a 4.3.1 release. Fuzzyman http://www.voidspace.org.uk/python/index.shtml > I'm patching it locally, but it'd be nice if that change could be > integrated upstream. > > Thanks, > > |
|
From: Michael F. <fuz...@vo...> - 2006-04-24 20:28:14
|
Gustavo Niemeyer wrote: > Hello Michel, > > I was wondering if it would be possible to make the ConfigObj.dict() > method return tuples as tuples? More specifically, the following > lines of the dict() method transform tuples to lists while > copying them: > > elif isinstance(this_entry, (list, tuple)): > # create a copy rather than a reference > this_entry = list(this_entry) > > I have some code using this method, and this is currently breaking > usage of the unrepr mode of ConfigObj when tuples are expected to > be tuples. > Ok, I'll look at this. It seems like a trivial and harmless change. Let me know if it needs patching anywhere else as well. Fuzzyman http://www.voidspace.org.uk/python/index.shtml > I'm patching it locally, but it'd be nice if that change could be > integrated upstream. > > Thanks, > > |
|
From: Michael F. <fuz...@vo...> - 2006-04-23 21:47:12
|
Artarious wrote: > Here is a patch which you may find useful. The reason I needed this > patch was, the dict which I passed in to 'options' got modified if I > also have kwargs. This fixes it. As an added bonus, options can now > be anything that can instantiate a proper dict. > I've added this. It will be in SVN tomorrow and a new release will follow in a couple of days. Fuzzyman http://www.voidspace.org.uk/python/index.shtml > Best regards. > > > --- configobj.py 2006-04-06 21:27:08.000000000 +0800 > +++ new\configobj.py 2006-04-23 16:48:18.039971200 +0800 > @@ -960,6 +960,8 @@ > infile = [] > if options is None: > options = {} > + else: > + options = dict(options) > # keyword arguments take precedence over an options dictionary > options.update(kwargs) > # init the superclass > > > > ------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > > |
|
From: Michael F. <fuz...@gm...> - 2006-04-23 21:45:21
|
On 11/04/06, Konrad Wojas <th...@wo...> wrote: > > Using is_list for is_string in validate.py is a bad idea, because if you > specify that 'foo' is a string_list and you enter a string 'bar' into > the config file instead of a list, you get the list ['b', 'a', 'r'] as > value instead of an error. I agree there is a problem here. The problem is that a string passes the 'is_list' test. In addition to your patch I have explicitly added a fail where a string is passed to 'is_list'. (Which of course means that 'is_string' can no longer use 'is_list' as your patch addresses. This fix will be in SVN by tomorrow. Hopefully a new release will follow in the next few days as there are now a couple of changes to ConfigObj as well= . Fuzzyman http://www.voidspace.org.uk/python/index.shtml Kind regards, > -- > Konrad Wojas > The Health Agency BV > http://www.thehealthagency.com > th...@wo... > > > -- http://www.Voidspace.org.uk The Place where headspace meets cyberspace. Online resource site - covering science, technology, computing, cyberpunk, psychology, spirituality, fictio= n and more. --- http://www.Voidspace.org.uk/python/index.shtml Python utilities, modules and apps. Including Nanagram, Dirwatcher and more. --- http://www.fuchsiashockz.co.uk http://groups.yahoo.com/group/void-shockz --- Everyone has talent. What is rare is the courage to follow talent to the dark place where it leads. -Erica Jong Ambition is a poor excuse for not having sense enough to be lazy. -Milan Kundera |
|
From: Michael F. <fuz...@vo...> - 2006-04-23 09:09:23
|
Artarious wrote:
> Here is a patch which you may find useful. The reason I needed this
> patch was, the dict which I passed in to 'options' got modified if I
> also have kwargs. This fixes it. As an added bonus, options can now
> be anything that can instantiate a proper dict.
>
Looks sensible Artarious.
Thanks
Fuzzyman
> Best regards.
>
>
> --- configobj.py 2006-04-06 21:27:08.000000000 +0800
> +++ new\configobj.py 2006-04-23 16:48:18.039971200 +0800
> @@ -960,6 +960,8 @@
> infile = []
> if options is None:
> options = {}
> + else:
> + options = dict(options)
> # keyword arguments take precedence over an options dictionary
> options.update(kwargs)
> # init the superclass
>
>
>
> -------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Configobj-develop mailing list
> Con...@li...
> https://lists.sourceforge.net/lists/listinfo/configobj-develop
>
>
|
|
From: Artarious <art...@gm...> - 2006-04-23 09:04:14
|
Here is a patch which you may find useful. The reason I needed this
patch was, the dict which I passed in to 'options' got modified if I
also have kwargs. This fixes it. As an added bonus, options can now
be anything that can instantiate a proper dict.
Best regards.
--- configobj.py 2006-04-06 21:27:08.000000000 +0800
+++ new\configobj.py 2006-04-23 16:48:18.039971200 +0800
@@ -960,6 +960,8 @@
infile = []
if options is None:
options = {}
+ else:
+ options = dict(options)
# keyword arguments take precedence over an options dictionary
options.update(kwargs)
# init the superclass
|
|
From: Michael F. <fuz...@vo...> - 2006-04-22 23:02:00
|
Stewart Midwinter wrote: > According to the commentary on the configobj homepage, > "# > configobj.zip from Voidspace > This also contains validate.py , the API Docs and this document." > > No big problem (the install process complains), but that zip file is > missing validate.py. > > You can still get it off the download page. > > Oops... an oversight. I have minor outstanding patches for both ConfigObj and validate, so I'd better apply these and do a new release to rectify. Thanks Fuzzyman http://www.voidspace.org.uk/python/index.shtml > cheers > S > > Stewart Midwinter > Please respond to st...@mi... > Visit http://midwinter.ca or http://midtoad.org > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > > |
|
From: Stewart M. <mi...@ya...> - 2006-04-14 04:10:16
|
According to the commentary on the configobj homepage,
"#
configobj.zip from Voidspace
This also contains validate.py , the API Docs and this document."
No big problem (the install process complains), but that zip file is
missing validate.py.
You can still get it off the download page.
cheers
S
Stewart Midwinter
Please respond to st...@mi...
Visit http://midwinter.ca or http://midtoad.org
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
|
|
From: Michael F. <fuz...@vo...> - 2006-04-13 19:41:04
|
Hello all, Just to let you know that I move house tomorrow. That means I'll be offline until Thursday - that's if NTL are true to their word and connect us on Tuesday. I will have email at work of course (new job starts Tuesday !), but won't be able to do much project work. All the best, Fuzzyman http://www.voidspace.org.uk/python/index.shtml |
|
From: Michael F. <fuz...@vo...> - 2006-04-13 08:03:20
|
Stewart Midwinter wrote:
> Hi Fuzzy, I have a question about round-tripping in ConfigObj, as per
> the "product description".
>
> My expectation was that if I parse an input file with configobj and
> then write back to the file with configobj, my comments would be
> retained. But it seems that they are not.
>
>
>>>> from configobj import ConfigObj
>>>> text = open('pwadmin.ini').read()
>>>> text
>>>>
> '#initial settings for pwadmin.py\npwProjectHome =
> C:\\Programs\\PipeWorksB\\lib
> \\python\\admin'
>
>>>> attributes = ConfigObj('pwadmin.ini')
>>>> attributes
>>>>
> {'pwProjectHome': 'C:\\Programs\\PipeWorksB\\lib\\python\\admin'}
>
>>>> attributes.initial_comment
>>>>
> ['#initial settings for pwadmin.py']
>
>>>> config = ConfigObj(attributes)
>>>> config.filename = 'pwadmin.out.ini'
>>>> config.write()
>>>> text = open('pwadmin.out.ini').read()
>>>> text
>>>>
> 'pwProjectHome = C:\\Programs\\PipeWorksB\\lib\\python\\admin'
>
>
> It looks as though, if I want comments retained in my settings file,
> I will have to manually write out initial comments, then section
> comments (if any), then final comments. Is that correct? I don't
> see this aspect explicitly addressed in the documentation.
>
>
What you're doing in the above example is creating a ConfigObj instance
from another one :
config = ConfigObj(attributes)
That copies the values, but it doesn't copy all the comments. Is there
any reason why you can't just do the following :
cfg = ConfigObj('pwadmin.ini')
cfg.filename = 'pwadmin.out.ini'
cfg.write()
Fuzzyman
http://www.voidspace.org.uk/python/index.shtml
> thanks
> Stewart in Calgary
>
>
> Stewart Midwinter
> Please respond to st...@mi...
> Visit http://midwinter.ca or http://midtoad.org
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by xPML, a groundbreaking scripting language
> that extends applications into web and mobile media. Attend the live webcast
> and join the prime developer group breaking into this new coding territory!
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
> _______________________________________________
> Configobj-develop mailing list
> Con...@li...
> https://lists.sourceforge.net/lists/listinfo/configobj-develop
>
>
|