@@ -62,13 +62,19 @@ def evict(self, pipeline: beam.Pipeline) -> None:
6262 Otherwise, removes the given derived pipeline.
6363 """
6464 with self ._lock :
65- user_pipeline = self .get_user_pipeline (pipeline )
66- if user_pipeline :
67- for d in self ._user_pipelines [user_pipeline ]:
65+ if pipeline in self ._user_pipelines :
66+ for d in self ._user_pipelines [pipeline ]:
6867 self ._derived_pipelines .pop (d , None )
69- self ._user_pipelines .pop (user_pipeline , None )
68+ self ._pid_to_pipelines .pop (self ._key (d ), None )
69+ self ._user_pipelines .pop (pipeline , None )
7070 elif pipeline in self ._derived_pipelines :
71- self ._derived_pipelines .pop (pipeline , None )
71+ user_pipeline = self ._derived_pipelines .pop (pipeline , None )
72+ if user_pipeline in self ._user_pipelines :
73+ try :
74+ self ._user_pipelines [user_pipeline ].remove (pipeline )
75+ except ValueError :
76+ pass
77+ self ._pid_to_pipelines .pop (self ._key (pipeline ), None )
7278
7379 def clear (self ) -> None :
7480 """Clears the tracker of all user and derived pipelines."""
@@ -90,7 +96,7 @@ def get_pipeline(self, pid: str) -> Optional[beam.Pipeline]:
9096 def add_user_pipeline (self , p : beam .Pipeline ) -> beam .Pipeline :
9197 """Adds a user pipeline with an empty set of derived pipelines."""
9298 with self ._lock :
93- self ._memoize_pipieline (p )
99+ self ._memoize_pipeline (p )
94100
95101 # Create a new node for the user pipeline if it doesn't exist already.
96102 user_pipeline = self .get_user_pipeline (p )
@@ -100,7 +106,7 @@ def add_user_pipeline(self, p: beam.Pipeline) -> beam.Pipeline:
100106
101107 return user_pipeline
102108
103- def _memoize_pipieline (self , p : beam .Pipeline ) -> None :
109+ def _memoize_pipeline (self , p : beam .Pipeline ) -> None :
104110 """Memoizes the pid of the pipeline to the pipeline object."""
105111 pid = self ._key (p )
106112 with self ._lock :
@@ -130,8 +136,8 @@ def add_derived_pipeline(
130136 ut.get_user_pipeline(derived2)
131137 """
132138 with self ._lock :
133- self ._memoize_pipieline (maybe_user_pipeline )
134- self ._memoize_pipieline (derived_pipeline )
139+ self ._memoize_pipeline (maybe_user_pipeline )
140+ self ._memoize_pipeline (derived_pipeline )
135141
136142 # Cannot add a derived pipeline twice.
137143 assert derived_pipeline not in self ._derived_pipelines
0 commit comments