Beispiel #1
0
 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
Beispiel #4
0
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