def load(self, requirements_file=None):
        """Load or reload requirements from a requirements.txt file.

        :param requirements_file: if not given, the filename used from
            initialization will be read again.
        """
        if requirements_file is None:
            requirements_file = self.filename
            if requirements_file is None:
                raise ValueError("no filename provided")
        elif isinstance(requirements_file, text_type):
            requirements_file = Path(requirements_file)
        self.clear()
        with requirements_file.open() as f:
            self.loads(f.read())

        if isinstance(requirements_file, (text_type, Path)):
            self.filename = requirements_file
def create_snapshot(self, volume_id, **kwargs):
        """
        Creates a new snapshot.
        volume_id(Required): id of the volume.
        force: Create a snapshot even if the volume attached (Default=False)
        display_name: Optional snapshot Name.
        display_description: User friendly snapshot description.
        """
        post_body = {'volume_id': volume_id}
        post_body.update(kwargs)
        post_body = json.dumps({'snapshot': post_body})
        resp, body = self.post('snapshots', post_body)
        body = json.loads(body)
        return resp, body['snapshot']