[Twisted-web] Asynchronous responses example from documentation -- why import time??

Jean-Paul Calderone exarkun at twistedmatrix.com
Thu Aug 9 07:31:35 MDT 2018


In the code you posted, DelayedResponse is the root resource.  The root
resource *always* has to provide a child resource.  If someone requests
/foo then the child is "foo".  If someone requests "/" then the child is "".

isLeaf = True is a shortcut that stops traversal and uses the current
resource as the requested resource.  Without this, DelayedResponse must
have a child or it can only produce a 404.

Maybe that explains it?  If there are examples in the documentation that
have root resources with no children and without isLeaf = True then perhaps
they are also broken and should be fixed.  If you see any, please point
them out.

Jean-Paul

On Wed, Aug 8, 2018 at 4:47 PM Jason Harrison <drjasonharrison at gmail.com>
wrote:

> I may have found it, by adding the assignment "isLeaf = True" to the
> DelayedResponse class it also appears to work.
> However many of the examples in the documentation do not assign "isLeaf =
> True".
> Would this also explain the difference in behaviour?
>
> -Jason
>
> Cell: 604 644 8611
> Email: drjasonharrison at gmail.com
> LinkedIn: http://www.linkedin.com/in/drjasonharrison
> Twitter: http://twitter.com/drjasonharrison
>
> On Wed, Aug 8, 2018 at 1:19 PM, Jason Harrison <drjasonharrison at gmail.com>
> wrote:
>
>>
>> On Wed, 8 Aug 2018 at 11:58 AM  Jean-Paul Calderone <
>>> exarkun at twistedmatrix.com> wrote:
>>
>> One possible explanation is that it has nothing to do with import time per
>>> se.  Instead, *any* change to your source file would have fixed the
>>> problem.  This could be because you had "stale" pyc files lying around
>>> (cached bytecode the interpreter *thought* was up-to-date with your
>>> source
>>> but was actually outdated).  It could also be that your server process
>>> was
>>> left running and was still using your old code.  Then, for some reason,
>>> after you added the import time your server got the new version of the
>>> code
>>> (perhaps you're relying on an auto-reloader and it missed a change, for
>>> example, or you just forgot to restart the server yourself).
>>>
>>> import time itself is definitely not a requirement for arbitrary Twisted
>>> Web-based programs to return a response other than 404.
>>>
>>> Jean-Paul
>>>
>>>
>> Hi Jean-Paul,
>>
>> I made many changes to the example in order to get it to work. So perhaps
>> it's a caching issue, but I can't find any caches. Here's what I'm
>> developing on:
>>
>> - OSX 10.13.6
>> - I'm using Sublime text, no auto reloaders afaik
>> - python3 --version :  Python 3.7.0
>> - pip3 list:
>>
>> Package        Version
>> -------------- -------
>> attrs          18.1.0
>> Automat        0.7.0
>> constantly     15.1.0
>> dlib           19.15.0
>> hyperlink      18.0.0
>> idna           2.7
>> incremental    17.5.0
>> numpy          1.15.0
>> pip            18.0
>> PyHamcrest     1.9.0
>> setuptools     39.2.0
>> six            1.11.0
>> Twisted        18.7.0
>> wheel          0.31.1
>> zope.interface 4.5.0
>>
>> - running the server using ./asynchronous.py
>> - I don't have any .pyc files in the script directory, possibly because I
>> "chmod +x" the source file and included the #! at the top
>> - I added logging and while the main program (setup of Twisted reactor)
>> logged, the DelayedResource class did not
>> - I added parts of the example at
>> https://twistedmatrix.com/documents/current/web/howto/web-in-60/dynamic-content.html
>> - I changed "resource = DelayedResource()" to "resource = ClockPage()"
>> - I changed the render_GET handler to return the Clock page example output
>> - etc until I stopped getting a 404
>> - I restarted the server many many times
>>
>> I removed and backed out every change until I got a 404, concluding it
>> was the "import time" line.
>> Any other ideas?
>>
>
> _______________________________________________
> Twisted-web mailing list
> Twisted-web at twistedmatrix.com
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-web/attachments/20180809/8265efb3/attachment-0001.html>


More information about the Twisted-web mailing list