[Python-Dev] New miniconf module (original) (raw)
Sylvain Fourmanoit syfou at users.sourceforge.net
Thu Jul 27 09:39:39 CEST 2006
- Previous message: [Python-Dev] JSON implementation in Python 2.6
- Next message: [Python-Dev] New miniconf module
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
An updated version is now available, based to the feedback of Phillip J. Eby and David Hopwood (stand-alone module[1], patch[2]):
- the module is now reentrant
- the sloppy case with Name nodes is now covered properly
- the node lookup procedure was optimized, leading to a 20% speed increase on the average case... Phillip, I was wrong to doubt you. ;-) There is undoubtedly still room from improvement, but that's a good start.
But I agree this looks a lot like JSON, since ecmascript syntax for literals looks a lot like the one of Python... For the same reasons there is a need for JSON, I think having something like miniconf in the standard lib would benefit the users. Actually, I would see more reason to include JSON in the standard library, since it's at least something approaching an internet protocol these days.
Having JSON there would indeed be nice: In fact, I recall being initially surprised it was not supported by the standard library.
But is there a need to choose? Why not have both? The miniconf approach has its advantages and differences:
The code is short and simple. Since all the real work is performed by the Python parser, very little has to be done on top of that: it should be easy to maintain, and will benefit of all the future work (patches, etc.) that will be integrated to it in the future.
The source it works on is valid Python source, which seems to be a plus for a dynamic, reflexive language such as Python... Things such as this will work:
from miniconf import dump file('test.py','w').write(dump({'spam': 1})) import test
I know this in not the best example, but you get the idea...
Unlike JSON, miniconf is not introducing any new notation or syntax at all: it uses a strict, well defined subset of the Python grammar that every Python user is already familiar with; it is in no way a data-interchange format, but it feels pretty natural in a all-python environment... In that sense, it is well documented and standardized.
Am I missing something, or is JSON not supporting comments inside the parse tree? That's not really convenient for storage of configuration information.
Anyway, if I had to choose between the two, I would definitively want simplejson part of the standard library well before miniconf, since it can be used in so many different situations, but I wouldn't choose JSON as a configuration format given the choice to use the Python notation employed by miniconf either.
Yours,
-- Sylvain <syfou at users.sourceforge.net>
Nobody said computers were going to be polite.
[1]http://cheeseshop.python.org/pypi?:action=display&name=miniconf&version=1.1.0 [2]http://sourceforge.net/tracker/index.php?func=detail&aid=1527597&group_id=5470&atid=355470
- Previous message: [Python-Dev] JSON implementation in Python 2.6
- Next message: [Python-Dev] New miniconf module
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]