From d1252395bd697b2f2b2f461c1078fda22ab739b1 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 5 Sep 2000 04:39:55 +0000 Subject: Add new builtin commands "copyright", "license", "credits" which display the information you would expect them to display. --- Lib/site.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/Lib/site.py b/Lib/site.py index b69d30d..1c25f50 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -119,7 +119,58 @@ import __builtin__ __builtin__.quit = __builtin__.exit = exit del exit -# +# interactive prompt objects for printing the license text, a list of +# contributors and the copyright notice. +class _Printer: + MAXLINES = 23 + + def __init__(self, s): + self.__lines = s.split('\n') + self.__linecnt = len(self.__lines) + + def __repr__(self): + prompt = 'Hit Return for more, or q (and Return) to quit: ' + lineno = 0 + while 1: + try: + for i in range(lineno, lineno + self.MAXLINES): + print self.__lines[i] + except IndexError: + break + else: + lineno += self.MAXLINES + key = None + while key is None: + key = raw_input(prompt) + if key not in ('', 'q'): + key = None + if key == 'q': + break + return '' + +__builtin__.copyright = _Printer(sys.copyright) +__builtin__.credits = _Printer( + '''Python development is led by BeOpen PythonLabs (www.pythonlabs.com).''') + +def make_license(filename): + try: + return _Printer(open(filename).read()) + except IOError: + return None + +here = os.path.dirname(os.__file__) +for dir in here, os.path.join(here, os.pardir), os.curdir: + for file in "LICENSE.txt", "LICENSE": + lic = make_license(os.path.join(dir, file)) + if lic: + break + if lic: + __builtin__.license = lic + break +else: + __builtin__.license = _Printer('See http://hdl.handle.net/1895.22/1012') + + # Set the string encoding used by the Unicode implementation. The # default is 'ascii', but if you're willing to experiment, you can # change this. -- cgit v0.12