# Copyright (C) 2004 Nicolas Delon # All Rights Reserved # # This file is part of the Prelude program. # # 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 2, 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; see the file COPYING. If not, write to # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. import ReportNone import ReportStdout def prelude(): """ Workaround. We can't load ReportPrelude the way we did it with ReportNone because ReportPrelude does an import prelude, it means that we must have libprelude installed, and having libprelude must only be a requirement if the user choose prelude as a the reporting method, not in other cases. """ import ReportPrelude return ReportPrelude.Report() def Report(type="stdout"): "Pseudo/fake class that calls the good reporting backend." reports = { "stdout": ReportStdout.Report, "prelude": prelude, "none": ReportNone.Report } return reports[type]()