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: Michael F. <mi...@pc...> - 2005-11-08 15:43:19
|
Hello Brendan, brendan simons wrote: > Hi all, > > I'm just sitting down to write a new project, and I > was considering using ConfigObj for my application. > However I'm not sure how one would express the > structure of my data in your file format. ConfigObj is designed for mapping names to values (like a config file - and also like a dictionary). We also store the order of keys - so effectively a section in a ConfigObj is a list of values. Each value *can* be a sub-section - so every section can be a list of sections. You can have individual values as lists - but not lists of dictionaries. Everywhere you need a dictionary you should make it a section. > To > illustrate, my data looks like something like this (in > python): > > #-----------------begin example--------------------- > param1 = 1 > param2 = 2 > #etc > > #the following is an arbitrarily long list > models = [ > Model( > mParam1 = 4, > mParam2 = 5, > #etc > > #the following is another arbitrarily long > list > mListParams = [ > mlParam1 = ModelInner( > miParam1 = 6, > miParam2 = 7 > ), > mlParam2 = ModelInner( > miParam1 = 7, > miParam2 = 8 > ) > ] > ) > > Model( > mParam1 = 4, > mParam2 = 5, > #etc > > #the following is another arbitrarily long > list > mListParams = [ > mlParam1 = ModelInner( > miParam1 = 6, > miParam2 = 7 > ), > mlParam2 = ModelInner( > miParam1 = 7, > miParam2 = 8 > ) > ] # end of mListParams > ) #end of model > ] #end of models list > > #----------------end example-------------------------- > > > Reading the ConfigObj docs, I can see how to make > nested structure. But the parser seems heavily geared > towards nested dictionaries. I'm not sure how to > describe the nested lists. I could the lists into > dicts before saving and after opening by giving them > keys like "value1", "value2" etc, but I'd rather use a > standard approach. Does ConfigObj have the facility > to do this automatically? > You could turn your lists into dictionaries before putting them into a ConfigObj section. You would lose order doing this. If you put them straight into the ConfigObj it will retain the order you do it in. Below is my approximation of your example data structure, as a ConfigObj file. #-----------------begin example--------------------- param1 = 1 param2 = 2 #etc # the following is an arbitrarily long list # it needs to be a section [models] # each model is itself a subsection [[Model 1]] mParam1 = 4 mParam2 = 5 #etc #the following is another arbitrarily long list # so it also needs to be a sub-section [[[mListParams]]] # if these keys need to be named # they also need to be a sub-section # they could just be a list "mlParam1 = 6, 7" [[[[mlParam1]]]] miParam1 = 6 miParam2 = 7 [[[[mlParam2]]]] miParam1 = 7 miParam2 = 8 [[Model2]] mParam1 = 4 mParam2 = 5 #etc #the following is another arbitrarily long list # so it also needs to be a sub-section [[[mListParams]]] # if these keys need to be named # they also need to be a sub-section # they could just be a list "mlParam1 = 6, 7" [[[[mlParam1]]]] miParam1 = 6 miParam2 = 7 [[[[mlParam2]]]] miParam1 = 7 miParam2 = 8 > #----------------end example-------------------------- You will need to write a simple function to convert to and from the ConfigObj instance to your data structure. You might find it easy to do that using validate. You can write a configspec which specifies the 'type' of each member - and it will do the conversion when you validate. (As per Nicola's email) Alternatively you could look at ConfigPersist.py - it contains examples of using ConfigObj for data persistence. http://www.voidspace.org.uk/python/articles/configobj_for_data_persistence.shtml All the best, Fuzzyman http://www.voidspace.org.uk/python > Thanks in advance, > Brendan > > > > > > > __________________________________________________________ > Find your next car at http://autos.yahoo.ca > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > > > |
From: Nicola L. <ni...@te...> - 2005-11-08 15:35:56
|
> Reading the ConfigObj docs, I can see how to make > nested structure. But the parser seems heavily geared > towards nested dictionaries. I'm not sure how to > describe the nested lists. I could the lists into > dicts before saving and after opening by giving them > keys like "value1", "value2" etc, but I'd rather use a > standard approach. Does ConfigObj have the facility > to do this automatically? You should be able to use Repeated Sections to do this: http://www.voidspace.org.uk/python/configobj.html#repeated-sections For a larger example, see the doctest at line #1791 of configobj.py . -- Nicola Larosa - ni...@te... No inventions have really significantly eased the cognitive difficulty of writing scalable concurrent applications and it is unlikely that any will in the near term. [...] Most of all, threads do not help, in fact, they make the problem worse in many cases. -- G. Lefkowitz, August 2005 |
From: brendan s. <spa...@ya...> - 2005-11-08 15:01:26
|
Hi all, I'm just sitting down to write a new project, and I was considering using ConfigObj for my application. However I'm not sure how one would express the structure of my data in your file format. To illustrate, my data looks like something like this (in python): #-----------------begin example--------------------- param1 = 1 param2 = 2 #etc #the following is an arbitrarily long list models = [ Model( mParam1 = 4, mParam2 = 5, #etc #the following is another arbitrarily long list mListParams = [ mlParam1 = ModelInner( miParam1 = 6, miParam2 = 7 ), mlParam2 = ModelInner( miParam1 = 7, miParam2 = 8 ) ] ) Model( mParam1 = 4, mParam2 = 5, #etc #the following is another arbitrarily long list mListParams = [ mlParam1 = ModelInner( miParam1 = 6, miParam2 = 7 ), mlParam2 = ModelInner( miParam1 = 7, miParam2 = 8 ) ] # end of mListParams ) #end of model ] #end of models list #----------------end example-------------------------- Reading the ConfigObj docs, I can see how to make nested structure. But the parser seems heavily geared towards nested dictionaries. I'm not sure how to describe the nested lists. I could the lists into dicts before saving and after opening by giving them keys like "value1", "value2" etc, but I'd rather use a standard approach. Does ConfigObj have the facility to do this automatically? Thanks in advance, Brendan __________________________________________________________ Find your next car at http://autos.yahoo.ca |
From: Michael F. <mi...@pc...> - 2005-11-08 12:59:52
|
ConfigObj 4.0.1 is now in SVN. My apologies for any confusion... All the best, Fuzzyman http://www.voidspace.org.uk/python |
From: <mi...@pc...> - 2005-11-05 23:55:45
|
{emo;envelope} A couple (or so) of pieces of ConfigObj__ related news. I've just discovered that ConfigObj is in bazaar__ 0.6 (*the* Python distributed {acro;VCS;Version Control System}). It's used to read ``bazaar.conf`` and ``branches.conf``. This is a high profile project - so it's nice to see ConfigObj being used. http://bazaar-ng.org/bzr/bzr.dev/NEWS ConfigObj continues to be pretty popular - ConfigObj and pythonutils__ (which contains ConfigObj) get at least ten downloads a day via voidspace [#]_. Based on my own habits I use about one in thirty of the interesting code/projects that I download. That means a new user every three days. I've also just received and squashed a bug report. There was a bug in the ``walk`` section method - if you use walk to change member names. It's now fixed. {sm;:-)} It's highlighted a nice use-case for walk, which I wasn't sure if anyone would use at all. You can create a template config file with placeholders in names and values. When you need to create a new config file (E.g. to add a new user to an application) you can use ``walk`` to replace the placeholders with appropriate values in member names, section names, and values. .. raw:: html {+coloring} # We use 'XXXX' as a placeholder # config is our template config file config = ''' XXXXkey1 = XXXXvalue1 XXXXkey2 = XXXXvalue2 XXXXkey3 = XXXXvalue3 [XXXXsection1] XXXXkey1 = XXXXvalue1 XXXXkey2 = XXXXvalue2 XXXXkey3 = XXXXvalue3 [XXXXsection2] XXXXkey1 = XXXXvalue1 XXXXkey2 = XXXXvalue2 XXXXkey3 = XXXXvalue3 [[XXXXsection1]] XXXXkey1 = XXXXvalue1 XXXXkey2 = XXXXvalue2 XXXXkey3 = XXXXvalue3 '''.splitlines() # # create a config object # normally we'd read from a file to do this cfg = ConfigObj(config) # # this is our function that does replacement # in the config file def transform(section, key): val = section[key] # change the member name newkey = key.replace('XXXX', 'CLIENT1') section.rename(key, newkey) if isinstance(val, (tuple, list, dict)): pass else: # change the value - only if it isn't # a section (dict) or a list value val = val.replace('XXXX', 'CLIENT1') section[newkey] = val # cfg.walk(transform, call_on_sections=True) print cfg {'CLIENT1key1': 'CLIENT1value1', 'CLIENT1key2': 'CLIENT1value2', 'CLIENT1key3': 'CLIENT1value3', 'CLIENT1section1': {'CLIENT1key1': 'CLIENT1value1', 'CLIENT1key2': 'CLIENT1value2', 'CLIENT1key3': 'CLIENT1value3'}, 'CLIENT1section2': {'CLIENT1key1': 'CLIENT1value1', 'CLIENT1key2': 'CLIENT1value2', 'CLIENT1key3': 'CLIENT1value3', 'CLIENT1section1': {'CLIENT1key1': 'CLIENT1value1', 'CLIENT1key2': 'CLIENT1value2', 'CLIENT1key3': 'CLIENT1value3'}}} # all the occurences of 'XXXX' have been changed {-coloring} (Thanks to M. Gehling for the bug report). I've added an ``istrue`` section method. This will fetch string values as booleans. The following are interpreted as ``True`` (not case sensitive) : :: true, yes, on, 1 The following are ``False`` : :: false, no, off, 0 Anything else raises a ``ValueError``. We have also *finally* [#]_ resolved the issue with ``list_values=False``. This is when **ConfigObj** doesn't parse values as list values. Previously when unquoting it could do the wrong thing. The quoting and unquoting was also causing a user some problems. I've settled on a behaviour which solves both problems in one go. There is now a note in the docs which explains it : The ``list_values`` attribute [and option] is ``True`` or ``False``. If set to ``False`` then values are not parsed for list values. In addition single line values are not unquoted. This allows you to do your own parsing of values. It exists primarily to support the reading of the `configspec </python/configobj.html#configspec>`_ - but has other use cases. For example you could use the ``LineParser`` from `listquote </python/listquote.html#lineparser>`_ to read values for nested lists. Single line values aren't quoted when writing - but multiline values are handled as normal. .. caution:: Because values aren't quoted when writing, leading or trailing whitespace can be lost. This behaviour was changed in version 4.0.1. Prior to this, single line values might have been quoted; even with ``list_values=False``. This means that files written by **ConfigObj** *could* now be incompatible - and need the quotes removing by hand. These changes are in the **ConfigObj 4.0.1** release. ----- .. [#] Plus more from PyPi__, sourceforge__, gentoo-portage__, etc. {sm;:biggrin:} .. [#] Well I hope finally, so long as no-one objects to the change. {sm;:neutral:} __ /python/modules.shtml#configobj __ http://bazaar-ng.org __ /python/pythonutils.html __ http://cheeseshop.python.org/pypi/pythonutils __ http://sf.net/projects/configobj __ http://packages.gentoo.org/packages/?category=dev-python;name=pythonutils |
From: <mi...@pc...> - 2005-11-05 11:32:11
|
Quoting Rob Cakebread <pyt...@ge...>: > Hello, > > I'm having a problem with values with commas in them. I discovered > list_values=False, which I use to avoid turning values into lists. > That works great: > > c = ConfigObj(config_file, list_values=False) > > The problem is when I write the config file, ConfigObj adds quotes > around values with commas. Should 'list_values=False' turn off that > behavior, or is there another way to avoid having quotes added? > Hello Rob, The problem we currently have is that unquoting (when reading) -with 'list_values=False' - can sometimes do the wrong thing. One answer would be to sitch off quoting/unquoting when 'list_values=False'. This would work for both of us, with the side effect that leading or trailing whitespace in values would be lost when writing. I *could* add an extra option "quote_list_values_off" which defaults to ``False``. An extra option is extra complexity though. As 'list_values=False' will not be used by very many people I think I'd rather just accept (and codument) the side effect. (Unless anyone else speaks up here). I'll implement this for ConfigObj 4.0.2 in the next couple of days. 4.0.1 is available by the way - this fixes the bug in ``walk`` and adds an ``istrue`` section method for fetching boolean values. All the best, Fuzzyman http://www.voidspace.org.uk/python > It wouldn't be a big deal, but I want to include ConfigObj in > an existing app and would have to change a lot of existing > code. > > I really like ConfigObj, great work guys. I'm using it in Planet > Plus[1] with CherryPy to generate web-based forms to edit config.ini's. > > Thanks, > Rob > > [1] http://planetplus.python-hosting.com/ > > > -- > Rob Cakebread > Gentoo Linux Developer > Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x96BA679B > Key fingerprint = 5E1A 57A0 0FA6 939D 3258 8369 81C5 A17B 96BA 679B > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > |
From: <mi...@pc...> - 2005-11-05 10:15:23
|
Quoting Rob Cakebread <pyt...@ge...>: > Hello, > > I'm having a problem with values with commas in them. I discovered > list_values=False, which I use to avoid turning values into lists. > That works great: > > c = ConfigObj(config_file, list_values=False) > > The problem is when I write the config file, ConfigObj adds quotes > around values with commas. Should 'list_values=False' turn off that > behavior, or is there another way to avoid having quotes added? > There is another issue with ``list_values=False`` as well - so it does need looking at. Maybe we can make a decision that resolves both issues at once. The *main* reason that the option is there, is to read configspecs. So long as we don't break that :-) I'll have a look at it. :-) Fuzzyman http://www.voidspace.org.uk/python > It wouldn't be a big deal, but I want to include ConfigObj in > an existing app and would have to change a lot of existing > code. > > I really like ConfigObj, great work guys. I'm using it in Planet > Plus[1] with CherryPy to generate web-based forms to edit config.ini's. > > Thanks, > Rob > > [1] http://planetplus.python-hosting.com/ > > > -- > Rob Cakebread > Gentoo Linux Developer > Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x96BA679B > Key fingerprint = 5E1A 57A0 0FA6 939D 3258 8369 81C5 A17B 96BA 679B > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > |
From: Rob C. <pyt...@ge...> - 2005-11-05 05:42:09
|
Hello, I'm having a problem with values with commas in them. I discovered list_values=False, which I use to avoid turning values into lists. That works great: c = ConfigObj(config_file, list_values=False) The problem is when I write the config file, ConfigObj adds quotes around values with commas. Should 'list_values=False' turn off that behavior, or is there another way to avoid having quotes added? It wouldn't be a big deal, but I want to include ConfigObj in an existing app and would have to change a lot of existing code. I really like ConfigObj, great work guys. I'm using it in Planet Plus[1] with CherryPy to generate web-based forms to edit config.ini's. Thanks, Rob [1] http://planetplus.python-hosting.com/ -- Rob Cakebread Gentoo Linux Developer Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x96BA679B Key fingerprint = 5E1A 57A0 0FA6 939D 3258 8369 81C5 A17B 96BA 679B |
From: Michael F. <mi...@pc...> - 2005-11-03 16:36:30
|
m.g...@gm... wrote: > Michael Foord schrieb: > >> Ok - I'll try and add an example. It is slightly weird. (Which for >> reference allows you to change the name and values of a ConfigObj by >> passing in a single function). > > > > to generate configfiles from a template > simple e.g. > [XXXXX_section] > key1 = blalba\XXXXX\value1.txt > > [CLIENT1_section] > key1 = blalba\CLIENT1\value1.txt > > [CLIENT2_section] > key1 = blalba\CLIENT2\value1.txt > Marc > ps. ok, i can replace XXXXX with CLIENT1 or CLIENT2, because your > module is more elegant ;-). > > You can use the ``encode`` and ``decode`` section methods as examples of using the walk method. You use the ``rename`` method to change the name of a key. Suppose you want to change 'XXXX' in values *and* names into 'CLIENT1', you define a function to do the transformation. A function passed to the walk method needs the argument signature : (section, key) Values can be lists or strings, or if the value is a section it will be a dictionary. Suppose we ignore lists and only do the replace on strings. So we define our function : def transform(section, key): val = section[key] if isinstance(val, (list, tuple, dict)): newval = val else: newval = val.replace('XXXX', 'CLIENT1') newkey = key.replace('XXXX', 'CLIENT1') section.rename(key, newkey) section[newkey] = newval So you can then call : config = ConfigObj(filename) config.walk(transform, call_on_sections=True) Does that help ? All the best, Fuzzyman http://www.voidspace.org.uk/python |
From: Michael F. <mi...@pc...> - 2005-11-03 08:55:29
|
m.g...@gm... wrote: > Hello, > first: great software, regrettably one funktion is complex; i try to > change the sectionname. I read the documentation and a hint to read the > code, because i dont`t understand it. > can you add a small example in the documentation with "call_on_sections > = True". Ok - I'll try and add an example. It is slightly weird. (Which for reference allows you to change the name and values of a ConfigObj by passing in a single function). When you add ``call_on_sections=True`` it allows you to transform section names as well as normal keys/values.... Have to be Monday now though, sorry. :-( Fuzzy > Marc > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. > Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > > > |
From: Michael F. <mi...@pc...> - 2005-11-03 08:36:59
|
Hello all, Just to clarify - ConfigObj *is* in the latest bazaar (0.6) distribution. It's used to read the bazaar.conf and branches.conf config files. They create a subclass of ConfigObj because they add two methods. One is to fetch a 'boolean' value (turn 'Yes' to ``True``), which used to be in ConfigObj 3. I'm thinking of adding this as a section method. The other method they have looks like support for legacy code. This is good news. Fuzzyman http://www.voidspace.org.uk/python Michael Foord wrote: > Hello all, > > (Well - both of you actually, but hello anyway). > > I discovered yesterday that ConfigObj is being used in the development > version of bazaar (a Python distributed SCC system). This is a > reasonably high profile project - so it will be nice to see if ConfigObj > makes it into the released version. > > http://bazaar-ng.org/bzr/bzr.dev/NEWS > > Thought you might like to know. :-) It's pretty popular - ConfigObj and > pythonutils (which has ConfigObj in it) get around ten downloads a day > via voidspace. Based on my own habits (I use about one in thirty of > code/projects that I download) that means a new user every three days. > > Unfortunately due to email problems - please use > fuz...@vo... (time to consider losing the pcblokes address > I think). > > All the best, > > Fuzzyman > http://www.voidspace.org.uk/python > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. Download > it for free - -and be entered to win a 42" plasma tv or your very own > Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Configobj-develop mailing list > Con...@li... > https://lists.sourceforge.net/lists/listinfo/configobj-develop > > > |
From: <m.g...@gm...> - 2005-11-03 07:05:44
|
Hello, first: great software, regrettably one funktion is complex; i try to change the sectionname. I read the documentation and a hint to read the code, because i dont`t understand it. can you add a small example in the documentation with "call_on_sections = True". Marc |
From: Michael F. <mi...@pc...> - 2005-11-02 19:26:24
|
Hello all, (Well - both of you actually, but hello anyway). I discovered yesterday that ConfigObj is being used in the development version of bazaar (a Python distributed SCC system). This is a reasonably high profile project - so it will be nice to see if ConfigObj makes it into the released version. http://bazaar-ng.org/bzr/bzr.dev/NEWS Thought you might like to know. :-) It's pretty popular - ConfigObj and pythonutils (which has ConfigObj in it) get around ten downloads a day via voidspace. Based on my own habits (I use about one in thirty of code/projects that I download) that means a new user every three days. Unfortunately due to email problems - please use fuz...@vo... (time to consider losing the pcblokes address I think). All the best, Fuzzyman http://www.voidspace.org.uk/python |
From: <mi...@pc...> - 2005-10-18 09:04:45
|
{emo;mobile} {acro;Ok;What Does Ok Stand For ?} you Python junkies - I've just done a fresh release. `ConfigObj 4.0.0 Final </python/configobj.html>`_ and `Pythonutils 0.2.3 </python/modules.shtml#pythonutils>`_ have just hit the streets. **ConfigObj** has two bug fixes - one trivial, and one worth updating for. ConfigObj is pretty thoroughly tested now, so I've marked it stable [#]_. **Pythonutils 0.2.3** contains the updated ConfigObj and also an updated version of `cgiutils </python/cgiutils.html>`_ [#]_. In celebration I've created a new `Pythonutils Page <http://cheeseshop.python.org/pypi?:action=display&name=Pythonutils>`_ over at the `cheeseshop <http://cheeseshop.python.org/pypi>`_. {sm;:wink:} .. [#] Caveat Emptor notwithstanding...... .. [#] **cgiutils** isn't *just* useful for {acro;CGI;Common Gateway Interface} programming. It has some handy functions for sending emails for example. |
From: Michael F. <mi...@pc...> - 2005-10-13 08:19:34
|
Hello All, I've checked in a minor bugfix to SVN. I don't think it will actually affect anyone though. :-) Seeing as I've had no other bug reports (and there are now two bugs fixed in SVN) - I'm proposing to do a 4.0.0 final release (no need for an RC phase IMO). This will be followed by a Pythonutils 0.2.3 release which also includes improvements to ``cgiutils``. Both Pythonutils and ConfigObj are getting steady downloads from Voidspace. All the Best, Fuzzyman http://www.voidspace.org.uk/python/ |
From: <mi...@pc...> - 2005-09-23 11:14:00
|
{emo;lighton} Yep, it's that time again.. there has been another set of updates to the Voidspace modules : * `Jalopy 0.6.0`__ A collaborative website designer (CGI). It uses Kupu__ the {acro;WYSIWYG} {acro;HTML} editor. This update moves to Kupu 1.3 and the pythonutils 0.2.2 set of modules. * `logintools 0.6.0`__ A CGI framework for user authentication and account management. Add user login to your CGI applications with two lines of code ! This update moves to the pythonutils 0.2.2 set of modules. logintools is now being used on another project and seeing some development work. * `textmacros`__ A textmacro system for adding features to docutils__. This update makes it *much* easier to use (it now behaves like the ``buildhtml.py`` script). Easily add Python source coloring, smilies, and acronyms (and much more) to {acro;ReST;reStructured Text}. * `downman 0.4.1`__ A CGI download manager. Present files for download and statistics (basic) about download rates. This update has a security fix and uses the pythonutils 0.2.2 set of modules. Also other minor updates. It also needs the updated version of cgiutils. * `cgiutils 0.3.3`__ A helpful set of constants and functions when working with CGI scripts. This update has two bugfixes. * `copy2cgi 1.1.1`__ A small convenience script to copy files and directories to a target location. Useful for copying files to a server directory for testing. * `pycrypto 2.0.1`__ I've (finally) updated the prebuild windows binary of PyCrypto__ (Python 2.4) to the 2.0.1 version. All the best {sm;:grin:} All the Voidspace modules and applications are available under the `OSI Approved Open Source BSD License`__. __ /python/cgi.shtml#jalopy __ http://kupu.oscom.org __ /python/cgi.shtml#logintools __ /python/modules.shtml#macros __ http://docutils.sourceforge.net __ /python/cgi.shtml#downman __ /python/recipebook.shtml#utils __ /python/recipebook.shtml#copy2cgi __ /python/modules.shtml#pycrypto __ http://www.amk.ca/python/code/crypto.html __ /python/license.shtml |
From: Michael F. <mi...@pc...> - 2005-09-16 14:41:11
|
Hello All, Another bugfix to ConfigObj has just gone into SVN. A slightly obscure one this time - using ``setdefault`` to create new sections *wouldn't* return a reference to the new section. Now fixed. It might be worth noting in the docs that when you create a new section (by any technique) the section is a *different* object to the one passed in (usually a dictionary). This is because the new section is a Section instance - so if you want to amend a section after creating one, you'll need a new reference to it. All that clear ? ;-) Fuzzyman http://www.voidspace.org.uk/python/ |
From: <mi...@pc...> - 2005-09-13 15:36:39
|
{emo;python} The response to pythonutils__ was very good. Especially the odict__ module (ordered dictionary) - it's had over one hundred and fifty downloads already. Thanks to some useful user feedback, Nicola has updated and improved it. More embarassingly I've done a bugfix release of ConfigObj__ - now up to beta 5. {sm;:oops:} All this is my way of saying that *odict 0.1.2*, *pythonutils 0.2.2*, and *ConfigObj beta 5*, are all available from the `Voidspace Modules`__ page. __ /python/pythonutils.html __ /python/odict.html __ /python/configobj.html __ /python/modules.shtml |
From: <mi...@pc...> - 2005-09-12 09:52:51
|
{emo;bugs} I've been porting all my apps and tools to use the new version of ConfigObj__. In the process I've uncovered two *more* moderately serious bugs. We weren't unquoting keys and a comma in an inline comment could be wrongly recognised as a list (a failing in the regular expression we used). These are now both in SVN__, along with an update to odict.py__. These include a barrage of improvements suggested by a gentleman called Tim Wegener (although it was pretty good in the first place). {sm;:-p} This means I'll be doing a ConfigObj *Beta 5* release, along with a Pythonutils__ 0.2.2 very soon. *sigh* __ /python/configobj.html __ https://svn.rest2web.python-hosting.com/branches/configobj4/ __ /python/odict.html __ /python/pythonutils.html |
From: Michael F. <mi...@pc...> - 2005-09-08 09:24:46
|
Hello Folks, Last night I discovered another bug in ConfigObj - this affected initialising a ConfigObj from an existing ConfigObj. Despite our best efforts subsections were still been created as references rather than new sections. This is now fixed in SVN and I have done a beta 4 release. (Which also fixes the bug in ``Section.__delitem__``). Hopefully there aren't too many more surprises to find :-) Having been ill yesterday I used the time to ponder on using ConfigObj for data persistence. (The main point being that it generates human readable/writable files). You can see the results at : http://www.voidspace.org.uk/python/articles/configobj_for_data_persistence.shtml http://www.voidspace.org.uk/python/configpersist.html All the best, Fuzzyman |