summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2020-06-03 14:29:31 -0500
committerGitHub <noreply@github.com>2020-06-03 14:29:31 -0500
commit0ea23784ba4c8af4ac0ae1a2d8a23b959e6acfa6 (patch)
tree9301a23c186704beb1abf73995867d9355b49bfb
parent0a9d1403bd20c28ca3fb336bd65e2899de356bbb (diff)
parent2ba260e83c1646e008715eef8f6bfa4cf335cb34 (diff)
downloadpyramid-0ea23784ba4c8af4ac0ae1a2d8a23b959e6acfa6.tar.gz
pyramid-0ea23784ba4c8af4ac0ae1a2d8a23b959e6acfa6.tar.bz2
pyramid-0ea23784ba4c8af4ac0ae1a2d8a23b959e6acfa6.zip
Merge pull request #3593 from ztane/feature/pserve-write-to-stderr
Fixing #3592 - output diagnostic messages to stderr, not stdout
-rw-r--r--CHANGES.rst4
-rw-r--r--src/pyramid/scripts/pserve.py14
2 files changed, 14 insertions, 4 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index 3bd14705d..15d08f295 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -116,6 +116,10 @@ Features
are now importable from the ``pyramid.authorization`` namespace.
See https://github.com/Pylons/pyramid/pull/3563
+- ``pserve`` now outputs verbose messaging to `stderr` instead of `stdout`
+ to circumvent buffering issues that exist by default on `stdout`.
+ See https://github.com/Pylons/pyramid/pull/3593
+
Deprecations
------------
diff --git a/src/pyramid/scripts/pserve.py b/src/pyramid/scripts/pserve.py
index ce0c454e6..6906a0410 100644
--- a/src/pyramid/scripts/pserve.py
+++ b/src/pyramid/scripts/pserve.py
@@ -143,7 +143,7 @@ class PServeCommand:
def out(self, msg): # pragma: no cover
if self.args.verbose > 0:
- print(msg)
+ print(msg, file=sys.stderr)
def get_config_path(self, loader):
return os.path.abspath(loader.uri.path)
@@ -296,7 +296,9 @@ def wsgiref_server_runner(wsgi_app, global_conf, **kw): # pragma: no cover
host = kw.get('host', '0.0.0.0')
port = int(kw.get('port', 8080))
server = make_server(host, port, wsgi_app)
- print('Starting HTTP server on http://%s:%s' % (host, port))
+ print(
+ 'Starting HTTP server on http://%s:%s' % (host, port), file=sys.stderr
+ )
server.serve_forever()
@@ -416,10 +418,14 @@ def cherrypy_server_runner(
if host == '0.0.0.0':
print(
'serving on 0.0.0.0:%s view at %s://127.0.0.1:%s'
- % (port, protocol, port)
+ % (port, protocol, port),
+ file=sys.stderr,
)
else:
- print('serving on %s://%s:%s' % (protocol, host, port))
+ print(
+ 'serving on %s://%s:%s' % (protocol, host, port),
+ file=sys.stderr,
+ )
server.start()
except (KeyboardInterrupt, SystemExit):
server.stop()