meejah
1549e7eb18
simplify (for line in f.readlines() -> for line in f)
2020-05-06 15:16:34 -06:00
meejah
4c3d0ea6cc
use 'with open' for more file-opens
2020-05-04 21:59:15 -06:00
Jean-Paul Calderone
ef73e18f3d
Remove the greater part of the implementation
2020-02-13 10:43:50 -05:00
tpltnt
c8f11dc2d3
ported old-style classes to new-style
2019-05-26 08:28:18 +02:00
heartsucker
a087a5be72
removed tuple unpacking in function definitons for python3 compatibility
2019-04-18 13:37:18 +02:00
heartsucker
0750dbac38
updated all python files to use pep-3110 exception syntax for python3 compatibility
2019-04-04 11:57:58 +02:00
heartsucker
f4ff91a6c1
updated python2 long numeric literals for python3 compatibility
2019-04-03 10:04:02 +02:00
heartsucker
d8187a0f6a
Merge pull request #589 from tahoe-lafs/3015-octal-numeric-literals
...
updated instances of octal literals to use the format 0o123 for python3 compatibility
2019-03-31 11:24:39 +02:00
heartsucker
129ef22185
updated instances of octal literals to use the format 0o123 for python3 compatibility
2019-03-29 11:08:44 +01:00
Jean-Paul Calderone
53b40ef0e0
don't double start; don't try to handle double start.
2019-03-28 16:10:36 -04:00
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