docstr: Return a tuple of model, op_name for opspec.
  
  If opspec cannot be resolved to a model, the function should
  return None.
docstr_tok: ["Return","a","tuple","of","model",",","op_name","for","opspec",".","If","opspec","can","not","be","resolved","to","a","model",",","the","function","should","return","None","."]
code: def resolve_model_op(self, opspec):
      """Return a tuple of model, op_name for opspec.
  
      If opspec cannot be resolved to a model, the function should
      return None.
      """
      # import debugpy; debugpy.breakpoint()
      if opspec.startswith(("/", "./")) and os.path.isfile(opspec):
          path = opspec
      else:
          path = os.path.join(config.cwd(), opspec)
      if is_quarto_document(path):
          model = QuartoDocumentModelProxy(path, opspec)
          return model, model.op_name
      return None
  
file_path: guildai/guild/plugins/quarto_document.py
imports: import logging
  import os
  import yaml
  from guild import config
  from guild import guildfile
  from guild import model
  from guild import plugin
label_desc: Use image node_id 1 for calling the QuartoDocumentPlugin obj's underlying member method code with example usage: obj.resolve_model_op(opspec) and returns: None, model,  model