1try:
2    from xlrd import xlsx
3except ImportError:
4    pass
5else:
6    from lxml import etree
7    # xlrd.xlsx supports defusedxml, defusedxml's etree interface is broken
8    # (missing ElementTree and thus ElementTree.iter) which causes a fallback to
9    # Element.getiterator(), triggering a warning before 3.9 and an error from 3.9.
10    #
11    # We have defusedxml installed because zeep has a hard dep on defused and
12    # doesn't want to drop it (mvantellingen/python-zeep#1014).
13    #
14    # Ignore the check and set the relevant flags directly using lxml as we have a
15    # hard dependency on it.
16    xlsx.ET = etree
17    xlsx.ET_has_iterparse = True
18    xlsx.Element_has_iter = True
19