summaryrefslogtreecommitdiff
path: root/django/utils/autoreload.py
AgeCommit message (Collapse)Author
2021-02-10Fixed #32355 -- Dropped support for Python 3.6 and 3.7Mariusz Felisiak
2021-01-05Fixed #32314 -- Fixed detection when started non-django modules with "python ↵William Schwartz
-m" in autoreloader. django.utils.autoreload.get_child_arguments() detected when Python was started with the `-m` option only for `django` module. This commit changes the logic to check __spec__, see https://docs.python.org/3/reference/import.html#main-spec Now packages can implement their own __main__ with the runserver command.
2020-11-25Fixed #32223 -- Removed strict=True in Path.resolve() in autoreloader.Mariusz Felisiak
This reverts commit e28671187903e6aca2428374fdd504fca3032aee which caused permission errors when users didn't have permissions to all intermediate directories in a Django installation path. Thanks Jakub Szafrański for the report.
2020-11-19Fixed #32202 -- Fixed autoreloader argument generation for Windows with ↵Carlton Gibson
Python 3.7-.
2020-11-05Fixed #25791 -- Implement autoreload behaviour for cached template loader.Tom Forbes
2020-11-02Protected Watchman autoreloader against busy loops.Daniel Hahler
With an error in the loop above (e.g. using query without args), this would trigger a busy loop. While this was caused due to changes to the loop itself, it seems to be just good practice to protect against this.
2020-07-30Bumped minimum isort version to 5.1.0.David Smith
Fixed inner imports per isort 5. isort 5.0.0 to 5.1.0 was unstable.
2020-06-18Fixed #31716 -- Fixed detection of console scripts in autoreloader on Windows.Tom Forbes
2020-05-13Updated logging calls to use arguments instead of string interpolation.François Freitag
2020-03-05Fixed #31327 -- Deprecated providing_args argument for Signal.Jon Dufresne
2019-08-23Replaced subprocess commands by run() wherever possible.Claude Paroz
2019-07-24Fixed #30647 -- Fixed crash of autoreloader when extra directory cannot be ↵Tom Forbes
resolved.
2019-07-24Removed unused BaseReloader.watch_file().Mariusz Felisiak
Unused since its introduction in c8720e7696ca41f3262d5369365cc1bd72a216ca.
2019-07-23Fixed #30506 -- Fixed crash of autoreloader when path contains null characters.Tom Forbes
2019-07-01Removed unnecessary import in django/utils/autoreload.py.PatOnTheBack
2019-06-26Fixed #30588 -- Fixed crash of autoreloader when __main__ module doesn't ↵Tom Forbes
have __file__ attribute.
2019-06-24Simplified handling of non-existent paths in autoreloader with ↵Tom Forbes
Path.resolve(strict=True).
2019-05-29Fixed #30523 -- Fixed updating file modification times on seen files in ↵Tom Forbes
auto-reloader when using StatReloader. Previously we updated the file mtimes if the file has not been seen before - i.e on the first iteration of the loop. If the mtime has been changed we triggered the notify_file_changed() method which in all cases except the translations will result in the process being terminated. To be strictly correct we need to update the mtime for either branch of the conditional. Regression in 6754bffa2b2df15a741008aa611c1bb0e8dff22b.
2019-05-29Fixed #30516 -- Fixed crash of autoreloader when re-raising exceptions with ↵Tom Forbes
custom signature. Regression in c8720e7696ca41f3262d5369365cc1bd72a216ca.
2019-05-28Fixed #30479 -- Fixed detecting changes in manage.py by autoreloader when ↵Tom Forbes
using StatReloader. Regression in c8720e7696ca41f3262d5369365cc1bd72a216ca.
2019-05-15Refs #27685 -- Logged unexpected Watchman autoreloader errors.Daniel Hahler
2019-05-03Ignored pywatchman.SocketTimeout in Watchman autoreloader.Daniel Hahler
Bumped minimum supported pywatchman version to 1.2.0. These exceptions don't require checking a server status.
2019-04-29Fixed #30323 -- Fixed detecting changes by autoreloader when using StatReloader.Tom Forbes
2019-04-29Refs #30323 -- Prevented crash of autoreloader when ↵Tom Forbes
get_resolver().urlconf_module raising an exception.
2019-04-29Refs #30323 -- Simplified utils.autoreload.ensure_echo_on().Tom Forbes
2019-04-26Fixed #30361 -- Increased the default timeout of watchman client to 5 ↵Jacob Green
seconds and made it customizable. Made the default timeout of watchman client customizable via DJANGO_WATCHMAN_TIMEOUT environment variable.
2019-02-27Fixed #30215 -- Fixed autoreloader crash for modules without __spec__.shiningfm
Regression in c8720e7696ca41f3262d5369365cc1bd72a216ca.
2019-02-25Refs #27685 -- Removed "watchman unavailable" message.Tom Forbes
2019-02-09Removed unneeded list() calls in sorted() argument.Sergey Fedoseev
2019-01-28Fixed #25624 -- Fixed autoreload crash with jinja2.ModuleLoader.Tom Forbes
2019-01-19Removed redundant period in Watchman unavailable message.Tom Forbes
2019-01-13Fixed #27685 -- Added watchman support to the autoreloader.Tom Forbes
Removed support for pyinotify (refs #9722).
2018-09-26Refs #29784 -- Switched to https:// links where available.Jon Dufresne
2018-02-26Refs #28909 -- Simplifed code using unpacking generalizations.Mariusz Felisiak
2017-12-23Fixed #28594 -- Removed Jython docs and specific codeClaude Paroz
Thanks Andrey Martyanov for the reporti, and Tim Graham for the review.
2017-11-28Fixed #28837 -- Fixed test client crash if an exception with more than one ↵Nicolas Delaby
arg is raised. Also removed usage of the problematic pattern elsewhere. Regression in 6e55e1d88a5c4453e25f0caf7ffb68973de5c0ba.
2017-11-06Fixed #28501 -- Fixed "python -m django runserver" crash.Yusuke Miyazaki
2017-09-07Reverted "Fixed #27818 -- Replaced try/except/pass with contextlib.suppress()."Tim Graham
This reverts commit 550cb3a365dee4edfdd1563224d5304de2a57fda because try/except performs better.
2017-06-28Fixed #27818 -- Replaced try/except/pass with contextlib.suppress().Mads Jensen
2017-02-11Refs #27656 -- Updated django.utils docstring verbs according to PEP 257.Anton Samarchyan
2017-01-22Refs #23919 -- Replaced six.reraise by raiseClaude Paroz
2017-01-20Refs #23919 -- Removed django.utils._os.upath()/npath()/abspathu() usage.Tim Graham
These functions do nothing on Python 3.
2017-01-18Refs #23919 -- Removed most of remaining six usageClaude Paroz
Thanks Tim Graham for the review.
2016-12-28Fixed #27647 -- Fixed Windows segmentation fault in runserver autoreload.Aleksi Häkli
2015-08-29Made the autoreloader survive all exceptions.Aymeric Augustin
Refs #24704.
2015-08-29Fixed #24704 -- Made the autoreloader survive SyntaxErrors.Aymeric Augustin
With this change, it's expected to survive anything except errors that make it impossible to import the settings. It's too complex to fallback to a sensible behavior with a broken settings module. Harcoding things about runserver in ManagementUtility.execute is atrocious but it's the only way out of the chicken'n'egg problem: the current implementation of the autoreloader primarily watches imported Python modules -- and then a few other things that were bolted on top of this design -- but we want it to kick in even if the project contains import-time errors and django.setup() fails. At some point we should throw away this code and replace it by an off-the-shelf autoreloader that watches the working directory and re-runs `django-admin runserver` whenever something changes.
2015-08-29Ensured gen_filenames() yields native strings.Aymeric Augustin
This also fixes a test failure on Python 2 when Django is installed in a non-ASCII path. This problem cannot happen on Python 3.
2015-08-29Accounted for error files in the autoreloader.Aymeric Augustin
* When some old files contain errors, the second call to gen_filenames() should return them. * When some new files contain errors, the first call to gen_filenames(only_new=True) should return them.
2015-07-07Refs #23882 -- Added detection for moved files when using inotify pollingChris Bainbridge
Commit 15f82c7 ("used pyinotify as change detection system when available") introduced a regression where editing a file in vim with default settings (writebackup=auto) no longer causes the dev server to be restarted. On a write, vim moves the monitored file to a backup path and then creates a new file in the original. The new file is not monitored as it has a different inode. Fixed this by also watching for inotify events IN_DELETE_SELF and IN_MOVE_SELF.
2015-02-09Removed some obsolete absolute_imports.Tim Graham