From ad5a3161bfd4230e4ae4d545bd6c54e499b0f0f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Fri, 23 Feb 2024 21:02:03 +0100
Subject: [PATCH] MAINT: make more attributes properties

---
 src/caoscrawler/identifiable.py | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/caoscrawler/identifiable.py b/src/caoscrawler/identifiable.py
index dff17397..b7be840f 100644
--- a/src/caoscrawler/identifiable.py
+++ b/src/caoscrawler/identifiable.py
@@ -63,12 +63,12 @@ class Identifiable():
         if properties is not None and 'name' in [k.lower() for k in properties.keys()]:
             raise ValueError("Please use the separete 'name' keyword instead of the properties "
                              "dict for name")
-        self.record_id = record_id
-        self.path = path
-        self.record_type = record_type
-        self.name = name
+        self._record_id = record_id
+        self._path = path
+        self._record_type = record_type
+        self._name = name
         if name == "":
-            self.name = None
+            self._name = None
         self._properties: dict = {}
         if properties is not None:
             self._properties = properties
@@ -78,6 +78,26 @@ class Identifiable():
         self._representation = sha256(
             self._create_hashable_string(self).encode('utf-8')).hexdigest()
 
+    @property
+    def record_id(self):
+        """Read-only access to the record id. """
+        return self._record_id.copy()
+
+    @property
+    def path(self):
+        """Read-only access to the path. """
+        return self._path.copy()
+
+    @property
+    def name(self):
+        """Read-only access to the name. """
+        return self._name.copy()
+
+    @property
+    def record_type(self):
+        """Read-only access to the record_type. """
+        return self._record_type.copy()
+
     @property
     def properties(self):
         """Read-only access to the properties. """
-- 
GitLab