comparison sat_frontends/jp/cmd_param.py @ 3573:813595f88612

merge changes from main branch
author Goffi <goffi@goffi.org>
date Thu, 17 Jun 2021 13:05:58 +0200
parents 04283582966f
children 524856bd7b19
comparison
equal deleted inserted replaced
3541:888109774673 3573:813595f88612
20 20
21 21
22 from . import base 22 from . import base
23 from sat.core.i18n import _ 23 from sat.core.i18n import _
24 from .constants import Const as C 24 from .constants import Const as C
25
25 __commands__ = ["Param"] 26 __commands__ = ["Param"]
26 27
27 28
28 class Get(base.CommandBase): 29 class Get(base.CommandBase):
29 def __init__(self, host): 30 def __init__(self, host):
30 super(Get, self).__init__( 31 super(Get, self).__init__(
31 host, 'get', need_connect=False, help=_('get a parameter value')) 32 host, "get", need_connect=False, help=_("get a parameter value")
33 )
32 34
33 def add_parser_options(self): 35 def add_parser_options(self):
34 self.parser.add_argument( 36 self.parser.add_argument(
35 "category", nargs='?', help=_("category of the parameter")) 37 "category", nargs="?", help=_("category of the parameter")
36 self.parser.add_argument("name", nargs='?', help=_("name of the parameter")) 38 )
39 self.parser.add_argument("name", nargs="?", help=_("name of the parameter"))
37 self.parser.add_argument( 40 self.parser.add_argument(
38 "-a", "--attribute", type=str, default="value", 41 "-a",
39 help=_("name of the attribute to get")) 42 "--attribute",
43 type=str,
44 default="value",
45 help=_("name of the attribute to get"),
46 )
40 self.parser.add_argument( 47 self.parser.add_argument(
41 "--security-limit", type=int, default=-1, help=_("security limit")) 48 "--security-limit", type=int, default=-1, help=_("security limit")
49 )
42 50
43 async def start(self): 51 async def start(self):
44 if self.args.category is None: 52 if self.args.category is None:
45 categories = await self.host.bridge.getParamsCategories() 53 categories = await self.host.bridge.getParamsCategories()
46 print("\n".join(categories)) 54 print("\n".join(categories))
47 elif self.args.name is None: 55 elif self.args.name is None:
48 try: 56 try:
49 values_dict = await self.host.bridge.asyncGetParamsValuesFromCategory( 57 values_dict = await self.host.bridge.asyncGetParamsValuesFromCategory(
50 self.args.category, self.args.security_limit, "", "", self.profile) 58 self.args.category, self.args.security_limit, "", "", self.profile
59 )
51 except Exception as e: 60 except Exception as e:
52 self.disp(_(f"can't find requested parameters: {e}"), error=True) 61 self.disp(
62 _("can't find requested parameters: {e}").format(e=e), error=True
63 )
53 self.host.quit(C.EXIT_NOT_FOUND) 64 self.host.quit(C.EXIT_NOT_FOUND)
54 else: 65 else:
55 for name, value in values_dict.items(): 66 for name, value in values_dict.items():
56 print(f"{name}\t{value}") 67 print(f"{name}\t{value}")
57 else: 68 else:
58 try: 69 try:
59 value = await self.host.bridge.asyncGetParamA( 70 value = await self.host.bridge.asyncGetParamA(
60 self.args.name, self.args.category, self.args.attribute, 71 self.args.name,
61 self.args.security_limit, self.profile) 72 self.args.category,
73 self.args.attribute,
74 self.args.security_limit,
75 self.profile,
76 )
62 except Exception as e: 77 except Exception as e:
63 self.disp(_(f"can't find requested parameter: {e}"), error=True) 78 self.disp(
79 _("can't find requested parameter: {e}").format(e=e), error=True
80 )
64 self.host.quit(C.EXIT_NOT_FOUND) 81 self.host.quit(C.EXIT_NOT_FOUND)
65 else: 82 else:
66 print(value) 83 print(value)
67 self.host.quit() 84 self.host.quit()
68 85
69 86
70 class Set(base.CommandBase): 87 class Set(base.CommandBase):
71 def __init__(self, host): 88 def __init__(self, host):
72 super(Set, self).__init__(host, 'set', need_connect=False, help=_('set a parameter value')) 89 super(Set, self).__init__(
90 host, "set", need_connect=False, help=_("set a parameter value")
91 )
73 92
74 def add_parser_options(self): 93 def add_parser_options(self):
75 self.parser.add_argument("category", help=_("category of the parameter")) 94 self.parser.add_argument("category", help=_("category of the parameter"))
76 self.parser.add_argument("name", help=_("name of the parameter")) 95 self.parser.add_argument("name", help=_("name of the parameter"))
77 self.parser.add_argument("value", help=_("name of the parameter")) 96 self.parser.add_argument("value", help=_("name of the parameter"))
78 self.parser.add_argument("--security-limit", type=int, default=-1, help=_("security limit")) 97 self.parser.add_argument(
98 "--security-limit", type=int, default=-1, help=_("security limit")
99 )
79 100
80 async def start(self): 101 async def start(self):
81 try: 102 try:
82 await self.host.bridge.setParam( 103 await self.host.bridge.setParam(
83 self.args.name, self.args.value, self.args.category, 104 self.args.name,
84 self.args.security_limit, self.profile) 105 self.args.value,
106 self.args.category,
107 self.args.security_limit,
108 self.profile,
109 )
85 except Exception as e: 110 except Exception as e:
86 self.disp(_(f"can't set requested parameter: {e}"), error=True) 111 self.disp(_("can't set requested parameter: {e}").format(e=e), error=True)
87 self.host.quit(C.EXIT_BRIDGE_ERRBACK) 112 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
88 else: 113 else:
89 self.host.quit() 114 self.host.quit()
90 115
91 116
92 class SaveTemplate(base.CommandBase): 117 class SaveTemplate(base.CommandBase):
93 # FIXME: this should probably be removed, it's not used and not useful for end-user 118 # FIXME: this should probably be removed, it's not used and not useful for end-user
94 119
95 def __init__(self, host): 120 def __init__(self, host):
96 super(SaveTemplate, self).__init__( 121 super(SaveTemplate, self).__init__(
97 host, 'save', use_profile=False, 122 host,
98 help=_('save parameters template to xml file')) 123 "save",
124 use_profile=False,
125 help=_("save parameters template to xml file"),
126 )
99 127
100 def add_parser_options(self): 128 def add_parser_options(self):
101 self.parser.add_argument("filename", type=str, help=_("output file")) 129 self.parser.add_argument("filename", type=str, help=_("output file"))
102 130
103 async def start(self): 131 async def start(self):
104 """Save parameters template to XML file""" 132 """Save parameters template to XML file"""
105 try: 133 try:
106 await self.host.bridge.saveParamsTemplate(self.args.filename) 134 await self.host.bridge.saveParamsTemplate(self.args.filename)
107 except Exception as e: 135 except Exception as e:
108 self.disp(_(f"can't save parameters to file: {e}"), error=True) 136 self.disp(_("can't save parameters to file: {e}").format(e=e), error=True)
109 self.host.quit(C.EXIT_BRIDGE_ERRBACK) 137 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
110 else: 138 else:
111 self.disp(_(f"parameters saved to file {self.args.filename}")) 139 self.disp(
140 _("parameters saved to file {filename}").format(
141 filename=self.args.filename
142 )
143 )
112 self.host.quit() 144 self.host.quit()
113 145
114 146
115 class LoadTemplate(base.CommandBase): 147 class LoadTemplate(base.CommandBase):
116 # FIXME: this should probably be removed, it's not used and not useful for end-user 148 # FIXME: this should probably be removed, it's not used and not useful for end-user
117 149
118 def __init__(self, host): 150 def __init__(self, host):
119 super(LoadTemplate, self).__init__( 151 super(LoadTemplate, self).__init__(
120 host, 'load', use_profile=False, 152 host,
121 help=_('load parameters template from xml file')) 153 "load",
154 use_profile=False,
155 help=_("load parameters template from xml file"),
156 )
122 157
123 def add_parser_options(self): 158 def add_parser_options(self):
124 self.parser.add_argument("filename", type=str, help=_("input file")) 159 self.parser.add_argument("filename", type=str, help=_("input file"))
125 160
126 async def start(self): 161 async def start(self):
127 """Load parameters template from xml file""" 162 """Load parameters template from xml file"""
128 try: 163 try:
129 self.host.bridge.loadParamsTemplate(self.args.filename) 164 self.host.bridge.loadParamsTemplate(self.args.filename)
130 except Exception as e: 165 except Exception as e:
131 self.disp(_(f"can't load parameters from file: {e}"), error=True) 166 self.disp(_("can't load parameters from file: {e}").format(e=e), error=True)
132 self.host.quit(C.EXIT_BRIDGE_ERRBACK) 167 self.host.quit(C.EXIT_BRIDGE_ERRBACK)
133 else: 168 else:
134 self.disp(_(f"parameters loaded from file {self.args.filename}")) 169 self.disp(
170 _("parameters loaded from file {filename}").format(
171 filename=self.args.filename
172 )
173 )
135 self.host.quit() 174 self.host.quit()
136 175
137 176
138 class Param(base.CommandBase): 177 class Param(base.CommandBase):
139 subcommands = (Get, Set, SaveTemplate, LoadTemplate) 178 subcommands = (Get, Set, SaveTemplate, LoadTemplate)
140 179
141 def __init__(self, host): 180 def __init__(self, host):
142 super(Param, self).__init__(host, 'param', use_profile=False, help=_('Save/load parameters template')) 181 super(Param, self).__init__(
182 host, "param", use_profile=False, help=_("Save/load parameters template")
183 )