code: def filtered_args(
      self,
      positional: bool = True,
      keyword: bool = True,
      values: bool = True,
      scalars: bool = True,
      generator: bool = True,
  ) -> List[LazyArgument]:
      # This function maintains the sorted order of arguments but provides different filtered views.
      # Some parts of the code care about kwargs vs args (TS lowerings),
      # other parts care about whether they need to wrap the arg in a lazy value or leave it alone.
      # Generators are special cased, as they are needed for fallback/shape-inference but not supported
      # in TS lowerings and therefore also omitted from lazy IR.
      args: List[LazyArgument] = []
      if positional:
          args.extend(self.positional_args)
      if keyword:
          args.extend(self.keyword_args)
  
      if values and scalars and generator:
          return args
      elif values and scalars:
          return [a for a in args if not a.is_generator]
      elif values:
          return [a for a in args if a.is_lazy_value]
      elif scalars:
          return [
              a
              for a in args
              if not a.is_lazy_value
              and (generator or not a.is_generator)
          ]
  
      return []
  
imports: from typing import Any, Dict, List, Optional, Tuple, Union
  from torchgen.api.types import BaseCppType, BaseCType, boolT, CType, deviceT, doubleT, generatorT, layoutT, ListCType, longT, memoryFormatT, NamedCType, OptionalCType, scalarT, scalarTypeT, stringT, SymIntT, VectorCType
  from torchgen.model import Argument, BaseTy, BaseType, FunctionSchema, ListType, OperatorName, OptionalType, Return, TensorOptionsArguments, Type
label_desc: Use image node_id 5 for calling the LazyIrSchema obj's underlying member method code with example usage: obj.filtered_args(positional, keyword, values, scalars, generator) and returns: list, args, unknown, unknown, unknown