Source code for egegrouper.text_views

# EGEGrouper - Software for grouping electrogastroenterography examinations.

# Copyright (C) 2017-2018 Aleksandr Popov

# This program 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.

# This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.

from tabulate import tabulate

from .base_views import View, StatsView



[docs]class MessageTextView(View): """Text message view."""
[docs] def show_data(self, text): """ Print message. """ print(text)
[docs]class StorageTextView(View): """ View showing information about storage. """
[docs] def show_data(self, data, headers=None, title=None): print_table(data, headers=headers, title=title)
[docs]class GroupTextView(View): """ View showing information about group. """
[docs] def show_data(self, data, headers=None, title=None): print_table(data, headers=headers, title=title)
[docs]class ExamTextView(View): """Text view to show details of examination."""
[docs] def show_data(self, exam): """Print information about examination. Parameters ---------- exam: sme.Examination SME examination object. """ s = '\nE: {} {} {} {}\n'.format(exam.name, exam.gender, exam.age, exam.diagnosis) for m in exam.ms: s += ' M: {}\n'.format(m.time) print(s)
[docs]class WhereExamTextView(View): """Text view to show groups in which selected examination placed."""
[docs] def show_data(self, group_records, headers, placed_in): """Show all groups and indicate where the object is located. Parameters ---------- group_records : list of tuple Attributes of groups. headers : tuple Names of group attributes. placed_in : list of bool Indicators. True if examination placed in appropriate group, False overwise. """ rows = [('X' if p else '', gr[0], gr[1]) for p, gr in zip(placed_in, group_records)] headers_ext = ('', ) + headers print('\n' + tabulate(rows, headers=headers_ext, tablefmt="orgtbl") + '\n')
[docs]class StatsTextView(StatsView):
[docs] def show_data(self, data, headers): print_table(data, headers, self.title)