diff --git a/src/murfey/client/contexts/spa_metadata.py b/src/murfey/client/contexts/spa_metadata.py index b48129646..f5da96954 100644 --- a/src/murfey/client/contexts/spa_metadata.py +++ b/src/murfey/client/contexts/spa_metadata.py @@ -1,4 +1,5 @@ import logging +from importlib.metadata import entry_points from pathlib import Path from typing import Dict, Optional @@ -346,3 +347,28 @@ def post_transfer_epu( }, ) self._registered_squares.add(gs_name) + + elif ( + transferred_file.suffix == ".xml" + and transferred_file.name.startswith("GridSquare") + and environment + ): + source = _get_source(transferred_file, environment=environment) + if not source: + logger.warning( + f"Source could not be identified for {str(transferred_file)}" + ) + return + + gridsquare_dm = source / "Metadata" / f"{transferred_file.parent.name}.dm" + for h in entry_points(group="murfey.hooks"): + try: + if h.name == "get_gridsquare_dm": + h.load()( + destination_dir=source, + gridsquare_dm=gridsquare_dm, + environment=environment, + token=self._token, + ) + except Exception as e: + logger.warning(f"Get GridSquare dm hook failed: {e}")