code: def compute_expanded_shape(
      img_shape: Tuple[int, int], angle: float
  ) -> Tuple[int, int]:
      """Compute the shape of an expanded rotated image
  
      Args:
      ----
          img_shape: the height and width of the image
          angle: angle between -90 and +90 degrees
  
      Returns:
      -------
          the height and width of the rotated image
      """
      points: np.ndarray = np.array(
          [
              [img_shape[1] / 2, img_shape[0] / 2],
              [-img_shape[1] / 2, img_shape[0] / 2],
          ]
      )
  
      rotated_points = rotate_abs_points(points, angle)
  
      wh_shape = 2 * np.abs(rotated_points).max(axis=0)
      return wh_shape[1], wh_shape[0]
  
file_path: doctr/doctr/utils/geometry.py
imports: from copy import deepcopy
  from math import ceil
  from typing import List, Optional, Tuple, Union
  import cv2
  import numpy
  from .common_types import BoundingBox, Polygon4P
label_desc: Use image node_id 6 for calling a global function with example usage: compute_expanded_shape(img_shape, angle) and returns: wh_shape,  wh_shape