On Wednesday, February 16, 2011 12:34:23 PM UTC-8, Chris McDonough wrote:
>
> On Wed, 2011-02-16 at 12:09 -0800, Wyatt Baldwin wrote:
> > I would like to move from Pylons 1.0 to Pyramid, but I'm not going to
> > be able manage a wholesale port any time soon. So, I'm wondering if it
> > would be practical to start using some parts of Pyramid within an
> > existing Pylons project.
> > 
> > In particular, one of the problems I'm having with Pylons is with
> > configuration extensibility. I've got something working, but it feels
> > clunky and is somewhat confusing. I haven't looked too closely at
> > Pyramid, but it seems like its config system makes gathering & merging
> > config from various locations a bit simpler.
> > 
> > Has anyone done anything like this? Would any of the devs be able to
> > advise on whether this an idea worth pursuing?
>
> One idea is to use a Pyramid "NotFound
> view" (
> http://docs.pylonsproject.org/projects/pyramid/1.0/narr/hooks.html#changing-the-not-found-view)
>  
> which delegates to the existing Pylons application, and port piecemeal. 
>  Unfortunately we don't have any current example of doing such a thing, but 
> it would involve something like this during Pyramid configuration:
>
> class LegacyView(object):
>     def __init__(self, app):
>         self.app = app # app is the legacy Pylons app
>
>     def __call__(self, request):
>         return request.get_response(self.app)
>
> if __name__ == '__main__':
>    pylonsapp = ... obtain pylons WSGI application object ...
>    legacy_view = LegacyView(pylonsapp)
>    config = Configurator()
>    config.add_view(context=NotFound, view=legacy_view)
>    ... rest of config ...
>
> At that point, whenever Pyramid cannot service a request because the URL
> doesn't match anything, it will invoke the Pylons application as a
> fallback, which will return things normally.
>
> At that point you can start moving logic incrementally into Pyramid from
> the Pylons application until you've ported everything.
>
> - C
>
Thanks for that. I added it to my project almost verbatim, and it works as 
advertised. I'll report back when I get further into the port.

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to