1. Miki Tebeka
  2. pythonwise

Commits

Miki Tebeka  committed 0564e24

python3

  • Participants
  • Parent commits 878ba8a
  • Branches default

Comments (0)

Files changed (1)

File whichscm

View file
 #!/usr/bin/env python
 '''Find under which SCM directory is'''
 
-__author__ = "Miki Tebeka <miki@mikitebeka.com>"
 
 from os import sep
 from os.path import join, isdir, abspath
-from itertools import ifilter, imap
+
+import sys
+if sys.version_info[:2] >= (3, 0):
+    imap, ifilter = map, filter
+else:
+    from itertools import ifilter, imap
+
 
 def updirs(path):
     parts = path.split(sep)
     if not parts[0]:
-        parts[0] = sep # FIXME: Windows
+        parts[0] = sep  # FIXME: Windows
+
     while parts:
         yield join(*parts)
         parts.pop()
 
+
 def scmdirs(path, scms):
     for scmext in scms:
         yield join(path, scmext)
 
+
 def scm(dirname):
     return dirname[-3:].lower()
 
+
 def scms(path, scms):
     return imap(scm, ifilter(isdir, scmdirs(path, scms)))
 
 def whichscm(path):
     path = abspath(path)
 
-    for scm in scms(path, (".svn", "CVS")):
+    for scm in scms(path, ('.svn', 'CVS')):
         return scm
 
-    scmdirs = (".bzr", ".hg", ".git")
     for dirname in updirs(path):
-        for scm in scms(dirname, (".bzr", ".hg", ".git")):
+        for scm in scms(dirname, ('.hg', '.git', '.bzr')):
             return scm
 
+
 def main(argv=None):
     if argv is None:
         import sys
 
     from optparse import OptionParser
 
-    parser = OptionParser("usage: %prog [DIRNAME]")
+    parser = OptionParser('usage: %prog [DIRNAME]')
 
     opts, args = parser.parse_args(argv[1:])
     if len(args) not in (0, 1):
-        parser.error("wrong number of arguments") # Will exit
+        parser.error('wrong number of arguments')  # Will exit
 
-    dirname = args[0] if args else "."
+    dirname = args[0] if args else '.'
     if not isdir(dirname):
-        raise SystemExit("error: %s is not a directory" % dirname)
+        raise SystemExit('error: {} is not a directory'.format(dirname))
 
     scm = whichscm(dirname)
     if not scm:
-        raise SystemExit("error: can't find scm for %s" % dirname)
+        raise SystemExit('error: cannot find scm for {}'.format(dirname))
 
-    print scm
+    print(scm)
 
-if __name__ == "__main__":
+if __name__ == '__main__':
     main()