##// END OF EJS Templates
interfaces: introduce and use a protocol class for the `mpatch` module...
interfaces: introduce and use a protocol class for the `mpatch` module See f2832de2a46c for details when this was done for the `bdiff` module. Two things worth pointing out- 1) The `cffi` module "inherits" the `pure` implementation of `patchedsize()` because of its wildcard import. 2) It's odd that the `mpatchError` lives in both `pure` and `cext` modules. I initially thought to move the exception into the new class, and make the existing class name an alias to the class in the new location, but the exception is created in C code by the `cext` module, so that won't work. I don't think a protocol class is approriate, because there's nothing special about the class to distinguish from any other `Exception`. Fortunately, nobody is catching this exception in core, so we can kick the can down the road.

File last commit:

r52756:f4733654 default
r52857:d7f17819 default
Show More
hashutil.py
10 lines | 211 B | text/x-python | PythonLexer
Matt Harbison
typing: add `from __future__ import annotations` to most files...
r52756 from __future__ import annotations
Augie Fackler
hashutil: new package for hashing-related features...
r44516 import hashlib
try:
Matt Harbison
typing: disable import error warnings that are already handled...
r47543 from ..thirdparty import sha1dc # pytype: disable=import-error
Augie Fackler
hashutil: new package for hashing-related features...
r44516
sha1 = sha1dc.sha1
except (ImportError, AttributeError):
sha1 = hashlib.sha1