Cheetah 3.4.0

Mohammadreza Saveji mohammadrezasaveji at gmail.com
Mon Dec 2 07:06:50 EST 2024


Thanks a lot Oleg
sincerely yours

On Mon, Dec 2, 2024 at 5:27 PM Oleg Broytman via Python-list <
python-list at python.org> wrote:

> Hello!
>
> I'm pleased to announce version 3.4.0, the final release
> of branch 3.4 of CheetahTemplate3.
>
>
> What's new in CheetahTemplate3
> ==============================
>
> This release spans two topics: adapting to Python 3.13 and
> fixes in import hooks.
>
> Bug fixes:
>
>   - Fixed ``ImportHooks``: it must raise ``ModuleNotFoundError``
>     instead of ``ImportError``.
>
>   - Fixed absolute import in ``ImportHooks`` under Python 3.
>
>   - Use ``cache_from_source`` in ``ImportManager`` to find out
>     ``.pyc``/``.pyo`` byte-code files.
>
>   - Fixed unmarshalling ``.pyc``/``.pyo`` byte-code files
>     in ``ImportManager``.
>
>   - Fixed ``Template.webInput``: Use ``urllib.parse.parse_qs``
>     instead of ``cgi.FieldStorage``; Python 3.13 dropped ``cgi``.
>
>   - Fixed ``_namemapper.c``: Silent an inadvertent ``TypeError`` exception
>     in ``PyMapping_HasKeyString`` under Python 3.13+
>     caused by ``_namemapper`` looking up a key in a non-dictionary.
>
>   - Fixed ``_namemapper.c``: Silence ``IndexError`` when testing
>     ``name[attr]``. Some objects like ``re.MatchObject`` implement both
>     attribute access and index access. This confuses ``NameMapper`` because
>     it expects ``name[attr]`` to raise ``TypeError`` for objects that don't
>     implement mapping protocol.
>
>   - Fixed mapping test in ``NameMapper.py``:
>     Python 3.13 brough a new mapping type ``FrameLocalsProxy``.
>
>   - Fixed another ``RecursionError`` in ``ImportHooks`` under PyPy3.
>
> Tests:
>
>   - tox: Run tests under Python 3.13.
>
> CI:
>
>   - CI(GHActions): Switch to ``setup-miniconda``.
>
>   - CI(GHActions): Run tests under Python 3.13.
>
> Build/release:
>
>   - Rename sdist to lowercase; different build tools produce different
> case.
>     This is important because stupid PyPI doesn't ignore sdists
>     in different cases but also doesn't allow uploading.
>     So we use single case, all lower. Also see PEP 625.
>
>
> What is CheetahTemplate3
> ========================
>
> Cheetah3 is a free and open source (MIT) Python template engine.
> It's a fork of the original CheetahTemplate library.
>
> Python 2.7 or 3.4+ is required.
>
>
> Where is CheetahTemplate3
> =========================
>
> Site:
> https://cheetahtemplate.org/
>
> Download:
> https://pypi.org/project/CT3/3.4.0
>
> News and changes:
> https://cheetahtemplate.org/news.html
>
> StackOverflow:
> https://stackoverflow.com/questions/tagged/cheetah
>
> Mailing lists:
> https://sourceforge.net/p/cheetahtemplate/mailman/
>
> Development:
> https://github.com/CheetahTemplate3
>
> Developer Guide:
> https://cheetahtemplate.org/dev_guide/
>
>
> Example
> =======
>
> Install::
>
>     $ pip install CT3 # (or even "ct3")
>
> Below is a simple example of some Cheetah code, as you can see it's
> practically
> Python. You can import, inherit and define methods just like in a regular
> Python
> module, since that's what your Cheetah templates are compiled to :) ::
>
>     #from Cheetah.Template import Template
>     #extends Template
>
>     #set $people = [{'name' : 'Tom', 'mood' : 'Happy'}, {'name' : 'Dick',
>                             'mood' : 'Sad'}, {'name' : 'Harry', 'mood' :
> 'Hairy'}]
>
>     <strong>How are you feeling?</strong>
>     <ul>
>         #for $person in $people
>             <li>
>                 $person['name'] is $person['mood']
>             </li>
>         #end for
>     </ul>
>
> Oleg.
> --
>     Oleg Broytman            https://phdru.name/            phd at phdru.name
>            Programmers don't die, they just GOSUB without RETURN.
> --
> https://mail.python.org/mailman/listinfo/python-list
>


More information about the Python-list mailing list