From 45ddd896d75c9b4a4e205b215e047f125e32fe8e Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 29 Feb 2012 10:06:42 -0500 Subject: remove rant --- CHANGES.txt | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 284c45ae4..3f5819954 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -28,20 +28,7 @@ Bug Fixes Pyramid 1.3a1. This bug was due to the presence of an ``__iter__`` attribute on strings - under Python 3 which is not present under strings in Python 2. I've been - assured by multiple Python cognoscenti that this difference in behavior - between Python 2 and Python 3 makes complete sense. Iterating over a - string character by character is of course something everyone wants to do - as often as possible and it would just be too darn slow to need to call a - method in order to turn a string into a list. Announcing that a string is - iterable by adding an ``__iter__`` to it simply canonizes its amazing, - speedy usefulness! So lest you think that Python 3's addition of an - ``__iter__`` to strings was a useless, pointless, harmful, - developer-hostile change, you're clearly mistaken, and quite possibly - brain-damaged. I feel for you. It's clearly much better to have a bug - that goes uncaught for nine alphas and one beta and almost leads to a - latent security hole that might have led to indiscriminate data - disclosure. + under Python 3 which is not present under strings in Python 2. 1.3b1 (2012-02-26) ================== -- cgit v1.2.3 From 74c2a098cf92db05ed8f089d95511f1d4f1efa42 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 29 Feb 2012 10:09:24 -0500 Subject: comment --- pyramid/config/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyramid/config/views.py b/pyramid/config/views.py index 1baaefcb6..0f70c604f 100644 --- a/pyramid/config/views.py +++ b/pyramid/config/views.py @@ -1635,7 +1635,7 @@ class StaticURLInfo(object): # appending a slash here if the spec doesn't have one is # required for proper prefix matching done in ``generate`` # (``subpath = path[len(spec):]``). - if os.path.isabs(spec): + if os.path.isabs(spec): # FBO windows sep = os.sep else: sep = '/' -- cgit v1.2.3 From dfdc25447e3eb221eda40492082af89d7363a830 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 29 Feb 2012 10:43:00 -0500 Subject: fix pserve tests on windows 2.6 --- pyramid/scripts/pserve.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/pyramid/scripts/pserve.py b/pyramid/scripts/pserve.py index 2bea7376a..8bd6c545c 100644 --- a/pyramid/scripts/pserve.py +++ b/pyramid/scripts/pserve.py @@ -9,6 +9,7 @@ # lib/site.py import atexit +import ctypes import errno import logging import optparse @@ -23,10 +24,23 @@ import traceback from paste.deploy import loadapp, loadserver +from pyramid.compat import WIN + from pyramid.paster import setup_logging MAXFD = 1024 +if WIN and not hasattr(os, 'kill'): # pragma: no cover + # py 2.6 on windows + def kill(pid, sig=None): + """kill function for Win32""" + # signal is ignored + kernel32 = ctypes.windll.kernel32 + handle = kernel32.OpenProcess(1, 0, pid) + return (0 != kernel32.TerminateProcess(handle, 0)) +else: + kill = os.kill + def main(argv=sys.argv, quiet=False): command = PServeCommand(argv, quiet=quiet) return command.run() @@ -451,7 +465,7 @@ class PServeCommand(object): if not live_pidfile(pid_file): break import signal - os.kill(pid, signal.SIGTERM) + kill(pid, signal.SIGTERM) time.sleep(1) else: self.out("failed to kill web process %s" % pid) @@ -505,11 +519,10 @@ class PServeCommand(object): raise return 1 finally: - if (proc is not None - and hasattr(os, 'kill')): + if proc is not None: import signal try: - os.kill(proc.pid, signal.SIGTERM) + kill(proc.pid, signal.SIGTERM) except (OSError, IOError): pass @@ -611,7 +624,7 @@ def live_pidfile(pidfile): # pragma: no cover pid = read_pidfile(pidfile) if pid: try: - os.kill(int(pid), 0) + kill(int(pid), 0) return pid except OSError as e: if e.errno == errno.EPERM: -- cgit v1.2.3 From f6bbf7f18dfb93cd83ee29fbd59158a518bde554 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 29 Feb 2012 11:14:54 -0500 Subject: fix pserve tests under windows on python 2.6 --- pyramid/scripts/pserve.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pyramid/scripts/pserve.py b/pyramid/scripts/pserve.py index 8bd6c545c..31a07c46f 100644 --- a/pyramid/scripts/pserve.py +++ b/pyramid/scripts/pserve.py @@ -34,10 +34,11 @@ if WIN and not hasattr(os, 'kill'): # pragma: no cover # py 2.6 on windows def kill(pid, sig=None): """kill function for Win32""" - # signal is ignored + # signal is ignored, semibogus raise message kernel32 = ctypes.windll.kernel32 handle = kernel32.OpenProcess(1, 0, pid) - return (0 != kernel32.TerminateProcess(handle, 0)) + if (0 == kernel32.TerminateProcess(handle, 0)): + raise OSError('No such process %s' % pid) else: kill = os.kill -- cgit v1.2.3 From 9103fbc2a3cd40d59c0405e0c65ae62af3a690a7 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 1 Mar 2012 20:33:18 -0500 Subject: wrong class name, fixes #451 --- docs/narr/scaffolding.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/narr/scaffolding.rst b/docs/narr/scaffolding.rst index 3e7b102fd..9ac579a87 100644 --- a/docs/narr/scaffolding.rst +++ b/docs/narr/scaffolding.rst @@ -123,7 +123,7 @@ defining your scaffold template: paste_script_template_renderer = None from pyramid.scaffolds import PyramidTemplate - class CoolExtensionTemplateTemplate(PyramidTemplate): + class CoolExtensionTemplate(PyramidTemplate): _template_dir = 'coolextension_scaffold' summary = 'My cool extension' template_renderer = staticmethod(paste_script_template_renderer) -- cgit v1.2.3