docs: def edges(ctx, statement, rules, species, namespace_targets, version, api, config_fn):
      """Create BEL Edges from BEL Statement"""
  
      if config_fn:
          config = bel.db.Config.merge_config(ctx.config, override_config_fn=config_fn)
      else:
          config = ctx.config
  
      # Configuration - will return the first truthy result in list else the default option
      if namespace_targets:
          namespace_targets = json.loads(namespace_targets)
      if rules:
          rules = rules.replace(" ", "").split(",")
  
      namespace_targets = utils.first_true(
          [namespace_targets, config["bel"]["lang"].get("canonical")], None
      )
      api_url = utils.first_true(
          [api, config["bel_api"]["servers"].get("api_url", None)], None
      )
      version = utils.first_true(
          [version, config["bel"]["lang"].get("default_bel_version", None)], None
      )
  
      print("------------------------------")
      print("BEL version: {}".format(version))
      print("API Endpoint: {}".format(api))
      print("------------------------------")
  
      bo = BEL(version=version, endpoint=api_url)
      if species:
          edges = (
              bo.parse(statement)
              .orthologize(species)
              .canonicalize(namespace_targets=namespace_targets)
              .compute_edges(rules=rules)
          )
      else:
          edges = (
              bo.parse(statement)
              .canonicalize(namespace_targets=namespace_targets)
              .compute_edges(rules=rules)
          )
  
      if edges is None:
          print(bo.original_bel_stmt)
          print(bo.parse_visualize_error)
          print(bo.validation_messages)
      else:
          print(json.dumps(edges, indent=4))
  
          if bo.validation_messages:
              print(bo.validation_messages)
          else:
              print("No problems found")
      return