osci/actions/list_of_actions.py (18 lines of code) (raw):
"""Copyright since 2021, EPAM Systems
This file is part of OSCI.
OSCI is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OSCI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OSCI. If not, see <http://www.gnu.org/licenses/>."""
from osci.actions import Action
from typing import Dict, List, Any
class ListAction(Action):
"""List of available actions"""
params = ()
@classmethod
def help_text(cls) -> str:
return "List of all available actions"
@classmethod
def name(cls):
return 'list'
def _execute(self) -> Dict[str, List[Dict[str, Any]]]:
return {
"Actions": [{"name": action.name(),
"description": action.help_text(),
"params": [{"name": param.name,
"description": param.description}
for param in action.params]}
for action in Action.__subclasses__()]}