@@ -57,12 +57,15 @@ class Observatory:
5757 _config_stack : List [Dict [str , Any ]] = []
5858
5959 @classmethod
60- def register_lens (cls , lens_cls : Type [Lens ]) -> None :
60+ def register_lens (cls , lens_cls : Type [Lens ], append = True ) -> None :
6161 """Register lens class and run one-time setup."""
6262
6363 if lens_cls in cls ._lens_registry :
6464 return
65- cls ._lens_registry .append (lens_cls )
65+ if append :
66+ cls ._lens_registry .append (lens_cls )
67+ else :
68+ cls ._lens_registry .insert (0 , lens_cls )
6669 try :
6770 lens_cls .setup ()
6871 except Exception as exc :
@@ -80,10 +83,11 @@ def _ensure_default_lenses(cls) -> None:
8083 from .lenses .metadata import MetadataLens
8184 from .lenses .stack_trace import StackTraceLens
8285
83- cls .register_lens (GraphLens )
84- cls .register_lens (MetadataLens )
85- cls .register_lens (StackTraceLens )
86- cls .register_lens (GraphColorLens )
86+ # defaut lenses should stay in front in case other lenses depends on their data
87+ cls .register_lens (GraphColorLens , append = False )
88+ cls .register_lens (StackTraceLens , append = False )
89+ cls .register_lens (GraphLens , append = False )
90+ cls .register_lens (MetadataLens , append = False )
8791 cls ._lenses_initialized = True
8892
8993 @classmethod
0 commit comments