code: def fastgapfill(model_extended, core, solver, weights={}, epsilon=1e-5):
      
  
      # Run Fastcore and print the induced reaction set
      logger.info('Calculating Fastcore induced set on model')
      induced = fastcore(
          model_extended, core, epsilon=epsilon, weights=weights, solver=solver)
      logger.debug('Result: |A| = {}, A = {}'.format(len(induced), induced))
      added_reactions = induced - core
      logger.debug('Extended: |E| = {}, E = {}'.format(
          len(added_reactions), added_reactions))
      return induced
docs: Run FastGapFill gap-filling algorithm by calling
      :func:`psamm.fastcore.fastcore`.
  
      FastGapFill will try to find a minimum subset of reactions that includes
      the core reactions and it also has no blocked reactions.
      Return the set of reactions in the minimum subset. An extended model that
      includes artificial transport and exchange reactions can be generated by
      calling :func:`.create_extended_model`.
  
      Args:
          model: :class:`psamm.metabolicmodel.MetabolicModel`.
          core: reactions in the original metabolic model.
          weights: a weight dictionary for reactions in the model.
          solver: linear programming library to use.
          epsilon: float number, threshold for Fastcore algorithm.