def filter_actor_on_params(self, out_iter, kwargs, final, desc):
        param_names = kwargs.get('param_names', [])
        if not final[0] or desc != dynops.FailedElement:
            if desc['is_primitive']:
                mandatory = desc['args']['mandatory']
                optional = desc['args']['optional'].keys()
            else:
                mandatory = desc['component']['arg_identifiers']
                optional = []
            # To be valid actor type all mandatory params need to be supplied and only valid params
            if all([p in param_names for p in mandatory]) and all([p in (mandatory + optional) for p in param_names]):
                _log.analyze(self.node.id, "+ FOUND DESC", {'desc': desc})
                out_iter.append(desc)
        if final[0]:
            out_iter.final()
dataset/ETHPy150Open EricssonResearch/calvin-base/calvin/actorstore/store.py/GlobalStore.filter_actor_on_params/operator `and` -> `or`