class_docstr: Essentially a data class with a parametrized format method
  
  Helper to interpolate various combinations of framework_version, py_version, and image
  as expected by framework and model classes
  
  TODO: use attrs package and eliminate the boilerplate...
class_docstr_tok: ["Essentially","a","data","class","with","a","parametrized","format","method","Helper","to","interpolate","various","combinations","of","framework_version",",","py_version",",","and","image","as","expected","by","framework","and","model","classes","TODO",":","use","attrs","package","and","eliminate","the","boilerplate","..."]
code: def _frameworks(
      self, fw_version=False, py_version=False, image=False
  ):
      keywords = self._base_keywords(fw_version, image)
      if py_version:
          keywords["py_version"] = (
              "py_version"
              if py_version == "named"
              else "'{}'".format(self.py_version)
          )
      return _format_templates(keywords, self._templates())
  
imports: from __future__ import absolute_import
  import pytest
  from sagemaker.cli.compatibility.v2.modifiers import framework_version
  from tests.unit.sagemaker.cli.compatibility.v2.modifiers.ast_converter import ast_call
label_desc: Use image node_id 4 for calling the Template obj's underlying member method code with example usage: obj._frameworks(fw_version, py_version, image) and returns: _format_templates