summaryrefslogtreecommitdiff
path: root/pypers/europython05/Quixote-2.0/config.py
diff options
context:
space:
mode:
Diffstat (limited to 'pypers/europython05/Quixote-2.0/config.py')
-rwxr-xr-xpypers/europython05/Quixote-2.0/config.py175
1 files changed, 175 insertions, 0 deletions
diff --git a/pypers/europython05/Quixote-2.0/config.py b/pypers/europython05/Quixote-2.0/config.py
new file mode 100755
index 0000000..0a8a651
--- /dev/null
+++ b/pypers/europython05/Quixote-2.0/config.py
@@ -0,0 +1,175 @@
+"""
+$URL: svn+ssh://svn.mems-exchange.org/repos/trunk/quixote/config.py $
+$Id: config.py 26378 2005-03-17 14:04:45Z dbinger $
+
+Quixote configuration information. This module provides both the
+default configuration values, and some code that Quixote uses for
+dealing with configuration info. You should not edit the configuration
+values in this file, since your edits will be lost if you upgrade to a
+newer Quixote version in the future. However, this is the canonical
+source of information about Quixote configuration variables, and editing
+the defaults here is harmless if you're just playing around and don't
+care what happens in the future.
+"""
+
+
+# Note that the default values here are geared towards a production
+# environment, preferring security and performance over verbosity and
+# debug-ability. If you just want to get a Quixote application
+# up-and-running in a production environment, these settings are mostly
+# right; all you really need to customize are ERROR_EMAIL, and ERROR_LOG.
+# If you need to test/debug/develop a Quixote application, though, you'll
+# probably want to also change DISPLAY_EXCEPTIONS.
+# Again, you shouldn't edit this file unless you don't care what happens
+# in the future (in particular, an upgrade to Quixote would clobber your
+# edits).
+
+
+# E-mail address to send application errors to; None to send no mail at
+# all. This should probably be the email address of your web
+# administrator.
+ERROR_EMAIL = None
+#ERROR_EMAIL = 'webmaster@example.com'
+
+# Filename for writing the Quixote access log; None for no access log.
+ACCESS_LOG = None
+#ACCESS_LOG = "/www/log/quixote-access.log"
+
+# Filename for logging error messages and debugging output; if None,
+# everything will be sent to standard error (normally ending up in the
+# Web server's error log file.
+ERROR_LOG = None
+
+# Controls what's done when uncaught exceptions occur. If set to
+# 'plain', the traceback will be returned to the browser in addition
+# to being logged, If set to 'html' and the cgitb module is installed,
+# a more elaborate display will be returned to the browser, showing
+# the local variables and a few lines of context for each level of the
+# traceback. If set to None, a generic error display, containing no
+# information about the traceback, will be used.
+DISPLAY_EXCEPTIONS = None
+
+# Compress large pages using gzip if the client accepts that encoding.
+COMPRESS_PAGES = False
+
+# If true, then a cryptographically secure token will be inserted into forms
+# as a hidden field. The token will be checked when the form is submitted.
+# This prevents cross-site request forgeries (CSRF). It is off by default
+# since it doesn't work if sessions are not persistent across requests.
+FORM_TOKENS = False
+
+# Session-related variables
+# =========================
+
+# Name of the cookie that will hold the session ID string.
+SESSION_COOKIE_NAME = "QX_session"
+
+# Domain and path to which the session cookie is restricted. Leaving
+# these undefined is fine. Quixote does not have a default "domain"
+# option, meaning the session cookie will only be sent to the
+# originating server. If you don't set the cookie path, Quixote will
+# use your application's root URL (ie. SCRIPT_NAME in a CGI-like
+# environment), meaning the session cookie will be sent to all URLs
+# controlled by your application, but no other.
+SESSION_COOKIE_DOMAIN = None # eg. ".example.com"
+SESSION_COOKIE_PATH = None # eg. "/"
+
+
+# Mail-related variables
+# ======================
+# These are only used by the quixote.sendmail module, which is
+# provided for use by Quixote applications that need to send
+# e-mail. This is a common task for web apps, but by no means
+# universal.
+#
+# E-mail addresses can be specified either as a lone string
+# containing a bare e-mail address ("addr-spec" in the RFC 822
+# grammar), or as an (address, real_name) tuple.
+
+# MAIL_FROM is used as the default for the "From" header and the SMTP
+# sender for all outgoing e-mail. If you don't set it, your application
+# will crash the first time it tries to send e-mail without an explicit
+# "From" address.
+MAIL_FROM = None # eg. "webmaster@example.com"
+ # or ("webmaster@example.com", "Example Webmaster")
+
+# E-mail is sent by connecting to an SMTP server on MAIL_SERVER. This
+# server must be configured to relay outgoing e-mail from the current
+# host (ie., the host where your Quixote application runs, most likely
+# your web server) to anywhere on the Internet. If you don't know what
+# this means, talk to your system administrator.
+MAIL_SERVER = "localhost"
+
+# If MAIL_DEBUG_ADDR is set, then all e-mail will actually be sent to
+# this address rather than the intended recipients. This should be a
+# single, bare e-mail address.
+MAIL_DEBUG_ADDR = None # eg. "developers@example.com"
+
+
+# -- End config variables ----------------------------------------------
+# (no user serviceable parts after this point)
+
+class Config:
+ """Holds all Quixote configuration variables -- see above for
+ documentation of them. The naming convention is simple:
+ downcase the above variables to get the names of instance
+ attributes of this class.
+ """
+
+ config_vars = [
+ 'error_email',
+ 'access_log',
+ 'display_exceptions',
+ 'error_log',
+ 'compress_pages',
+ 'form_tokens',
+ 'session_cookie_domain',
+ 'session_cookie_name',
+ 'session_cookie_path',
+ 'check_session_addr',
+ 'mail_from',
+ 'mail_server',
+ 'mail_debug_addr',
+ ]
+
+ def __init__(self, **kwargs):
+ self.set_from_dict(globals()) # set defaults
+ for name, value in kwargs.items():
+ if name not in self.config_vars:
+ raise ValueError('unknown config variable %r' % name)
+ setattr(self, name, value)
+
+ def dump(self, file=None):
+ import sys
+ if file is None:
+ file = sys.stdout
+ file.write("<%s.%s instance at %x>:\n" %
+ (self.__class__.__module__,
+ self.__class__.__name__,
+ id(self)))
+ for var in self.config_vars:
+ file.write(" %s = %s\n" % (var, `getattr(self, var)`))
+
+ def set_from_dict(self, config_vars):
+ for name, value in config_vars.items():
+ if name.isupper():
+ name = name.lower()
+ if name not in self.config_vars:
+ raise ValueError('unknown config variable %r' % name)
+ setattr(self, name, value)
+
+ def read_file(self, filename):
+ """Read configuration from a file. Any variables already
+ defined in this Config instance, but not in the file, are
+ unchanged, so you can use this to build up a configuration
+ by accumulating data from several config files.
+ """
+ # The config file is Python code -- makes life easy.
+ config_vars = {}
+ try:
+ execfile(filename, config_vars)
+ except IOError, exc:
+ if exc.filename is None: # arg! execfile() loses filename
+ exc.filename = filename
+ raise exc
+ self.set_from_dict(config_vars)