Should there be a way to disable trait notifications?
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
Piste de recherche
Commencez par lire l’implémentation existante des notifications de HasTraits et le gestionnaire de contexte hold_trait_notifications référencé dans l’issue. Déterminez si un gestionnaire de contexte permettant de tout désactiver doit faire partie de l’API publique et définissez son comportement attendu de restauration ; ce serait terminé avec une API approuvée et les tests ou la documentation correspondants.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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 😅
- Langage dominant
- Python
- Étoiles
- 653
- Forks
- 217
- Merge moyen
- 2 j 21 h
- PR mergées (30 j)
- 2
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ipython/traitlets
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 65/100
-
Difficulté 1/5 1-3 heures Accessibilité débutants 65/100
-
good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
-
Document `TraitType.read_only` Ouvertedocumentation
Difficulté 1/5 Moins d'une heure Accessibilité débutants 65/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
Toutes les issues de ipython/traitlets
Issues similaires
-
[Bug] reef-hermes tells me to resume with hermes --resume, which does not work from my shell Ouvertearea: harness bug status: needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Human-Agent-Society/reef#625 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 80/100
learningequality/kolibri#15351 · 2 commentaires ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Name consistency Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
eellak/triplestore#65 · 1 commentaire ·