__init__.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from __future__ import absolute_import
  2. # Copyright (c) 2010-2019 openpyxl
  3. """Collection of XML resources compatible across different Python versions"""
  4. import os
  5. def lxml_available():
  6. try:
  7. from lxml.etree import LXML_VERSION
  8. LXML = LXML_VERSION >= (3, 3, 1, 0)
  9. if not LXML:
  10. import warnings
  11. warnings.warn("The installed version of lxml is too old to be used with openpyxl")
  12. return False # we have it, but too old
  13. else:
  14. return True # we have it, and recent enough
  15. except ImportError:
  16. return False # we don't even have it
  17. def lxml_env_set():
  18. return os.environ.get("OPENPYXL_LXML", "True") == "True"
  19. LXML = lxml_available() and lxml_env_set()
  20. def defusedxml_available():
  21. try:
  22. import defusedxml # noqa
  23. except ImportError:
  24. return False
  25. else:
  26. return True
  27. def defusedxml_env_set():
  28. return os.environ.get("OPENPYXL_DEFUSEDXML", "True") == "True"
  29. DEFUSEDXML = defusedxml_available() and defusedxml_env_set()