def _parse_contract(self, player_info):
        """
        Parse the player's contract.

        Depending on the player's contract status, a contract table is located
        at the bottom of the stats page and includes player wages by season. If
        found, create a dictionary housing the wages by season.

        Parameters
        ----------
        player_info : PyQuery object
            A PyQuery object containing the HTML from the player's stats page.
        """
        tables = player_info('table').items()
        for table in tables:
            id_attr = table.attr('id')
            if id_attr:
                if id_attr.startswith('contracts_'):
                    years = self._parse_contract_headers(table)
                    wages = self._parse_contract_wages(table)
                    contract = self._combine_contract(years, wages)
                    # If the contract is empty, the player likely doesn't have
                    # a contract and should have a value of None instead.
                    if contract == {}:
                        contract = None
                    setattr(self, '_contract', contract)
                    break