1 #!/usr/bin/env python 2 3 """ 4 Stand-alone input context. 5 6 Copyright (C) 2018 Paul Boddie <paul@boddie.org.uk> 7 8 This program is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free Software 10 Foundation; either version 3 of the License, or (at your option) any later 11 version. 12 13 This program is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 details. 17 18 You should have received a copy of the GNU General Public License along with 19 this program. If not, see <http://www.gnu.org/licenses/>. 20 """ 21 22 from moinformat.input.common import Input 23 import codecs 24 import sys 25 26 class StandaloneInput(Input): 27 28 "A stand-alone output context." 29 30 name = "standalone" 31 32 def read(self, stream=None): 33 34 """ 35 Read from 'stream', or standard input if not specified, returning a 36 character string. 37 """ 38 39 stream = stream or sys.stdin 40 f = codecs.getreader(self.encoding)(stream) 41 return f.read() 42 43 def readfile(self, filename, encoding=None): 44 45 """ 46 Return the contents of the file having the given 'filename'. If the 47 optional 'encoding' is specified, override the general encoding. 48 """ 49 50 return Input.readfile(self, filename, encoding) 51 52 input = StandaloneInput 53 54 # vim: tabstop=4 expandtab shiftwidth=4