@@ -70,8 +70,13 @@ def create_new_var(self, name: str, typ: MypyType) -> Var:
70
70
var .is_inferred = True
71
71
return var
72
72
73
- def add_new_node_to_model_class (self , name : str , typ : MypyType , no_serialize : bool = False ) -> None :
74
- helpers .add_new_sym_for_info (self .model_classdef .info , name = name , sym_type = typ , no_serialize = no_serialize )
73
+ def add_new_node_to_model_class (
74
+ self , name : str , typ : MypyType , no_serialize : bool = False , is_classvar : bool = False
75
+ ) -> None :
76
+ # TODO: Rename to signal that it is a `Var` that is added..
77
+ helpers .add_new_sym_for_info (
78
+ self .model_classdef .info , name = name , sym_type = typ , no_serialize = no_serialize , is_classvar = is_classvar
79
+ )
75
80
76
81
def add_new_class_for_current_module (self , name : str , bases : List [Instance ]) -> TypeInfo :
77
82
current_module = self .api .modules [self .model_classdef .info .module_name ]
@@ -311,7 +316,7 @@ def reparametrize_dynamically_created_manager(self, manager_name: str, manager_i
311
316
assert manager_info is not None
312
317
# Reparameterize dynamically created manager with model type
313
318
manager_type = Instance (manager_info , [Instance (self .model_classdef .info , [])])
314
- self .add_new_node_to_model_class (manager_name , manager_type )
319
+ self .add_new_node_to_model_class (manager_name , manager_type , is_classvar = True )
315
320
316
321
def run_with_model_cls (self , model_cls : Type [Model ]) -> None :
317
322
manager_info : Optional [TypeInfo ]
@@ -336,7 +341,7 @@ def run_with_model_cls(self, model_cls: Type[Model]) -> None:
336
341
continue
337
342
338
343
manager_type = Instance (manager_info , [Instance (self .model_classdef .info , [])])
339
- self .add_new_node_to_model_class (manager_name , manager_type )
344
+ self .add_new_node_to_model_class (manager_name , manager_type , is_classvar = True )
340
345
341
346
if incomplete_manager_defs :
342
347
if not self .api .final_iteration :
@@ -351,7 +356,9 @@ def run_with_model_cls(self, model_cls: Type[Model]) -> None:
351
356
# setting _some_ type
352
357
fallback_manager_info = self .get_or_create_manager_with_any_fallback ()
353
358
self .add_new_node_to_model_class (
354
- manager_name , Instance (fallback_manager_info , [Instance (self .model_classdef .info , [])])
359
+ manager_name ,
360
+ Instance (fallback_manager_info , [Instance (self .model_classdef .info , [])]),
361
+ is_classvar = True ,
355
362
)
356
363
357
364
# Find expression for e.g. `objects = SomeManager()`
@@ -623,6 +630,10 @@ def adjust_model_class(cls, ctx: ClassDefContext) -> None:
623
630
):
624
631
del ctx .cls .info .names ["MultipleObjectsReturned" ]
625
632
633
+ objects = ctx .cls .info .names .get ("objects" )
634
+ if objects is not None and isinstance (objects .node , Var ) and not objects .plugin_generated :
635
+ del ctx .cls .info .names ["objects" ]
636
+
626
637
return
627
638
628
639
def get_exception_bases (self , name : str ) -> List [Instance ]:
0 commit comments