[Twisted-web] some questions about twisted.web
jack at chesspark.com
Wed Apr 8 00:07:54 EDT 2009
> It seems like the need for this tool could have been obviated if "twistd
> web" had better support for composing plugins of its own. I'd encourage you
> to look at 'twistd web --help' and see if maybe some future release can
> provide all the functionality you want.
Yes, I think that it would be able to do the same things. The only
unknown is whether it would be easy to use. I think if you added an
rc-file type thing for the web plugin, it would work quite nicely.
The more I think about it, the more I like it.
This turned into four bugs:
* #3752 to add the composable command line options
* #3753 to add the overlay resource infrastructure
* #3755 to add a proxy/reverse proxy option
* #3756 to add simple configuration files
If twistd web and twisted.web had those four things, it would totally
rock my world and there would not be a need for Tape.
> HTTPFactory should take a FilePath-like object (not a file-like object,
> since it may need to control when the log is opened and closed.
> _openLogFile is specifically documented as being for overriding in
> subclasses, yet it's private. That doesn't make much sense. Luckily the
> interface is broken anyway, so when we switch over to using a FilePath we
> can switch.
> While we're at it, twisted.python.logfile should really be updated to use
> FilePath as well, rather than direct os.path operations.
> The CLF-formatting logic really ought to be separated from the code that
> decides to actually write it to a file. Off the top of my head it really
> seems like this should be a method on Request, but a free function would be
> fine too.
> In addition, there's this bug:
> which is maybe too vague to actually be actionable, but I think the idea was
> to publish Request objects with a custom format string via
I updated #75 to point to the other 4 bugs.
>> * log() never gets called when a ReverseProxyResource is used. It
>> appears as though request.finish() is never called, though I wasn't
>> able to fully track this down. I find this behavior very odd.
> This one's an existing bug:
> Please feel free to attach commentary.
> * In the long term, static.File really ought to compose in a FilePath, not
> inherit from it. I don't know if it's possible to salvage static.File in
> its current state; I think we need a new static-content class that generally
> works the right way.
I'm not sure I'm the best person to write this bug. Perhaps you could
do a quick brain dump into a ticket so it doesn't get lost.
> * The parameters to __init__ should obviously be documented.
> * createSimilarFile should be documented.
> In Nevow and web2, locateChild allows you to consume multiple segments at
> once. The plan has always been to port these to twisted.web, but I can't
> find a ticket for that plan.
>> * ReverseProxyResource returns nothing if you don't give it a '/' at
>> the end. I had to work around this by doing a redirect in the
>> subclass and then returning a new ReverseProxyResource when the ''
>> child is accessed. It seems that if ReverseProxyResource's path is
>> '', it just keels over with no error.
> This could do with a bit more detail (mostly about what "keels over" means),
> but certainly sounds like a valid bug.
Fair enough. The server literally hangs up the connection without
returning any response.
Thanks for your help; it was certainly useful to help me file better reports.
More information about the Twisted-web