def remove(self, elem):
        """Remove a requirement.

        :param elem: a string or :class:`Requirement` instance.
        """
        if isinstance(elem, text_type):
            for requirement in self:
                if requirement.package == elem:
                    return super(Requirements, self).remove(requirement)
        return super(Requirements, self).remove(elem)
def json_usage(root):
    root = os.path.abspath(root)
    result = [['Path', 'Parent', 'Usage']]
    result.extend(entry for entry in usage_iter(root))
    return json.dumps(result)