__init__.py 1016 B

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