def run_app(self, port: int = None, host: str = None, title_story: str = None) -> CustomThread: """ run_app method launches the interpretability web app associated with the shapash object. run_app method can be used directly in a Jupyter notebook The link to the webapp is directly mentioned in the Jupyter output Use object.kill() method to kill the current instance Examples are presented in the web_app tutorial (please check tutorial part of this doc) Parameters ---------- port: int (default: None) The port is by default on 8050. You can specify a custom port for your webapp. host: str (default: None) The default host is '0.0.0.0'. You can specify a custom ip address for your webapp title_story: str (default: None) The default title is empty. You can specify a custom title for your webapp (can be reused in other methods like in a report, ...) Returns ------- CustomThread Return the thread instance of your server. Example -------- >>> app = xpl.run_app() >>> app.kill() """ if title_story is not None: self.title_story = title_story if self.y_pred is None: self.predict() if hasattr(self, '_case'): self.smartapp = SmartApp(self) if host is None: host = "0.0.0.0" if port is None: port = 8050 host_name = get_host_name() server_instance = CustomThread( target=lambda: self.smartapp.app.run_server(debug=False, host=host, port=port)) if host_name is None: host_name = host elif host != "0.0.0.0": host_name = host server_instance.start() logging.info(f"Your Shapash application run on http://{host_name}:{port}/") logging.info("Use the method .kill() to down your app.") return server_instance else: raise ValueError("Explainer must be compiled before running app.")
def init_app(self): """ Simple init of SmartApp in case of host smartapp by another way """ self.smartapp = SmartApp(self)