docs: def run(self):
          """
          Run notebook as an application
          :param params: parameters to inject in the notebook
          :return:
          """
  
          if not self.args:
              self.parse_args()
  
          if self.args.log_level:
              logging.getLogger().setLevel(logging.getLevelName(self.args.log_level))
              logging.debug('Enabled {} logging level'.format(self.args.log_level))
  
          if self.args.import_ipynb:
              check_isfile(self.args.import_ipynb)
              logging.info('Loading Jupyter notebook {}'.format(self.args.import_ipynb))
              self.nb = nbf.read(self.args.import_ipynb, as_version=4)
              uid = self.args.import_ipynb
          else:
              uid = self.load_cells_params()
  
          logging.debug("Unique id: '{}'".format(uid))
          logging.info('Disable cache: {}'.format(self.args.disable_cache))
          logging.info('Ignore cache: {}'.format(self.args.ignore_cache))
  
          if self.args.export_pynb and not self.args.no_exec:
              fatal('--export-pynb requires --no-exec')
  
          if self.args.kernel:
              self.set_kernel(self.args.kernel)
  
          self.process(uid=uid,
                       add_footer=not self.args.disable_footer,
                       no_exec=self.args.no_exec,
                       disable_cache=self.args.disable_cache,
                       ignore_cache=self.args.ignore_cache)
  
          if self.args.export_html:
              self.export_html(self.args.export_html)
  
          if self.args.export_ipynb:
              self.export_ipynb(self.args.export_ipynb)
  
          if self.args.export_pynb:
              self.export_pynb(self.args.export_pynb)