Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions movement/io/load.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ def register_loader(
def decorator(
loader_fn: Callable[Concatenate[TInputFile, P], xr.Dataset],
) -> Callable[Concatenate[TInputFile, P], xr.Dataset]:

@wraps(loader_fn)
def wrapper(file: TInputFile, *args, **kwargs) -> xr.Dataset:
if not validators_list:
Expand All @@ -222,8 +223,15 @@ def wrapper(file: TInputFile, *args, **kwargs) -> xr.Dataset:
)
return loader_fn(valid_file, *args, **kwargs) # type: ignore[arg-type]

# Warn if loader already exists
if source_software in _LOADER_REGISTRY:
logger.warning(
f"Loader for '{source_software}' is being overwritten."
)

# Register the loader in the global registry
_LOADER_REGISTRY[source_software] = cast("LoaderProtocol", wrapper)

return wrapper

return decorator
Expand Down