def __init__(self, config): self.config = config Manipulation.__init__(self) # Filter.__init__(self, config) win_sizes = self.config.window if self.config.window is not None else [ 1, 1 ] if not is_collection(win_sizes): win_sizes = [win_sizes] * 2 self.before, self.after = win_sizes
def html_append_class(tag, classes): appended = False if 'class' not in tag.attrs: tag['class'] = [] if not utils.is_collection(classes): classes = (classes, ) for class_ in classes: if class_ not in tag['class']: tag['class'].append(class_) appended = True return appended
def html_find_parent(tag, names, cutoff=None): if not utils.is_collection(names): names = [names] parent = tag.parent while (parent is not None): if (cutoff is not None and parent is cutoff): return None if parent.name in names: return parent parent = parent.parent return parent
def get_data_class(inputs): """ Get datatype class of the input """ # input is already a datatype if issubclass(type(inputs), Datatype): return type(inputs) # text info dict if type(inputs) in [dict, OrderedDict] and "words" in inputs: return Text if is_collection(inputs[0]): return get_data_class(inputs[0]) if type(inputs[0]) in (str, np.str_): return Text elif isinstance(inputs[0], Number) or type(inputs[0]) is np.ndarray: return Numeric else: error(f"Unsupported type of data: {inputs[0]}")
def html_shallow_search(starting_tag, names, filter=None): if isinstance(starting_tag, soup.NavigableString): return [] if not utils.is_collection(names): names = [names] if starting_tag.name in names: if filter is None or filter(starting_tag): return [starting_tag] results = [] for tag in starting_tag.children: if isinstance(tag, soup.NavigableString): continue if tag.name in names: if filter is None or filter(tag): results.append(tag) else: results = results + html_shallow_search(tag, names, filter) return results