Pre 1.0

J. Fernando Sánchez requested to merge pre-1.0 into master

There are too many changes in this merge request. I would've tried to split them, but most of them are pretty much dependent on each other.

  • Enhanced meta-programming for models
  • Add plugin metaclass to keep track of plugin types
  • Plugins can be imported from a python file if they're named senpy_<whatever>.py> or <whatever>_plugin.py (no need for .senpy files anymore!)
  • As a result of the previous one, I refactored the code to get rid of unnecessary .senpys
  • Add Box plugin (i.e. black box)
  • Add SentimentBox, EmotionBox and MappingMixin
  • Refactored CustomDict
  • Add docstings and tests to most plugins
  • Read plugin description from the docstring
  • Load models, plugins and utils into the main module (senpy) (see init.py)
  • Enhanced plugin development/experience with utils (easy_test, easy_serve)
  • Fix bug in check_template that wouldn't check objects
  • Make model defaults a private variable
  • Add option to list loaded plugins in CLI
  • Update docs
  • Add sklearn example
  • Several fixes for test_case
  • Simplified test_case for different types of plugin (Sentiment, Emotion & Analysis)
  • Add SenpyClientUse docs
  • Change names of classes in the plugins module to avoid repetitions (we may have to revert this)
  • Make subprocess log private
  • Moved plugins to examples dir (in a previous commit)
  • Simplify validation in parse_params
  • Added convenience methods to mock requests in tests
  • Change help schema to use .valid_parameters instead of .parameters, which was used in results to show parameters provided by the user.
  • Add loading attributes in class
  • Add ability to specify failing test cases in plugins
  • Improve UI
    • Added basic parameters
    • Fixed bugs in parameter handling
    • Refactored and cleaned code

Merge request reports