From: Geoff T. <gta...@me...> - 2001-04-30 12:48:30
|
At 07:51 AM 4/30/2001 -0400, Chuck Esterbrook wrote: >Regarding my earlier post on RNV, the doc string fails to mention a >disadvantage of RNV over Python dict strings: You can't use formats like >%(count)3i or %(salary)0.2f > >Do any of the templating systems out there support this yet? Perhaps a: > $(count format=2i) >i for int, f for float > >Perhaps also leftAlign and rightAlign options: > $(name leftAlign=20) > >I'd hate to provide an RNV touted as more powerful than Python dict >strings that then leaves this capability behind. I know you want to keep this lightweight, but I have a few more ideas: Allow $(count formatter=myFormatter) where myFormatter is a function you provide in a dictionary of functions like so: formatters = {'myFormatter':myFormatter}. Then you can support whatever funky number and date formats you want. Also, how about allowing types and classes in there too as "default" formatters for those types? formatters = {types.IntType: myIntFormatter, MyClass: myClassFormatter} And finally, how about allowing just a single value in valueContainers instead of a list. So here's an example that shows all my desired features :-) rnv = replaceNamedValues foo = 'foo' bar = 24 qux = someFunctionThatReturnsADict() def fooFormatter(x): ... def intFormatter(x): ... def flimflamFormatter(x): ... print rnv('foo = $(foo formatter=fooFormatter); bar = $bar; qux.flimflam = $qux.flimflam', locals(), formatters = {'fooFormatter': fooFormatter, types.IntType: intFormatter, FlimFlam: flimFlamFormatter}) - Geoff |