[Zope-dev] app = Zope.app() backwards incompatibility notice / discussion

Chris McDonough chrism at plope.com
Mon Feb 16 15:03:04 EST 2004


Nothing happened with it because by the time I got around to putting it
in, the 2.7 branch was frozen for changes.

Not sure about your patch, as Zope.app() can be called outside of the
context of a script.  Also, if the configuration has already been
performed before the call to Zope.app(), it shouldn't fail because it
can't find the ZOPE_CONFIG envvar.  IOW, ZOPE_CONFIG should not be
required, but if it is defined in the environment when called from a
script, it should be used.

If you can make that happen, and put the patch in the collector, I will
see to it that it gets into 2.7.1.

- C

On Mon, 2004-02-16 at 14:29, Erik A.Dahl wrote:
> Whatever happened to the ZOPE_CONFIG env idea?  What I have found is 
> that I started putting
> 
> Zope.config(os.getenv("ZOPE_CONFIG"))
> 
> in all my scripts.  Why can't his happen within Zope.app()?  Something 
> like this.
> 
> *** lib/python/Zope/__init__.py.orig  2003-12-21 19:24:25.000000000 
> -0500
> --- lib/python/Zope/__init__.py 2004-02-16 14:15:48.000000000 -0500
> ***************
> *** 45,52 ****
> --- 45,59 ----
>        from Zope.App.startup import startup as _startup
>        _startup()
> 
> + from Zope.Startup.run import configure
> + class ZopeConfig(Exception):pass
> +
>    def app(*args, **kw):
>        """Utility for scripts to open a connection to the database"""
> +     configfile = os.getenv("ZOPE_CONFIG")
> +     if not configfile:
> +         raise ZopeConfig, "ERROR: ZOPE_CONFIG environment variable 
> not found"
> +     configure(configfile)
>        startup()
>        return bobo_application(*args, **kw)
> 
> ***************
> *** 56,62 ****
>        import ZPublisher
>        return ZPublisher.test('Zope', *args, **kw)
> 
> - from Zope.Startup.run import configure
> 
>    # Zope.App.startup.startup() sets the following variables in this 
> module.
>    DB = None
> --- 63,68 ----
> 
> -EAD
> 
> 
> On Dec 22, 2003, at 1:37 PM, Dieter Maurer wrote:
> 
> > Chris McDonough wrote at 2003-12-21 18:16 -0500:
> >> ...
> >> Will need to do this under 2.7b4+:
> >>
> >> import Zope
> >> Zope.configure('/path/to/configfile')
> >> app = Zope.app()
> >> ...
> >> Jim Roepke suggested that if an "ZOPE_CONFIG" envvar was set with the
> >> config file path, that "import Zope; Zope.app()" could be made to 
> >> "just
> >> work",
> >
> > A very good suggestion!
> >
> >> but I'm not sure this is any better than requiring that
> >> developers change their scripts.
> >
> > For developpers, it is much better:
> >
> >   Add an environment variable at one (or a few) central
> >   place versus change lots of scripts.
> >
> >> Guessing at the config file location
> >> is also fraught with problems, and I'd be hesitant to do it.
> >
> > The suggestion was to use the value of "ZOPE_CONFIG" as
> > config file path. Thus, you do not need to guess...
> >
> > -- 
> > Dieter
> >
> > _______________________________________________
> > Zope-Dev maillist  -  Zope-Dev at zope.org
> > http://mail.zope.org/mailman/listinfo/zope-dev
> > **  No cross posts or HTML encoding!  **
> > (Related lists -
> >  http://mail.zope.org/mailman/listinfo/zope-announce
> >  http://mail.zope.org/mailman/listinfo/zope )




More information about the Zope-Dev mailing list