1515 MethodSigContext ,
1616 Plugin ,
1717)
18- from mypy .plugins import constants
18+ from mypy .plugins .attrs import (
19+ attr_class_maker_callback ,
20+ attr_class_makers ,
21+ attr_dataclass_makers ,
22+ attr_define_makers ,
23+ attr_frozen_makers ,
24+ attr_tag_callback ,
25+ evolve_function_sig_callback ,
26+ fields_function_sig_callback ,
27+ )
1928from mypy .plugins .common import try_getting_str_literals
29+ from mypy .plugins .constants import (
30+ ENUM_NAME_ACCESS ,
31+ ENUM_VALUE_ACCESS ,
32+ SINGLEDISPATCH_CALLABLE_CALL_METHOD ,
33+ SINGLEDISPATCH_REGISTER_CALLABLE_CALL_METHOD ,
34+ SINGLEDISPATCH_REGISTER_METHOD ,
35+ )
36+ from mypy .plugins .ctypes import (
37+ array_constructor_callback ,
38+ array_getitem_callback ,
39+ array_iter_callback ,
40+ array_raw_callback ,
41+ array_setitem_callback ,
42+ array_value_callback ,
43+ )
44+ from mypy .plugins .dataclasses import (
45+ dataclass_class_maker_callback ,
46+ dataclass_makers ,
47+ dataclass_tag_callback ,
48+ replace_function_sig_callback ,
49+ )
50+ from mypy .plugins .enums import enum_member_callback , enum_name_callback , enum_value_callback
51+ from mypy .plugins .functools import (
52+ functools_total_ordering_maker_callback ,
53+ functools_total_ordering_makers ,
54+ partial_call_callback ,
55+ partial_new_callback ,
56+ )
57+ from mypy .plugins .singledispatch import (
58+ call_singledispatch_function_after_register_argument ,
59+ call_singledispatch_function_callback ,
60+ create_singledispatch_function_callback ,
61+ singledispatch_register_callback ,
62+ )
2063from mypy .subtypes import is_subtype
2164from mypy .typeops import is_literal_type_like , make_simplified_union
2265from mypy .types import (
@@ -53,39 +96,24 @@ class DefaultPlugin(Plugin):
5396
5497 def get_function_hook (self , fullname : str ) -> Callable [[FunctionContext ], Type ] | None :
5598 if fullname == "_ctypes.Array" :
56- from mypy .plugins import ctypes
57-
58- return ctypes .array_constructor_callback
99+ return array_constructor_callback
59100 elif fullname == "functools.singledispatch" :
60- from mypy .plugins import singledispatch
61-
62- return singledispatch .create_singledispatch_function_callback
101+ return create_singledispatch_function_callback
63102 elif fullname == "functools.partial" :
64- import mypy .plugins .functools
65-
66- return mypy .plugins .functools .partial_new_callback
103+ return partial_new_callback
67104 elif fullname == "enum.member" :
68- from mypy .plugins import enums
69-
70- return enums .enum_member_callback
71-
105+ return enum_member_callback
72106 return None
73107
74108 def get_function_signature_hook (
75109 self , fullname : str
76110 ) -> Callable [[FunctionSigContext ], FunctionLike ] | None :
77111 if fullname in ("attr.evolve" , "attrs.evolve" , "attr.assoc" , "attrs.assoc" ):
78- from mypy .plugins import attrs
79-
80- return attrs .evolve_function_sig_callback
112+ return evolve_function_sig_callback
81113 elif fullname in ("attr.fields" , "attrs.fields" ):
82- from mypy .plugins import attrs
83-
84- return attrs .fields_function_sig_callback
114+ return fields_function_sig_callback
85115 elif fullname == "dataclasses.replace" :
86- from mypy .plugins import dataclasses
87-
88- return dataclasses .replace_function_sig_callback
116+ return replace_function_sig_callback
89117 return None
90118
91119 def get_method_signature_hook (
@@ -98,13 +126,9 @@ def get_method_signature_hook(
98126 elif fullname in TD_POP_NAMES :
99127 return typed_dict_pop_signature_callback
100128 elif fullname == "_ctypes.Array.__setitem__" :
101- from mypy .plugins import ctypes
102-
103- return ctypes .array_setitem_callback
104- elif fullname == constants .SINGLEDISPATCH_CALLABLE_CALL_METHOD :
105- from mypy .plugins import singledispatch
106-
107- return singledispatch .call_singledispatch_function_callback
129+ return array_setitem_callback
130+ elif fullname == SINGLEDISPATCH_CALLABLE_CALL_METHOD :
131+ return call_singledispatch_function_callback
108132 elif fullname in TD_UPDATE_METHOD_NAMES :
109133 return typed_dict_update_signature_callback
110134 return None
@@ -127,88 +151,63 @@ def get_method_hook(self, fullname: str) -> Callable[[MethodContext], Type] | No
127151 elif fullname in {n + ".__delitem__" for n in TPDICT_FB_NAMES }:
128152 return typed_dict_delitem_callback
129153 elif fullname == "_ctypes.Array.__getitem__" :
130- from mypy .plugins import ctypes
131-
132- return ctypes .array_getitem_callback
154+ return array_getitem_callback
133155 elif fullname == "_ctypes.Array.__iter__" :
134- from mypy .plugins import ctypes
135-
136- return ctypes .array_iter_callback
137- elif fullname == constants .SINGLEDISPATCH_REGISTER_METHOD :
138- from mypy .plugins import singledispatch
139-
140- return singledispatch .singledispatch_register_callback
141- elif fullname == constants .SINGLEDISPATCH_REGISTER_CALLABLE_CALL_METHOD :
142- from mypy .plugins import singledispatch
143-
144- return singledispatch .call_singledispatch_function_after_register_argument
156+ return array_iter_callback
157+ elif fullname == SINGLEDISPATCH_REGISTER_METHOD :
158+ return singledispatch_register_callback
159+ elif fullname == SINGLEDISPATCH_REGISTER_CALLABLE_CALL_METHOD :
160+ return call_singledispatch_function_after_register_argument
145161 elif fullname == "functools.partial.__call__" :
146- import mypy .plugins .functools
147-
148- return mypy .plugins .functools .partial_call_callback
162+ return partial_call_callback
149163 return None
150164
151165 def get_attribute_hook (self , fullname : str ) -> Callable [[AttributeContext ], Type ] | None :
152166 if fullname == "_ctypes.Array.value" :
153- from mypy .plugins import ctypes
154-
155- return ctypes .array_value_callback
167+ return array_value_callback
156168 elif fullname == "_ctypes.Array.raw" :
157- from mypy .plugins import ctypes
158-
159- return ctypes .array_raw_callback
160- elif fullname in constants .ENUM_NAME_ACCESS :
161- from mypy .plugins import enums
162-
163- return enums .enum_name_callback
164- elif fullname in constants .ENUM_VALUE_ACCESS :
165- from mypy .plugins import enums
166-
167- return enums .enum_value_callback
169+ return array_raw_callback
170+ elif fullname in ENUM_NAME_ACCESS :
171+ return enum_name_callback
172+ elif fullname in ENUM_VALUE_ACCESS :
173+ return enum_value_callback
168174 return None
169175
170176 def get_class_decorator_hook (self , fullname : str ) -> Callable [[ClassDefContext ], None ] | None :
171- from mypy .plugins import attrs , dataclasses
172-
173177 # These dataclass and attrs hooks run in the main semantic analysis pass
174178 # and only tag known dataclasses/attrs classes, so that the second
175179 # hooks (in get_class_decorator_hook_2) can detect dataclasses/attrs classes
176180 # in the MRO.
177- if fullname in dataclasses . dataclass_makers :
178- return dataclasses . dataclass_tag_callback
181+ if fullname in dataclass_makers :
182+ return dataclass_tag_callback
179183 if (
180- fullname in attrs . attr_class_makers
181- or fullname in attrs . attr_dataclass_makers
182- or fullname in attrs . attr_frozen_makers
183- or fullname in attrs . attr_define_makers
184+ fullname in attr_class_makers
185+ or fullname in attr_dataclass_makers
186+ or fullname in attr_frozen_makers
187+ or fullname in attr_define_makers
184188 ):
185- return attrs .attr_tag_callback
186-
189+ return attr_tag_callback
187190 return None
188191
189192 def get_class_decorator_hook_2 (
190193 self , fullname : str
191194 ) -> Callable [[ClassDefContext ], bool ] | None :
192- import mypy .plugins .functools
193- from mypy .plugins import attrs , dataclasses
194-
195- if fullname in dataclasses .dataclass_makers :
196- return dataclasses .dataclass_class_maker_callback
197- elif fullname in mypy .plugins .functools .functools_total_ordering_makers :
198- return mypy .plugins .functools .functools_total_ordering_maker_callback
199- elif fullname in attrs .attr_class_makers :
200- return attrs .attr_class_maker_callback
201- elif fullname in attrs .attr_dataclass_makers :
202- return partial (attrs .attr_class_maker_callback , auto_attribs_default = True )
203- elif fullname in attrs .attr_frozen_makers :
195+ if fullname in dataclass_makers :
196+ return dataclass_class_maker_callback
197+ elif fullname in functools_total_ordering_makers :
198+ return functools_total_ordering_maker_callback
199+ elif fullname in attr_class_makers :
200+ return attr_class_maker_callback
201+ elif fullname in attr_dataclass_makers :
202+ return partial (attr_class_maker_callback , auto_attribs_default = True )
203+ elif fullname in attr_frozen_makers :
204204 return partial (
205- attrs . attr_class_maker_callback , auto_attribs_default = None , frozen_default = True
205+ attr_class_maker_callback , auto_attribs_default = None , frozen_default = True
206206 )
207- elif fullname in attrs . attr_define_makers :
207+ elif fullname in attr_define_makers :
208208 return partial (
209- attrs . attr_class_maker_callback , auto_attribs_default = None , slots_default = True
209+ attr_class_maker_callback , auto_attribs_default = None , slots_default = True
210210 )
211-
212211 return None
213212
214213
0 commit comments