Cheetah.Tools contains functions and classes contributed by third
parties. Some are Cheetah-specific but others are generic and can be used
standalone. None of them are imported by any other Cheetah component; you can
delete the Tools/ directory and Cheetah will function fine.
Some of the items in Tools/ are experimental and have been placed there just to see how useful they will be, and whether they attract enough users to make refining them worthwhile (the tools, not the users :).
Nothing in Tools/ is guaranteed to be: (A) tested, (B) reliable, (C) immune from being deleted in a future Cheetah version, or (D) immune from backwards-incompatable changes. If you depend on something in Tools/ on a production system, consider making a copy of it outside the Cheetah/ directory so that this version won't be lost when you upgrade Cheetah. Also, learn enough about Python and about the Tool so that you can maintain it and bugfix it if necessary.
If anything in Tools/ is found to be necessary to Cheetah's operation (i.e., if
another Cheetah component starts importing it), it will be moved to the
Current Tools include:
#forloops), displaying one pageful of records at a time (with previous/next links), and printing summary statistics about the records or the current page. See
MondoReportDoc.txtin the same directory as the module. Some features are not implemented yet.
MondoReportTest.pyis a test suite (and it shows there are currently some errors in MondoReport, hmm). Contributed by Mike Orr.
$form.f1is a RecursiveNull object, then
$form.f1.anything["you"].might("use")will resolve to the empty string. You can also put a
RecursiveNullinstance at the end of the searchList to convert missing values to '' rather than raising a
NotFounderror or having a (less efficient) errorCatcher handle it. Of course, maybe you prefer to get a
NotFounderror... Contributed by Ian Bicking.