store: have custom init for entries class
This will get useful to add special processing later in this series.
--- a/mercurial/store.py Mon May 15 08:56:56 2023 +0200
+++ b/mercurial/store.py Mon May 15 08:57:14 2023 +0200
@@ -453,7 +453,7 @@
FILETYPE_OTHER = FILEFLAGS_OTHER
-@attr.s(slots=True)
+@attr.s(slots=True, init=False)
class BaseStoreEntry:
"""An entry in the store
@@ -463,6 +463,16 @@
is_volatile = attr.ib(default=False)
file_size = attr.ib(default=None)
+ def __init__(
+ self,
+ unencoded_path,
+ is_volatile=False,
+ file_size=None,
+ ):
+ self.unencoded_path = unencoded_path
+ self.is_volatile = is_volatile
+ self.file_size = file_size
+
def files(self):
return [
StoreFile(
@@ -473,14 +483,14 @@
]
-@attr.s(slots=True)
+@attr.s(slots=True, init=False)
class SimpleStoreEntry(BaseStoreEntry):
"""A generic entry in the store"""
is_revlog = False
-@attr.s(slots=True)
+@attr.s(slots=True, init=False)
class RevlogStoreEntry(BaseStoreEntry):
"""A revlog entry in the store"""
@@ -488,6 +498,22 @@
revlog_type = attr.ib(default=None)
is_revlog_main = attr.ib(default=None)
+ def __init__(
+ self,
+ unencoded_path,
+ revlog_type,
+ is_revlog_main=False,
+ is_volatile=False,
+ file_size=None,
+ ):
+ super().__init__(
+ unencoded_path=unencoded_path,
+ is_volatile=is_volatile,
+ file_size=file_size,
+ )
+ self.revlog_type = revlog_type
+ self.is_revlog_main = is_revlog_main
+
@attr.s(slots=True)
class StoreFile: