I’ve made a test evaluation of edgedb for the purposes of a small company.
My order of priorities (starting from most important):
- correctness of results (data and code)
- developer convenience
- minimal maintenance
- efficiency/scalability
# to be executed from different notebook! | |
def check_notebook_reproducibility(filename): | |
md5s = [] | |
for attempt in [1, 2]: | |
!jupyter nbconvert --to notebook --inplace --execute $filename --ExecutePreprocessor.timeout=86400 | |
result = !md5sum $filename | |
md5s.append(result) | |
print result | |
a, b = md5s | |
assert a == b, 'hashes are different' |
----> call function __getitem__ | |
------> call function __contains__ | |
<------ exit function __contains__ | |
------> call function _getitem_column | |
--------> call function _get_item_cache | |
----------> call function get | |
------------> call function _get_items | |
<------------ exit function _get_items | |
------------> call function isnull | |
--------------> call function _isnull_new |
# Run command with the same user ID as current user | |
# -v $(pwd):/tmp/mount - mount current directory to /tmp/mount/ | |
# --env HOME="/tmp/" - some commands may need to be able to write to your home, se it to temporary folder | |
docker run -ti --rm -v $(pwd):/tmp/mount —user=$(id -u) --env HOME="/tmp/" debian:jessie | |
# Mount current users and group and be able to use them | |
# mount /etc/group and /etc/passwd read only | |
# set user from $USER | |
docker run -ti --rm -v $(pwd):/tmp/mount -w /tmp/hx -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro —user=$USER debian:jessie |