Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/h5py/__init__.py: 57%

54 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-07 06:30 +0000

1# This file is part of h5py, a Python interface to the HDF5 library. 

2# 

3# http://www.h5py.org 

4# 

5# Copyright 2008-2013 Andrew Collette and contributors 

6# 

7# License: Standard 3-clause BSD; see "license.txt" for full license terms 

8# and contributor agreement. 

9 

10""" 

11 This is the h5py package, a Python interface to the HDF5 

12 scientific data format. 

13""" 

14 

15from warnings import warn as _warn 

16import atexit 

17 

18 

19# --- Library setup ----------------------------------------------------------- 

20 

21# When importing from the root of the unpacked tarball or git checkout, 

22# Python sees the "h5py" source directory and tries to load it, which fails. 

23# We tried working around this by using "package_dir" but that breaks Cython. 

24try: 

25 from . import _errors 

26except ImportError: 

27 import os.path as _op 

28 if _op.exists(_op.join(_op.dirname(__file__), '..', 'setup.py')): 

29 raise ImportError("You cannot import h5py from inside the install directory.\nChange to another directory first.") 

30 else: 

31 raise 

32 

33from . import version 

34 

35if version.hdf5_version_tuple != version.hdf5_built_version_tuple: 

36 _warn(("h5py is running against HDF5 {0} when it was built against {1}, " 

37 "this may cause problems").format( 

38 '{0}.{1}.{2}'.format(*version.hdf5_version_tuple), 

39 '{0}.{1}.{2}'.format(*version.hdf5_built_version_tuple) 

40 )) 

41 

42 

43_errors.silence_errors() 

44 

45from ._conv import register_converters as _register_converters, \ 

46 unregister_converters as _unregister_converters 

47_register_converters() 

48atexit.register(_unregister_converters) 

49 

50from .h5z import _register_lzf 

51_register_lzf() 

52 

53 

54# --- Public API -------------------------------------------------------------- 

55 

56from . import h5a, h5d, h5ds, h5f, h5fd, h5g, h5r, h5s, h5t, h5p, h5z, h5pl 

57 

58from ._hl import filters 

59from ._hl.base import is_hdf5, HLObject, Empty 

60from ._hl.files import ( 

61 File, 

62 register_driver, 

63 unregister_driver, 

64 registered_drivers, 

65) 

66from ._hl.group import Group, SoftLink, ExternalLink, HardLink 

67from ._hl.dataset import Dataset 

68from ._hl.datatype import Datatype 

69from ._hl.attrs import AttributeManager 

70 

71from ._selector import MultiBlockSlice 

72from .h5 import get_config 

73from .h5r import Reference, RegionReference 

74from .h5t import (special_dtype, check_dtype, 

75 vlen_dtype, string_dtype, enum_dtype, ref_dtype, regionref_dtype, 

76 opaque_dtype, 

77 check_vlen_dtype, check_string_dtype, check_enum_dtype, check_ref_dtype, 

78 check_opaque_dtype, 

79) 

80from .h5s import UNLIMITED 

81 

82from .version import version as __version__ 

83 

84 

85if version.hdf5_version_tuple[:3] >= get_config().vds_min_hdf5_version: 

86 from ._hl.vds import VirtualSource, VirtualLayout 

87 

88 

89def run_tests(args=''): 

90 """Run tests with pytest and returns the exit status as an int. 

91 """ 

92 # Lazy-loading of tests package to avoid strong dependency on test 

93 # requirements, e.g. pytest 

94 from .tests import run_tests 

95 return run_tests(args) 

96 

97 

98def enable_ipython_completer(): 

99 """ Call this from an interactive IPython session to enable tab-completion 

100 of group and attribute names. 

101 """ 

102 import sys 

103 if 'IPython' in sys.modules: 

104 ip_running = False 

105 try: 

106 from IPython.core.interactiveshell import InteractiveShell 

107 ip_running = InteractiveShell.initialized() 

108 except ImportError: 

109 # support <ipython-0.11 

110 from IPython import ipapi as _ipapi 

111 ip_running = _ipapi.get() is not None 

112 except Exception: 

113 pass 

114 if ip_running: 

115 from . import ipy_completer 

116 return ipy_completer.load_ipython_extension() 

117 

118 raise RuntimeError('Completer must be enabled in active ipython session')