- S3 external storage
- Garbage collection for external sorage
- Most operators and methods of tables can be invoked as class methods
- The schema decorator object no longer requires locals() to specify the context
- Compatibility with pymysql 0.8.0+
- Made graphviz installation optional
- Implement file-based external storage
- Implement union operator +
- Bug fixes
- Made graphviz installation optional
- Implement file-based external storage
Documentation and tutorials available at https://docs.datajoint.io and https://tutorials.datajoint.io
- improved the ERD graphics and features using the graphviz libraries (#207, #333)
- improved password handling logic (#322, #321)
- the use of the
contents
property to populate tables now only works indj.Lookup
classes (#310). - allow suppressing the display of size of query results through the
show_tuple_count
configuration option (#309) - implemented renamed foreign keys to spec (#333)
- added the
limit
keyword argument to populate (#329) - reduced the number of displayed messages (#308)
- added
size_on_disk
property for dj.Schema() objects (#323) - job keys are entered in the jobs table (#316, #243)
- simplified the
fetch
andfetch1
syntax, deprecating thefetch[...]
syntax (#319) - the jobs tables now store the connection ids to allow identifying abandoned jobs (#288, #317)
- All fetched integers are now 64-bit long and all fetched floats are double precision.
- Added
dj.create_virtual_module
- Removed Vagrant and Readthedocs support
- Explicit saving of configuration (issue #284)
- Fixed setup.py for pip install
- Fixed issues related to order of attributes in projection.
- Proper handling of interruptions during populate
- Populate reports how many keys remain to be populated at the start.
- Fixed aggregation issues (#270)
- datajoint no longer attempts to connect to server at import time
- dropped support of view (reversed #257)
- more elegant handling of insufficient privileges (#268)
- improved table appearance in Jupyter
- bugfix for very long error messages
- Added support for datatype
YEAR
- Fixed issues with
dj.U
and theaggr
operator (#246, #247)
- added the
_update
method inbase_relation
. It allows updating values in existing tuples. - bugfix in reading values of type double. Previously it was cast as float32.
- added parameter
ignore_extra_fields
ininsert
insert(..., skip_duplicates=True)
now relies onSELECT IGNORE
. Previously it explicitly checked if tuple already exists.- table previews now include blob attributes displaying the string
- bugfix in
schema.spawn_missing_classes
. Previously, spawned part classes would not show in ERDs. - dj.key now causes fetch to return as a list of dicts. Previously it was a recarray.
dj.set_password()
now asks for user confirmation before changing the password.- fixed issue #228
- Added method the
ERD.add_parts
method, which adds the part tables of all tables currently in the ERD. ERD() + arg
andERD() - arg
can now accept relation classes as arg.
- Suppressed warnings (redirected them to logging). Previoiusly, scipy would throw warnings in ERD, for example.
- Added ERD.from_sequence as a shortcut to combining the ERDs of multiple sources
- ERD() no longer text the context argument.
- ERD.draw() now takes an optional context argument. By default uses the caller's locals.
- Fixed issue #223:
insert
can insert relations without fetching. - ERD() now takes the
context
argument, which specifies in which context to look for classes. The default is taken from the argument (schema or relation). - ERD.draw() no longer has the
prefix
argument: class names are shown as found in the context.