class_docstr: A proxy to broadcast ``set_*()`` and ``set()`` method calls to contained `.Spines`.
  
  The proxy cannot be used for any other operations on its members.
  
  The supported methods are determined dynamically based on the contained
  spines. If not all spines support a given method, it's executed only on
  the subset of spines that support it.
class_docstr_tok: ["A","proxy","to","broadcast","``","set_","*","(",")","``","and","``","set","(",")","``","method","calls","to","contained","`",".Spines","`",".","The","proxy","can","not","be","used","for","any","other","operations","on","its","members",".","The","supported","methods","are","determined","dynamically","based","on","the","contained","spines",".","If","not","all","spines","support","a","given","method",",","it","'s","executed","only","on","the","subset","of","spines","that","support","it","."]
code: def __getattr__(self, name):
      broadcast_targets = [
          spine
          for spine in self._spine_dict.values()
          if hasattr(spine, name)
      ]
      if (
          name != "set" and not name.startswith("set_")
      ) or not broadcast_targets:
          raise AttributeError(
              f"'SpinesProxy' object has no attribute '{name}'"
          )
  
      def x(_targets, _funcname, *args, **kwargs):
          for spine in _targets:
              getattr(spine, _funcname)(*args, **kwargs)
  
      x = functools.partial(x, broadcast_targets, name)
      x.__doc__ = broadcast_targets[0].__doc__
      return x
  
imports: from collections.abc import MutableMapping
  import functools
  import numpy
  import matplotlib
  from matplotlib import _api, _docstring
  from matplotlib.artist import allow_rasterization
  import matplotlib.transforms
  import matplotlib.patches
  import matplotlib.path
label_desc: Use image node_id 2 for calling the SpinesProxy obj's underlying member method code with example usage: obj.__getattr__(name) and returns: x