def _compute_fixture_value(self, fixturedef):
<EOL>argname = fixturedef.argname<EOL>funcitem = self._pyfuncitem<EOL>scope = fixturedef.scope<EOL>try:<EOL><INDENT>param = funcitem.callspec.getparam(argname)<EOL><DEDENT>except (AttributeError, ValueError):<EOL><INDENT>param = NOTSET<EOL>param_index = <NUM_LIT:0><EOL>has_params = fixturedef.params is not None<EOL>fixtures_not_supported = getattr(funcitem, "<STR_LIT>", False)<EOL>if has_params and fixtures_not_supported:<EOL><INDENT>msg = (<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>).format(<EOL>name=funcitem.name,<EOL>nodeid=funcitem.nodeid,<EOL>typename=type(funcitem).__name__,<EOL>)<EOL>fail(msg, pytrace=False)<EOL><DEDENT>if has_params:<EOL><INDENT>frame = inspect.stack()[<NUM_LIT:3>]<EOL>frameinfo = inspect.getframeinfo(frame[<NUM_LIT:0>])<EOL>source_path = frameinfo.filename<EOL>source_lineno = frameinfo.lineno<EOL>source_path = py.path.local(source_path)<EOL>if source_path.relto(funcitem.config.rootdir):<EOL><INDENT>source_path = source_path.relto(funcitem.config.rootdir)<EOL><DEDENT>msg = (<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>".format(<EOL>funcitem.nodeid,<EOL>fixturedef.argname,<EOL>getlocation(fixturedef.func, funcitem.config.rootdir),<EOL>source_path,<EOL>source_lineno,<EOL>)<EOL>)<EOL>fail(msg, pytrace=False)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>param_index = funcitem.callspec.indices[argname]<EOL>paramscopenum = funcitem.callspec._arg2scopenum.get(argname)<EOL>if paramscopenum is not None:<EOL><INDENT>scope = scopes[paramscopenum]<EOL><DEDENT><DEDENT>subrequest = SubRequest(self, scope, param, param_index, fixturedef)<EOL>subrequest._check_scope(argname, self.scope, scope)<EOL>exc_clear()<EOL>try:<EOL><INDENT>fixturedef.execute(request=subrequest)<EOL><DEDENT>finally:<EOL><INDENT>self._schedule_finalizers(fixturedef, subrequest)<EOL><DEDENT>
Creates a SubRequest based on "self" and calls the execute method of the given fixturedef object. This will
force the FixtureDef object to throw away any previous results and compute a new fixture value, which
will be stored into the FixtureDef object itself.

:param FixtureDef fixturedef: