Example #1
0
def _wrap(value):
    """
    Wraps the passed value in a Sequence if it is not a primitive. If it is a string
    argument it is expanded to a list of characters.

    >>> _wrap(1)
    1

    >>> _wrap("abc")
    ['a', 'b', 'c']

    >>> type(_wrap([1, 2]))
    functional.pipeline.Sequence

    :param value: value to wrap
    :return: wrapped or not wrapped value
    """
    if is_primitive(value):
        return value
    if isinstance(value, dict) or isinstance(value, set) or is_namedtuple(value):
        return value
    elif isinstance(value, collections.Iterable):
        return Sequence(value)
    else:
        return value
Example #2
0
 def _insert_item(item):
     if isinstance(item, dict):
         cols = ", ".join(item.keys())
         placeholders = ", ".join("?" * len(item))
         sql = "INSERT INTO {} ({}) VALUES ({})".format(table_name, cols, placeholders)
         conn.execute(sql, tuple(item.values()))
     elif is_namedtuple(item):
         cols = ", ".join(item._fields)
         placeholders = ", ".join("?" * len(item))
         sql = "INSERT INTO {} ({}) VALUES ({})".format(table_name, cols, placeholders)
         conn.execute(sql, item)
     elif isinstance(item, (list, tuple)):
         placeholders = ", ".join("?" * len(item))
         sql = "INSERT INTO {} VALUES ({})".format(table_name, placeholders)
         conn.execute(sql, item)
     else:
         raise TypeError("item must be one of dict, namedtuple, tuple or list got {}".format(type(item)))
Example #3
0
 def test_is_namedtuple(self):
     self.assertTrue(is_namedtuple(Data(1, 2)))
     self.assertFalse(is_namedtuple((1, 2, 3)))
     self.assertFalse(is_namedtuple([1, 2, 3]))
     self.assertFalse(is_namedtuple(1))
Example #4
0
 def test_is_namedtuple(self):
     self.assertTrue(is_namedtuple(Data(1, 2)))
     self.assertFalse(is_namedtuple((1, 2, 3)))
     self.assertFalse(is_namedtuple([1, 2, 3]))
     self.assertFalse(is_namedtuple(1))