def __init__(
        self,
        device: Device,
        process: _subprocess.Popen,
        installation_info: _AppInstallationInfo,
        working_directory: _Path,
    ) -> None:
        """
        Initialize an AppSession.

        Parameters
        ----------
        device : Device
            The device on which the application is running.

        process : subprocess.Popen
            The subprocess representing the launched application.

        installation_info : str
            The application installation info.

        working_directory: Path
            The directory utilized for storing files required for communication.

        Returns
        -------
        AppSession
            An AppSession object representing the running instance
        """
        self.device = device
        self.installation_info = installation_info
        self._process = process
        self.working_directory = working_directory

        Initialize an AppSession.

        Parameters
        ----------
        device : Device
            The device on which the application is running.

        process : subprocess.Popen
            The subprocess representing the launched application.

        installation_info : str
            The application installation info.

        working_directory: Path
            The directory utilized for storing files required for communication.

        Returns
        -------
        AppSession
            An AppSession object representing the running instance
        
coremltools/models/ml_program/experimental/remote_device.py