File read-only check supports YAML
[mudpy.git] / lib / mudpy / data.py
index db27d55..9ee09e1 100644 (file)
@@ -23,6 +23,7 @@ class DataFile:
     def __init__(self, filename, universe):
         self.filename = filename
         self.universe = universe
+        self.data = {}
         self.load()
 
     def load(self):
@@ -270,14 +271,20 @@ class DataFile:
             # unset the modified flag
             self.modified = False
 
-    # TODO(fungi): this should support writing YAML
     def is_writeable(self):
         """Returns True if the __control__ read_only is False."""
-        return not self.data.has_option(
-            "__control__", "read_only"
-        ) or not self.data.getboolean(
-            "__control__", "read_only"
-        )
+        # TODO(fungi): remove this indirection after the YAML transition
+        if self._format == "yaml":
+            try:
+                return not self.data["__control__"].get("read_only", False)
+            except KeyError:
+                return True
+        else:
+            return not self.data.has_option(
+                "__control__", "read_only"
+            ) or not self.data.getboolean(
+                "__control__", "read_only"
+            )
 
 
 def find_file(