mirror of
https://github.com/gsi-upm/senpy
synced 2024-11-10 19:12:28 +00:00
21a5a3f201
* Fixed Options for extra_params in UI * Enhanced meta-programming for models * Plugins can be imported from a python file if they're named `senpy_<whatever>.py>` (no need for `.senpy` anymore!) * Add docstings and tests to most plugins * Read plugin description from the docstring * Refactor code to get rid of unnecessary `.senpy`s * Load models, plugins and utils into the main namespace (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
41 lines
884 B
Python
41 lines
884 B
Python
from senpy import AnalysisPlugin, easy
|
|
|
|
|
|
class DummyRequired(AnalysisPlugin):
|
|
'''This is a dummy self-contained plugin'''
|
|
author = '@balkian'
|
|
version = '0.1'
|
|
extra_params = {
|
|
'example': {
|
|
'description': 'An example parameter',
|
|
'required': True,
|
|
'options': ['a', 'b']
|
|
}
|
|
}
|
|
|
|
def analyse_entry(self, entry, params):
|
|
entry['nif:isString'] = entry['nif:isString'][::-1]
|
|
entry.reversed = entry.get('reversed', 0) + 1
|
|
yield entry
|
|
|
|
test_cases = [{
|
|
'entry': {
|
|
'nif:isString': 'Hello',
|
|
},
|
|
'expected': None
|
|
}, {
|
|
'entry': {
|
|
'nif:isString': 'Hello',
|
|
},
|
|
'params': {
|
|
'example': 'a'
|
|
},
|
|
'expected': {
|
|
'nif:isString': 'olleH'
|
|
}
|
|
}]
|
|
|
|
|
|
if __name__ == '__main__':
|
|
easy()
|