Skip to content

Commit

Permalink
Standardized the watch API to accept parameter name lists only
Browse files Browse the repository at this point in the history
  • Loading branch information
jlstevens committed Sep 18, 2018
1 parent 753a47f commit 15c3c32
Showing 1 changed file with 6 additions and 13 deletions.
19 changes: 6 additions & 13 deletions param/parameterized.py
Expand Up @@ -1117,16 +1117,9 @@ def _spec_to_obj(self_,spec):
return MInfo(inst=inst,cls=cls,name=attr,mthd=getattr(src,attr))


def _watch(self_,action,fn,parameter_name,parameter_attribute=None):
def _watch(self_,action,fn,parameter_names,parameter_attribute=None):
#cls,obj = (slf_or_cls,None) if isinstance(slf_or_cls,ParameterizedMetaclass) else (slf_or_cls.__class__,slf_or_cls)

if not isinstance(parameter_name, list):
parameter_names = [parameter_name]
batched = False
else:
parameter_names = parameter_name
batched = True

batched = len(parameter_names) > 1
for parameter_name in parameter_names:
assert parameter_name in self_.cls.params()

Expand All @@ -1150,11 +1143,11 @@ def _watch(self_,action,fn,parameter_name,parameter_attribute=None):
subscriber = Subscriber(batched=batched, fn=fn)
getattr(subscribers[parameter_attribute],action)(subscriber)

def watch(self_,fn,parameter_name,parameter_attribute=None):
self_._watch('append',fn,parameter_name,parameter_attribute)
def watch(self_,fn,parameter_names,parameter_attribute=None):
self_._watch('append',fn,parameter_names,parameter_attribute)

def unwatch(self_,fn,parameter_name,parameter_attribute=None):
self_._watch('remove',fn,parameter_name,parameter_attribute)
def unwatch(self_,fn,parameter_names,parameter_attribute=None):
self_._watch('remove',fn,parameter_names,parameter_attribute)


# Instance methods
Expand Down

0 comments on commit 15c3c32

Please sign in to comment.