Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/IPython/utils/importstring.py: 17%

12 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2024-04-20 06:09 +0000

1# encoding: utf-8 

2""" 

3A simple utility to import something by its string name. 

4""" 

5 

6# Copyright (c) IPython Development Team. 

7# Distributed under the terms of the Modified BSD License. 

8 

9 

10def import_item(name): 

11 """Import and return ``bar`` given the string ``foo.bar``. 

12 

13 Calling ``bar = import_item("foo.bar")`` is the functional equivalent of 

14 executing the code ``from foo import bar``. 

15 

16 Parameters 

17 ---------- 

18 name : string 

19 The fully qualified name of the module/package being imported. 

20 

21 Returns 

22 ------- 

23 mod : module object 

24 The module that was imported. 

25 """ 

26 

27 parts = name.rsplit('.', 1) 

28 if len(parts) == 2: 

29 # called with 'foo.bar....' 

30 package, obj = parts 

31 module = __import__(package, fromlist=[obj]) 

32 try: 

33 pak = getattr(module, obj) 

34 except AttributeError as e: 

35 raise ImportError('No module named %s' % obj) from e 

36 return pak 

37 else: 

38 # called with un-dotted string 

39 return __import__(parts[0])