def __init__(self, groups=None):
        super(GroupedRequirements, self).__init__(NamedRequirements)
        self.groups = groups or self.default_groups
        self.filename = None
        self.create_default_groups()
def _try_write_with_flush(cls, fileobj, payload):
        """This method is here so that it can be patched to simulate write errors.

        This is because mock can't patch primitive objects like file objects.
        """
        fileobj.write(payload)
        fileobj.flush()