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 build(self, input_shape=None):
      if not self.layer.built:
          self.layer.build(input_shape)
          self.layer.built = True
      self.built = True
  
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 2 for calling the Wrapper obj's underlying member method code with example usage: obj.build(input_shape) without return types