from spaceapi_server import config, plugins @plugins.template_function def example_function(name: str): ''' This function is registered as a Jinja2 function. It can be used like this: {{ example_function('the Spanish Inquisition') }} ''' return f'Nobody expects {name}' @plugins.template_filter def example_filter(name: str): ''' This function is registered as a Jinja2 filter. It can be used like this: {{ 'the Spanish Inquisition' | example_filter }} ''' return f'Nobody expects {name}' @plugins.template_test def example_test(name: str): ''' This function is registered as a Jinja2 test. It can be used like this: {% if 'the Spanish Inquisition' is example_test %} ''' # Config lookup example. A plugin's config should be below # `.plugins[plugin_name]` (JSONPath) # Get the .plugins.example dict conf = config.get().get('plugins', {}).get('example', {}) # Get the .test_value property from the plugin config, falling # back to a default value test_value = conf.get('test_value', 'the Spanish Inquisition') # Tests must always return a boolean or boolean-castable # expression return name == test_value