class_docstr: A reader for OME-NGFF files with the .zarr extension. Supports both 'normal' and
  'HCS' storage modes.
  
  OME-NGFF files below spec version 0.4 which are stored on S3/object storage
  should have the zarr.convenience.consolidate_metadata() function run on them
  to provide optimal performance over a network.
  
  Other non-OME .zarr format images may be readable, but are not strictly supported.
docstr: This function needs to evaluate whether a given ImageFile object
  can be read by this reader class.
  
  Return value should be an integer representing suitability:
  -1 - 'I can't read this at all'
  1 - 'I am the one true reader for this format, don't even bother checking any others'
  2 - 'I am well-suited to this format'
  3 - 'I can read this format, but I might not be the best',
  4 - 'I can give it a go, if you must'
  
  The allow_open parameter dictates whether the reader is permitted to read the file when
  making this decision. If False the decision should be made using file extension only.
  Any opened files should be closed before returning.
  
  The volume parameter specifies whether the reader will need to return a 3D array.
  .
docstr_tok: ["This","function","needs","to","evaluate","whether","a","given","ImageFile","object","can","be","read","by","this","reader","class",".","Return","value","should","be","an","integer","representing","suitability",":","-1","-","'","I","ca","n't","read","this","at","all'","1","-","'","I","am","the","one","true","reader","for","this","format",",","do","n't","even","bother","checking","any","others'","2","-","'","I","am","well-suited","to","this","format'","3","-","'","I","can","read","this","format",",","but","I","might","not","be","the","best","'",",","4","-","'","I","can","give","it","a","go",",","if","you","must'","The","allow_open","parameter","dictates","whether","the","reader","is","permitted","to","read","the","file","when","making","this","decision",".","If","False","the","decision","should","be","made","using","file","extension","only",".","Any","opened","files","should","be","closed","before","returning",".","The","volume","parameter","specifies","whether","the","reader","will","need","to","return","a","3D","array",".","."]
code: def supports_format(cls, image_file, allow_open=False, volume=False):
      """This function needs to evaluate whether a given ImageFile object
      can be read by this reader class.
  
      Return value should be an integer representing suitability:
      -1 - 'I can't read this at all'
      1 - 'I am the one true reader for this format, don't even bother checking any others'
      2 - 'I am well-suited to this format'
      3 - 'I can read this format, but I might not be the best',
      4 - 'I can give it a go, if you must'
  
      The allow_open parameter dictates whether the reader is permitted to read the file when
      making this decision. If False the decision should be made using file extension only.
      Any opened files should be closed before returning.
  
      The volume parameter specifies whether the reader will need to return a 3D array.
      ."""
      if FORMAT_TESTER.search(image_file.url) is not None:
          head, tail = os.path.splitext(image_file.path)
          if tail.lower() not in ("", ".zarr"):
              # An especially mean user may be pointing at a non-zarr file within the zarr?
              return 2
          return 1
      return -1
  
imports: import numpy
  import zarr
  from ..constants.image import MD_SIZE_S, MD_SIZE_C, MD_SIZE_Z, MD_SIZE_T, MD_SIZE_Y, MD_SIZE_X, MD_SERIES_NAME
  from ..constants.reader import ZARR_FILETYPE
  from ..reader import Reader
  import os
  import re
  import logging
  from lxml import etree
label_desc: Use image node_id 7 for calling the NGFFReader obj's underlying member method code with example usage: obj.supports_format(cls, image_file, allow_open, volume) and returns: unknown, int, int