We've changed the way plugins are activated, and removed the notion of
deactivated plugins.
Now plugins activate asynchronously.
When calling a plugin, it will be activated if it wasn't, and the call will wait
for the plugin to be fully activated.
Closes#28 for python 2.
Apparently, process pools are not contexts in python 2.7.
On the other hand, in py2 you cannot pickle instance methods, so
you have to implement Pool tasks as independent functions.
Closes#28
Added:
* Async test (still missing one that includes the IOLoop)
* Async plugin under tests. To manually try async functionalities:
```
senpy -f tests/
```
It turns out setting "plugins" as a @list in the context causes the
"plugins" property to expand to its full name.
Removing the type causes a regression of #17, which I initially missed
because the test in #17 was wrong.
Closes#26
* Improved debugging (back to using Flask's built-in mechanisms)
* Recursive model loading from json
* Added DEVPORT to Makefile
* Accept json-ld input. Closes#16
* Improved Exception handling in client
* Modified default plugin selection to only include analysis plugins
* More tests
* Added interactive debugging
* Better exception logging
* More tests for errors
* Added ONBUILD to dockerfile
Now creating new images based on senpy's is as easy as:
```from senpy:<version>```. This will automatically mount the code to
/senpy-plugins and install all dependencies
* Added /data as a VOLUME
* Added `--use-wheel` to pip install both on the image and in the
auto-install function.
* Closes#9
Break compatibilitity:
* Removed ability to (de)activate plugins through the web
Bug-fixes and improvements:
* Closes#5
* Closes#1
* Adds Client (beta)
* Added several schemas
* Lighter string representation -> should avoid delays in the analysis
with plugins that have 'heavy' attributes
Backwards-incompatible changes:
* Context in headers by default
* All schemas include a "@type" argument that is used for autodetection
in the client
... And possibly many more, this is still <1.0