def map(self, *args):
call_args = [self._map_args(*cur_args)  for cur_args in zip(*args)]<EOL>r = self._invoke(call_args)<EOL>ret_type = _get_annotation('<STR_LIT>', self.func)<EOL>output_name = getattr(self.func, '<STR_LIT>', '<STR_LIT>')<EOL>return [_decode_response(<EOL>r['<STR_LIT>'][output_name]['<STR_LIT:value>'].get("<STR_LIT>"), <EOL>r['<STR_LIT>'][output_name]['<STR_LIT:value>'].get("<STR_LIT>"), <EOL>x, <EOL>ret_type) <EOL>for x in r['<STR_LIT>']['<STR_LIT>']['<STR_LIT:value>']['<STR_LIT>']]<EOL>
maps the function onto multiple inputs.  The input should be multiple sequences.  The
sequences will be zipped together forming the positional arguments for the call.  This is
equivalent to map(func, ...) but is executed with a single network call.