Should there be a way to disable trait notifications?
还没有人认领这个 Issue。
评估
调研方向
首先阅读现有的 HasTraits 通知实现,以及 issue 中引用的 hold_trait_notifications 上下文管理器。确定一个用于完全禁用通知的上下文管理器是否应属于公共 API,并定义其预期的恢复行为;完成标准包括达成一致的 API,以及相应的测试或文档。
由索引模型根据 Issue 内容生成。
描述
I recently had to completely disable trait notification during instantiation of a HasTraits child class. Holding with hold_trait_notifications wasn't sufficient; the notifications release when exiting the context manager was modifying attributes I didn't want to change.
I used a snippet found in the source code to implement the following context manager.
import contextlib
from traitlets import HasTraits, Bunch
@contextlib.contextmanager
def disable_trait_notifications(self):
"""Temporatilly disable trait notifications."""
def ignore(change: Bunch) -> None:
pass
original_notify_change = self.notify_change
self.notify_change = ignore
try:
yield
finally:
self.notify_change = original_notify_change
# Monkey patch HasTraits
HasTraits.disable_trait_notifications = disable_trait_notifications
Wondering if it would make sense to have this as part of the API. Hope I'm not suggesting an anti pattern 😅
- 主要语言
- Python
- 星标
- 653
- 派生
- 217
- 平均合并
- 2 天 21 小时
- 30 天内合并 PR
- 2
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ipython/traitlets 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 65/100
-
难度 1/5 1-3 小时 新手友好度 65/100
-
good first issue
难度 1/5 1 小时以内 新手友好度 85/100
-
documentation
难度 1/5 1 小时以内 新手友好度 65/100
-
难度 3/5 1-2 天 新手友好度 45/100
查看 ipython/traitlets 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 75/100
stephrobert/dsoxlab#238 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
sublimehq/package_control#1780 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 2/5 1-3 小时 新手友好度 70/100
nwg-piotr/nwg-displays#145 ·