コード例 #1
0
ファイル: diff.py プロジェクト: coleb/PyFITS
    def report(self, fileobj=None, indent=0):
        """
        Generates a text report on the differences (if any) between two
        objects, and either returns it as a string or writes it to a file-like
        object.

        Parameters
        ----------
        fileobj : file-like object or None (optional)
            If `None`, this method returns the report as a string. Otherwise it
            returns `None` and writes the report to the given file-like object
            (which must have a `.write()` method at a minimum).

        indent : int
            The number of 4 space tabs to indent the report.

        Returns
        -------
        report : str or None
        """

        return_string = False
        if fileobj is None:
            fileobj = StringIO()
            return_string = True

        self._fileobj = fileobj
        self._indent = indent  # This is used internally by _writeln

        self._report()

        if return_string:
            return fileobj.getvalue()
コード例 #2
0
ファイル: util.py プロジェクト: theseusyang/scalrr-1
class CaptureStdio(object):
    """
    A simple context manager for redirecting stdout and stderr to a StringIO
    buffer.
    """

    def __init__(self, stdout=True, stderr=True):
        self.stdout = StringIO()
        self.stderr = StringIO()

    def __enter__(self):
        self._original_stdout = sys.stdout
        self._original_stderr = sys.stderr
        sys.stdout = self.stdout
        sys.stderr = self.stderr
        return self.stdout, self.stderr

    def __exit__(self, *args, **kwargs):
        sys.stdout = self._original_stdout
        sys.stderr = self._original_stderr
        self.stdout.close()
        self.stderr.close()
コード例 #3
0
ファイル: util.py プロジェクト: theseusyang/scalrr-1
 def __init__(self, stdout=True, stderr=True):
     self.stdout = StringIO()
     self.stderr = StringIO()