code: def set_hasher(self, hash, rounds=None):
          
          hash = hash.replace('-', '_')
          if hash not in VALID_HASHERS:
              raise WrongHashAlgorithm(WRONG_HASH_MESSAGE)
          hasher = getattr(ph, hash)
          utils.test_hasher(hasher)
  
          default_rounds = getattr(hasher, 'default_rounds', 1)
          min_rounds = getattr(hasher, 'min_rounds', 1)
          max_rounds = getattr(hasher, 'max_rounds', float("inf"))
          rounds = min(max(rounds or default_rounds, min_rounds), max_rounds)
          op = {
              'schemes': VALID_HASHERS + DEPRECATED_HASHERS,
              'deprecated': DEPRECATED_HASHERS,
              'default': hash,
              hash + '__default_rounds': rounds
          }
          self.hasher = CryptContext(**op)
          self.hash = hash.replace('_', '-')  # For testing
          self.rounds = rounds
docs: Updates the has algorithm and, optionally, the number of rounds
          to use.
  
          Raises:
              `~WrongHashAlgorithm` if new algorithm isn't one of the three
              recomended options.