[Calypso] [PATCH 05/20] Use listdir rather than glob.
Guido Günther
agx at sigxcpu.org
Sat Apr 9 16:27:42 PDT 2016
On Sat, Apr 09, 2016 at 11:09:22PM +0000, Jelmer Vernooij wrote:
> On Sun, Apr 10, 2016 at 12:48:20AM +0200, Guido Günther wrote:
> > On Sat, Apr 09, 2016 at 07:16:51PM +0000, Jelmer Vernooij wrote:
> > > From: Jelmer Vernooij <jelmer at jelmer.uk>
> > >
> > > ---
> > > calypso/webdav.py | 21 ++++++++++-----------
> > > 1 file changed, 10 insertions(+), 11 deletions(-)
> > >
> > > diff --git a/calypso/webdav.py b/calypso/webdav.py
> > > index 526f24b..26374e9 100644
> > > --- a/calypso/webdav.py
> > > +++ b/calypso/webdav.py
> > > @@ -30,7 +30,6 @@ import os
> > > import codecs
> > > import time
> > > import hashlib
> > > -import glob
> > > import logging
> > > import tempfile
> > > import vobject
> > > @@ -297,23 +296,24 @@ class Collection(object):
> > > return
> > > self.log.debug("Scan %s", self.path)
> > > self.mtime = mtime
> > > - filenames = glob.glob(self.pattern)
> > > + filenames = os.listdir(self.path)
> > > newfiles = []
> > > for filename in filenames:
> > > + filepath = os.path.join(self.path, filename)
> > > for file in self.files:
> > > - if filename == file.path:
> > > + if filepath == file.path:
> > > newfiles.append(file)
> > > if not file.is_up_to_date():
> > > - self.log.debug("Changed %s", filename)
> > > - self.scan_file(filename)
> > > + self.log.debug("Changed %s", filepath)
> > > + self.scan_file(filepath)
> > > break
> > > else:
> > > - if os.path.isdir(filename):
> > > - self.log.debug("Ignoring directory %s in scan_dir", filename)
> > > + if os.path.isdir(filepath):
> > > + self.log.debug("Ignoring directory %s in scan_dir", filepath)
> > > else:
> > > - self.log.debug("New %s", filename)
> > > - newfiles.append(Pathtime(filename))
> > > - self.insert_file(filename)
> > > + self.log.debug("New %s", filepath)
> > > + newfiles.append(Pathtime(filepath))
> > > + self.insert_file(filepath)
> > > for file in self.files:
> > > if not file.path in filenames:
> > > self.log.debug("Removed %s", file.path)
> > > @@ -332,7 +332,6 @@ class Collection(object):
> > > self.urlpath = path
> > > self.owner = paths.url_to_owner(path)
> > > self.path = paths.url_to_file(path)
> > > - self.pattern = os.path.join(self.path, "*")
> > > self.files = []
> > > self.my_items = []
> > > self.mtime = 0
> >
> > This does't apply for me. I also wonder what the motivation is? Speed?
> Yes, speed and just that there is no use for glob here if we're
> matching all files.
>
> Updated patch attached.
>
> Jelmer
>
> commit 9b2a4d294a279d94fdd8f80e198ee45a8e804f23
> Author: Jelmer Vernooij <jelmer at jelmer.uk>
> Date: Sat Apr 9 11:37:49 2016 +0000
>
> Use listdir rather than glob.
>
> diff --git a/calypso/webdav.py b/calypso/webdav.py
> index 351705b..6a798ea 100644
> --- a/calypso/webdav.py
> +++ b/calypso/webdav.py
> @@ -30,7 +30,6 @@ import os
> import codecs
> import time
> import hashlib
> -import glob
> import logging
> import tempfile
> import vobject
> @@ -299,25 +298,26 @@ class Collection(object):
> return
> self.log.debug("Scan %s", self.path)
> self.mtime = mtime
> - filenames = glob.glob(self.pattern)
> + filenames = os.listdir(self.path)
> newfiles = []
> for filename in filenames:
> if filename == METADATA_FILENAME:
> continue
> + filepath = os.path.join(self.path, filename)
> for file in self.files:
> - if filename == file.path:
> + if filepath == file.path:
> newfiles.append(file)
> if not file.is_up_to_date():
> - self.log.debug("Changed %s", filename)
> - self.scan_file(filename)
> + self.log.debug("Changed %s", filepath)
> + self.scan_file(filepath)
> break
> else:
> - if os.path.isdir(filename):
> - self.log.debug("Ignoring directory %s in scan_dir", filename)
> + if os.path.isdir(filepath):
> + self.log.debug("Ignoring directory %s in scan_dir", filepath)
> else:
> - self.log.debug("New %s", filename)
> - newfiles.append(Pathtime(filename))
> - self.insert_file(filename)
> + self.log.debug("New %s", filepath)
> + newfiles.append(Pathtime(filepath))
> + self.insert_file(filepath)
> for file in self.files:
> if not file.path in filenames:
> self.log.debug("Removed %s", file.path)
> @@ -336,7 +336,6 @@ class Collection(object):
> self.urlpath = path
> self.owner = paths.url_to_owner(path)
> self.path = paths.url_to_file(path)
> - self.pattern = os.path.join(self.path, "*")
> self.files = []
> self.my_items = []
> self.mtime = 0
LGTM and passes our minimal caldav-tester suite (the last part of the
sentence makes me feel a bit like jenkins).
-- Guido
More information about the Calypso
mailing list