Hi,
I'm slowly extracting and cleaning up code changes from Jason's work last
summer. I'm doing this by extracting related changes out into seperate
branches after having created a detangled/cleaned up version of Jason's
branch. (For some reason Jason's branch contained significant amounts of code
already merged onto trunk from private_MPS_Scratch from some time ago,
seriously complicating the merge)
Anyway, private_JMB_MPS_CoreChanges_2 has been brought down to *just* the
HTTP Server specific changes which were written by Jason (the rest appear to
be from my old scratch branch, and already merged).
There's a fair amount of work (fixmes) added to this branch, but overall the
code change is a net improvment, so I'm merging the branch.
Details:
Branch name: private_JMB_MPS_CoreChanges_2
Branch version: r6326
Detailed changelog/notes for future work:
Index: Kamaelia/Kamaelia/Support/Protocol/HTTP.py
Collection of utilities to simplify working with the HTTP components
Adds in a concept of "request translators". Request translators take the
raw output from the HTTP Subsystem that you're expected to process, and
convert it to a form suitable for other forms of processors. For example
one request translator takes the HTTP request and converts it to a WSGI
environ, suitable for passing to a WSGI app.
Functions added:
* ReqTranslatorFactory
* WSGILikeTranslator
* ConvertHeaders
* PopURI
* PopWsgiURI
* PopKamaeliaURI
* checkSlashes
Prefabs (maybe) added:
* HTTPProtocol
* requestHandlers
Adds in "pop" functions which appear very badly named.
FIXES Needed: lots of Rest/doc fixes, better explanations/doc strings.
Potentially need to move the components/prefabs out to the main
namespace. "Pop" concept needs reworking. Argument names to functions
could do with being changed to something human readable. HTTPProtocol
needs renaming potentially. HTTPServer/getHttpServer name is confusing
since it actually returns a protocol handler. requestHandlers almost
certainly in the wrong place. _Purpose_ of checkSlashes is unclear.
Index: Kamaelia/Kamaelia/Protocol/HTTP/ErrorPages.py
* Documentation extended slightly
* Added in 502 error handling
* Changed ErrorPageHandler to be a OneShot handler
Index: Kamaelia/Kamaelia/Protocol/HTTP/Handlers/Minimal.py
* Changed in a variety of ways, unclear if overall better. Possibly is,
but a number of further improvements can be made as noted in fixmes.
* FIXMES: Factory function looks nasty, redundant and badly named.
However it is used by other code, so will be left for a short while
before being eliminated. Should use inheritable defaults instead.
Pathname handling of files looks like it needs work.
Index: Kamaelia/Kamaelia/Protocol/HTTP/HTTPParser.py
* Adds in non-query-uri and query into the http request object. This
looks & feels wrong, and needs review. Left in for the moment
pragmatically because other parts of the system rely on this being
there.
Index: Kamaelia/Kamaelia/Protocol/HTTP/HTTPServer.py
* Example added at the end of the file, which has been fixed by MPS to
actually work.
Index: Kamaelia/Examples/TCP_Systems/HTTP/KamaeliaWebServer.py
* Error handling fixed, now uses OneShot and a custom
createRequestHandler. (Should probably not use a custom one, but it
does...)
Index: Kamaelia/Examples/TCP_Systems/HTTP/cookbook_1.py
* Changed to use new(er) facilities added into the HTTP subsystem.
Index: Kamaelia/Examples/TCP_Systems/HTTP/cookbook_2.py
* Changed to use new(er) facilities added into the HTTP subsystem.
* Also, reverted non-discussed changes which are inappropriate changes
IMO.
* Adds doc strings to a bunch of stuff too.
(For those curious, this needs this level of review before merge because the
changes are in core code, rather than in application specific code, and
thereby needed a wider view being taken before being proposed as "ready for
merge". Based on the amount of work this has taken, the branch was not ready
for merge)
Regards,
Michael.
--
http://yeoldeclue.com/blog
http://twitter.com/kamaelian
http://www.kamaelia.org/Home
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"kamaelia" 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/kamaelia?hl=en
-~----------~----~----~----~------~----~------~--~---