diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py +++ b/mercurial/pure/parsers.py @@ -14,6 +14,7 @@ nullrev, sha1nodeconstants, ) +from ..thirdparty import attr from .. import ( error, pycompat, @@ -43,6 +44,7 @@ AMBIGUOUS_TIME = -1 +@attr.s(slots=True) class DirstateItem(object): """represent a dirstate entry @@ -54,13 +56,10 @@ - mtime, """ - __slot__ = ('_state', '_mode', '_size', '_mtime') - - def __init__(self, state, mode, size, mtime): - self._state = state - self._mode = mode - self._size = size - self._mtime = mtime + _state = attr.ib() + _mode = attr.ib() + _size = attr.ib() + _mtime = attr.ib() def __getitem__(self, idx): if idx == 0 or idx == -4: