docs: 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