text: # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
  import importlib
  import importlib.util
  import logging
  import os
  import random
  import sys
  from datetime import datetime
  
  import numpy as np
  import torch
  
  __all__ = ["seed_all_rng"]
  
  
  def seed_all_rng(seed=None):
      """
      Set the random seed for the RNG in torch, numpy and python.
  
      Args:
          seed (int): if None, will use a strong random seed.
      """
      if seed is None:
          seed = (os.getpid() + int(datetime.now().strftime("%S%f")) +
                  int.from_bytes(os.urandom(2), "big"))
          logger = logging.getLogger(__name__)
          logger.info("Using a generated random seed {}".format(seed))
      np.random.seed(seed)
      torch.set_rng_state(torch.manual_seed(seed).get_state())
      random.seed(seed)
  
  
  # from https://stackoverflow.com/questions/67631/how-to-import-a-module-given-the-full-path
  def _import_file(module_name, file_path, make_importable=False):
      spec = importlib.util.spec_from_file_location(module_name, file_path)
      module = importlib.util.module_from_spec(spec)
      spec.loader.exec_module(module)
      if make_importable:
          sys.modules[module_name] = module
      return module
  
  
  def _configure_libraries():
      """
      Configurations for some libraries.
      """
      # An environment option to disable `import cv2` globally,
      # in case it leads to negative performance impact
      disable_cv2 = int(os.environ.get("dl_lib_DISABLE_CV2", False))
      if disable_cv2:
          sys.modules["cv2"] = None
      else:
          # Disable opencl in opencv since its interaction with cuda often has negative effects
          # This envvar is supported after OpenCV 3.4.0
          os.environ["OPENCV_OPENCL_RUNTIME"] = "disabled"
          try:
              import cv2
  
              if int(cv2.__version__.split(".")[0]) >= 3:
                  cv2.ocl.setUseOpenCL(False)
          except ImportError:
              pass
  
  
  _ENV_SETUP_DONE = False
  
  
  def setup_environment():
      """Perform environment setup work. The default setup is a no-op, but this
      function allows the user to specify a Python source file or a module in
      the $dl_lib_ENV_MODULE environment variable, that performs
      custom setup work that may be necessary to their computing environment.
      """
      global _ENV_SETUP_DONE
      if _ENV_SETUP_DONE:
          return
      _ENV_SETUP_DONE = True
  
      _configure_libraries()
  
      custom_module_path = os.environ.get("dl_lib_ENV_MODULE")
  
      if custom_module_path:
          setup_custom_environment(custom_module_path)
      else:
          # The default setup is a no-op
          pass
  
  
  def setup_custom_environment(custom_module):
      """
      Load custom environment setup by importing a Python source file or a
      module, and run the setup function.
      """
      if custom_module.endswith(".py"):
          module = _import_file("dl_lib.utils.env.custom_module", custom_module)
      else:
          module = importlib.import_module(custom_module)
      assert hasattr(module, "setup_environment") and callable(
          module.setup_environment), (
              "Custom environment module defined in {} does not have the "
              "required callable attribute 'setup_environment'."
          ).format(custom_module)
      module.setup_environment()
  