code: def scale_shape(
      solid=True,
      name=None,
      breaks=None,
      labels=None,
      lablim=None,
      limits=None,
      na_value=None,
      guide=None,
      format=None,
  ):
      """
      Scale for shapes.
  
      Parameters
      ----------
      solid : bool, default=True
          Are the shapes solid (default) True, or hollow (False).
      name : str
          The name of the scale - used as the axis label or the legend title.
      breaks : list or dict
          A list of data values specifying the positions of ticks, or a dictionary which maps the tick labels to the breaks values.
      labels : list of str or dict
          A list of labels on ticks, or a dictionary which maps the breaks values to the tick labels.
      lablim : int, default=None
          The maximum label length (in characters) before trimming is applied.
      limits : list
          Continuous scale: a numeric vector of length two providing limits of the scale.
          Discrete scale: a vector specifying the data range for the scale
          and the default order of their display in guides.
      na_value
          Missing values will be replaced with this value.
      guide
          A result returned by `guide_legend()` function or 'none' to hide the guide.
      format : str
          Define the format for labels on the scale. The syntax resembles Python's:
  
          - '.2f' -> '12.45'
          - 'Num {}' -> 'Num 12.456789'
          - 'TTL: {.2f}$' -> 'TTL: 12.45$'
  
          For more info see https://lets-plot.org/pages/formats.html.
  
      Returns
      -------
      `FeatureSpec`
          Scale specification.
  
      Notes
      -----
      Scale for shapes. A continuous variable cannot be mapped to shape.
  
      Examples
      --------
      .. jupyter-execute::
          :linenos:
          :emphasize-lines: 8
  
          import numpy as np
          from lets_plot import *
          LetsPlot.setup_html()
          x = np.arange(10)
          c = np.where(x < 5, 'a', 'b')
          ggplot({'x': x, 'y': x, 'c': c}, aes('x', 'y')) + \\
              geom_point(aes(shape='c'), size=5) + \\
              scale_shape(solid=False, name='shapes')
  
      """
      solid = as_boolean(solid, default=True)
      return _scale(
          "shape",
          name=name,
          breaks=breaks,
          labels=labels,
          lablim=lablim,
          limits=limits,
          expand=None,
          na_value=na_value,
          guide=guide,
          trans=None,
          format=format,
          #
          solid=solid,
      )
  
imports: from .core import FeatureSpec, FeatureSpecArray
  from .util import as_boolean
label_desc: Use image node_id 1 for calling a global function with example usage: scale_shape(solid, name, breaks, labels, lablim, limits, na_value, guide, format) and returns: _scale