code: def copy(self, *, overwrite=None):
      if overwrite is None:
          overwrite = self.overwrite
  
      if self.type == "bool":
          return TensorSpec(
              type=self.type, shape=self.shape, overwrite=overwrite
          )
  
      elif self.type == "int" and self.num_values is not None:
          return TensorSpec(
              type=self.type,
              shape=self.shape,
              num_values=self.num_values,
              overwrite=overwrite,
          )
  
      else:
          return TensorSpec(
              type=self.type,
              shape=self.shape,
              min_value=self.min_value,
              max_value=self.max_value,
              overwrite=overwrite,
          )
  
imports: from functools import total_ordering
  import numpy
  import tensorflow
  from tensorforce import TensorforceError, util
  from tensorforce.core.utils import tf_util
label_desc: Use image node_id 16 for calling the TensorSpec obj's underlying member method code with example usage: obj.copy() and returns: TensorSpec, TensorSpec, TensorSpec