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 |
| *personal* | |
| *private* | |
| .git | |