code: def validate(self, skip_checksums=False, skip_bag=False, skip_unzip=False, skip_delete=False, processes=2):
          
          if skip_unzip:
              bagdir = self.path_to_zip
              skip_delete = True
          else:
              #  try:
              self.profile_validator.validate_serialization(self.path_to_zip)
              #  except IOError as err:
              #      raise err
              #  except ProfileValidationError as err:
              #      self.report.add_error(err.value)
              bagdir = mkdtemp(prefix=TMP_BAGIT_PREFIX)
              unzip_file_to_dir(self.path_to_zip, bagdir)
  
  
          try:
              bag = Bag(bagdir)
              self._validate_profile(bag)
  
              if not skip_bag:
                  self._validate_bag(bag, fast=skip_checksums, processes=processes)
  
          finally:
              if not skip_delete:
                  # remove tempdir
                  rmtree(bagdir)
          return self.report
docs: Validate an OCRD-ZIP file for profile, bag and workspace conformance
  
          Arguments:
              skip_bag (boolean): Whether to skip all checks of manifests and files
              skip_checksums (boolean): Whether to omit checksum checks but still check basic BagIt conformance
              skip_unzip (boolean): Whether the OCRD-ZIP is unzipped, i.e. a directory
              skip_delete (boolean): Whether to skip deleting the unpacked OCRD-ZIP dir after valdiation
              processes (integer): Number of processes used for checksum validation