|  | 
| 83 | 83 | 
 | 
| 84 | 84 | class Bookmark(ABC): | 
| 85 | 85 | 
 | 
| 86 |  | -    # TODO: Barret - This feels like it needs to be a weakref | 
| 87 | 86 |     _session_root: Session | 
| 88 | 87 |     """ | 
| 89 | 88 |     The root session object (most likely a `AppSession` object). | 
| @@ -145,7 +144,6 @@ def __init__(self, session_root: Session): | 
| 145 | 144 |         # from ._restore_state import RestoreContext | 
| 146 | 145 | 
 | 
| 147 | 146 |         super().__init__() | 
| 148 |  | -        # TODO: Barret - Q: Should this be a weakref; Session -> Bookmark -> Session | 
| 149 | 147 |         self._session_root = session_root | 
| 150 | 148 |         self._restore_context_value = None | 
| 151 | 149 |         self._store = MISSING | 
| @@ -248,7 +246,6 @@ async def update_query_string( | 
| 248 | 246 |         ... | 
| 249 | 247 | 
 | 
| 250 | 248 |     @abstractmethod | 
| 251 |  | -    # TODO: Barret - Q: Rename to `update()`? `session.bookmark.update()`? | 
| 252 | 249 |     async def do_bookmark(self) -> None: | 
| 253 | 250 |         """ | 
| 254 | 251 |         Perform bookmarking. | 
| @@ -521,7 +518,6 @@ def __init__(self, session_proxy: SessionProxy): | 
| 521 | 518 |         super().__init__(session_proxy.root_scope()) | 
| 522 | 519 | 
 | 
| 523 | 520 |         self._ns = session_proxy.ns | 
| 524 |  | -        # TODO: Barret - Q: Should this be a weakref | 
| 525 | 521 |         self._session_proxy = session_proxy | 
| 526 | 522 | 
 | 
| 527 | 523 |         self._session_root.bookmark._proxy_exclude_fns.append( | 
| @@ -625,11 +621,8 @@ def on_bookmarked( | 
| 625 | 621 |         self, | 
| 626 | 622 |         callback: Callable[[str], None] | Callable[[str], Awaitable[None]], | 
| 627 | 623 |         /, | 
| 628 |  | -    ) -> NoReturn: | 
| 629 |  | -        # TODO: Barret - Q: Shouldn't we implement this? `self._root_bookmark.on_bookmark()` | 
| 630 |  | -        raise NotImplementedError( | 
| 631 |  | -            "Please call `.on_bookmarked()` from the root session only, e.g. `session.root_scope().bookmark.on_bookmark()`." | 
| 632 |  | -        ) | 
|  | 624 | +    ) -> CancelCallback: | 
|  | 625 | +        return self._on_bookmarked_callbacks.register(wrap_async(callback)) | 
| 633 | 626 | 
 | 
| 634 | 627 |     def _get_bookmark_exclude(self) -> NoReturn: | 
| 635 | 628 |         raise NotImplementedError( | 
|  | 
0 commit comments