parameters: (
          self, singular, plural, variables, plural_expr, vars_referenced, num_called_num
      )
return_statement: return nodes.Output([node])
docstring: Generates a useful node from the data provided.
docstring_summary: Generates a useful node from the data provided.
docstring_tokens: Generates a useful node from the data provided .
function: def _make_node(
          self, singular, plural, variables, plural_expr, vars_referenced, num_called_num
      ):
          """Generates a useful node from the data provided."""
          # no variables referenced?  no need to escape for old style
          # gettext invocations only if there are vars.
          if not vars_referenced and not self.environment.newstyle_gettext:
              singular = singular.replace("%%", "%")
              if plural:
                  plural = plural.replace("%%", "%")
  
          # singular only:
          if plural_expr is None:
              gettext = nodes.Name("gettext", "load")
              node = nodes.Call(gettext, [nodes.Const(singular)], [], None, None)
  
          # singular and plural
          else:
              ngettext = nodes.Name("ngettext", "load")
              node = nodes.Call(
                  ngettext,
                  [nodes.Const(singular), nodes.Const(plural), plural_expr],
                  [],
                  None,
                  None,
              )
  
          # in case newstyle gettext is used, the method is powerful
          # enough to handle the variable expansion and autoescape
          # handling itself
          if self.environment.newstyle_gettext:
              for key, value in iteritems(variables):
                  # the function adds that later anyways in case num was
                  # called num, so just skip it.
                  if num_called_num and key == "num":
                      continue
                  node.kwargs.append(nodes.Keyword(key, value))
  
          # otherwise do that here
          else:
              # mark the return value as safe if we are in an
              # environment with autoescaping turned on
              node = nodes.MarkSafeIfAutoescape(node)
              if variables:
                  node = nodes.Mod(
                      node,
                      nodes.Dict(
                          [
                              nodes.Pair(nodes.Const(key), value)
                              for key, value in variables.items()
                          ]
                      ),
                  )
          return nodes.Output([node])
function_tokens: def _make_node ( self , singular , plural , variables , plural_expr , vars_referenced , num_called_num ) : # no variables referenced?  no need to escape for old style # gettext invocations only if there are vars. if not vars_referenced and not self . environment . newstyle_gettext : singular = singular . replace ( "%%" , "%" ) if plural : plural = plural . replace ( "%%" , "%" ) # singular only: if plural_expr is None : gettext = nodes . Name ( "gettext" , "load" ) node = nodes . Call ( gettext , [ nodes . Const ( singular ) ] , [ ] , None , None ) # singular and plural else : ngettext = nodes . Name ( "ngettext" , "load" ) node = nodes . Call ( ngettext , [ nodes . Const ( singular ) , nodes . Const ( plural ) , plural_expr ] , [ ] , None , None , ) # in case newstyle gettext is used, the method is powerful # enough to handle the variable expansion and autoescape # handling itself if self . environment . newstyle_gettext : for key , value in iteritems ( variables ) : # the function adds that later anyways in case num was # called num, so just skip it. if num_called_num and key == "num" : continue node . kwargs . append ( nodes . Keyword ( key , value ) ) # otherwise do that here else : # mark the return value as safe if we are in an # environment with autoescaping turned on node = nodes . MarkSafeIfAutoescape ( node ) if variables : node = nodes . Mod ( node , nodes . Dict ( [ nodes . Pair ( nodes . Const ( key ) , value ) for key , value in variables . items ( ) ] ) , ) return nodes . Output ( [ node ] )