docs: def py_bisplev(x, y, tck, dx=0, dy=0):
      '''Evaluate a bivariate B-spline or its derivatives.
      For scalars, returns a float; for other inputs, mimics the formats of 
      SciPy's `bisplev`.
      
      Parameters
      ----------
      x : float or list[float]
          x value (rank 1), [-]
      y : float or list[float]
          y value (rank 1), [-]
      tck : tuple(list, list, list, int, int)
          Tuple of knot locations, coefficients, and the degree of the spline,
          [tx, ty, c, kx, ky], [-]
      dx : int, optional
          Order of partial derivative with respect to `x`, [-]
      dy : int, optional
          Order of partial derivative with respect to `y`, [-]
      
      Returns
      -------
      values : float or list[list[float]]
          Calculated values from spline or their derivatives; according to the
          same format as SciPy's `bisplev`, [-]
      
      Notes
      -----
      Use `bisplrep` to generate the `tck` representation; there is no Python
      port of it.
      '''
      tx, ty, c, kx, ky = tck
      if isinstance(x, (float, int)):
          x = [x]
      if isinstance(y, (float, int)):
          y = [y]
  
      z = [[cy_bispev(tx, ty, c, kx, ky, [xi], [yi])[0] for yi in y] for xi in x]
      if len(x) == len(y) == 1:
          return z[0][0]
      return z