| """This is a subpackage because the directory is on sys.path for _in_process.py |
| |
| The subpackage should stay as empty as possible to avoid shadowing modules that |
| the backend might import. |
| """ |
| from contextlib import contextmanager |
| from os.path import abspath, dirname |
| from os.path import join as pjoin |
| |
| try: |
| import importlib.resources as resources |
| try: |
| resources.files |
| except AttributeError: |
| # Python 3.8 compatibility |
| def _in_proc_script_path(): |
| return resources.path(__package__, '_in_process.py') |
| else: |
| def _in_proc_script_path(): |
| return resources.as_file( |
| resources.files(__package__).joinpath('_in_process.py')) |
| except ImportError: |
| # Python 3.6 compatibility |
| @contextmanager |
| def _in_proc_script_path(): |
| yield pjoin(dirname(abspath(__file__)), '_in_process.py') |