code: def Sphere(
      radius=0.5,
      center=(0.0, 0.0, 0.0),
      direction=(0.0, 0.0, 1.0),
      theta_resolution=30,
      phi_resolution=30,
      start_theta=0.0,
      end_theta=360.0,
      start_phi=0.0,
      end_phi=180.0,
  ):
      """Create a sphere.
  
      A sphere describes a 2D surface in comparison to
      :func:`pyvista.SolidSphere`, which fills a 3D volume.
  
      PyVista uses a convention where ``theta`` represents the azimuthal
      angle (similar to degrees longitude on the globe) and ``phi``
      represents the polar angle (similar to degrees latitude on the
      globe). In contrast to latitude on the globe, here
      ``phi`` is 0 degrees at the North Pole and 180 degrees at the South
      Pole. ``phi=0`` is on the positive z-axis by default.
      ``theta=0`` is on the positive x-axis by default.
  
      Parameters
      ----------
      radius : float, default: 0.5
          Sphere radius.
  
      center : sequence[float], default: (0.0, 0.0, 0.0)
          Center coordinate vector in ``[x, y, z]``.
  
      direction : sequence[float], default: (0.0, 0.0, 1.0)
          Direction coordinate vector in ``[x, y, z]`` pointing from ``center`` to
          the sphere's north pole at zero degrees ``phi``.
  
      theta_resolution : int, default: 30
          Set the number of points in the azimuthal direction (ranging
          from ``start_theta`` to ``end_theta``).
  
      phi_resolution : int, default: 30
          Set the number of points in the polar direction (ranging from
          ``start_phi`` to ``end_phi``).
  
      start_theta : float, default: 0.0
          Starting azimuthal angle in degrees ``[0, 360]``.
  
      end_theta : float, default: 360.0
          Ending azimuthal angle in degrees ``[0, 360]``.
  
      start_phi : float, default: 0.0
          Starting polar angle in degrees ``[0, 180]``.
  
      end_phi : float, default: 180.0
          Ending polar angle in degrees ``[0, 180]``.
  
      Returns
      -------
      pyvista.PolyData
          Sphere mesh.
  
      See Also
      --------
      pyvista.Icosphere : Sphere created from projection of icosahedron.
      pyvista.SolidSphere : Sphere that fills 3D space.
  
      Examples
      --------
      Create a sphere using default parameters.
  
      >>> import pyvista as pv
      >>> sphere = pv.Sphere()
      >>> sphere.plot(show_edges=True)
  
      Create a quarter sphere by setting ``end_theta``.
  
      >>> sphere = pv.Sphere(end_theta=90)
      >>> out = sphere.plot(show_edges=True)
  
      Create a hemisphere by setting ``end_phi``.
  
      >>> sphere = pv.Sphere(end_phi=90)
      >>> out = sphere.plot(show_edges=True)
  
      """
      sphere = _vtk.vtkSphereSource()
      sphere.SetRadius(radius)
      sphere.SetThetaResolution(theta_resolution)
      sphere.SetPhiResolution(phi_resolution)
      sphere.SetStartTheta(start_theta)
      sphere.SetEndTheta(end_theta)
      sphere.SetStartPhi(start_phi)
      sphere.SetEndPhi(end_phi)
      sphere.Update()
      surf = wrap(sphere.GetOutput())
      surf.rotate_y(90, inplace=True)
      translate(surf, center, direction)
      return surf
  
imports: from itertools import product
  import numpy
  import pyvista
  from pyvista.core import _vtk_core
  from .arrays import _coerce_pointslike_arg
  from .geometric_sources import ConeSource, CylinderSource, MultipleLinesSource, Text3DSource, translate
  from .helpers import wrap
  from .misc import check_valid_vector
label_desc: Use image node_id 4 for calling a global function with example usage: Sphere(radius, center, direction, theta_resolution, phi_resolution, start_theta, end_theta, start_phi, end_phi) and returns: surf