class_docstr: This decorator class ensures seamless namenode failover and retry, when an HDFS call fails
  due to StandbyException, up to a maximum retry.
code: def __init__(self, func):
      # limit wrapper attributes updated to just name and doc string
      functools.update_wrapper(self, func, ("__name__", "__doc__"))
      # cache the function name, only because we don't need the function object in __call__
      self._func_name = func.__name__
  
imports: import functools
  import inspect
  import logging
  import os
  from distutils.version import LooseVersion
  from xml.etree import ElementTree
  import pyarrow
  import six
  from pyarrow.hdfs import HadoopFileSystem
  from pyarrow.lib import ArrowIOError
  from six.moves.urllib.parse import urlparse
label_desc: Use image node_id 1 to create a new namenode_failover object from inherited base classes: object with example: obj = namenode_failover(func)