I have released a few more improvements and fixes to Haus. You can learn more about it at the House of Haus. I will put up some sort of feed of the Hg history in the near future, as that would be most descriptive.
Work is love made visible.- Kihlal Gibran
I have released a few more improvements and fixes to Haus. You can learn more about it at the House of Haus. I will put up some sort of feed of the Hg history in the near future, as that would be most descriptive.
I have released a few improvements to Haus. You can learn more about it at the House of Haus.
I have released the first cut of a new incarnation of my Web programming framework. You can learn more about it at the House of Haus.
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 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.
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.