Re: Event-driven framework (other than Twisted)?
On 10/2/08, Phillip B Oldham <phillip.oldham @gmail.comwrote :
Sorry my VPS has been down for quite
some time today :/ Not happy!
Here is the sample:
<code>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: set sw=3 sts=3 ts=3
import optparse
from pymills import event
from pymills.event import manager
from pymills.net.soc kets import TCPServer
from pymills.event.c ore import listener, Component
from pymills.net.htt p import HTTP, Response, Dispatcher
from pymills import __version__ as systemVersion
USAGE = "%prog [options] [path]"
VERSION = "%prog v" + systemVersion
###
### Functions
###
def parse_options() :
"""parse_option s() -opts, args
Parse any command-line options given returning both
the parsed options and arguments.
"""
parser = optparse.Option Parser(usage=US AGE, version=VERSION )
parser.add_opti on("-b", "--bind",
action="store", default="0.0.0. 0:8000", dest="bind",
help="Bind to address:port")
opts, args = parser.parse_ar gs()
return opts, args
###
### Components
###
class Test(Component) :
channel = "/"
@listener("inde x")
def onINDEX(self, request, response):
self.send(Respo nse(response), "response")
@listener("hell o")
def onHello(self, request, response):
if request.cookie. get("seen", False):
response.body = "Seen you before!"
else:
response.body = "Hello World!"
response.cookie["seen"] = True
self.send(Respo nse(response), "response")
@listener("test ")
def onTEST(self, request, response):
response.body = "OK"
self.send(Respo nse(response), "response")
class WebServer(TCPSe rver, HTTP): pass
###
### Main
###
def main():
opts, args = parse_options()
if ":" in opts.bind:
address, port = opts.bind.split (":")
port = int(port)
else:
address, port = opts.bind, 80
server = WebServer(port, address)
dispatcher = Dispatcher()
event.manager += server
event.manager += Test()
event.manager += dispatcher
while True:
try:
manager.flush()
server.poll()
except KeyboardInterru pt:
break
###
### Entry Point
###
if __name__ == "__main__":
main()
</code>
--
--
-- "Problems are solved by method"
On 10/2/08, Phillip B Oldham <phillip.oldham @gmail.comwrote :
On Oct 2, 1:32 am, "James Mills" <prolo...@short circuit.net.auw rote:>
Thanks for the example, but its not loading.
Thanks for the example, but its not loading.
some time today :/ Not happy!
Here is the sample:
<code>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim: set sw=3 sts=3 ts=3
import optparse
from pymills import event
from pymills.event import manager
from pymills.net.soc kets import TCPServer
from pymills.event.c ore import listener, Component
from pymills.net.htt p import HTTP, Response, Dispatcher
from pymills import __version__ as systemVersion
USAGE = "%prog [options] [path]"
VERSION = "%prog v" + systemVersion
###
### Functions
###
def parse_options() :
"""parse_option s() -opts, args
Parse any command-line options given returning both
the parsed options and arguments.
"""
parser = optparse.Option Parser(usage=US AGE, version=VERSION )
parser.add_opti on("-b", "--bind",
action="store", default="0.0.0. 0:8000", dest="bind",
help="Bind to address:port")
opts, args = parser.parse_ar gs()
return opts, args
###
### Components
###
class Test(Component) :
channel = "/"
@listener("inde x")
def onINDEX(self, request, response):
self.send(Respo nse(response), "response")
@listener("hell o")
def onHello(self, request, response):
if request.cookie. get("seen", False):
response.body = "Seen you before!"
else:
response.body = "Hello World!"
response.cookie["seen"] = True
self.send(Respo nse(response), "response")
@listener("test ")
def onTEST(self, request, response):
response.body = "OK"
self.send(Respo nse(response), "response")
class WebServer(TCPSe rver, HTTP): pass
###
### Main
###
def main():
opts, args = parse_options()
if ":" in opts.bind:
address, port = opts.bind.split (":")
port = int(port)
else:
address, port = opts.bind, 80
server = WebServer(port, address)
dispatcher = Dispatcher()
event.manager += server
event.manager += Test()
event.manager += dispatcher
while True:
try:
manager.flush()
server.poll()
except KeyboardInterru pt:
break
###
### Entry Point
###
if __name__ == "__main__":
main()
</code>
--
--
-- "Problems are solved by method"
Comment