diff --git a/scripts/upgrade-2.2.py b/scripts/upgrade-2.2.py new file mode 100755 index 0000000..6e25795 --- /dev/null +++ b/scripts/upgrade-2.2.py @@ -0,0 +1,26 @@ +""" +Loop through entries and ensure using the latest 2.2 entities + +This means adding the following new fields to each entry: + * created (2.1) + * enabled (2.2) +""" +import json + +from transpose import DEFAULT_STORE_PATH, TransposeConfig + + +def main() -> None: + config_file = f"{DEFAULT_STORE_PATH}/transpose.json" + with open(config_file, "r") as f: + d = json.load(f) + + config = TransposeConfig() + for entry_name in d["entries"]: + config.add(entry_name, d["entries"][entry_name]["path"]) + + config.save(config_file) + + +if __name__ == "__main__": + main() diff --git a/src/transpose/transpose.py b/src/transpose/transpose.py index e4048fa..98c7c19 100644 --- a/src/transpose/transpose.py +++ b/src/transpose/transpose.py @@ -140,9 +140,9 @@ class TransposeConfig: config.add( name, entry["path"], - created=entry.get("created"), + created=entry["created"], ) - if "enabled" in entry and not entry["enabled"]: + if not entry["enabled"]: config.disable(name) except (KeyError, TypeError) as e: raise TransposeError(f"Unrecognized Transpose config file format: {e}") @@ -197,7 +197,7 @@ class Transpose: raise TransposeError(f"Entry does not exist: '{name}'") entry = self.config.entries[name] - if hasattr(entry, "enabled") and not entry.enabled and not force: + if not entry.enabled and not force: raise TransposeError(f"Entry '{name}' is not enabled in the config") entry_path = Path(entry.path) @@ -229,7 +229,7 @@ class Transpose: raise TransposeError(f"Could not locate entry by name: '{name}'") entry = self.config.entries[name] - if hasattr(entry, "enabled") and not entry.enabled and not force: + if not entry.enabled and not force: raise TransposeError(f"Entry '{name}' is not enabled in the config") entry_path = Path(entry.path)