On Thu, 7 Jul 2005 16:03:31 -0400 (EDT), lloyd@paisite.com wrote:
Hello,
I've changed the thread from "Re: Introduction, newbie confusion plus an offer" to "Turkey Questions 1-5" to start the Q&A.
Goal: Create the world's simplest web-server
My first set of questions are based on "Configuring and Using the Twisted.Web Server in "Twisted.Web Documentation."
[snip]
Questions:
1) Why did mktap write web.tap to my home directory rather than ~/twisted/www?
You didn't specify a path to a tap file to write, so it picked a reasonable-seeming default. The surprisingly named --append option lets you specify the name of the tap to write (as well as letting you add a new application to an existing tap). For example, mktap --append ~/twisted/www/web.tap web ...
[snip]
3) How can I see the source for the server created by mktap?
TAP stands for Twisted Application Pickle. Its contents are a Python pickle of a Twisted Application instance (twisted.application.service.Application) configured to do whatever you specified on the mktap command line. You can inspect it using pickle interactively: exarkun@boson:~$ python Python 2.4.1 (#2, Mar 30 2005, 21:51:10) [GCC 3.3.5 (Debian 1:3.3.5-8ubuntu2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pickle >>> app = pickle.load(file('web.tap', 'rb')) >>> print app <twisted.python.components.Componentized instance at 0xb7e05b8c> >>> from twisted.application import service >>> svc = service.IService(app) >>> print svc <twisted.application.service.MultiService instance at 0xb7e11d0c> >>> list(svc) [<twisted.application.service.MultiService instance at 0xb7ae126c>] >>> list(svc)[0] <twisted.application.service.MultiService instance at 0xb7ae126c> >>> list(list(svc)[0]) [<twisted.application.internet.TCPServer instance at 0xb7a54d8c>] >>> list(list(svc)[0])[0].args (8080, <twisted.web.server.Site instance at 0xb7a5a66c>) >>> [etc] There are some other formats mktap can write, but they are generally more fragile than pickle. If you want to explore, try the `--type' argument to mktap (eg, mktap --type source web). The key here is that mktap outputs configuration, not code. Of course, if you asked "How can I view the configuration for the server generated by mktap?" I wouldn't have a better answer for you ;) Jp