diff --git a/scilog/scilog.py b/scilog/scilog.py index 7dcd58c..22e55bb 100644 --- a/scilog/scilog.py +++ b/scilog/scilog.py @@ -1,5 +1,6 @@ from __future__ import annotations import functools +import warnings from .authmixin import AuthError, HEADER_JSON from .httpclient import HttpClient @@ -9,17 +10,17 @@ from .snippet import Snippet, Basesnippet, Paragraph def pinned_to_logbook(logbook_keys): def pinned_to_logbook_inner(func): @functools.wraps(func) - def pinned_to_logbook_call(*args, **kwargs): - if isinstance(args[0].logbook, Basesnippet): - for key in logbook_keys: - if key not in kwargs.keys(): - if key == "parentId": - kwargs[key] = args[0].logbook.id - else: - kwargs[key] = getattr(args[0].logbook, key) + def pinned_to_logbook_call(log, *args, **kwargs): + if not isinstance(log.logbook, Basesnippet): + warnings.warn("No logbook selected.") else: - raise Warning("No logbook selected.") - return func(*args, **kwargs) + for key in logbook_keys: + if key not in kwargs: + if key == "parentId": + kwargs[key] = log.logbook.id + else: + kwargs[key] = getattr(log.logbook, key) + return func(log, *args, **kwargs) return pinned_to_logbook_call return pinned_to_logbook_inner