[Twisted-Python] ObjectBrowser references

Chris Armstrong carmstro at twistedmatrix.com
Sun Nov 11 17:10:46 EST 2001

I'm the guy that had sleep-deprived reservations about what Acap was doing,
but I finally beat him^W^Wgot him to understand what I was talking about.

From: Kevin Turner <acapnotic at twistedmatrix.com>
Subject: [Twisted-Python] ObjectBrowser references
Date: Sun, 11 Nov 2001 11:58:02 -0800

[snip everything..]

Here's the plan that Acapnotic and I came up with, after hours of figuring
each other out: 

Refactor existing ObjectBrowser into ObjectExaminer and ObjectWatcher.
Get rid of all namespace/evaluating stuff for now (the "browsing" stuff).
This will probably be reintroduced in another form later. We will also probably
have an ExaminerFactory, which returns different kinds of ObjectExaminers based
on what kind of object you tell it to examine (I'm not so sure we'll need
ObjectExaminers, but we probably will).

So the idea is to be able to say (in manhole):

o = SomeObject()
look at o

This will bring up a slick GUI which allows you to examine the attributes,
type, class, etc of an object, as well as allow you to attach a "watch"
to this object. (just had an idea -- a default ObjectWatcher with a callback
to update the data display for the object being examined. discuss.)

All this slick GUI will do is create an ObjectExaminer for that object 'o'.
This will be done with the Manhole client (that is, the manhole client will
figure out what the string "o" represents, not the manhole service/explorer.

Originally, I said we ought to refactor ObjectBrowser into ObjectBrowser,
ObjectExaminer, and ObjectWatcher. But then I said "let's just ignore 
ObjectBrowser for now, and bring it back later if we find we need it."
Well, I've told acap that I've had ideas brewing in my head, and that
I didn't want to talk about them yet, but I'll say this much:
I think the "object browsing" functionality (namespaces+eval) might indeed
be brought back into the "ObjectExaminer" class, or at least be somehow
closely related to it. That is how we will be able to open up a GUI
for object A, click on Object B inside of it, thus creating a new GUI
for object B. I'm not quite certain how this should be done, and that's
why the plan is to simply get rid of Browsing functionality for now. 

Kevin and I will probably be hacking on this tonight. This probably means
that the release of 0.12.1 (which was planned to be released very soon)
will be pushed back a few days. No big deal, though.

I hope this all made sense (especially to Kevin, since I tried hard to get him
to understand it ;)).

<glyph_> it's times like this when I wish I could just swallow my pride and use
a standard thing like asyncore :)
                              Chris Armstrong
                      <<< radix at twistedmatrix.com >>>

More information about the Twisted-Python mailing list