Jean-Paul Calderone
ae2be27e3a
Merge remote-tracking branch 'origin/master' into 2995.remove-unnecessary-key-copying
2019-03-19 12:09:35 -04:00
Jean-Paul Calderone
4860d16401
Update the comment to reflect the updated implementation
2019-03-18 19:22:38 -04:00
Jean-Paul Calderone
20ba53f586
reflow for changed indentation level
2019-03-18 19:21:05 -04:00
Jean-Paul Calderone
55690bf639
Do it without a new flag
...
This is safer against other conditions where _deque ends up with items when we
start a scan - for example, if we chunk up deque processing.
2019-03-18 15:38:18 -04:00
Jean-Paul Calderone
d1a62b1c99
Attempt to avoid the startup double-scan and related problems
2019-03-18 14:24:34 -04:00
Jean-Paul Calderone
c01c85522d
Use the method
...
There is a method. Why not use it?
2019-03-18 14:18:09 -04:00
Jean-Paul Calderone
fda3d38c85
Avoid the extra dict lookup in the loop
...
Get the info at iteration time
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
dd7cb99ef4
Avoid another .keys() call
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
c83749311f
Avoid some function dispatch overhead
...
Also, we might avoid some dict lookup overhead by being optimistic about
finding the entry. At worst, we do two lookups - which is just what we did
before.
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
05eab3ce19
document these things since I had to figure them out
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
d504ad118f
Avoid the extra lookup inside this loop
...
Get the key and value at the same time during iteration.
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
0e1bc2e786
As for the previous commit.
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
62cb883ca2
Just iterate over the dictionary.
...
It is not shared with anyone. It is not mutated inside the loop. We can use
the no-copy dict iterator.
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
e0c240a559
Use a MessageType so we can have a serializer
...
This allows us to avoid the .keys() call if logging is not actually enabled,
the common case.
2019-03-14 13:11:47 -04:00
Jean-Paul Calderone
dfd0c6e54c
fix "downloader" type in message type
2019-03-14 11:26:06 -04:00
Jean-Paul Calderone
fef79cd4a3
re-use the _add_watch helper
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
64826aee37
Clean up stdout a bit
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
263755fb26
Watch before we start.
...
Linux and macOS are happy to watch after starting. Our Windows support
library can't deal with such a case, though.
Linux is happy with the other order. I'm about to find out if macOS is.
There are likely further Windows issues to deal with.
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
c5c7f954e9
fix it!
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
c2e19cc098
fix a raft of directory handling issues
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
4b0b269b56
Perform the asserts earlier
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
ed755cf590
it didn't start if the path is invalid
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
f2cfad0cb9
There _is_ no traceback. It's an else.
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
db7af2661a
Close a window for a race condition in notification processing
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
81ca822edf
Cut the cost of this logging when logging is disabled
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
3ab7138598
some imports we need
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
7440ff6b93
log collective scanning
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
831836d5f6
don't try to propagate for non-directories
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
17540c78f3
not going to get processed any other way on fsevents
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
70ec8f2963
log this case
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
29e3390fb9
re-use log_call_deferred where it is easy to do so
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
807568e09f
Log downloads
2019-03-14 11:24:35 -04:00
Jean-Paul Calderone
725c85b2f4
try not creating a duplicate Observer
2019-03-14 11:24:19 -04:00
Jean-Paul Calderone
3b5e8d7e6b
move inotify events eliot field
2019-03-14 11:24:19 -04:00
Jean-Paul Calderone
3a1dcb6bf6
macOS should now be considered a supported platform
2019-03-14 11:23:16 -04:00
Chris Wood
f5ca88c1f4
Fix broken conditional statement
...
Because sys.platform will never return "linux" on python2 -- only
"linux2" -- this statement will always be False. Instead, use the
startswith idiom to both provide the intended behavior and ensure future
compatibility with python3.
2019-03-14 11:23:16 -04:00
David Stainton
6cd2ab7965
Add watchdog inotify and tests
2019-03-14 11:23:16 -04:00
Jean-Paul Calderone
5004cdf7ea
Remove the now *duplicate* notification. :/
2019-03-14 10:16:19 -04:00
Jean-Paul Calderone
c507b78656
Always fire the hook in case someone is waiting.
2019-03-14 09:47:15 -04:00
Jean-Paul Calderone
156257bcd8
YES RECURSIVE PLEASE
2019-03-14 09:20:37 -04:00
Jean-Paul Calderone
f4950cff46
Convert some code to show it off
2019-03-07 13:14:52 -05:00
Jean-Paul Calderone
0be2cbccc9
We don't need quoting in Eliot structured logs.
...
Also quote_filepath seems to be doing the wrong thing but it's not entirely
clear how.
2019-03-04 11:00:08 -05:00
Jean-Paul Calderone
fa3429f1cc
Serialize queue items using their path and type
2019-03-04 10:47:05 -05:00
Jean-Paul Calderone
3b804d84bf
Restore the log event that the integration tests depend on
2019-02-27 09:12:09 -05:00
Jean-Paul Calderone
46692b5835
remove the duplicate reporting of this failure
...
it bubbles out of _process and the caller logs it
2019-02-26 15:10:33 -05:00
Jean-Paul Calderone
f89fe3a5ad
get this item status in the right action context
2019-02-26 15:10:24 -05:00
Jean-Paul Calderone
42d8e8dba4
overcome finger muscle memory
2019-02-26 15:09:55 -05:00
Jean-Paul Calderone
9351e47ae6
improve events reporting
2019-02-26 15:09:48 -05:00
Jean-Paul Calderone
ebeeba456f
fix conflict logging
2019-02-26 14:38:24 -05:00
Jean-Paul Calderone
3fca501d45
unused
2019-02-26 14:38:00 -05:00