def control(self, control_func, args=None, kwargs=None, name='<STR_LIT>', context=None):
if self._control is not None:<EOL><INDENT>raise exceptions.LaboratoryException(<EOL>'<STR_LIT>'<EOL>)<EOL><DEDENT>self._control = {<EOL>'<STR_LIT>': control_func,<EOL>'<STR_LIT:args>': args or [],<EOL>'<STR_LIT>': kwargs or {},<EOL>'<STR_LIT:name>': name,<EOL>'<STR_LIT>': context or {},<EOL>}<EOL>
Set the experiment's control function. Must be set before ``conduct()`` is called.

:param callable control_func: your control function
:param iterable args: positional arguments to pass to your function
:param dict kwargs: keyword arguments to pass to your function
:param string name: a name for your observation
:param dict context: observation-specific context

:raises LaboratoryException: If attempting to set a second control case