extensions: address ast deprecations introduced in Python 3.12
Tests would fail with:
.../mercurial/extensions.py:910: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead
if isinstance(a, ast.Str):
.../mercurial/extensions.py:912: DeprecationWarning: ast.Bytes is deprecated and will be removed in Python 3.14; use ast.Constant instead
elif isinstance(a, ast.Bytes):
.../mercurial/extensions.py:913: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead
name = a.s
# TODO there are a few deficiencies in this file:
# * The "namespace" of the labels needs to be worked out. We currently
# piggyback on existing values so color works.
%include map-cmdline.default
[templates]
showbookmarks = '{if(active, "*", " ")} {pad(bookmark, longestbookmarklen + 4)}{shortest(node, nodelen)}\n'
showwork = '{cset_shortnode}{namespaces % cset_namespace} {cset_shortdesc}'
showstack = '{showwork}'
cset_shortnode = '{labelcset(shortest(node, nodelen))}'
# Treat branch and tags specially so we don't display "default" or "tip"
cset_namespace = '{ifeq(namespace, "branches", names_branches, ifeq(namespace, "tags", names_tags, names_others))}'
names_branches = '{ifeq(branch, "default", "", " ({label('log.{colorname}', branch)})")}'
names_tags = '{if(filter_tags(names),
" ({label('log.{colorname}', join(filter_tags(names), ' '))})")}'
names_others = '{if(names, " ({label('log.{colorname}', join(names, ' '))})")}'
cset_shortdesc = '{label("log.description", desc|firstline)}'
[templatealias]
filter_tags(names) = filter(names, ifeq(name, 'tip', '', name))