[LNT][PATHCH] collect all directives from lnt.cfg

Daniel Dunbar daniel at zuster.org
Tue Jan 21 15:08:08 PST 2014


If we are going to go this route, I think I would rather we just move to
using Flask's app.config.from_pyfile() and ditch our custom config wrapper.
We could start by using app.config.from_pyfile() on the lnt.cfg file, and
then eventually ditch our wrapper once it isn't used, which would probably
be a simple start to get the equivalent of this patch.

 - Daniel


On Tue, Jan 21, 2014 at 10:20 AM, Chris Matthews
<chris.matthews at apple.com>wrote:

> I’d like to propose LNT collect all configuration directives out of the
> lnt.cfg configuration file.  My motivation for this is that I have been
> developing experimental LNT functionality by building flask extensions out
> of tree, where they don’t break things.  Currently the LNT Config class
> looks for explicit keys in the config file, and adds those to the flask app
> config.  To allow out of tree modules to add configuration directives, I
> have patched config so that all directives in the file are added to the
> config object, making sure not to overwrite any that are there already.
>
> diff --git a/lnt/server/config.py b/lnt/server/config.py
> index
> 2e146b9fece5adb75cecbea65aa1899261940cb2..6bc5c4d5232332bc4be4e627e365ad2afacebb14
> 100644
> --- a/lnt/server/config.py
> +++ b/lnt/server/config.py
> @@ -97,13 +97,20 @@ class Config:
>
>          secretKey = data.get('secret_key', None)
>
> -        return Config(data.get('name', 'LNT'), data['zorgURL'],
> +        cfg = Config(data.get('name', 'LNT'), data['zorgURL'],
>                        dbDir, os.path.join(baseDir, tempDir), secretKey,
>                        dict([(k,DBInfo.fromData(dbDirPath, v,
>                                                 default_email_config))
>                                       for k,v in
> data['databases'].items()]),
>                        data.get('baselineRevision', '144168'))
> -
> +
> +        # Add any remaining keys to the config object.
> +        for key, val in data.items():
> +            if not hasattr(cfg, key):
> +                setattr(cfg, key, val)
> +        return cfg
> +
> +
>      @staticmethod
>      def dummyInstance():
>          baseDir = tempfile.mkdtemp()
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140121/47ab1de6/attachment.html>


More information about the llvm-commits mailing list