[Web-SIG] Generic configuration

Alex Morega alex at grep.ro
Thu Mar 18 10:10:30 CET 2010


On 17 Mar 2010, at 13:47, Manlio Perillo wrote:

> Alex Morega ha scritto:
>> On 17 Mar 2010, at 0:24, Manlio Perillo wrote:
>> 
>>> Alex Morega ha scritto:
>>>> Hello,
>>>> 
>>>> This is not really a WSGI question, it's more into general configuration, but I don't know of a better place to ask it.
>>>> 
>> [...]
>>> I use YAML with custom constructors:
>>> http://hg.mperillo.ath.cx/wsgix/file/tip/wsgix/conf/loader.py
>>> 
>>> There is a middleware:
>>> http://hg.mperillo.ath.cx/wsgix/file/tip/wsgix/conf/middleware.py
>>> that reads a list of configuration files to load from the WSGI environ
>>> (I set this in the Nginx mod_wsgi) configuration, and merge all the
>>> configuration in the WSGI environ.
>>> 
>>> Using custom YAML constructors it is possible to do something like:
>>> http://hg.mperillo.ath.cx/wsgix/examples/file/tip/dbview/settings.yml
>>> 
>> [...]
>> 
>> That's still configuring a piece of WSGI middleware or application. I'm thinking about something along these lines:
>> 
> 
> Yes, since it works quite differently from other frameworks.
> 
> Middleware are very easy to configure; in Nginx configuration file:
>   wsgi_middleware wsgix.conf.middleware;
> 
> 
> The reason is that how you want to store configuration parameters should
> not hard written in the framework.
> Using YAML in my framework does not prevent using other methods like
> ConfigParser or Python modules.
> 
>> =========================
>> [daemon]
>> factory = egg:PasteScript#wsgiutils
>> host = 127.0.0.1
>> port = 8000
>> app = my_site
>> 
>> [...]
>> 
> 
> If you want this, isn't it more simple and generic to use YAML?

Yaml buys you flexibility at the cost of readability, which might be a good trade-off, but that's not the point. You still need a tool that reads the configuration file and does the actual setup.

Does the wsgix configuration loader allow for plugins, i.e. defining my own constructors? Is it documented?

I chose to base my example on Paster configuration because it already knows about egg entry points and explicitly pointing to factory functions.

Cheers,
-- Alex



More information about the Web-SIG mailing list