<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fetch_data(self):
 """Fetch the latest data from Fido."""

        # Get http session
        yield from self._get_httpsession()
        # Post login page
        yield from self._post_login_page()
        # Get token
        token_uuid = yield from self._get_token()
        # Get account number
        account_number = yield from self._get_account_number(*token_uuid)
        # List phone numbers
        self._phone_numbers = yield from self._list_phone_numbers(account_number)
        # Get balance
        balance = yield from self._get_balance(account_number)
        self._data['balance'] = balance
        # Get fido dollar
        for number in self._phone_numbers:
            fido_dollar = yield from self._get_fido_dollar(account_number,
                                                           number)
            self._data[number]= {'fido_dollar': fido_dollar}
        # Get usage
        for number in self._phone_numbers:
            usage = yield from self._get_usage(account_number, number)
            self._data[number].update(usage)