compat.py 995 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. ###############################################################################
  2. # Compat file to import the correct modules for each platform and python
  3. # version.
  4. #
  5. # author: Thomas Moreau and Olivier grisel
  6. #
  7. import sys
  8. PY3 = sys.version_info[:2] >= (3, 3)
  9. if PY3:
  10. import queue
  11. else:
  12. import Queue as queue
  13. if sys.version_info >= (3, 4):
  14. from multiprocessing.process import BaseProcess
  15. else:
  16. from multiprocessing.process import Process as BaseProcess
  17. # Platform specific compat
  18. if sys.platform == "win32":
  19. from .compat_win32 import wait
  20. else:
  21. from .compat_posix import wait
  22. def set_cause(exc, cause):
  23. exc.__cause__ = cause
  24. if not PY3:
  25. # Preformat message here.
  26. if exc.__cause__ is not None:
  27. exc.args = ("{}\n\nThis was caused directly by {}".format(
  28. exc.args if len(exc.args) != 1 else exc.args[0],
  29. str(exc.__cause__)),)
  30. return exc
  31. __all__ = ["queue", "BaseProcess", "set_cause", "wait"]