diff -r ef7d85089952 -r 382d9629cede mercurial/interfaces/dirstate.py --- a/mercurial/interfaces/dirstate.py Thu Sep 26 17:47:39 2024 -0400 +++ b/mercurial/interfaces/dirstate.py Thu Sep 26 18:04:31 2024 -0400 @@ -2,26 +2,32 @@ import contextlib +from typing import ( + Protocol, +) + from . import util as interfaceutil -class idirstate(interfaceutil.Interface): - def __init__( - opener, - ui, - root, - validate, - sparsematchfn, - nodeconstants, - use_dirstate_v2, - use_tracked_hint=False, - ): - """Create a new dirstate object. - - opener is an open()-like callable that can be used to open the - dirstate file; root is the root of the directory tracked by - the dirstate. - """ +class idirstate(Protocol): + # TODO: convert these constructor args to fields? + # def __init__( + # self, + # opener, + # ui, + # root, + # validate, + # sparsematchfn, + # nodeconstants, + # use_dirstate_v2, + # use_tracked_hint=False, + # ): + # """Create a new dirstate object. + # + # opener is an open()-like callable that can be used to open the + # dirstate file; root is the root of the directory tracked by + # the dirstate. + # """ # TODO: all these private methods and attributes should be made # public or removed from the interface.