class_docstr: ImageResource handling utility.
  
  Represents a request for reading or saving an image resource. This
  object wraps information to that request and acts as an interface
  for the plugins to several resources; it allows the user to read
  from filenames, files, http, zipfiles, raw bytes, etc., but offer
  a simple interface to the plugins via ``get_file()`` and
  ``get_local_filename()``.
  
  For each read/write operation a single Request instance is used and passed
  to the can_read/can_write method of a format, and subsequently to
  the Reader/Writer class. This allows rudimentary passing of
  information between different formats and between a format and
  associated reader/writer.
  
  Parameters
  ----------
  uri : {str, bytes, file}
      The resource to load the image from.
  mode : str
      The first character is "r" or "w", indicating a read or write
      request. The second character is used to indicate the kind of data:
      "i" for an image, "I" for multiple images, "v" for a volume,
      "V" for multiple volumes, "?" for don't care.
class_docstr_tok: ["ImageResource","handling","utility",".","Represents","a","request","for","reading","or","saving","an","image","resource",".","This","object","wraps","information","to","that","request","and","acts","as","an","interface","for","the","plugins","to","several","resources",";","it","allows","the","user","to","read","from","filenames",",","files",",","http",",","zipfiles",",","raw","bytes",",","etc.",",","but","offer","a","simple","interface","to","the","plugins","via","``","get_file","(",")","``","and","``","get_local_filename","(",")","``",".","For","each","read\/write","operation","a","single","Request","instance","is","used","and","passed","to","the","can_read\/can_write","method","of","a","format",",","and","subsequently","to","the","Reader\/Writer","class",".","This","allows","rudimentary","passing","of","information","between","different","formats","and","between","a","format","and","associated","reader\/writer",".","Parameters","--","--","--","--","--","uri",":","{","str",",","bytes",",","file","}","The","resource","to","load","the","image","from",".","mode",":","str","The","first","character","is","``","r","''","or","``","w","''",",","indicating","a","read","or","write","request",".","The","second","character","is","used","to","indicate","the","kind","of","data",":","``","i","''","for","an","image",",","``","I","''","for","multiple","images",",","``","v","''","for","a","volume",",","``","V","''","for","multiple","volumes",",","``","?","''","for","do","n't","care","."]
docstr: The dict of keyword arguments supplied by the user.
docstr_tok: ["The","dict","of","keyword","arguments","supplied","by","the","user","."]
code: def kwargs(self):
      """The dict of keyword arguments supplied by the user."""
      return self._kwargs
  
imports: import os
  from io import BytesIO
  import zipfile
  import tempfile
  import shutil
  import enum
  import warnings
  from ..core import urlopen, get_remote_file
  from pathlib import Path
  from urllib.parse import urlparse
  from typing import Optional
label_desc: Use image node_id 8 for calling the Request obj's underlying member method code with example usage: obj.kwargs() and returns: self