docstr: Returns a deep copy of the sample that has not been added to the
  database.
  
  Args:
      fields (None): an optional field or iterable of fields to which to
          restrict the copy. This can also be a dict mapping existing
          field names to new field names
      omit_fields (None): an optional field or iterable of fields to
          exclude from the copy
  
  Returns:
      a :class:`Sample`
code: def copy(self, fields=None, omit_fields=None):
      """Returns a deep copy of the sample that has not been added to the
      database.
  
      Args:
          fields (None): an optional field or iterable of fields to which to
              restrict the copy. This can also be a dict mapping existing
              field names to new field names
          omit_fields (None): an optional field or iterable of fields to
              exclude from the copy
  
      Returns:
          a :class:`Sample`
      """
      if self.media_type == fomm.VIDEO:
          (
              fields,
              frame_fields,
              omit_fields,
              omit_frame_fields,
          ) = self._parse_fields_video(
              fields=fields, omit_fields=omit_fields
          )
  
      sample = super().copy(fields=fields, omit_fields=omit_fields)
  
      if self.media_type == fomm.VIDEO:
          sample.frames.update(
              {
                  frame_number: frame.copy(
                      fields=frame_fields, omit_fields=omit_frame_fields
                  )
                  for frame_number, frame in self.frames.items()
              }
          )
  
      return sample
  
imports: import os
  from bson import ObjectId
  from fiftyone.core.document import Document, DocumentView
  import fiftyone.core.frame
  import fiftyone.core.frame_utils
  import fiftyone.core.labels
  import fiftyone.core.metadata
  import fiftyone.core.media
  import fiftyone.core.odm
  import fiftyone.core.utils
  from fiftyone.core.singletons import SampleSingleton
label_desc: Use image node_id 16 for calling the _SampleMixin obj's underlying member method code with example usage: obj.copy(fields, omit_fields) and returns: sample