code: def oriented_envelope(geometry, **kwargs):
      """
      Computes the oriented envelope (minimum rotated rectangle)
      that encloses an input geometry, such that the resulting rectangle has
      minimum area.
  
      Unlike envelope this rectangle is not constrained to be parallel to the
      coordinate axes. If the convex hull of the object is a degenerate (line
      or point) this degenerate is returned.
  
      Parameters
      ----------
      geometry : Geometry or array_like
      **kwargs
          See :ref:`NumPy ufunc docs <ufuncs.kwargs>` for other keyword arguments.
  
      Examples
      --------
      >>> from shapely import GeometryCollection, LineString, MultiPoint, Point, Polygon
      >>> oriented_envelope(MultiPoint([(0, 0), (10, 0), (10, 10)])).normalize()
      <POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))>
      >>> oriented_envelope(LineString([(1, 1), (5, 1), (10, 10)])).normalize()
      <POLYGON ((1 1, 10 10, 12 8, 3 -1, 1 1))>
      >>> oriented_envelope(Polygon([(1, 1), (15, 1), (5, 10), (1, 1)])).normalize()
      <POLYGON ((1 1, 5 10, 16.691 4.804, 12.691 -4.196, 1 1))>
      >>> oriented_envelope(LineString([(1, 1), (10, 1)])).normalize()
      <LINESTRING (1 1, 10 1)>
      >>> oriented_envelope(Point(2, 2))
      <POINT (2 2)>
      >>> oriented_envelope(GeometryCollection([]))
      <POLYGON EMPTY>
      """
      if lib.geos_version < (3, 12, 0):
          f = _oriented_envelope_min_area
      else:
          f = _oriented_envelope_geos
      return f(geometry, **kwargs)
  
imports: import numpy
  from shapely import lib
  from shapely._enum import ParamEnum
  from shapely.algorithms._oriented_envelope import _oriented_envelope_min_area
  from shapely.decorators import multithreading_enabled, requires_geos
label_desc: Use image node_id 25 for calling a global function with example usage: oriented_envelope(geometry) and returns: f