hi there, folks:
I'd really like to release 0.7.0 but I would like it to be at least a
little bit tested before I do so. Could those of you with CVS trees check
everything out and see if it performs as advertised? Deeper bugs than
that will have to wait for the next release, but I'd at least like to know
if it works for someone other than me.
______ __ __ _____ _ _
| ____ | \_/ |_____] |_____|
|_____| |_____ | | | |
@ t w i s t e d m a t r i x . c o m
Attached is a short patch to add a --resource option to "mktap web",
here is the --help for it:
-r, --resource= <class> is the name (including module) of a subclass of
twisted.web.resource.Resource to publish.
So you can have any subclass of t.w.r.Resource be the 'root' of your
I have also been working on a few other things:
- an async Pytho-only PostgreSQL interface (not t.e.adbapi
compatible, since I am not usre I like it's interface and need
to play a bit before I figure out how I would like an async
SQL-database interface to behave.)
- a SQLResultWidget, very dull right now but I will probably hack
some BoboDTML support into it.
Sune Kirkeby | /* we're still looking for the end of the
| * server's header ... (does that make header
| * parsing an "out of body experience" ? */
| -- jcc.c in junkex source-code
I like the twisted.lumberjack module that was recently added, but I think it
has a small buglet. It checks the size of the existing log file, but then
opens it in mode "w", truncating it.
Thus, I suggest the last line of LogFile._openFile should change from:
self._file = open(self.path, "w")
self._file = open(self.path, "a")
Both of these when setup using mktap or coil listen on all interfaces.
So running a mktap generated SOCKS on a firewall means anyone can access
your internal network, and running coil means anyone can setup a telnet
python shell or SOCKS proxy remotely.
So, changes we need to make:
SOCKS tap should allow configurin interfaces it will run on.
COIL should allow configuring which interfaces a server can run on, not
jusy which ports.
I'm trying to make a catalog of these. Twisted needs to have
better-defined exceptions for certain conditions instead of relying on
Python to report the error via tracebacks. More specific errors would
allow the developer to more quickly track down the problem.
programmatic handling of exceptions in the client should be feasible.
Handling a TypeError that could be a bug in your code the same as an
unauthorized-client-action style error means you have to accept that
in your code will be masked if you catch these.
Here's the list:
1) cause: Didn't set 'application' in a config.tac.
results in this message in the log:
"05/02/2002 00:50 [-] Python file
'/home/cdodt/TwistedPlugins/dataconda/config.tac' did not produce an
This isn't gross, but there's no reason not to give more information
Even though I knew about this requirement, I had forgotten about it and
renamed a variable, resulting in this situation. The log message wasn't
helpful in reminding me. It should be just a little more specific:
"config.tac must set a variable named 'application'. No application was
2) cause: Trying to log in as an Identity that never had a password set
Traceback! exceptions.TypeError, argument must be string or read-only
buffer, not None
This one is pretty ugly. It's valid to have an Identity with no password.
(If it isn't, then you shouldn't be able to create one.) In my case,
it just means that user can't log in. If we must throw an exception
throw "IdentityWithNullPasswordError" or something like that, and better
yet, name the identity with the problem.
3) cause: calling a method with the wrong name on a RemoteReferenced
object (Perspective, Referenceable, etc.)
Traceback! exceptions.AttributeError, LobbyUser instance has no
Well ok, duh, at least this one I can figure out. But it should still
be something more specific: 'RemoteMethodNotImplementedError' for
I will send more as I find them.
Do You Yahoo!?
Send FREE Valentine eCards with Yahoo! Greetings!
internet.app assumed 'port already bound' is the only error which
can happen wen bind()ing. What's about 'premission denied' and
all the others. This patch fixes that.
app gives a misleading errormessage when a error while binding to
a port occures. This patch logs the error which actually has happended.
--drt(a)un.bewaff.net - http://c0re.jp/
diff -u -r Twisted-0.15.0/twisted/internet/app.py Twisted/twisted/internet/app.py
--- Twisted-0.15.0/twisted/internet/app.py Wed Jan 23
+++ Twisted/twisted/internet/app.py Fri Feb 15 22:35:05 2002
@@ -348,8 +348,8 @@
for port in self.ports:
- except socket.error:
- log.msg('port %s already bound' % port.port)
+ except socket.error, msg:
+ log.msg('port %s: error: %s' % (port.port, msg))
for connector in self.connectors:
teenage mutant ninja hero coders from da c0re - http://c0re.jp/
me - http://koeln.ccc.de/~drt/
Many of you might now I'm into role playing games. Recently, I got
addicted to the Champions MUSH, and whined and heard others whine about
the technical problems. Here they are, in no particular order:
* Alts (alternate identities, multiple characters) are hard to manage
* No Web interface
* Lots of needed outside internet support is lacking (connection to the
weather web site)
In case you're not recognizing the theme, these are exactly the things
Twisted is good at. Other almost cost-free benefits:
* People can read VR e-mail on real life clients (pop3)
* People can compose VR e-mail on real life clients (smtp)
* People can connect with IRC clients (important to me, solved
in an ugly way)
* Management can be done in lotsa ways (coil, manhole, etc.)
Note I did not mention reality. I don't think reality, based on what
glyph said, would be a good match. The Champions MUSH is much more
"if it's IC to have it, pose having it". Because of the way HERO deals
with items, especially in superheroic campaigns, having 'stuff' is not
I'm thinking of starting to work on this. Anyone feels like join me?
Moshe Zadka <moshez(a)twistedmatrix.com>
I have a collection of Deferreds. When they all complete, I want to trigger
a "all complete" callback (probably via a Deferred). Alternatively, upon an
error from any of the callbacks, I want to trigger the errback of that
"all complete" Deferred.
Is there something already written to do this? Or do I need to write it