Registering "Magic" Metaclass attributes
I have a meta baseclass that is similar to Django's model class. It creates class attributes in instances based on how the class is defined. It's called model.Struct below.
I want to "Teach" PyCharm how to interpret this definition so that it can offer code completion hints about the model attributes. I expect that I might need to write some code somewhere for PyCharm to run to interpret my metaclass.
As an example of what this model object does, here's a very simple test:
I'd like the ability to type "inst." and have auto-complete suggest a, b and c as members. Is there a way to do this?
I want to "Teach" PyCharm how to interpret this definition so that it can offer code completion hints about the model attributes. I expect that I might need to write some code somewhere for PyCharm to run to interpret my metaclass.
As an example of what this model object does, here's a very simple test:
A Python UnitTest Member demonstrating model.Struct
def test_constructor_args(self): """You can build structure instances using keyword arguments""" class SimpleABC(model.Struct): a = model.Field() b = model.Field() c = model.Field() inst = SimpleABC(b=2, c=3) self.assertEqual(0, inst.a) self.assertEqual(2, inst.b) self.assertEqual(3, inst.c) inst = SimpleABC(b=2, c=3, a= 1) self.assertEqual(1, inst.a) self.assertEqual(2, inst.b) self.assertEqual(3, inst.c)
I'd like the ability to type "inst." and have auto-complete suggest a, b and c as members. Is there a way to do this?
Please sign in to leave a comment.