[Twisted-Python] Twisted and Urwid

Christian Scharkus mail.sensenmann at googlemail.com
Sun Dec 28 11:28:14 EST 2008


Hi Cary.

I have seen it but I would prefer just to add my Input-Class as a Reader to
the reactor instead of using the twisted_main_loop. I have just the problem
that I have no idea how I make urwid start in the beginning.

2008/12/28 Cary Hull <cary.hull at gmail.com>

> Did you look at this?
> http://excess.org/article/2008/09/urwid-gets-twisted-support/
>
> Otherwise it looks like the error you are seeing there is due to not
> setting up a palette.
>
> -Cary
>
> On Sat, Dec 27, 2008 at 10:08 AM, Christian Scharkus
> <mail.sensenmann at googlemail.com> wrote:
> > Hi folks.
> >
> > I've got a new question. After recongnising that the python bindings for
> > curses are not fully capable of displaying the unicode-chars I decided to
> > drop curses and shifted to urwid. Now I've got some basic questions in
> the
> > matter of urwid and twisted. As you may know I'm using a mvc-pattern and
> I
> > have not discovered a way to combine _and_ start urwid with twisted yet.
> > Maybe someone who already worked with urwid can give me a small hint.
> >
> > Code:
> >
> > http://codepad.org/0Hlvmp1b
> >
> > class Input:
> >     def __init__(self,term):
> >
> >         self.term = term
> >         self.size = self.term.get_cols_rows()
> >
> >         self.input = urwid.Edit()
> >
> >         self.filler = urwid.Filler(self.input)
> >
> >         self.canvas = self.filler.render( self.size, focus=True )
> >
> >         self.term.draw_screen(self.size,self.canvas)
> >
> >         reactor.addReader(self)
> >
> >     def fileno(self):
> >
> >         return 0
> >
> >     def logPrefix(self):
> >         return 'CursesClient'
> >
> >
> >     def doRead(self):
> >         keys = self.term.get_input_nonblocking()
> >
> >         for key in keys:
> >             if key == 'window resize':
> >
> >                 self.size = self.term.get_cols_rows()
> >
> >             elif key == 'enter':
> >                 text = self.input.get_edit_text()
> >
> >                 controller.sendMsg('dev',text)
> >
> >                 self.input.set_edit_text('')
> >
> >             else:
> >                 self.filler.keypress(self.size, key)
> >
> >
> > term = urwid.raw_display.Screen()
> >
> > term.run_wrapper(lambda: Input(term))
> >
> >
> >
> >
> > Traceback (most recent call last):
> >   File "./keckz.py", line 44, in <module>
> >
> >     f.startKeckz(f.host, f.view)
> >
> >   File "./keckz.py", line 38, in startKeckz
> >
> >     controllerKeckz.Kekzcontroller(View).startConnection(host,23002)
> >
> >   File "/home/arch/keckz/trunk/controllerKeckz.py", line 13, in __init__
> >
> >     self.view = interface(self)
> >
> >   File "/home/arch/keckz/trunk/urwid_cli.py", line 21, in __init__
> >
> >     self.term.run_wrapper(lambda: Input(self.term))
> >
> >   File "/usr/lib/python2.6/site-packages/urwid/raw_display.py", line 212,
> in
> > run_wrapper
> >
> >     return fn()
> >   File "/home/arch/keckz/trunk/urwid_cli.py", line 21, in <lambda>
> >
> >     self.term.run_wrapper(lambda: Input(self.term))
> >
> >   File "/home/arch/keckz/trunk/urwid_cli.py", line 55, in __init__
> >
> >     self.term.draw_screen(self.size,self.canvas)
> >
> >   File "/usr/lib/python2.6/site-packages/urwid/raw_display.py", line 579,
> in
> > draw_screen
> >
> >     assert self.palette.has_key(a), `a`
> >
> > AssertionError: None
> >
> >
> >
> > _______________________________________________
> > Twisted-Python mailing list
> > Twisted-Python at twistedmatrix.com
> > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> >
> >
>
>
>
> --
> 01100011 01100001 01110010 01111001
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20081228/9ced747c/attachment.htm 


More information about the Twisted-Python mailing list