- The
table.lookup()
method now has an optional second argument which can be used to populate columns only the first time the record is created, see Working with lookup tables. (#339) sqlite-utils memory
now has a--flatten
option for flattening nested JSON objects into separate columns, consistent withsqlite-utils insert
. (#332)table.create_index(..., find_unique_name=True)
parameter, which finds an available name for the created index even if the default name has already been taken. This means thatindex-foreign-keys
will work even if one of the indexes it tries to create clashes with an existing index name. (#335)- Added
py.typed
to the module, so mypy should now correctly pick up the type annotations. Thanks, Andreas Longo. (#331) - Now depends on
python-dateutil
instead of depending ondateutils
. Thanks, Denys Pavlov. (#324) table.create()
(see Explicitly creating a table) now handlesdict
,list
andtuple
types, mapping them toTEXT
columns in SQLite so that they can be stored encoded as JSON. (#338)- Inserted data with square braces in the column names (for example a CSV file containing a
item[price]
) column now have the braces converted to underscores:item_price_
. Previously such columns would be rejected with an error. (#329) - Now also tested against Python 3.10. (#330)