##// END OF EJS Templates
interfaces: introduce and use a protocol class for the `base85` module...
interfaces: introduce and use a protocol class for the `base85` module See f2832de2a46c for details when this was done for the `bdiff` module. It looks like PEP-688 removed the special casing of `bytes` being a standin for any type of `ByteString`, and defines a `typing.Buffer` class (with a backport in `typing_extensions` for Python prior to 3.12). There's been a lot of churn in this area with pytype, but recent versions of pytype and PyCharm recognize this, and e.g. have `mercurial.node.hex()` defined as: from typing_extensions import Buffer def hex(data: Buffer, sep: str | bytes = ..., bytes_per_sep: int = ...) -> bytes This covers `bytes`, `bytearray`, and `memoryview` by default. Both of the C functions here use `y#` to parse the arguments, which means the arg is a byte-like object[2], so the args would appear to be better typed as `Buffer`. However, pytype has a bug that prevents using this from `typing_extensions`[3], and mypy complained `Unsupported left operand type for + ("memoryview")` in the pure module on line 37 (meaning it's only a subset of `Buffer`). So hold off on changing any of that for now. [1] https://peps.python.org/pep-0688/#no-special-meaning-for-bytes [2] https://docs.python.org/3/glossary.html#term-bytes-like-object [3] https://github.com/google/pytype/issues/1772

File last commit:

r24054:fdf7794b default
r52831:fa7059f0 default
Show More
index.tmpl
31 lines | 795 B | application/x-cheetah | CheetahLexer
{header}
<title>Mercurial repositories index</title>
</head>
<body>
<div class="container">
<div class="menu">
<a href="{logourl}">
<img src="{staticurl|urlescape}{logoimg}" width=75 height=90 border=0 alt="mercurial" /></a>
</div>
<div class="main">
<h2 class="breadcrumb"><a href="/">Mercurial</a> {pathdef%breadcrumb}</h2>
<table class="bigtable">
<thead>
<tr>
<th><a href="?sort={sort_name}">Name</a></th>
<th><a href="?sort={sort_description}">Description</a></th>
<th><a href="?sort={sort_contact}">Contact</a></th>
<th><a href="?sort={sort_lastchange}">Last modified</a></th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody class="stripes2">
{entries%indexentry}
</tbody>
</table>
</div>
</div>
{footer}