mercurial/templates/map-cmdline.compact
author Matt Harbison <matt_harbison@yahoo.com>
Wed, 18 Sep 2024 17:50:57 -0400
changeset 51870 9d4ad05bc91c
parent 34714 f4aeb952ab77
permissions -rw-r--r--
typing: make `bundlerepository` subclass `localrepository` while type checking Currently, `mercurial/bundlerepo.py` is excluded from pytype, mostly because it complains that various `ui` and `vfs` fields in `localrepository` are missing. (`bundlerepository` dynamically subclasses `localrepository` when it is instantiated, so it works at runtime.) This makes that class hierarchy known to pytype. Having a protocol for `Repository` is probably the right thing to do, but that will be a lot of work and this still reflects the class at runtime. Subclassing also has the benefit of making sure any method overrides have a matching signature, so maybe this is a situation where we do both of these things. (I'm not sure how clear the diagnostics are if a class *almost* implements a protocol, but is missing a method argument or similar.) The subclassing is not done outside of type checking runs to avoid any side effects on already complex code.

[templates]
ldate = '{label("log.date",
                "{date|isodate}")}'

ldesc = '{label('ui.note log.description',
                      '{desc|strip}')}'
ldescfirst = '{label('ui.note log.description',
                     '{desc|firstline|strip}')}'

changeset = '{lrev}{tags}{bookmarks}{parents}   {lnode}   {ldate}   {luser}\n  {ldescfirst}\n\n'
changeset_quiet = '{lrev}:{lnode}\n'
changeset_verbose = '{lrev}{tags}{parents}   {lnode}   {ldate}   {lauthor}\n  {ldesc}\n\n'
lrev = '{label("log.changeset changeset.{phase}",
              "{rev}")}'
lnode = '{label("log.node",
                "{node|short}")}'
lauthor = '{label("log.user",
                  "{author}")}'
luser = '{label("log.user",
                "{author|user}")}'
start_tags = '['
tag = '{label("log.tag",
              "{tag},")}'
last_tag = '{tag}]'
start_parents = ':'
parent = '{lrev},'
last_parent = '{lrev}'
start_bookmarks = '['
bookmark = '{label("log.bookmark",
                   "{bookmark},")}'
last_bookmark = '{bookmark}]'