-
-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Description
I've got a config file management package I'm trying to port to micropython, where the config file structure is defined as a python class: https://pypi.org/project/structured-config/
Some of the features of this module are dependent on knowing the order and iterating over of attributes defined in a class.
This kind of ordered attributes access can also be useful for various dataclass type behaviors.
Currently the only way I can find to get attributes listed on a class is with dir()
>>> bar = None
>>>
>>> class Structure:
>>> first = 1
>>> foo = 0x0f
>>> bar = 0x0b
>>> last = 2
>>>
>>> print(dir(Structure))
['__class__', '__module__', '__name__', '__qualname__', '__bases__', 'bar', 'first', 'foo', 'last']However, looking at the source for dir(), I can see that that it works by iterating over every QSTR defined in micropython and checks the class/object for each one to see if it exists (seems a bit backwards to me) so they get listed in the order they're (ever) defined in micropython
https://github.com/micropython/micropython/blob/master/py/modbuiltins.c#L175
Is there any other way in micropython currently this could be accomplished?