@classmethod<EOL><INDENT>def extract_from(cls, parameterset, force_tuple=False):<DEDENT>
if isinstance(parameterset, cls):<EOL><INDENT>return parameterset<EOL><DEDENT>if force_tuple:<EOL><INDENT>return cls.param(parameterset)<EOL><DEDENT>else:<EOL><INDENT>return cls(parameterset, marks=[], id=None)<EOL><DEDENT>
:param parameterset:
    a legacy style parameterset that may or may not be a tuple,
    and may or may not be wrapped into a mess of mark objects

:param force_tuple:
    enforce tuple wrapping so single argument tuple values
    don't get decomposed and break tests