Static is now licensed under the LGPL. (Sorry for the long hiatus, folks. I have been a little absorbed in transitioning to my new gig. I'll be making more releases again, soon.)
Work is love made visible.- Kihlal Gibran
Static is now licensed under the LGPL. (Sorry for the long hiatus, folks. I have been a little absorbed in transitioning to my new gig. I'll be making more releases again, soon.)
I have just released a small Web programming framework, Rest in Python, into the wild. All feedback is highly appreciated, as always.
WRT the possibility of lazy attributes in Yaro, which I have discussed here previously, I am still determined to preserve simplicity, but surely folks want to do this:
@Yaro
def somewhere_in_the_stack(req):
...
req.my_stuff = {...some stuff...}
...
@Yaro
def somewhere_else_in_the_stack(req):
...
use_stuff(req.my_stuff)
...
In order to support this, Yaro now caches unexpected
members of yaro.Request, as well as the
yaro.Response in Request.res
and Request.start_response_called. It
does not cache the attributes added through
extra_props. Cached attributes are stashed
in a dict in environ['yaro.cached_attrs'].
Though users will hardly ever need to call them, caching
is controlled through Request.save_to_environ()
and Request.load_from_environ().
Also, another small bug was corrected in the URI construction code. Thanks to Zach Seifts for catching this.
I had intended Resolver to be switched to the LGPL, but had forgotten to release a new version with updated licensing statements. I apologize to anyone for whom this created any consternation or confusion. Resolver is now LGPL.
Thanks to Sylvain Hellegouarch for pointing this out.
I have fixed a small bug in the way new absolute URIs are
generated by Yaro
when parts of PATH_INFO have been rolled into
SCRIPT_NAME.
Also note that yaro is now licensed under the LGPL.
I have done some soul searching about which direction to take Yaro in. I decided to keep it simple. I was tempted to make everything evaluate lazily so that yaro request objects would not "go stale" as environ or start_response are changed in WSGI middleware. I may continue to toy with the idea of lazy attributes, but for now I feel that it is much more elegant and useful to keep the scope tight. Instead of trying to accommodate creeping complexity, I have ripped it out at the root.
A yaro request object is a representation of the WSGI environment at a point in time. If changes are made to the environment, you simply need a fresh request object. For this reason, the caching of yaro request objects has been removed.
Many thanks to Wesley Augur.
Path consumption is now supported in Selector. This better supports multiple dispatch. I had previously been a little skeptical about consuming PATH_INFO in the dispatcher object itself, but it is a convenient option and there seems to be some popular demand for it. If you still want to keep your dispatch decoupled from your path consumption, you can simply turn it off.
Thanks to Jason Kirtland, Luke Opperman and Samuel Montgomery-Blinn.
I fixed a small bug in the command line interface of Skel.
Thanks to Peter Reijnders for pointing this out.
Security Update! Security Update!
I missed a corner case in the previous update to Static. I apologize for the inconvenience. Please update to version 0.3.3 or higher, right away!
Thanks (again) to Jason Kirtland for noticing this.
Security Update! Security Update!
A serious vulnerability has been discovered in Static allowing access to arbitrary files. Please update to version 0.3.2 or higher, right away!
Thanks to Jason Kirtland for reporting this.