View/Controller Framework and Templating Engine
Myghty fully implements Mason's templating language, component-based architecture, and caching system, and goes beyond, adding new paradigms such as Module Components, full Python whitespace syntax, threading support, WSGI support, session support, and much more.
Here are some key features of "Myghty":
- Session object support.
- Direct connectors for mod_python, CGI, WSGI, Python Paste, SimpleHTTPServer. As the Interpreter object is a lightweight object with no external dependencies whatsoever, any Python application or application server can invoke any series of Myghty components with just one line of code.
- A super-configurable ruleset driven URI resolution architecture allowing many options for resolving URI's both externally and within templates. Allows any combination of resolution directly to templates, Module Components, or any plain Python function or object instance. Special rules exist to route non-existent URI's to specific components, to cache the results of URI resolution for higher performance, and to execute conditionally based on contextual information.
- Cache API and implementation, can cache component output and any other data structure in memory or in pickled files. Includes a "busy lock" feature that allows a slow re-generation method to execute while the old data continues to be returned to other threads and processes. New cache implementations can be added fairly easily.
- Flexible global namespaces allow components to have any number of custom "global" variables.
- Special code blocks allow the construction of code that is local to the current request, or local to the current thread. A ThreadLocal object is supplied as well for safe management of thread-sensitive resources such as databases.
- Fine grained control of buffering - the buffering of textual output as it is delivered to the client can controlled at the application, page, or component level.
- Custom filtering functions can be defined for the output any component, within the source of the component via the tag.
- Full featured error handling and reporting. errors can be logged to the Apache logs or standard error, caught by application code, and/or reported to the browser screen. stack traces are delivered showing original template line numbers.