# ===========
# 3.9 to 3.11
# ===========

# Incompatible changes introduced in Python 3.10.15
# (Remove once 3.10.15 becomes available for Windows)
email._header_value_parser.NLSET
email._header_value_parser.SPECIALSNL
email.errors.HeaderWriteError
email.utils.getaddresses
email.utils.parseaddr


# =======
# <= 3.10
# =======

# Incompatible changes introduced in Python 3.10.12
# (Remove once 3.10.12 becomes available for GitHub Actions)
shutil.unpack_archive
tarfile.AbsoluteLinkError
tarfile.AbsolutePathError
tarfile.FilterError
tarfile.LinkOutsideDestinationError
tarfile.OutsideDestinationError
tarfile.SpecialFileError
tarfile.TarFile.extract
tarfile.TarFile.extractall
tarfile.TarInfo.replace
tarfile.data_filter
tarfile.fully_trusted_filter
tarfile.tar_filter

# Incompatible changes introduced in Python 3.9.14
# (Remove once 3.9.14 becomes available for GitHub Actions)
pyexpat.XMLParserType.GetReparseDeferralEnabled
pyexpat.XMLParserType.SetReparseDeferralEnabled
xml.etree.ElementTree.XMLParser.flush
xml.etree.ElementTree.XMLPullParser.flush
xml.etree.cElementTree.XMLParser.flush
xml.etree.cElementTree.XMLPullParser.flush
xml.parsers.expat.XMLParserType.GetReparseDeferralEnabled
xml.parsers.expat.XMLParserType.SetReparseDeferralEnabled
xml.sax.expatreader.ExpatParser.flush


# =============================================================
# Allowlist entries that cannot or should not be fixed; <= 3.11
# =============================================================

# pathlib methods that exist on Windows, but always raise NotImplementedError,
# so are omitted from the stub
pathlib.Path.is_mount
pathlib.WindowsPath.is_mount


# =============================================================
# Allowlist entries that cannot or should not be fixed; <= 3.12
# =============================================================

# Modules that don't exist on Windows
crypt
nis
ossaudiodev
spwd

# pathlib functions that rely on modules that don't exist on Windows
pathlib.Path.owner
pathlib.Path.group
