Start separating out transformation data into classes

This commit is contained in:
R. Tyler Ballance 2009-11-21 14:31:03 -08:00
parent 6030b8e3f3
commit eecbe20db7
1 changed files with 32 additions and 9 deletions

View File

@ -1,5 +1,7 @@
#!/usr/bin/env python
import cStringIO
import Image
import os
import sys
import time
@ -7,25 +9,46 @@ import time
from eventlet import api
from eventlet.green import BaseHTTPServer
INBOUND_SIZE = 4096
class TransformException(Exception):
pass
class BaseTransform(object):
command = None
@classmethod
def execute(cls, path, out):
raise TransformException('Subclasses of BaseTransform must override execute()')
class Resize(BaseTransform):
@classmethod
def execute(cls, path, out):
im = Image.open('python.png')
im.thumbnail((16, 16))
im.save(out, 'png')
class PILHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self, *args, **kwargs):
out = cStringIO.StringIO()
print ('do_GET', self.__dict__)
out = self.wfile
data = ''
with open('python.png', 'r') as fd:
data = fd.read()
Resize.execute(None, out)
data = out.getvalue()
self.send_response(200)
self.send_header('Content-Type', 'image/png')
self.send_header('Content-Length', len(data))
self.end_headers()
out.write(data)
self.wfile.write(data)
def main():
address = ('', 8080,)
server = BaseHTTPServer.HTTPServer(address, PILHandler)
server.serve_forever()
try:
address = ('', 8080,)
server = BaseHTTPServer.HTTPServer(address, PILHandler)
server.serve_forever()
except:
return -1
return 0
if __name__ == '__main__':
sys.exit(main())