diff --git a/sdks/python/apache_beam/runners/interactive/interactive_environment.py b/sdks/python/apache_beam/runners/interactive/interactive_environment.py index 2a8fc23088a6..bfb1a7f11905 100644 --- a/sdks/python/apache_beam/runners/interactive/interactive_environment.py +++ b/sdks/python/apache_beam/runners/interactive/interactive_environment.py @@ -38,7 +38,6 @@ from apache_beam.runners.direct import direct_runner from apache_beam.runners.interactive import cache_manager as cache from apache_beam.runners.interactive.messaging.interactive_environment_inspector import InteractiveEnvironmentInspector -from apache_beam.runners.interactive.recording_manager import RecordingManager from apache_beam.runners.interactive.sql.sql_chain import SqlChain from apache_beam.runners.interactive.user_pipeline_tracker import UserPipelineTracker from apache_beam.runners.interactive.utils import assert_bucket_exists @@ -428,6 +427,10 @@ def set_recording_manager(self, recording_manager, pipeline): def get_recording_manager(self, pipeline, create_if_absent=False): """Gets the recording manager for the given pipeline.""" + # Allow initial module loading to be complete and not have a circular + # import. + from apache_beam.runners.interactive.recording_manager import RecordingManager + recording_manager = self._recording_managers.get(str(id(pipeline)), None) if not recording_manager and create_if_absent: # Get the pipeline variable name for the user. This is useful if the user diff --git a/sdks/python/apache_beam/runners/interactive/recording_manager.py b/sdks/python/apache_beam/runners/interactive/recording_manager.py index 688d71bada2e..c19b60b64fd2 100644 --- a/sdks/python/apache_beam/runners/interactive/recording_manager.py +++ b/sdks/python/apache_beam/runners/interactive/recording_manager.py @@ -41,6 +41,7 @@ from apache_beam.runners.interactive import pipeline_fragment as pf from apache_beam.runners.interactive import utils from apache_beam.runners.interactive.caching.cacheable import CacheKey +from apache_beam.runners.interactive.display.pipeline_graph import PipelineGraph from apache_beam.runners.interactive.options import capture_control from apache_beam.runners.runner import PipelineState @@ -712,10 +713,6 @@ def _get_pipeline_graph(self): """Lazily initializes and returns the PipelineGraph.""" if self._pipeline_graph is None: try: - # Allow initial module loading to be complete and not have a circular - # import. - from apache_beam.runners.interactive.display.pipeline_graph import PipelineGraph - # Try to create the graph. self._pipeline_graph = PipelineGraph(self.user_pipeline) except (ImportError, NameError, AttributeError):