def get_zonefile_instance(new_instance=False):
if new_instance:<EOL><INDENT>zif = None<EOL><DEDENT>else:<EOL><INDENT>zif = getattr(get_zonefile_instance, '<STR_LIT>', None)<EOL><DEDENT>if zif is None:<EOL><INDENT>zif = ZoneInfoFile(getzoneinfofile_stream())<EOL>get_zonefile_instance._cached_instance = zif<EOL><DEDENT>return zif<EOL>
This is a convenience function which provides a :class:`ZoneInfoFile`
instance using the data provided by the ``dateutil`` package. By default, it
caches a single instance of the ZoneInfoFile object and returns that.

:param new_instance:
    If ``True``, a new instance of :class:`ZoneInfoFile` is instantiated and
    used as the cached instance for the next call. Otherwise, new instances
    are created only as necessary.

:return:
    Returns a :class:`ZoneInfoFile` object.

.. versionadded:: 2.6