<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def post_update(self, post_id, tags=None, file_=None, rating=None, source=None, is_rating_locked=None, is_note_locked=None, parent_id=None):
 """Update a specific post. Only the 'post_id' parameter is required. Leave the other parameters blank if you don't want to change them (Requires login). Parameters: post_id (int):
 The id number of the post to update. tags (str):
 A space delimited list of tags. Specify previous tags. file_ (str):
 The file data ENCODED as a multipart form. rating (str):
 The rating for the post. Can be: safe, questionable, or explicit. source (str):
 If this is a URL, Moebooru will download the file. rating_locked (bool):
 Set to True to prevent others from changing the rating. note_locked (bool):
 Set to True to prevent others from adding notes. parent_id (int):
 The ID of the parent post. """

        params = {
            'id': post_id,
            'post[tags]': tags,
            'post[rating]': rating,
            'post[source]': source,
            'post[is_rating_locked]': is_rating_locked,
            'post[is_note_locked]': is_note_locked,
            'post[parent_id]': parent_id
            }
        if file_ is not None:
            file_ = {'post[file]': open(file_, 'rb')}
            return self._get('post/update', params, 'PUT', file_)
        else:
            return self._get('post/update', params, 'PUT')