Index: third_party/twisted_8_1/twisted/web/script.py |
diff --git a/third_party/twisted_8_1/twisted/web/script.py b/third_party/twisted_8_1/twisted/web/script.py |
deleted file mode 100644 |
index d1fae3f020c317004837269b5fe7e45dbda9c18e..0000000000000000000000000000000000000000 |
--- a/third_party/twisted_8_1/twisted/web/script.py |
+++ /dev/null |
@@ -1,163 +0,0 @@ |
- |
-# Copyright (c) 2001-2004 Twisted Matrix Laboratories. |
-# See LICENSE for details. |
- |
- |
-"""I contain PythonScript, which is a very simple python script resource. |
-""" |
- |
-import server |
-import resource |
-import html |
-import error |
- |
-try: |
- import cStringIO as StringIO |
-except ImportError: |
- import StringIO |
- |
-from twisted.web import http |
-from twisted import copyright |
-import traceback |
-import os |
-from twisted.web import resource |
-from twisted.web import static |
- |
-rpyNoResource = """<p>You forgot to assign to the variable "resource" in your script. For example:</p> |
-<pre> |
-# MyCoolWebApp.rpy |
- |
-import mygreatresource |
- |
-resource = mygreatresource.MyGreatResource() |
-</pre> |
-""" |
- |
-class AlreadyCached(Exception): |
- """This exception is raised when a path has already been cached. |
- """ |
- |
-class CacheScanner: |
- def __init__(self, path, registry): |
- self.path = path |
- self.registry = registry |
- self.doCache = 0 |
- |
- def cache(self): |
- c = self.registry.getCachedPath(self.path) |
- if c is not None: |
- raise AlreadyCached(c) |
- self.recache() |
- |
- def recache(self): |
- self.doCache = 1 |
- |
-noRsrc = error.ErrorPage(500, "Whoops! Internal Error", rpyNoResource) |
- |
-def ResourceScript(path, registry): |
- """ |
- I am a normal py file which must define a 'resource' global, which should |
- be an instance of (a subclass of) web.resource.Resource; it will be |
- renderred. |
- """ |
- cs = CacheScanner(path, registry) |
- glob = {'__file__': path, |
- 'resource': noRsrc, |
- 'registry': registry, |
- 'cache': cs.cache, |
- 'recache': cs.recache} |
- try: |
- execfile(path, glob, glob) |
- except AlreadyCached, ac: |
- return ac.args[0] |
- rsrc = glob['resource'] |
- if cs.doCache and rsrc is not noRsrc: |
- registry.cachePath(path, rsrc) |
- return rsrc |
- |
-def ResourceTemplate(path, registry): |
- from quixote import ptl_compile |
- |
- glob = {'__file__': path, |
- 'resource': error.ErrorPage(500, "Whoops! Internal Error", |
- rpyNoResource), |
- 'registry': registry} |
- |
- e = ptl_compile.compile_template(open(path), path) |
- exec e in glob |
- return glob['resource'] |
- |
- |
-class ResourceScriptWrapper(resource.Resource): |
- |
- def __init__(self, path, registry=None): |
- resource.Resource.__init__(self) |
- self.path = path |
- self.registry = registry or static.Registry() |
- |
- def render(self, request): |
- res = ResourceScript(self.path, self.registry) |
- return res.render(request) |
- |
- def getChildWithDefault(self, path, request): |
- res = ResourceScript(self.path, self.registry) |
- return res.getChildWithDefault(path, request) |
- |
- |
- |
-class ResourceScriptDirectory(resource.Resource): |
- def __init__(self, pathname, registry=None): |
- resource.Resource.__init__(self) |
- self.path = pathname |
- self.registry = registry or static.Registry() |
- |
- def getChild(self, path, request): |
- fn = os.path.join(self.path, path) |
- |
- if os.path.isdir(fn): |
- return ResourceScriptDirectory(fn, self.registry) |
- if os.path.exists(fn): |
- return ResourceScript(fn, self.registry) |
- return error.NoResource() |
- |
- def render(self, request): |
- return error.NoResource().render(request) |
- |
- |
-class PythonScript(resource.Resource): |
- """I am an extremely simple dynamic resource; an embedded python script. |
- |
- This will execute a file (usually of the extension '.epy') as Python code, |
- internal to the webserver. |
- """ |
- isLeaf = 1 |
- def __init__(self, filename, registry): |
- """Initialize me with a script name. |
- """ |
- self.filename = filename |
- self.registry = registry |
- |
- def render(self, request): |
- """Render me to a web client. |
- |
- Load my file, execute it in a special namespace (with 'request' and |
- '__file__' global vars) and finish the request. Output to the web-page |
- will NOT be handled with print - standard output goes to the log - but |
- with request.write. |
- """ |
- request.setHeader("x-powered-by","Twisted/%s" % copyright.version) |
- namespace = {'request': request, |
- '__file__': self.filename, |
- 'registry': self.registry} |
- try: |
- execfile(self.filename, namespace, namespace) |
- except IOError, e: |
- if e.errno == 2: #file not found |
- request.setResponseCode(http.NOT_FOUND) |
- request.write(error.NoResource("File not found.").render(request)) |
- except: |
- io = StringIO.StringIO() |
- traceback.print_exc(file=io) |
- request.write(html.PRE(io.getvalue())) |
- request.finish() |
- return server.NOT_DONE_YET |