diff --git a/CHANGELOG.md b/CHANGELOG.md index 92a6ef1..0dcb387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ Changelog follow https://keepachangelog.com/ format. ## [Unreleased] * `epy`: + * Add experimental util for ml_python + multi-process compatibility + for adhoc-imports (when using PyGrain). * `epy.lazy_api_imports`: Make lazy importing thread safe. ## [1.11.0] - 2024-11-27 diff --git a/etils/epy/_multiprocess.py b/etils/epy/_multiprocess.py new file mode 100644 index 0000000..0ca76ac --- /dev/null +++ b/etils/epy/_multiprocess.py @@ -0,0 +1,33 @@ +# Copyright 2024 The etils Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Multiprocessing utilities.""" + +import atexit +import os +import sys + + +def is_ipython_subprocess() -> bool: + """Check if we are in a sub-process launched from within a `ipython` terminal. + + Returns: + `True` only if we are in ipython terminal (e.g. `ml_python`) and inside + a sub-process. + """ + return False + + +def register_adhoc_init() -> None: + """Registers a callback to activate adhoc imports in sub-processes."""