From dbbd10e75f2f078909d231b2fd5ca1a351726faa Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Mon, 11 Nov 2013 10:46:24 +0100 Subject: [PATCH] Fixed #21420 -- Autoreloader on BSD with Python 3. Thanks Bouke Haarsma for the report. --- django/utils/autoreload.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py index 97522b90184..2325d0df806 100644 --- a/django/utils/autoreload.py +++ b/django/utils/autoreload.py @@ -37,6 +37,7 @@ import traceback from django.conf import settings from django.core.signals import request_finished +from django.utils import six try: from django.utils.six.moves import _thread as thread except ImportError: @@ -170,7 +171,8 @@ def kqueue_code_changed(): # New modules may get imported when a request is processed. We add a file # descriptor to the kqueue to exit the kqueue.control after each request. - watcher = tempfile.TemporaryFile(bufsize=0) + buf_kwargs = {'buffering' if six.PY3 else 'bufsize': 0} + watcher = tempfile.TemporaryFile(**buf_kwargs) kqueue.control([make_kevent(watcher)], 0) def update_watch(sender=None, **kwargs):