Skip to content

ding.utils.import_helper

ding.utils.import_helper

try_import_ceph()

Overview

Try import ceph module, if failed, return None

Returns:

Type Description
  • (:obj:Module): Imported module, or None when ceph not found

try_import_mc()

Overview

Try import mc module, if failed, return None

Returns:

Type Description
  • (:obj:Module): Imported module, or None when mc not found

try_import_redis()

Overview

Try import redis module, if failed, return None

Returns:

Type Description
  • (:obj:Module): Imported module, or None when redis not found

try_import_rediscluster()

Overview

Try import rediscluster module, if failed, return None

Returns:

Type Description
  • (:obj:Module): Imported module, or None when rediscluster not found
Overview

Try import linklink module, if failed, import ding.tests.fake_linklink instead

Returns:

Type Description
  • (:obj:Module): Imported module (may be fake_linklink)

import_module(modules)

Overview

Import several module as a list

Arguments: - (:obj:str list): List of module names

Full Source Code

../ding/utils/import_helper.py

1import importlib 2from typing import List 3 4import ding 5from .default_helper import one_time_warning 6 7 8def try_import_ceph(): 9 """ 10 Overview: 11 Try import ceph module, if failed, return ``None`` 12 13 Returns: 14 - (:obj:`Module`): Imported module, or ``None`` when ceph not found 15 """ 16 try: 17 import ceph 18 client = ceph.S3Client() 19 return client 20 except ModuleNotFoundError as e: 21 try: 22 from petrel_client.client import Client 23 client = Client(conf_path='~/petreloss.conf') 24 return client 25 except ModuleNotFoundError as e: 26 one_time_warning("You have not installed ceph package! DI-engine has changed to some alternatives.") 27 ceph = None 28 return ceph 29 30 31def try_import_mc(): 32 """ 33 Overview: 34 Try import mc module, if failed, return ``None`` 35 36 Returns: 37 - (:obj:`Module`): Imported module, or ``None`` when mc not found 38 """ 39 try: 40 import mc 41 except ModuleNotFoundError as e: 42 # one_time_warning("You have not installed memcache package! DI-engine has changed to some alternatives.") 43 mc = None 44 return mc 45 46 47def try_import_redis(): 48 """ 49 Overview: 50 Try import redis module, if failed, return ``None`` 51 52 Returns: 53 - (:obj:`Module`): Imported module, or ``None`` when redis not found 54 """ 55 try: 56 import redis 57 except ModuleNotFoundError as e: 58 one_time_warning("You have not installed redis package! DI-engine has changed to some alternatives.") 59 redis = None 60 return redis 61 62 63def try_import_rediscluster(): 64 """ 65 Overview: 66 Try import rediscluster module, if failed, return ``None`` 67 68 Returns: 69 - (:obj:`Module`): Imported module, or ``None`` when rediscluster not found 70 """ 71 try: 72 import rediscluster 73 except ModuleNotFoundError as e: 74 one_time_warning("You have not installed rediscluster package! DI-engine has changed to some alternatives.") 75 rediscluster = None 76 return rediscluster 77 78 79def try_import_link(): 80 """ 81 Overview: 82 Try import linklink module, if failed, import ding.tests.fake_linklink instead 83 84 Returns: 85 - (:obj:`Module`): Imported module (may be ``fake_linklink``) 86 """ 87 if ding.enable_linklink: 88 try: 89 import linklink as link 90 except ModuleNotFoundError as e: 91 one_time_warning("You have not installed linklink package! DI-engine has changed to some alternatives.") 92 from .fake_linklink import link 93 else: 94 from .fake_linklink import link 95 96 return link 97 98 99def import_module(modules: List[str]) -> None: 100 """ 101 Overview: 102 Import several module as a list 103 Arguments: 104 - (:obj:`str list`): List of module names 105 """ 106 for name in modules: 107 importlib.import_module(name)