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

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

24 statements  

1# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html 

2# For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE 

3# Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt 

4 

5"""Python Abstract Syntax Tree New Generation. 

6 

7The aim of this module is to provide a common base representation of 

8python source code for projects such as pychecker, pyreverse, 

9pylint... Well, actually the development of this library is essentially 

10governed by pylint's needs. 

11 

12It mimics the class defined in the python's _ast module with some 

13additional methods and attributes. New nodes instances are not fully 

14compatible with python's _ast. 

15 

16Instance attributes are added by a 

17builder object, which can either generate extended ast (let's call 

18them astroid ;) by visiting an existent ast tree or by inspecting living 

19object. 

20 

21Main modules are: 

22 

23* nodes and scoped_nodes for more information about methods and 

24 attributes added to different node classes 

25 

26* the manager contains a high level object to get astroid trees from 

27 source files and living objects. It maintains a cache of previously 

28 constructed tree for quick access 

29 

30* builder contains the class responsible to build astroid trees 

31""" 

32 

33# isort: off 

34# We have an isort: off on 'astroid.nodes' because of a circular import. 

35from astroid.nodes import node_classes, scoped_nodes 

36 

37# isort: on 

38 

39from astroid import raw_building 

40from astroid.__pkginfo__ import __version__, version 

41from astroid.bases import BaseInstance, BoundMethod, Instance, UnboundMethod 

42from astroid.brain.helpers import register_module_extender 

43from astroid.builder import extract_node, parse 

44from astroid.const import Context 

45from astroid.exceptions import ( 

46 AstroidBuildingError, 

47 AstroidError, 

48 AstroidImportError, 

49 AstroidIndexError, 

50 AstroidSyntaxError, 

51 AstroidTypeError, 

52 AstroidValueError, 

53 AttributeInferenceError, 

54 DuplicateBasesError, 

55 InconsistentMroError, 

56 InferenceError, 

57 InferenceOverwriteError, 

58 MroError, 

59 NameInferenceError, 

60 NoDefault, 

61 NotFoundError, 

62 ParentMissingError, 

63 ResolveError, 

64 StatementMissing, 

65 SuperArgumentTypeError, 

66 SuperError, 

67 TooManyLevelsError, 

68 UnresolvableName, 

69 UseInferenceDefault, 

70) 

71from astroid.inference_tip import _inference_tip_cached, inference_tip 

72from astroid.objects import ExceptionInstance 

73 

74# isort: off 

75# It's impossible to import from astroid.nodes with a wildcard, because 

76# there is a cyclic import that prevent creating an __all__ in astroid/nodes 

77# and we need astroid/scoped_nodes and astroid/node_classes to work. So 

78# importing with a wildcard would clash with astroid/nodes/scoped_nodes 

79# and astroid/nodes/node_classes. 

80from astroid.astroid_manager import MANAGER 

81from astroid.nodes import ( 

82 CONST_CLS, 

83 AnnAssign as _DEPRECATED_AnnAssign, 

84 Arguments as _DEPRECATED_Arguments, 

85 Assert as _DEPRECATED_Assert, 

86 Assign as _DEPRECATED_Assign, 

87 AssignAttr as _DEPRECATED_AssignAttr, 

88 AssignName as _DEPRECATED_AssignName, 

89 AsyncFor as _DEPRECATED_AsyncFor, 

90 AsyncFunctionDef as _DEPRECATED_AsyncFunctionDef, 

91 AsyncWith as _DEPRECATED_AsyncWith, 

92 Attribute as _DEPRECATED_Attribute, 

93 AugAssign as _DEPRECATED_AugAssign, 

94 Await as _DEPRECATED_Await, 

95 BinOp as _DEPRECATED_BinOp, 

96 BoolOp as _DEPRECATED_BoolOp, 

97 Break as _DEPRECATED_Break, 

98 Call as _DEPRECATED_Call, 

99 ClassDef as _DEPRECATED_ClassDef, 

100 Compare as _DEPRECATED_Compare, 

101 Comprehension as _DEPRECATED_Comprehension, 

102 ComprehensionScope as _DEPRECATED_ComprehensionScope, 

103 Const as _DEPRECATED_Const, 

104 Continue as _DEPRECATED_Continue, 

105 Decorators as _DEPRECATED_Decorators, 

106 DelAttr as _DEPRECATED_DelAttr, 

107 Delete as _DEPRECATED_Delete, 

108 DelName as _DEPRECATED_DelName, 

109 Dict as _DEPRECATED_Dict, 

110 DictComp as _DEPRECATED_DictComp, 

111 DictUnpack as _DEPRECATED_DictUnpack, 

112 EmptyNode as _DEPRECATED_EmptyNode, 

113 EvaluatedObject as _DEPRECATED_EvaluatedObject, 

114 ExceptHandler as _DEPRECATED_ExceptHandler, 

115 Expr as _DEPRECATED_Expr, 

116 For as _DEPRECATED_For, 

117 FormattedValue as _DEPRECATED_FormattedValue, 

118 FunctionDef as _DEPRECATED_FunctionDef, 

119 GeneratorExp as _DEPRECATED_GeneratorExp, 

120 Global as _DEPRECATED_Global, 

121 If as _DEPRECATED_If, 

122 IfExp as _DEPRECATED_IfExp, 

123 Import as _DEPRECATED_Import, 

124 ImportFrom as _DEPRECATED_ImportFrom, 

125 Interpolation as _DEPRECATED_Interpolation, 

126 JoinedStr as _DEPRECATED_JoinedStr, 

127 Keyword as _DEPRECATED_Keyword, 

128 Lambda as _DEPRECATED_Lambda, 

129 List as _DEPRECATED_List, 

130 ListComp as _DEPRECATED_ListComp, 

131 Match as _DEPRECATED_Match, 

132 MatchAs as _DEPRECATED_MatchAs, 

133 MatchCase as _DEPRECATED_MatchCase, 

134 MatchClass as _DEPRECATED_MatchClass, 

135 MatchMapping as _DEPRECATED_MatchMapping, 

136 MatchOr as _DEPRECATED_MatchOr, 

137 MatchSequence as _DEPRECATED_MatchSequence, 

138 MatchSingleton as _DEPRECATED_MatchSingleton, 

139 MatchStar as _DEPRECATED_MatchStar, 

140 MatchValue as _DEPRECATED_MatchValue, 

141 Module as _DEPRECATED_Module, 

142 Name as _DEPRECATED_Name, 

143 NamedExpr as _DEPRECATED_NamedExpr, 

144 NodeNG as _DEPRECATED_NodeNG, 

145 Nonlocal as _DEPRECATED_Nonlocal, 

146 ParamSpec as _DEPRECATED_ParamSpec, 

147 Pass as _DEPRECATED_Pass, 

148 Raise as _DEPRECATED_Raise, 

149 Return as _DEPRECATED_Return, 

150 Set as _DEPRECATED_Set, 

151 SetComp as _DEPRECATED_SetComp, 

152 Slice as _DEPRECATED_Slice, 

153 Starred as _DEPRECATED_Starred, 

154 Subscript as _DEPRECATED_Subscript, 

155 TemplateStr as _DEPRECATED_TemplateStr, 

156 Try as _DEPRECATED_Try, 

157 TryStar as _DEPRECATED_TryStar, 

158 Tuple as _DEPRECATED_Tuple, 

159 TypeAlias as _DEPRECATED_TypeAlias, 

160 TypeVar as _DEPRECATED_TypeVar, 

161 TypeVarTuple as _DEPRECATED_TypeVarTuple, 

162 UnaryOp as _DEPRECATED_UnaryOp, 

163 Unknown as _DEPRECATED_Unknown, 

164 While as _DEPRECATED_While, 

165 With as _DEPRECATED_With, 

166 Yield as _DEPRECATED_Yield, 

167 YieldFrom as _DEPRECATED_YieldFrom, 

168 are_exclusive, 

169 builtin_lookup, 

170 unpack_infer, 

171 function_to_method, 

172) 

173 

174# isort: on 

175 

176from astroid.util import Uninferable 

177 

178__all__ = [ 

179 "CONST_CLS", 

180 "MANAGER", 

181 "AstroidBuildingError", 

182 "AstroidError", 

183 "AstroidImportError", 

184 "AstroidIndexError", 

185 "AstroidSyntaxError", 

186 "AstroidTypeError", 

187 "AstroidValueError", 

188 "AttributeInferenceError", 

189 "BaseInstance", 

190 "BoundMethod", 

191 "Context", 

192 "DuplicateBasesError", 

193 "ExceptionInstance", 

194 "InconsistentMroError", 

195 "InferenceError", 

196 "InferenceOverwriteError", 

197 "Instance", 

198 "MroError", 

199 "NameInferenceError", 

200 "NoDefault", 

201 "NotFoundError", 

202 "ParentMissingError", 

203 "ResolveError", 

204 "StatementMissing", 

205 "SuperArgumentTypeError", 

206 "SuperError", 

207 "TooManyLevelsError", 

208 "UnboundMethod", 

209 "Uninferable", 

210 "UnresolvableName", 

211 "UseInferenceDefault", 

212 "__version__", 

213 "_inference_tip_cached", 

214 "are_exclusive", 

215 "builtin_lookup", 

216 "extract_node", 

217 "function_to_method", 

218 "inference_tip", 

219 "node_classes", 

220 "parse", 

221 "raw_building", 

222 "register_module_extender", 

223 "scoped_nodes", 

224 "unpack_infer", 

225 "version", 

226] 

227 

228 

229def __getattr__(name: str): 

230 if (val := globals().get(f"_DEPRECATED_{name}")) is None: 

231 msg = f"module '{__name__}' has no attribute '{name}" 

232 raise AttributeError(msg) 

233 

234 # pylint: disable-next=import-outside-toplevel 

235 import warnings 

236 

237 msg = ( 

238 f"importing '{name}' from 'astroid' is deprecated and will be removed in v5, " 

239 "import it from 'astroid.nodes' instead" 

240 ) 

241 warnings.warn(msg, DeprecationWarning, stacklevel=2) 

242 return val