[Twisted-Python] PIRP for Twisted Python
Moshe Zadka
moshez at lerner.co.il
Wed Apr 18 01:04:00 MDT 2001
Hello, dear Twisted developers!
Attached is a twisted.protocol for PIRP, DJB's publishing protocol.
I think it would be interesting to write an interface for twisted.web
so Resources would be publishable both by the web and by PIRP (and
possibly, later, other protocols?)
The big point would probably to think up an interface to the request
which is portable enough.
I think something like:
- request.components(): return the requested path as a list of components
- request.received_headers(): return the headers
- request.write(packet): write a packet to the user
I'm still not sure how to signal failure: while in PIRP there's a single
form of failure, HTTP defines millions of them.
Anyway, I'll go off an implement a PIRP client now.
--
Moshe Zadka <moshez at lerner.co.il>
Web Developer, Python Developer
import NetstringReceiver
class PIRPHandler(NetstringReceiver.NetstringReceiver):
__buffer = None
def handleString(self, s):
if s:
if self.__buffer is None:
self.__buffer = []
self.__buffer.append(s)
else:
buffer, self.__buffer = self.__buffer, None
self.handlePIRP(buffer)
def sendError(self):
self.write('!')
def sendPacket(self, packet):
self.write('%d:%s,' % (len(packet), packet)))
def endPackets(self):
self.sendPacket('')
def sendPackets(self, packets):
for packet in packets:
self.sendPacket(packet)
self.endPackets()
--
Moshe Zadka <moshez at lerner.co.il>
Web Developer, Python Developer
More information about the Twisted-Python
mailing list