def _extract_operation_from_view(self, view, args):
op = {<EOL>'<STR_LIT>': {<EOL>'<STR_LIT:default>': {<EOL>'<STR_LIT:description>': '<STR_LIT>'<EOL>}<EOL>},<EOL>}<EOL>renderer = args.get('<STR_LIT>', '<STR_LIT>')<EOL>if "<STR_LIT>" in renderer:  <EOL><INDENT>produces = ['<STR_LIT:application/json>']<EOL><DEDENT>elif renderer == '<STR_LIT>':<EOL><INDENT>produces = ['<STR_LIT>']<EOL><DEDENT>else:<EOL><INDENT>produces = None<EOL><DEDENT>if produces:<EOL><INDENT>op.setdefault('<STR_LIT:produces>', produces)<EOL><DEDENT>consumes = args.get('<STR_LIT>')<EOL>if consumes is not None:<EOL><INDENT>consumes = to_list(consumes)<EOL>consumes = [x for x in consumes if not callable(x)]<EOL>op['<STR_LIT>'] = consumes<EOL><DEDENT>is_colander = self._is_colander_schema(args)<EOL>if is_colander:<EOL><INDENT>schema = self._extract_transform_colander_schema(args)<EOL>parameters = self.parameters.from_schema(schema)<EOL><DEDENT>else:<EOL><INDENT>parameters = None<EOL><DEDENT>if parameters:<EOL><INDENT>op['<STR_LIT>'] = parameters<EOL><DEDENT>if isinstance(view, six.string_types):<EOL><INDENT>if '<STR_LIT>' in args:<EOL><INDENT>ob = args['<STR_LIT>']<EOL>view_ = getattr(ob, view.lower())<EOL>docstring = trim(view_.__doc__)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>docstring = str(trim(view.__doc__))<EOL><DEDENT>if docstring and self.summary_docstrings:<EOL><INDENT>op['<STR_LIT>'] = docstring<EOL><DEDENT>if '<STR_LIT>' in args:<EOL><INDENT>op['<STR_LIT>'] = self.responses.from_schema_mapping(args['<STR_LIT>'])<EOL><DEDENT>if '<STR_LIT>' in args:<EOL><INDENT>op['<STR_LIT>'] = args['<STR_LIT>']<EOL><DEDENT>if '<STR_LIT>' in args:<EOL><INDENT>op['<STR_LIT>'] = args['<STR_LIT>']<EOL><DEDENT>if '<STR_LIT>' in args:<EOL><INDENT>op['<STR_LIT>'] = args['<STR_LIT>']<EOL><DEDENT>return op<EOL>
Extract swagger operation details from colander view definitions.

:param view:
    View to extract information from.
:param args:
    Arguments from the view decorator.

:rtype: dict
:returns: Operation definition.