Returns a list of SharedFile objects from a particular shake.

        Args:
            shake_id (int): Shake from which to get a list of SharedFiles
            before (str): get 10 SharedFile objects before (but not including)
                the SharedFile given by `before` for the given Shake.
            after (str): get 10 SharedFile objects after (but not including)
                the SharedFile give by `after' for the given Shake.

        Returns:
            List (list) of SharedFiles.

def get_shared_files_from_shake(self,
                                    shake_id=None,
                                    before=None,
                                    after=None):
        """
        Returns a list of SharedFile objects from a particular shake.

        Args:
            shake_id (int): Shake from which to get a list of SharedFiles
            before (str): get 10 SharedFile objects before (but not including)
                the SharedFile given by `before` for the given Shake.
            after (str): get 10 SharedFile objects after (but not including)
                the SharedFile give by `after' for the given Shake.

        Returns:
            List (list) of SharedFiles.
        """
        if before and after:
            raise Exception("You cannot specify both before and after keys")

        endpoint = '/api/shakes'

        if shake_id:
            endpoint += '/{0}'.format(shake_id)

        if before:
            endpoint += '/before/{0}'.format(before)
        elif after:
            endpoint += '/after/{0}'.format(after)

        data = self._make_request(verb="GET", endpoint=endpoint)
        return [SharedFile.NewFromJSON(f) for f in data['sharedfiles']]