Creates or updates the Library entry with the provided values.

        :param anime_id: The Anime ID or Slug.
        :type anime_id: int or str
        :param str auth_token: User authentication token.
        :param str status:
            Can be one of `'currently-watching'`, `'plan-to-watch'`,
            `'completed'`, `'on-hold'`, `'dropped'`.
        :param str privacy: Can be one of `'public'`, `'private'`. Making an
            entry private will hide it from public view.
        :param rating: Can be one of `0`, `0.5`, `1`, `1.5`, `2`, `2.5`, `3`,
             `3.5`, `4`, `4.5`, `5`. Setting it to the current value or 0 will
             remove the rating.
        :type rating: str, int or float
        :param sane_rating_update: Can be any one of the values for rating.
            Setting it to 0 will remove the rating. This should be used instead
            of rating if you don't want to unset the rating when setting it to
            its current value.
        :type sane_rating_update: str, int or float
        :param int rewatched_times: Number of rewatches. Can be 0 or above.
        :param str notes: The personal notes for the entry.
        :param int episodes_watched: Number of watched episodes.
            Can be between 0 and the total number of episodes. If equal to
            total number of episodes, status should be set to completed.
        :param bool increment_episodes: If set to true, increments watched
            episodes by one. If used along with episodes_watched, provided
            value will be incremented.

        :raises: ValueError -- if Authentication Token is invalid
            (it shouldn't be), or if there is a `500 Internal Server Error`
            or if the response is `Invalid JSON Object`.

def update_entry(self, anime_id, status=None, privacy=None, rating=None,
                     sane_rating_update=None, rewatched_times=None, notes=None,
                     episodes_watched=None, increment_episodes=None):
        """Creates or updates the Library entry with the provided values.

        :param anime_id: The Anime ID or Slug.
        :type anime_id: int or str
        :param str auth_token: User authentication token.
        :param str status:
            Can be one of `'currently-watching'`, `'plan-to-watch'`,
            `'completed'`, `'on-hold'`, `'dropped'`.
        :param str privacy: Can be one of `'public'`, `'private'`. Making an
            entry private will hide it from public view.
        :param rating: Can be one of `0`, `0.5`, `1`, `1.5`, `2`, `2.5`, `3`,
             `3.5`, `4`, `4.5`, `5`. Setting it to the current value or 0 will
             remove the rating.
        :type rating: str, int or float
        :param sane_rating_update: Can be any one of the values for rating.
            Setting it to 0 will remove the rating. This should be used instead
            of rating if you don't want to unset the rating when setting it to
            its current value.
        :type sane_rating_update: str, int or float
        :param int rewatched_times: Number of rewatches. Can be 0 or above.
        :param str notes: The personal notes for the entry.
        :param int episodes_watched: Number of watched episodes.
            Can be between 0 and the total number of episodes. If equal to
            total number of episodes, status should be set to completed.
        :param bool increment_episodes: If set to true, increments watched
            episodes by one. If used along with episodes_watched, provided
            value will be incremented.

        :raises: ValueError -- if Authentication Token is invalid
            (it shouldn't be), or if there is a `500 Internal Server Error`
            or if the response is `Invalid JSON Object`.
        """

        r = self._query_('/libraries/%s' % anime_id, 'POST', {
            'auth_token': self.auth_token,
            'status': status,
            'privacy': privacy,
            'rating': rating,
            'sane_rating_update': sane_rating_update,
            'rewatched_times': rewatched_times,
            'notes': notes,
            'episodes_watched': episodes_watched,
            'increment_episodes': increment_episodes})

        if not (r.status_code == 200 or r.status_code == 201):
            raise ValueError