class_docstr: Resolver objects handle the process of looking up actual names and types.
  
  Unless noted otherwise, all resolve_* methods:
    * have a first namespace argument, mapping string to actual values
    * have a second types_namespace argument, mapping string to actual inferred
      types
    * specify names as QN objects
    * specify types as a Set of inferred types
  
  Unless noted otherwise, all resolve_* methods must return either:
    * a set of `type` objects
    * None
class_docstr_tok: ["Resolver","objects","handle","the","process","of","looking","up","actual","names","and","types",".","Unless","noted","otherwise",",","all","resolve_","*","methods",":","*","have","a","first","namespace","argument",",","mapping","string","to","actual","values","*","have","a","second","types_namespace","argument",",","mapping","string","to","actual","inferred","types","*","specify","names","as","QN","objects","*","specify","types","as","a","Set","of","inferred","types","Unless","noted","otherwise",",","all","resolve_","*","methods","must","return","either",":","*","a","set","of","`","type","`","objects","*","None"]
docstr: Resolves the type/value an external (e.g. closure, global) variable.
  
  Args:
    ns: namespace
    types_ns: types namespace
    name: symbol name
  Returns:
    Tuple (type, static_value). The first element is the type to use for
    inferrence. The second is the static value to use. Return None to treat it
    as unknown.
docstr_tok: ["Resolves","the","type\/value","an","external","(","e.g",".","closure",",","global",")","variable",".","Args",":","ns",":","namespace","types_ns",":","types","namespace","name",":","symbol","name","Returns",":","Tuple","(","type",",","static_value",")",".","The","first","element","is","the","type","to","use","for","inferrence",".","The","second","is","the","static","value","to","use",".","Return","None","to","treat","it","as","unknown","."]
code: def res_name(self, ns, types_ns, name):
      """Resolves the type/value an external (e.g. closure, global) variable.
  
      Args:
        ns: namespace
        types_ns: types namespace
        name: symbol name
      Returns:
        Tuple (type, static_value). The first element is the type to use for
        inferrence. The second is the static value to use. Return None to treat it
        as unknown.
      """
      raise NotImplementedError("subclasses must implement")
  
imports: import itertools
  from typing import Any, Callable, Dict, Set
  import gast
  from nvidia.dali._autograph.pyct import anno
  from nvidia.dali._autograph.pyct import cfg
  from nvidia.dali._autograph.pyct import qual_names
  from nvidia.dali._autograph.pyct import transformer
  from nvidia.dali._autograph.pyct.static_analysis import activity
  from nvidia.dali._autograph.pyct.static_analysis import annos
label_desc: Use image node_id 1 for calling the Resolver obj's underlying member method code with example usage: obj.res_name(ns, types_ns, name) without return types