Mercurial > public > mercurial-scm > hg
view mercurial/interfaces/util.py @ 52487:3daaa5195a30
typing: align the signatures of `repository.ifilestorage` overrides
This is the same as 048c11993d6a for `imanifestrevisionstored`, with the same
belated realization about missing the Protocol marker.
Since I've been jumping around to the various subclasses and copying extant
hints to places where they're missing, do that here too. This also covers the 3
interfaces subclassed by `repository.ifilestorage` (`repository.ifileindex`,
`repository.ifiledata`, and `repository.ifilemutation`). Obviously the whole
base class needs hints, but I don't want to get side tracked here- it doesn't
look like any of the implementing classes have any additional hints.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 23 Oct 2024 12:21:52 -0400 |
parents | 3c6809941280 |
children |
line wrap: on
line source
# util.py - Utilities for declaring interfaces. # # Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. # zope.interface imposes a run-time cost due to module import overhead and # bookkeeping for declaring interfaces. So, we use stubs for various # zope.interface primitives unless instructed otherwise. from __future__ import annotations if True: class Attribute: def __init__(self, __name__, __doc__=b''): pass class Interface: def __init__( self, name, bases=(), attrs=None, __doc__=None, __module__=None ): pass def implementer(*ifaces): def wrapper(cls): return cls return wrapper