summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorhierro <hierro>2003-11-14 09:18:40 +0000
committerhierro <hierro>2003-11-14 09:18:40 +0000
commite9877cf3e15bb8ea32580718525705a5a8b21da4 (patch)
tree8a30ee03b4a2acb672c34983d2355577fa2309d9 /TODO
parent580e011f6d046b7b56dbd3aad5c1034e448d9aeb (diff)
downloadpython-cheetah-e9877cf3e15bb8ea32580718525705a5a8b21da4.tar.gz
*** empty log message ***
Diffstat (limited to 'TODO')
-rw-r--r--TODO82
1 files changed, 73 insertions, 9 deletions
diff --git a/TODO b/TODO
index fb85fa7..cd908ce 100644
--- a/TODO
+++ b/TODO
@@ -10,15 +10,17 @@ Cheetah TODO list
Requirements for 1.0
=========================================================================
-- Python 2.3(b1) causes 16 failures in SyntaxAndOutput.py because the result
- of boolean expressions is now True and False instead of 1 and 0 (or 'True'
- and 'False' instead of '1' and '0' when used as placeholders). The same
- thing happens with $True and $False. Do we need a set of parallel tests
- for Python >= 2.3?
-- There's a kludge in CheetahWrapper.py to abort with a helpful error message
- if the user runs 'cheetah test' but doesn't have write permission in the
- current directory. The tests should instead put their temporary files
- under the system tmp directory.
+- "cheetah test" problem: Python 2.3(b1) causes 16 failures in
+ SyntaxAndOutput.py because the result of boolean expressions is now True and
+ False instead of 1 and 0 (or 'True' and 'False' instead of '1' and '0' when
+ used as placeholders). The same thing happens with $True and $False. Add a
+ preprocessing step to convert output to '1' and '0' before comparing to the
+ control string.
+
+- "cheetah test" problem: subcommands fail mysteriously on Windows. Rewrite
+ to avoid using subcommands. Instead, set sys.argv and call the appropriate
+ main() for each test.
+
- Simplify NameMapper.py while maintaining new behavior (ignore dictionary
attributes/methods when searching for match of first chunk in searchList
lookup). Modify _namemapper.c to conform. Make valueForKey error
@@ -27,16 +29,33 @@ Requirements for 1.0
the entire unparsed placeholder tag to all NameMapper functions for use in
a potential error message, the same way we're passing it to the output
filter. Also consider passing it to the errorCatcher. (TR)
+
+- One-line #if broken. It's recognized only if 'else' is present, otherwise
+ it miscompiles as an unclosed and incorrect multi-line #if. The presence
+ of 'else' should trigger the one-line #if.
+
+- Documentation: document #encoding. Explain problems with one-line #if and
+ "cheetah test" if they haven't been fixed yet.
+
+- There's a kludge in CheetahWrapper.py to abort with a helpful error message
+ if the user runs 'cheetah test' but doesn't have write permission in the
+ current directory. The tests should instead put their temporary files
+ under the system tmp directory.
+
- update User's Guide about changes to SkeletonPage (no more #settings,
etc) (TR)
+
- Decide on Cheetah's 1.0 license and update the Users' Guide. Cheetah
will remain open source, and derived works (open or closed source) will be
allowed. The issue is how to make the second part more explicit. (TR)
+
- Add an example in the distribution of a simplified SkeletonPage
that used #block but does not have fancy esoteric methods like
style stuff. (MO)
+
- Eliminate obsolete #settings directive from
examples/webware_examples/cheetahSite/siteTemplate.tmpl (TR)
+
- Recognize the exception value as a local variable inside the
'#except Exception, ex' clause. Currently $ex raises NotFound.
@@ -53,6 +72,21 @@ Other TODO Items
* If an input file ends in a dot, intelligently add the input extension if
not found.
+- ##null: throw this comment away, do not place it in the compiled template
+ module in any manner. Useful for obsolete text, unfinished text, or notes
+ to yourself. Do for single- and multi-line comments.
+
+- Split out the code needed to run the generated
+ python into a base class of Template, and derive the compiled Python class
+ from that? This would allow precompiled templates to be loaded much more
+ quickly.
+
+- A further 'nice to have' optimisation would be to be able to specify at
+ compile time that you are not using filters, Webware transactions etc, and
+ not generate code that uses them. This would remove the need to import
+ DummyTransaction and the Filters module. It would also simplify the code
+ and function calls in the compiled template module.
+
- Debugging tools. See section below.
- Add --error option to compiled templates and "cheetah fill". It would
@@ -253,6 +287,36 @@ updates the text field's value if there is an uploaded file, but not if there
isn't. This may be handled by the regular method(s) or may require a separate
method.
+RPM Building
+============
+From: John Landahl <john@landahl.org>
+To: cheetahtemplate-discuss@lists.sourceforge.net
+Subject: [Cheetahtemplate-discuss] Building Cheetah RPMs
+Date: Wed, 05 Nov 2003 01:27:24 -0800
+
+If anyone is interested in building Cheetah RPMs, simply add the following
+lines to a file called MANIFEST.in in the Cheetah directory and you'll be
+able to use the "bdist_rpm" option to setup.py (i.e. "python setup.py
+bdist_rpm"):
+
+ include SetupTools.py
+ include SetupConfig.py
+ include bin/*
+
+Also, I've found that using /usr/lib/site-python for add-on Python
+packages is much more convenient than the default of
+/usr/lib/pythonX/site-packages, especially when jumping back and forth
+between 2.2 and 2.3. If you'd like Cheetah in /usr/lib/site-python,
+createa a setup.cfg with the following contents:
+
+ [install]
+ install-lib = /usr/lib/site-python
+
+Of course if you do have version specific libraries they should stay in
+/usr/lib/pythonX/site-packages, but Cheetah seems happy in both 2.2 and
+2.3 and so is a good candidate for /usr/lib/site-python.
+
+
User-defined directives
=======================================================================
IF we decide to support user-defined directives someday, consider Spyce's