nodes: 0, module; 1, function_definition; 2, function_name:asyncPipeStringtokenizer; 3, parameters; 4, block; 5, default_parameter; 6, default_parameter; 7, default_parameter; 8, dictionary_splat_pattern; 9, expression_statement; 10, expression_statement; 11, expression_statement; 12, expression_statement; 13, expression_statement; 14, expression_statement; 15, expression_statement; 16, identifier:context; 17, None; 18, identifier:_INPUT; 19, None; 20, identifier:conf; 21, None; 22, identifier:kwargs; 23, comment:"""A string module that asynchronously splits a string into tokens
      delimited by separators. Loopable.
  
      Parameters
      ----------
      context : pipe2py.Context object
      _INPUT : twisted Deferred iterable of items or strings
      conf : {
          'to-str': {'value': <delimiter>},
          'dedupe': {'type': 'bool', value': <1>},
          'sort': {'type': 'bool', value': <1>}
      }
  
      Returns
      -------
      _OUTPUT : twisted.internet.defer.Deferred generator of items
      """; 24, assignment; 25, assignment; 26, assignment; 27, assignment; 28, assignment; 29, call; 30, subscript; 31, call; 32, identifier:splits; 33, yield; 34, identifier:parsed; 35, yield; 36, identifier:items; 37, yield; 38, identifier:_OUTPUT; 39, call; 40, identifier:returnValue; 41, argument_list; 42, identifier:conf; 43, string; 44, attribute; 45, argument_list; 46, call; 47, call; 48, call; 49, attribute; 50, argument_list; 51, identifier:_OUTPUT; 52, string_content:delimiter; 53, identifier:conf; 54, identifier:pop; 55, string; 56, call; 57, identifier:asyncGetSplits; 58, argument_list; 59, identifier:asyncDispatch; 60, argument_list; 61, identifier:asyncStarMap; 62, argument_list; 63, identifier:utils; 64, identifier:multiplex; 65, identifier:items; 66, string_content:to-str; 67, attribute; 68, argument_list; 69, identifier:_INPUT; 70, identifier:conf; 71, dictionary_splat; 72, identifier:splits; 73, list_splat; 74, call; 75, identifier:parsed; 76, identifier:dict; 77, identifier:get; 78, identifier:conf; 79, string; 80, call; 81, call; 82, identifier:partial; 83, argument_list; 84, string_content:delimiter; 85, identifier:cdicts; 86, argument_list; 87, identifier:get_async_dispatch_funcs; 88, argument_list; 89, identifier:maybeDeferred; 90, identifier:parse_result; 91, identifier:opts; 92, identifier:kwargs
code: def asyncPipeStringtokenizer(context=None, _INPUT=None, conf=None, **kwargs):
      """A string module that asynchronously splits a string into tokens
      delimited by separators. Loopable.
  
      Parameters
      ----------
      context : pipe2py.Context object
      _INPUT : twisted Deferred iterable of items or strings
      conf : {
          'to-str': {'value': <delimiter>},
          'dedupe': {'type': 'bool', value': <1>},
          'sort': {'type': 'bool', value': <1>}
      }
  
      Returns
      -------
      _OUTPUT : twisted.internet.defer.Deferred generator of items
      """
      conf['delimiter'] = conf.pop('to-str', dict.get(conf, 'delimiter'))
      splits = yield asyncGetSplits(_INPUT, conf, **cdicts(opts, kwargs))
      parsed = yield asyncDispatch(splits, *get_async_dispatch_funcs())
      items = yield asyncStarMap(partial(maybeDeferred, parse_result), parsed)
      _OUTPUT = utils.multiplex(items)
      returnValue(_OUTPUT)