diff --git a/equipment/turtle_device.py b/equipment/turtle_device.py index a8f8c7b..b25aef7 100644 --- a/equipment/turtle_device.py +++ b/equipment/turtle_device.py @@ -2,34 +2,45 @@ from turtle import Turtle from typing import Any from equipment.device import SynchronyDevice import inspect +import types class TurtleDevice(SynchronyDevice): - def open(self): super().open() return Turtle() - - - def close (self): + + @staticmethod + def close (exam): super().close() - del(self) + del exam @property def trait_descriptors(self): - print("This is all class attributes: ", l) - for i in dir(Turtle): - if not i.startswith("__") and inspect.ismethod(Turtle.i)==False: - print(i, '\n') - - + l = list() + for i in inspect.getmembers(TurtleDevice): + if not (i[0].startswith("__") or i[0].startswith("_")) and not inspect.isfunction(i[1]): + l.append(i[0]) + return l + @property def action_descriptors(self): - print("This is all class methods: \n") - for i in dir(Turtle): - if not i.startswith("__") and inspect.ismethod(Turtle.i)==True: - sig = inspect.signature(Turtle.i) - print(i, str(sig), '\n') - + l = list() + #print(inspect.getmembers(TurtleDevice)) + #for i in dir(TurtleDevice): + # # print(type(getattr(TurtleDevice(), i))=='method') + # # if not i.startswith("__") and type(getattr(TurtleDevice(), i)) == types.MethodType: + # if not i.startswith("__") and inspect.isroutine(inspect.getattr_static(TurtleDevice, i)): + # sig = inspect.signature(getattr(TurtleDevice, i)) + # l.append(i + " " + str(sig)) + #return l + for i in inspect.getmembers(TurtleDevice): + # print(type(getattr(TurtleDevice, i))) + # print(type(getattr(TurtleDevice(), i))=='method') + if not (i[0].startswith("__") or i[0].startswith("_")) and inspect.isfunction(i[1]): + sig = inspect.signature(getattr(TurtleDevice, i[0])) + l.append(i[0]+str(sig)) + return l + def execute(self, action_name: str, *args, **kwargs): """Execute action `action_name`, using `args` and `kwargs` as action argument.""" pass @@ -45,10 +56,7 @@ class TurtleDevice(SynchronyDevice): def invalidate(self, trait_name: str): """Invalidate logical state of trait `trait_name`""" pass - - -#print(TurtleDevice.action_descriptors()) - - +#t = TurtleDevice() +#print(t.trait_descriptors)