nextml / NEXT

NEXT is a machine learning system that runs in the cloud and makes it easy to develop, evaluate, and apply active learning in the real-world. Ask better questions. Get better results. Faster. Automated.
http://nextml.org
Apache License 2.0
160 stars 54 forks source link

MAINT, ENH, TST: Butler.Memory #217

Open stsievert opened 6 years ago

stsievert commented 6 years ago

This request provides two items:

The "better connection" means that it does not rely on constants.MINIONREDISHOST. For me that failed. Instead, uses StrictRedis(host='minionredis_1'), which is (as @dconathan mentioned) a somewhat old docker feature that we're not up to date on. @liamim did constants.MINIONREDISHOST work for you?

This also adds the functions increment, append, get_many, set_many and pipeline to Butler.Memory. It also refactors set and get to use ast.literal_eval to return the stored objects.

It cleans the API by using function wrappers to ensure the connection and catch exceptions. Before, all of these were coded in every function.

This implementation can be tested in the docker container with

$ sudo docker exec -i -t local_nextbackenddocker_1 /bin/bash
# logs into docker container
$ cd next/apps/tests
$ py.test test_memory.py

All tests pass.

stsievert commented 6 years ago

The connection change seems independent from what this PR tries to implement, which is why I'm holding off.