class_docstr: Univariate Gaussian anomaly detector.
  
  This is a supervised anomaly detector. It fits a Gaussian distribution to the target values.
  The anomaly score is then computed as so:
  
  $$score = 2 \mid CDF(y) - 0.5 \mid$$
  
  This makes it so that the anomaly score is between 0 and 1.
  
  Parameters
  ----------
  window_size
      Set this to fit the Gaussian distribution over a window of recent values.
  grace_period
      Number of samples before which a 0 is always returned. This is handy because the Gaussian
      distribution needs time to stabilize, and will likely produce overly high anomaly score
      for the first samples.
  
  Examples
  --------
  
  >>> import random
  >>> from river import anomaly
  
  >>> rng = random.Random(42)
  >>> detector = anomaly.GaussianScorer()
  
  >>> for y in (rng.gauss(0, 1) for _ in range(100)):
  ...     detector.learn_one(None, y)
  
  >>> detector.score_one(None, -3)
  0.999477...
  
  >>> detector.score_one(None, 3)
  0.999153...
  
  >>> detector.score_one(None, 0)
  0.052665...
  
  >>> detector.score_one(None, 0.5)
  0.383717...
code: def learn_one(self, x, y):
      self.gaussian.update(y)
  
imports: from __future__ import annotations
  from river import anomaly, proba, utils
label_desc: Use image node_id 2 for calling the GaussianScorer obj's underlying member method code with example usage: obj.learn_one(x, y) without return types