py38compat.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # flake8: noqa
  2. import contextlib
  3. import builtins
  4. ModuleNotFoundError = getattr(builtins, 'ModuleNotFoundError', ImportError)
  5. try:
  6. from test.support.warnings_helper import check_warnings
  7. except (ModuleNotFoundError, ImportError):
  8. from test.support import check_warnings
  9. try:
  10. from test.support.os_helper import (
  11. change_cwd,
  12. rmtree,
  13. EnvironmentVarGuard,
  14. TESTFN,
  15. unlink,
  16. skip_unless_symlink,
  17. temp_dir,
  18. create_empty_file,
  19. temp_cwd,
  20. )
  21. except (ModuleNotFoundError, ImportError):
  22. from test.support import (
  23. change_cwd,
  24. rmtree,
  25. EnvironmentVarGuard,
  26. TESTFN,
  27. unlink,
  28. skip_unless_symlink,
  29. temp_dir,
  30. create_empty_file,
  31. temp_cwd,
  32. )
  33. # From Python 3.9
  34. @contextlib.contextmanager
  35. def _save_restore_warnings_filters():
  36. old_filters = warnings.filters[:]
  37. try:
  38. yield
  39. finally:
  40. warnings.filters[:] = old_filters
  41. try:
  42. from test.support.warnings_helper import save_restore_warnings_filters
  43. except (ModuleNotFoundError, ImportError):
  44. save_restore_warnings_filters = _save_restore_warnings_filters