HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/wtforms_components/utils.py
import six


def is_scalar(value):
    return isinstance(value, (type(None), six.string_types, int, float, bool))


def null_or_unicode(value):
    return six.text_type(value) or None


def null_or_int(value):
    try:
        return int(value)
    except TypeError:
        return None


class Chain(object):
    """
    Generic chain class. Very similar to itertools.chain except this object
    can be iterated over multiple times.
    """
    def __init__(self, *iterables):
        self.iterables = iterables

    def __iter__(self):
        for iterable in self.iterables:
            for value in iterable:
                yield value

    def __contains__(self, value):
        return any(value in iterable for iterable in self.iterables)

    def __len__(self):
        return sum(map(len, self.iterables))

    def __repr__(self):
        return '%s(%r)' % (self.__class__.__name__, list(self.iterables))