@@ -15,18 +18,34 @@ class InteractiveShell(SingleActiveInteractiveShell):

+    def _start_application(self, get_privileged_command: Callable[[str], str] | 
None) -> None:
+        """Overrides :meth:`_start_application` in the parent class.
+
+        Add a weakref finalize class after starting the application.
+
+        Args:
+            get_privileged_command: A function (but could be any callable) 
that produces
+                the version of the command with elevated privileges.
+        """
+        super()._start_application(get_privileged_command)
+        self._finalizer = weakref.finalize(self, self._close)

I think we can just add the above line to start_application() to achieve the same thing. And we should move the docstring to the public method.

+
      def start_application(self) -> None:
          """Start the application."""
          self._start_application(self._get_privileged_command)

Reply via email to