| Conditions | 10 |
| Total Lines | 94 |
| Code Lines | 62 |
| Lines | 94 |
| Ratio | 100 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
Complex classes like glances.plugins.programlist.PluginModel._msg_curse_sum() often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
| 1 | # |
||
| 234 | View Code Duplication | def _msg_curse_sum(self, ret, sep_char='_', mmm=None, args=None): |
|
| 235 | """ |
||
| 236 | Build the sum message (only when filter is on) and add it to the ret dict. |
||
| 237 | |||
| 238 | :param ret: list of string where the message is added |
||
| 239 | :param sep_char: define the line separation char |
||
| 240 | :param mmm: display min, max, mean or current (if mmm=None) |
||
| 241 | :param args: Glances args |
||
| 242 | """ |
||
| 243 | ret.append(self.curse_new_line()) |
||
| 244 | if mmm is None: |
||
| 245 | ret.append(self.curse_add_line(sep_char * 69)) |
||
| 246 | ret.append(self.curse_new_line()) |
||
| 247 | # CPU percent sum |
||
| 248 | msg = ' ' |
||
| 249 | msg += self.layout_stat['cpu'].format(self._sum_stats('cpu_percent', mmm=mmm)) |
||
| 250 | ret.append(self.curse_add_line(msg, decoration=self._mmm_deco(mmm))) |
||
| 251 | # MEM percent sum |
||
| 252 | msg = self.layout_stat['mem'].format(self._sum_stats('memory_percent', mmm=mmm)) |
||
| 253 | ret.append(self.curse_add_line(msg, decoration=self._mmm_deco(mmm))) |
||
| 254 | # VIRT and RES memory sum |
||
| 255 | if ( |
||
| 256 | 'memory_info' in self.stats[0] |
||
| 257 | and self.stats[0]['memory_info'] is not None |
||
| 258 | and self.stats[0]['memory_info'] != '' |
||
| 259 | ): |
||
| 260 | # VMS |
||
| 261 | msg = self.layout_stat['virt'].format( |
||
| 262 | self.auto_unit(self._sum_stats('memory_info', sub_key='vms', mmm=mmm), low_precision=False) |
||
| 263 | ) |
||
| 264 | ret.append(self.curse_add_line(msg, decoration=self._mmm_deco(mmm), optional=True)) |
||
| 265 | # RSS |
||
| 266 | msg = self.layout_stat['res'].format( |
||
| 267 | self.auto_unit(self._sum_stats('memory_info', sub_key='rss', mmm=mmm), low_precision=False) |
||
| 268 | ) |
||
| 269 | ret.append(self.curse_add_line(msg, decoration=self._mmm_deco(mmm), optional=True)) |
||
| 270 | else: |
||
| 271 | msg = self.layout_header['virt'].format('') |
||
| 272 | ret.append(self.curse_add_line(msg)) |
||
| 273 | msg = self.layout_header['res'].format('') |
||
| 274 | ret.append(self.curse_add_line(msg)) |
||
| 275 | # PID |
||
| 276 | msg = self.layout_header['nprocs'].format('') |
||
| 277 | ret.append(self.curse_add_line(msg)) |
||
| 278 | # USER |
||
| 279 | msg = self.layout_header['user'].format('') |
||
| 280 | ret.append(self.curse_add_line(msg)) |
||
| 281 | # TIME+ |
||
| 282 | msg = self.layout_header['time'].format('') |
||
| 283 | ret.append(self.curse_add_line(msg, optional=True)) |
||
| 284 | # THREAD |
||
| 285 | msg = self.layout_header['thread'].format('') |
||
| 286 | ret.append(self.curse_add_line(msg)) |
||
| 287 | # NICE |
||
| 288 | msg = self.layout_header['nice'].format('') |
||
| 289 | ret.append(self.curse_add_line(msg)) |
||
| 290 | # STATUS |
||
| 291 | msg = self.layout_header['status'].format('') |
||
| 292 | ret.append(self.curse_add_line(msg)) |
||
| 293 | # IO read/write |
||
| 294 | if 'io_counters' in self.stats[0] and mmm is None: |
||
| 295 | # IO read |
||
| 296 | io_rs = int( |
||
| 297 | (self._sum_stats('io_counters', 0) - self._sum_stats('io_counters', sub_key=2, mmm=mmm)) |
||
| 298 | / self.stats[0]['time_since_update'] |
||
| 299 | ) |
||
| 300 | if io_rs == 0: |
||
| 301 | msg = self.layout_stat['ior'].format('0') |
||
| 302 | else: |
||
| 303 | msg = self.layout_stat['ior'].format(self.auto_unit(io_rs, low_precision=True)) |
||
| 304 | ret.append(self.curse_add_line(msg, decoration=self._mmm_deco(mmm), optional=True, additional=True)) |
||
| 305 | # IO write |
||
| 306 | io_ws = int( |
||
| 307 | (self._sum_stats('io_counters', 1) - self._sum_stats('io_counters', sub_key=3, mmm=mmm)) |
||
| 308 | / self.stats[0]['time_since_update'] |
||
| 309 | ) |
||
| 310 | if io_ws == 0: |
||
| 311 | msg = self.layout_stat['iow'].format('0') |
||
| 312 | else: |
||
| 313 | msg = self.layout_stat['iow'].format(self.auto_unit(io_ws, low_precision=True)) |
||
| 314 | ret.append(self.curse_add_line(msg, decoration=self._mmm_deco(mmm), optional=True, additional=True)) |
||
| 315 | else: |
||
| 316 | msg = self.layout_header['ior'].format('') |
||
| 317 | ret.append(self.curse_add_line(msg, optional=True, additional=True)) |
||
| 318 | msg = self.layout_header['iow'].format('') |
||
| 319 | ret.append(self.curse_add_line(msg, optional=True, additional=True)) |
||
| 320 | if mmm is None: |
||
| 321 | msg = '< {}'.format('current') |
||
| 322 | ret.append(self.curse_add_line(msg, optional=True)) |
||
| 323 | else: |
||
| 324 | msg = f'< {mmm}' |
||
| 325 | ret.append(self.curse_add_line(msg, optional=True)) |
||
| 326 | msg = '(\'M\' to reset)' |
||
| 327 | ret.append(self.curse_add_line(msg, optional=True)) |
||
| 328 |