class_docstr: Abstract wrapper base class.
  
  Wrappers take another layer and augment it in various ways.
  Do not use this class as a layer, it is only an abstract base class.
  Two usable wrappers are the `TimeDistributed` and `Bidirectional` layers.
  
  Args:
      layer: The layer to be wrapped.
code: def __init__(self, layer, **kwargs):
      try:
          assert isinstance(layer, Layer)
      except Exception:
          raise ValueError(
              f"Layer {layer} supplied to Wrapper isn't "
              "a supported layer type. Please "
              "ensure wrapped layer is a valid Keras layer."
          )
      super().__init__(**kwargs)
      self.layer = layer
  
file_path: keras/keras/layers/core/wrapper.py
imports: from keras.api_export import keras_export
  from keras.layers.layer import Layer
  from keras.saving import serialization_lib
label_desc: Use image node_id 1 to create a new Wrapper object from inherited base classes: Layer with example: obj = Wrapper(layer)