{"id":23023,"library":"zope-tales","title":"zope.tales","description":"Implementation of the TAL Expression Syntax (TALES) used by Zope Page Templates (ZPT/TAL). Version 7.0 supports Python >=3.9. Released on an as-needed cadence by the Zope Foundation.","status":"active","version":"7.0","language":"python","source_language":"en","source_url":"https://github.com/zopefoundation/zope.tales","tags":["zope","tales","tal","templates","expressions"],"install":[{"cmd":"pip install zope.tales","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Core dependency for interface definitions","package":"zope.interface","optional":false},{"reason":"Used for proxy support in path expressions","package":"zope.proxy","optional":false},{"reason":"Full Zope application server (not required for standalone use)","package":"Zope","optional":true}],"imports":[{"wrong":"from zope.tales.engine import getEngine","symbol":"getEngine","correct":"from zope.tales.engine import getEngine"}],"quickstart":{"code":"from zope.tales.engine import Engine\ne = Engine()\ncontext = {'name': 'World'}\nresult = e.evaluate('Hello, ${name}!', context)\nprint(result)  # outputs: Hello, World!","lang":"python","description":"Basic example: creates a TALES engine, sets a context variable, evaluates a simple expression."},"warnings":[{"fix":"Upgrade to Python 3.9+ or pin zope.tales to version 6.x.","message":"Python 3.9 minimum in version 7.0; older Python versions are no longer supported.","severity":"breaking","affected_versions":">=7.0"},{"fix":"Use the 'context' argument instead.","message":"The 'namespaces' argument in Engine.evaluate() has been deprecated since 6.0 and may be removed.","severity":"deprecated","affected_versions":">=6.0"},{"fix":"Use slash (/) for path traversal: 'request/form' instead of 'request.form'.","message":"TALES uses a custom expression parser; variable names with dots (e.g., 'request.form') require explicit bracket notation like 'request/ form' or using the 'path:' prefix.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'3.9':19 '7.0':16 'as-need':23 'cadenc':26 'express':6,35 'foundat':30 'implement':2 'need':25 'page':12 'python':18 'releas':20 'support':17 'syntax':7 'tal':5,33 'tale':8,32 'templat':13,34 'use':9 'version':15 'zope':11,29,31 'zope.tales':1 'zpt/tal':14","created_at":"2026-04-27T17:08:19.815904+00:00","updated_at":"2026-04-27T17:08:19.815904+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'getEngine' from 'zope.tales.engine' (/tmp/tmpx54dl4tm/venv/lib/python3.12/site-packages/zope/tales/engine.py). Did you mean: 'Engine'?"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"7.0","cli_name":"","cli_version":null,"type":"library","homepage":"https://zope.org/","github":"https://github.com/zopefoundation/zope.tales","docs":"https://zopetales.readthedocs.io/","changelog":null,"pypi":"https://pypi.org/project/zope-tales/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}