def drop_keys( self, keys: Iterable[Union[str, Callable]], candidate_classes: Optional[ Union[Type[Candidate], List[Type[Candidate]]] ] = None, ) -> None: """Drop the specified keys from LabelKeys. :param keys: A list of labeling functions to delete. :param candidate_classes: A list of the Candidates to drop the key for. If None, drops the keys for all candidate classes associated with this Labeler. """ # Make sure keys is iterable keys = keys if isinstance(keys, (list, tuple)) else [keys] # Make sure candidate_classes is iterable if candidate_classes: candidate_classes = ( candidate_classes if isinstance(candidate_classes, (list, tuple)) else [candidate_classes] ) # Ensure only candidate classes associated with the labeler are used. candidate_classes = [ _.__tablename__ for _ in candidate_classes if _ in self.candidate_classes ] if len(candidate_classes) == 0: logger.warning( "You didn't specify valid candidate classes for this Labeler." ) return # If unspecified, just use all candidate classes else: candidate_classes = [_.__tablename__ for _ in self.candidate_classes] # build dict for use by utils key_map = dict() for key in keys: # Assume key is an LF if hasattr(key, "__name__"): key_map[key.__name__] = set(candidate_classes) elif hasattr(key, "name"): key_map[key.name] = set(candidate_classes) else: key_map[key] = set(candidate_classes) drop_keys(self.session, LabelKey, key_map)
def drop_keys( self, keys: Iterable[str], candidate_classes: Optional[Iterable[Candidate]] = None, ) -> None: """Drop the specified keys from FeatureKeys. :param keys: A list of FeatureKey names to delete. :type keys: list, tuple :param candidate_classes: A list of the Candidates to drop the key for. If None, drops the keys for all candidate classes associated with this Featurizer. :type candidate_classes: list, tuple """ # Make sure keys is iterable keys = keys if isinstance(keys, (list, tuple)) else [keys] # Make sure candidate_classes is iterable if candidate_classes: candidate_classes = ( candidate_classes if isinstance(candidate_classes, (list, tuple)) else [candidate_classes] ) # Ensure only candidate classes associated with the featurizer # are used. candidate_classes = [ _.__tablename__ for _ in candidate_classes if _ in self.candidate_classes ] if len(candidate_classes) == 0: logger.warning( "You didn't specify valid candidate classes for this featurizer." ) return # If unspecified, just use all candidate classes else: candidate_classes = [_.__tablename__ for _ in self.candidate_classes] # build dict for use by utils key_map = dict() for key in keys: key_map[key] = set(candidate_classes) drop_keys(self.session, FeatureKey, key_map)
def drop_keys(self, keys, candidate_classes=None): """Drop the specified keys from LabelKeys. :param keys: A list of labeling functions to delete. :type keys: list, tuple :param candidate_classes: A list of the Candidates to drop the key for. If None, drops the keys for all candidate classes associated with this Labeler. :type candidate_classes: list, tuple """ # Make sure keys is iterable keys = keys if isinstance(keys, (list, tuple)) else [keys] # Make sure candidate_classes is iterable if candidate_classes: candidate_classes = ( candidate_classes if isinstance(candidate_classes, (list, tuple)) else [candidate_classes] ) # Ensure only candidate classes associated with the labeler are used. candidate_classes = [ _.__tablename__ for _ in candidate_classes if _ in self.candidate_classes ] if len(candidate_classes) == 0: logger.warning( "You didn't specify valid candidate classes for this Labeler." ) return # If unspecified, just use all candidate classes else: candidate_classes = [_.__tablename__ for _ in self.candidate_classes] # build dict for use by utils key_map = dict() for key in keys: # Assume key is an LF try: key_map[key.__name__] = set(candidate_classes) except AttributeError: key_map[key] = set(candidate_classes) drop_keys(self.session, LabelKey, key_map)