Since Layer is the main interface, it would be nice if tab completion on the object only listed relevant pieces of the API so that you can quickly find what plot types are available (e.g. point(), bar(), text(), etc.)
Currently, since it derives from BaseObject the namespace is polluted with all sorts of traitlet stuff that the user probably doesn't care about.
I'd propose something like this:
class LayerObject(BaseObject):
# traitlet-related stuff goes here
def __init__(self, *args, **kwargs):
super(LayerObject, self).__init__(**kwargs)
# etc.
class Layer(object):
# non-traitlet-related Layer methods here
def __init__(self, *args, **kwargs):
if len(args)==1:
self.data = args[0]
self._layerobject = LayerObject(**kwargs)
def point(self):
self.mark = 'point'
return self
# etc.
The only problem would be if we ever want to pass Layer to some other class this would complicate things. What do you think?
Since
Layeris the main interface, it would be nice if tab completion on the object only listed relevant pieces of the API so that you can quickly find what plot types are available (e.g.point(),bar(),text(), etc.)Currently, since it derives from
BaseObjectthe namespace is polluted with all sorts of traitlet stuff that the user probably doesn't care about.I'd propose something like this:
The only problem would be if we ever want to pass
Layerto some other class this would complicate things. What do you think?