[Python-Dev] New miniconf module (original) (raw)

Phillip J. Eby pje at telecommunity.com
Thu Jul 27 00:03:50 CEST 2006


At 05:43 PM 7/26/2006 -0400, Sylvain Fourmanoit wrote:

> The loading code could also be made a lot faster by using a dictionary > mapping AST node types to functions, instead of doing string > manipulation for each node. Each function could take 'pedantic' as a > parameter, which would eliminate the need to have an object at all, let > alone a singleton. > I am not convinced the current string manipulation for mapping the nodes types to the methods of the Load class has such a significant impact on performance, but I will test your suggestion...

I haven't tested this with your code specifically, but I know that in the past I have nearly tripled the speed of AST-visiting code by doing this; string manipulation plus attribute lookup is a lot more expensive than direct dictionary lookups.

The only difference with current code is that we use a dynamically computed string as the dictionary key to locate the function instead of the node type themselves as keys.

Actually you're doing string manipulation plus an attribute lookup, and attribute lookups can involve multiple dictionary lookups. But anyway, test and see what you get. :)

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.



More information about the Python-Dev mailing list