forked from pytorch/rl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_extension.py
25 lines (18 loc) · 843 Bytes
/
_extension.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
import importlib
import warnings
def is_module_available(*modules: str) -> bool:
r"""Returns if a top-level module with :attr:`name` exists *without** importing it.
This is generally safer than try-catch block around a
`import X`. It avoids third party libraries breaking assumptions of some of
our tests, e.g., setting multiprocessing start method when imported
(see librosa/#747, torchvision/#544).
"""
return all(importlib.util.find_spec(m) is not None for m in modules)
def _init_extension():
if not is_module_available("torchrl._torchrl"):
warnings.warn("torchrl C++ extension is not available.")
return