Pyramid 1.3a1 released

387 views
Skip to first unread message

Chris McDonough

unread,
Dec 9, 2011, 3:15:37 PM12/9/11
to pylons-discuss
Pyramid 1.3a1 has been released. This is the first major release in
the 1.3 series. Its primary features are:

- Python 3.2 compatibility.

- A new configuration introspection system.

It requires Python 2.6, 2.7 or 3.2. Python 2.5 is no longer
supported. Please use the Pyramid 1.2.X series if you need Python 2.5
compatibility.

The documentation for the release is available at
http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/

A detailed "What's New in Pyramid 1.3" document is available at
http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/whatsnew-1.3.html

You can install it via PyPI:

easy_install Pyramid==1.3a1

Many thanks to our GSOC students Joe Dallago and Joel Bohman, who
helped us get Pyramid and its dependencies ready for Python 3. Thanks
also to the Python Software Foundation, who provided a grant to port
WebOb to Python 3, and Sergey Schetenin, who helped prepare WebOb for
Python 3 compatibility.

Enjoy, and please report any issues you find to the issue tracker at
https://github.com/Pylons/pyramid/issues

Thanks!

- C


Vlad K.

unread,
Dec 9, 2011, 4:10:40 PM12/9/11
to pylons-...@googlegroups.com

Awesome, excellent changes, many thanks and congrats to the devs!


Question: is departure from Paste and PasteScript permanent? Is it a
long term goal to depart from PasteDeploy as well in the future
versions? I don't have anything against Paste* libs, of course, just
asking because I welcome any reduction in the size of dependencies and
framework codebase.


.oO V Oo.

William Chambers

unread,
Dec 9, 2011, 7:43:33 PM12/9/11
to pylons-...@googlegroups.com
I strongly welcome the change to 3.2, and very much look forward to working with it. Props to the entire team for getting this done! ^_^

Siddhartha Kasivajhula

unread,
Dec 9, 2011, 8:28:10 PM12/9/11
to pylons-...@googlegroups.com
I strongly welcome the change to 3.2, and very much look forward to working with it. Props to the entire team for getting this done! ^_^

Updated this wikipedia page!


On Fri, Dec 9, 2011 at 4:43 PM, William Chambers <biose...@gmail.com> wrote:
I strongly welcome the change to 3.2, and very much look forward to working with it. Props to the entire team for getting this done! ^_^

--
You received this message because you are subscribed to the Google Groups "pylons-discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/pylons-discuss/-/uFyvHTf5-WoJ.

To post to this group, send email to pylons-...@googlegroups.com.
To unsubscribe from this group, send email to pylons-discus...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en.

Mike Orr

unread,
Dec 10, 2011, 12:25:10 AM12/10/11
to pylons-...@googlegroups.com
On Fri, Dec 9, 2011 at 1:10 PM, Vlad K. <vl...@haronmedia.com> wrote:
> Question: is departure from Paste and PasteScript permanent? Is it a long
> term goal to depart from PasteDeploy as well in the future versions? I don't
> have anything against Paste* libs, of course, just asking because I welcome
> any reduction in the size of dependencies and framework codebase.

Paste and PasteScript were dropped because they hadn't been ported to
Python 3 and it didn't seem worth the effort to do so. Half their
features are obsolete, little used, or superceded by child
distributions (WebOb, PasteOb). Paste's achievements cannot be
underestimated: it was the catalyst that made interoperable WSGI
frameworks a reality. But it had outgrown its original codebase. So
Chris took the subset Pyramid needed (a creator and a runner), ported
them to 3, and put them into Pyramid.

PasteDeploy *is* working in Python 3, and it does one small job in a
relatively straightforward manner (parsing those config sections and
the "egg:" lines in them), so there's little reason to change it
further. (Although I would like to see a better API and docs someday.)
There has been talk in the past about dropping the INI file from the
Pyramid core, but now that pserve and pcreate are part of Pyramid,
that can't be done. It's more likely that the template adapters will
be spun off (pyramid_mako and pyramid_chameleon), since they're an
application dependency rather than a core dependency.

--
Mike Orr <slugg...@gmail.com>

jerry

unread,
Dec 10, 2011, 8:48:25 PM12/10/11
to pylons-discuss
Thanks bunch for the early Christmas gift :)

However, the doc -- """New console scripts named pshell, pviews,
proutes, and ptweens do what their paster <commandname> equivalents
used to do.""" leaves out paster customized commands, which is also a
first-class member of the paster family.

Appreciate if we could get the assurance that it is in the road map.

Thanks again.

Jerry

On Dec 10, 4:15 am, Chris McDonough <chr...@plope.com> wrote:
> Pyramid 1.3a1 has been released.  This is the first major release in
> the 1.3 series.  Its primary features are:
>
> - Python 3.2 compatibility.
>
> - A new configuration introspection system.
>
> It requires Python 2.6, 2.7 or 3.2.  Python 2.5 is no longer
> supported.  Please use the Pyramid 1.2.X series if you need Python 2.5
> compatibility.
>

> The documentation for the release is available athttp://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/
>
> A detailed "What's New in Pyramid 1.3" document is available athttp://docs.pylonsproject.org/projects/pyramid/en/1.3-branch/whatsnew...

Chris McDonough

unread,
Dec 10, 2011, 8:50:57 PM12/10/11
to pylons-...@googlegroups.com
On Sat, 2011-12-10 at 17:48 -0800, jerry wrote:
> Thanks bunch for the early Christmas gift :)
>
> However, the doc -- """New console scripts named pshell, pviews,
> proutes, and ptweens do what their paster <commandname> equivalents
> used to do.""" leaves out paster customized commands, which is also a
> first-class member of the paster family.
>
> Appreciate if we could get the assurance that it is in the road map.

Nope. But we may create docs about how to create your own console
script. That's all these are.

- C

Michael Merickel

unread,
Dec 10, 2011, 10:20:49 PM12/10/11
to pylons-...@googlegroups.com

Right this isn't an attempt to recreate Paste within Pyramid. Pyramid provides other recommended ways of scripting via bootstrap. I'd suggest loiokng into those before looking for a paste.replacement.

--
You received this message because you are subscribed to the Google Groups "pylons-discuss" group.

Chris McDonough

unread,
Dec 10, 2011, 10:50:04 PM12/10/11
to pylons-...@googlegroups.com
On Sat, 2011-12-10 at 21:20 -0600, Michael Merickel wrote:
> Right this isn't an attempt to recreate Paste within Pyramid. Pyramid
> provides other recommended ways of scripting via bootstrap. I'd
> suggest loiokng into those before looking for a paste.replacement.

That said, for the record, as described in the "What's New in Pyramid
1.3" document, you can install PasteScript and continue using "paster"
against the existing ini files; this works fine under Pyramid 1.3 too.

> To unsubscribe from this group, send email to pylons-discuss
> +unsub...@googlegroups.com.


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

> To unsubscribe from this group, send email to pylons-discuss
> +unsub...@googlegroups.com.

rihad

unread,
Dec 11, 2011, 1:39:05 AM12/11/11
to pylons-discuss
Sorry if a bit irrelevant. The changelog says: "The SQLAlchemy + URL
Dispatch Wiki Tutorial has been updated.". But what I believe to be a
bug that I mentioned here: http://groups.google.com/group/pylons-devel/browse_thread/thread/d81a2d98cb64dd6b
has remained seemingly unnoticed.

Chris McDonough

unread,
Dec 11, 2011, 1:48:35 AM12/11/11
to pylons-...@googlegroups.com

Neither thing you mention there seems to be a bug. The line:

url = request.application_url + '/login'

Is constructed for the benefit of the template, which uses it as a form
post target. It can't be url = request.url, as the current URL when the
login view is invoked may not be the login form. The line:

config.add_view('tutorial.login.login', route_name='login',
renderer='tutorial:templates/login.pt')

Takes care of the situation when it's not rendered as an exception view.

As far as the exception goes, HTTPForbidden is what Pyramid uses internally to signify
an authorization failure happened. I'm not sure there's another natural exception
to use here.

>


rihad

unread,
Dec 11, 2011, 2:50:52 AM12/11/11
to pylons-discuss

On Dec 11, 10:48 am, Chris McDonough <chr...@plope.com> wrote:
> On Sat, 2011-12-10 at 22:39 -0800, rihad wrote:
> > Sorry if a bit irrelevant. The changelog says: "The SQLAlchemy + URL
> > Dispatch Wiki Tutorial has been updated.". But what I believe to be a

> > bug that I mentioned here:http://groups.google.com/group/pylons-devel/browse_thread/thread/d81a...


> > has remained seemingly unnoticed.
>
> Neither thing you mention there seems to be a bug.  The line:
>
>    url = request.application_url + '/login'
>
> Is constructed for the benefit of the template, which uses it as a form
> post target.  It can't be url = request.url, as the current URL when the
> login view is invoked may not be the login form.  The line:
>
>    config.add_view('tutorial.login.login', route_name='login',
>                     renderer='tutorial:templates/login.pt')
>

Oh, I missed this part, probably it's new. But even without it, the
code I suggested works. I was incorrect in my first posting, in fact
context=HTTPForbidden is needed to match the login view both before
AND after the submit. The "edit" and "add" views simply fall through
to it when the user doesn't have the needed permission. And the url =
request.url in the login view works great for that whatever the URL
is, keeping the login view to do its tricks under the hood. You can
see that I works by commenting the context-less add_view above, and
making login POST to the current URL.

Ha-Nyung Chung

unread,
Dec 11, 2011, 3:31:53 AM12/11/11
to pylons-...@googlegroups.com
currently pyramid 1.3a1 doesn't seem to work well with pyramid_zcml.
pyramid_zcml uses PasteScript package and neither pyramid nor pyramid_zcml has dependency on it. So I had to install PasteScript manually in order to make pyramid 1.3 work with pyramid_zcml =(

Mike Orr

unread,
Dec 11, 2011, 12:03:06 PM12/11/11
to pylons-...@googlegroups.com

I don't understand the part about pyramid_zcml, but you *should* add
PasteScript as an application dependency if you intend to use it.
Otherwise it won't auto-install either.

--
Mike Orr <slugg...@gmail.com>

Mike Orr

unread,
Dec 11, 2011, 12:07:49 PM12/11/11
to pylons-...@googlegroups.com
On Sat, Dec 10, 2011 at 5:50 PM, Chris McDonough <chr...@plope.com> wrote:
> On Sat, 2011-12-10 at 17:48 -0800, jerry wrote:
>> Thanks bunch for the early Christmas gift :)
>>
>> However, the doc -- """New console scripts named pshell, pviews,
>> proutes, and ptweens do what their paster <commandname> equivalents
>> used to do.""" leaves out paster customized commands, which is also a
>> first-class member of the paster family.
>>
>> Appreciate if we could get the assurance that it is in the road map.
>
> Nope.  But we may create docs about how to create your own console
> script.  That's all these are.

The 'populate_[application]' script created by the 'alchemy' scaffold
is an example of a script.

If you only need a config variable (as in 'sqlalchemy.url'), you can
do it that way. If you need the entire application object or a mock
request environment, see the 'pyramid.paster' module.

(BTW is that module going to keep its name forever now that 'paster'
is irrelevant?)

--
Mike Orr <slugg...@gmail.com>

Mike Orr

unread,
Dec 11, 2011, 12:13:09 PM12/11/11
to pylons-...@googlegroups.com
On Sat, Dec 10, 2011 at 10:48 PM, Chris McDonough <chr...@plope.com> wrote:
> On Sat, 2011-12-10 at 22:39 -0800, rihad wrote:
>> Sorry if a bit irrelevant. The changelog says: "The SQLAlchemy + URL
>> Dispatch Wiki Tutorial has been updated.". But what I believe to be a
>> bug that I mentioned here: http://groups.google.com/group/pylons-devel/browse_thread/thread/d81a2d98cb64dd6b
>> has remained seemingly unnoticed.
>
> Neither thing you mention there seems to be a bug.  The line:
>
>   url = request.application_url + '/login'
>
> Is constructed for the benefit of the template, which uses it as a form
> post target.  It can't be url = request.url, as the current URL when the
> login view is invoked may not be the login form.

The default templates to mix API styles. That seems to be a feature
rather than a bug because it shows different ways of doing things. But
is the above better in any practical way than
request.route_url("login")
which Pylons users have been told to prefer? Or is it just as good either way?

Also, do the *_url methods work correctly behind mod_proxy, where the
URL of the WSGI server is not something you can make a valid link to.

--
Mike Orr <slugg...@gmail.com>

Chris McDonough

unread,
Dec 11, 2011, 2:53:02 PM12/11/11
to pylons-...@googlegroups.com

pyramid_zcml itself requires PasteScript, so yeah this is indeed a bug.
Note that although pyramid_zcml works fine under Pyramid 1.3 on Python
2, it doesn't work on Python 3 and I have no intent myself to make it
work on Python 3. So there are a few options:

- add a dependency on PasteScript to pyramid_zcml and people who
use Pyramid 1.3 will just have to know to invoke "paster create"
rather than "pcreate" to render its scaffolding.

- Remove the scaffolding from pyramid_zcml.

- Make two scaffolds for pyramid_zcml; one that is registered as
under the "pyramid.scaffold" entry point, and another registered
under the "paste.paster_create_template" scaffold and somehow
make sure both work.. somehow.

I'm apt to do either 1 or 2.

- C


Chris McDonough

unread,
Dec 11, 2011, 2:53:48 PM12/11/11
to pylons-...@googlegroups.com

I don't see any particular reason to change it TBH. It does still use
PasteDeploy, so it's marginally relevant.

- C


Chris McDonough

unread,
Dec 11, 2011, 2:54:38 PM12/11/11
to pylons-...@googlegroups.com
On Sun, 2011-12-11 at 09:13 -0800, Mike Orr wrote:
> On Sat, Dec 10, 2011 at 10:48 PM, Chris McDonough <chr...@plope.com> wrote:
> > On Sat, 2011-12-10 at 22:39 -0800, rihad wrote:
> >> Sorry if a bit irrelevant. The changelog says: "The SQLAlchemy + URL
> >> Dispatch Wiki Tutorial has been updated.". But what I believe to be a
> >> bug that I mentioned here: http://groups.google.com/group/pylons-devel/browse_thread/thread/d81a2d98cb64dd6b
> >> has remained seemingly unnoticed.
> >
> > Neither thing you mention there seems to be a bug. The line:
> >
> > url = request.application_url + '/login'
> >
> > Is constructed for the benefit of the template, which uses it as a form
> > post target. It can't be url = request.url, as the current URL when the
> > login view is invoked may not be the login form.
>
> The default templates to mix API styles. That seems to be a feature
> rather than a bug because it shows different ways of doing things. But
> is the above better in any practical way than
> request.route_url("login")
> which Pylons users have been told to prefer? Or is it just as good either way?

It should probably use route_url.

> Also, do the *_url methods work correctly behind mod_proxy, where the
> URL of the WSGI server is not something you can make a valid link to.

Yes.

- C


Mike Orr

unread,
Dec 11, 2011, 5:24:38 PM12/11/11
to pylons-...@googlegroups.com
On Sun, Dec 11, 2011 at 11:53 AM, Chris McDonough <chr...@plope.com> wrote:
> On Sun, 2011-12-11 at 09:03 -0800, Mike Orr wrote:
>> On Sun, Dec 11, 2011 at 12:31 AM, Ha-Nyung Chung <minor...@gmail.com> wrote:
>> > currently pyramid 1.3a1 doesn't seem to work well with pyramid_zcml.
>> > pyramid_zcml uses PasteScript package and neither pyramid nor pyramid_zcml
>> > has dependency on it. So I had to install PasteScript manually in order to
>> > make pyramid 1.3 work with pyramid_zcml =(
>>
>> I don't understand the part about pyramid_zcml, but you *should* add
>> PasteScript as an application dependency if you intend to use it.
>> Otherwise it won't auto-install either.
>
> pyramid_zcml itself requires PasteScript, so yeah this is indeed a bug.
> Note that although pyramid_zcml works fine under Pyramid 1.3 on Python
> 2, it doesn't work on Python 3 and I have no intent myself to make it
> work on Python 3. So there are a few options:

Can you translate this for those of us who barely know what ZCML is?
Does it affect all Pyramid users on Python 3, or only those with
custom ZCA extensions? Does it prevent pcreate/pserve from working at
all?

--
Mike Orr <slugg...@gmail.com>

Reply all
Reply to author
Forward
0 new messages