[Web-SIG] WSGI and Configuration
Ian Bicking
ianb at colorstudy.com
Sun Nov 14 14:14:34 CET 2004
Robert Brewer wrote:
>>Rather I would hope frameworks in the future will use this
>>convention, at least as an option. E.g., they could use an
>>environmental variable, native configuration files, etc.,
>>but if they see configuration values in some agreed-upon
>>location in the WSGI environ they'd use those as
>>well (maybe with precedence, or maybe as a fallback).
>
>
> I don't see any problem with the PEP as it stands (the "Application
> Configuration" section). Middleware and apps can read the environ
> variables they care about. As the PEP says:
>
> "But, most existing applications and frameworks will probably only need
> a single configuration value from environ, to indicate the location of
> their application or framework-specific configuration file(s)."
I'm not proposing this effect the WSGI PEP at all, or hold it up at all.
(BTW, Phillip: is there anything keeping it from going final just like
it is?)
>>This way at least the user has a chance of keeping their
>>configuration files under control. If they are already
>>scattered about, then they can probably stay that way.
>
>
> So you want them all in the same folder or file? I can't figure out
> exactly what concrete behavior you're trying to promote (or avoid). I'm
> getting lost in the rabbit holes. It seems to me there are at least five
> separate issues here:
>
> 1. How a given server populates wsgi environ dicts.
> 2. Dynamic imports from dotted package names. A minor issue, but
> recurring.
This is quite separate.
> 3. How to pass config data through a WSGI chain. In my mind, that's
> already specified: environ.
Either we put them as a normal environmental variable (e.g.,
environ['APP_INSTANCE_HOME']), or the are more structured and go in some
other variable. I'd like the more structured approach, as the
configuration can only be extremely minimal otherwise (i.e., point to
configuration files).
> 4. How to load and normalize complex config data from various sources:
> ini, xml, yaml, zconfig (heh, just noticed the "XYZ" acrostic ;).
That's a separate concern I'm not too worried about.
> 5. How to minimize config file "spread" (?)
This is what I'm thinking about (and it relates some to 1). If I have
an application that uses several separate components, I want the
application to have a single configuration file. And it's always nice
if you can give some of those values on the command line, which is where
the server may come in.
Of course, I could probably fake it given a frontend script written
specifically with those components in mind. That would call for zero
configuration on the part of the components -- rather everything is
specified explicitly during construction (i.e., keyword arguments). And
maybe that's okay...?
--
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Web-SIG
mailing list