code: def student_t_class_factory(
      df: int = 3,
  ) -> Type[tfp.distributions.StudentT]:
      r"""
      Returns tfp.Distribution.StudentT class (not instance!)
      where df (degrees of freedom) is pre-specified.
  
      This class allows to instantiate a StundentT object by passing
      loc and sale at initialisation for a given degree-of-freedom.
      """
  
      class _StudentT(tfp.distributions.StudentT):
          def __init__(
              self, loc: TensorType, scale: TensorType
          ) -> None:
              super().__init__(df, loc=loc, scale=scale)
  
      return _StudentT
  
file_path: GPflow/tests/gpflow/likelihoods/test_heteroskedastic_constant_variance.py
imports: from typing import Tuple, Type
  import numpy
  import pytest
  import tensorflow
  import tensorflow_probability
  from _pytest.fixtures import SubRequest
  from check_shapes import ShapeChecker
  import gpflow
  from gpflow.base import AnyNDArray, TensorType
  from gpflow.likelihoods import HeteroskedasticTFPConditional
label_desc: Use image node_id 1 for calling a global function with example usage: student_t_class_factory(df) and returns: _StudentT