<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_path(self, path: str, path_data: Union[dict, None], post_data: Any) -> dict: """Modifies the ESI by an endpoint URL. This method is not marked "private" as it _can_ be used by consuming code, but it's probably easier to call the `get_op` method instead. Args: path: raw ESI URL path path_data: data to format the path with (can be None) post_data: data to send to ESI Returns: ESI data """

        path = self._insert_vars(path, path_data or {})
        path = self.BASE_URL + path
        self._try_refresh_access_token()
        return self.session.post(path, json=post_data).json()