Module Access In TALES¶
Problem¶
DTML allows access to standard modules such as ‘string’ and ‘math’. Scripts can import and module that has security restrictions. TALES expressions (especially Python expressions) should have similar access.
Proposal¶
Add a builtin variable ‘modules’ that can be used to access Python modules that have security restrictions. In Python, this would be used with mapping notation:
python:modules['string'].split(x)
python:modules['Products.PythonScripts.standard'].html_quote(x)
The variable would be usable in path expressions also:
tal:define="join nocall modules/string/join"
Comments¶
- richard (Apr 9, 2001 7:11 pm; Comment #1) –
- I can’t help thinking that it’d be more user-friendly for the python: case to be able to use an attribute interface rather than a mapping interface…
- evan (Apr 20, 2001 3:03 pm; Comment #2) –
- Unfortunately, Python overloads dotted notation for module import and for attribute access. ‘modules[“a”].b’ is not semantically identical to ‘modules[“a.b”]’, since “import a; x=a.b” and “import a.b; x=a.b” mean two different things if ‘a’ is a package.