code: def _version_args_needed(node):
      """Determines if image_arg or version_arg was supplied
  
      Applies similar logic as ``validate_version_or_image_args``
      """
      # if image_arg is present, no need to supply version arguments
      if matching.has_arg(node, IMAGE_ARG):
          return False
  
      # if framework_version is None, need args
      if matching.has_arg(node, FRAMEWORK_ARG):
          framework_version = parsing.arg_value(node, FRAMEWORK_ARG)
      else:
          return True
  
      # check if we expect py_version and we don't get it -- framework and model dependent
      framework, is_model = _framework_from_node(node)
      expecting_py_version = _py_version_defaults(
          framework, framework_version, is_model
      )
      if expecting_py_version:
          return not matching.has_arg(node, PY_ARG)
  
      return False
  
file_path: sagemaker-python-sdk/src/sagemaker/cli/compatibility/v2/modifiers/framework_version.py
imports: from __future__ import absolute_import
  import ast
  from packaging.version import InvalidVersion, Version
  from sagemaker.cli.compatibility.v2.modifiers import matching, parsing
  from sagemaker.cli.compatibility.v2.modifiers.modifier import Modifier
label_desc: Use image node_id 4 for calling a global function with example usage: _version_args_needed(node) and returns: False, False, True, unknown