Mercurial > hg
changeset 10282:08a0f04b56bd
many, many trivial check-code fixups
line wrap: on
line diff
--- a/contrib/hgsh/hgsh.c Mon Jan 25 00:05:22 2010 -0600 +++ b/contrib/hgsh/hgsh.c Mon Jan 25 00:05:27 2010 -0600 @@ -89,7 +89,7 @@ */ #ifndef HG_SHELL #define HG_SHELL NULL -// #define HG_SHELL "/bin/bash" +/* #define HG_SHELL "/bin/bash" */ #endif /* @@ -118,40 +118,40 @@ static void print_cmdline(int argc, char **argv) { - FILE *fp = stderr; - int i; + FILE *fp = stderr; + int i; - fputs("command: ", fp); + fputs("command: ", fp); - for (i = 0; i < argc; i++) { - char *spc = strpbrk(argv[i], " \t\r\n"); - if (spc) { - fputc('\'', fp); - } - fputs(argv[i], fp); - if (spc) { - fputc('\'', fp); - } - if (i < argc - 1) { - fputc(' ', fp); - } - } - fputc('\n', fp); - fflush(fp); + for (i = 0; i < argc; i++) { + char *spc = strpbrk(argv[i], " \t\r\n"); + if (spc) { + fputc('\'', fp); + } + fputs(argv[i], fp); + if (spc) { + fputc('\'', fp); + } + if (i < argc - 1) { + fputc(' ', fp); + } + } + fputc('\n', fp); + fflush(fp); } static void usage(const char *reason, int exitcode) { - char *hg_help = HG_HELP; + char *hg_help = HG_HELP; - if (reason) { - fprintf(stderr, "*** Error: %s.\n", reason); - } - fprintf(stderr, "*** This program has been invoked incorrectly.\n"); - if (hg_help) { - fprintf(stderr, "*** %s\n", hg_help); - } - exit(exitcode ? exitcode : EX_USAGE); + if (reason) { + fprintf(stderr, "*** Error: %s.\n", reason); + } + fprintf(stderr, "*** This program has been invoked incorrectly.\n"); + if (hg_help) { + fprintf(stderr, "*** %s\n", hg_help); + } + exit(exitcode ? exitcode : EX_USAGE); } /* @@ -162,43 +162,43 @@ */ static void forward_through_gateway(int argc, char **argv) { - char *ssh = SSH; - char *hg_host = HG_HOST; - char *hg_user = HG_USER; - char **nargv = alloca((10 + argc) * sizeof(char *)); - int i = 0, j; + char *ssh = SSH; + char *hg_host = HG_HOST; + char *hg_user = HG_USER; + char **nargv = alloca((10 + argc) * sizeof(char *)); + int i = 0, j; - nargv[i++] = ssh; - nargv[i++] = "-q"; - nargv[i++] = "-T"; - nargv[i++] = "-x"; - if (hg_user) { - nargv[i++] = "-l"; - nargv[i++] = hg_user; - } - nargv[i++] = hg_host; + nargv[i++] = ssh; + nargv[i++] = "-q"; + nargv[i++] = "-T"; + nargv[i++] = "-x"; + if (hg_user) { + nargv[i++] = "-l"; + nargv[i++] = hg_user; + } + nargv[i++] = hg_host; - /* - * sshd called us with added "-c", because it thinks we are a shell. - * drop it if we find it. - */ - j = 1; - if (j < argc && strcmp(argv[j], "-c") == 0) { - j++; - } + /* + * sshd called us with added "-c", because it thinks we are a shell. + * drop it if we find it. + */ + j = 1; + if (j < argc && strcmp(argv[j], "-c") == 0) { + j++; + } - for (; j < argc; i++, j++) { - nargv[i] = argv[j]; - } - nargv[i] = NULL; + for (; j < argc; i++, j++) { + nargv[i] = argv[j]; + } + nargv[i] = NULL; - if (debug) { - print_cmdline(i, nargv); - } + if (debug) { + print_cmdline(i, nargv); + } - execv(ssh, nargv); - perror(ssh); - exit(EX_UNAVAILABLE); + execv(ssh, nargv); + perror(ssh); + exit(EX_UNAVAILABLE); } /* @@ -209,44 +209,44 @@ */ static void run_shell(int argc, char **argv) { - char *hg_shell = HG_SHELL; - char **nargv; - char *c; - int i; + char *hg_shell = HG_SHELL; + char **nargv; + char *c; + int i; - nargv = alloca((argc + 3) * sizeof(char *)); - c = strrchr(hg_shell, '/'); + nargv = alloca((argc + 3) * sizeof(char *)); + c = strrchr(hg_shell, '/'); - /* tell "real" shell it is login shell, if needed. */ + /* tell "real" shell it is login shell, if needed. */ - if (argv[0][0] == '-' && c) { - nargv[0] = strdup(c); - if (nargv[0] == NULL) { - perror("malloc"); - exit(EX_OSERR); - } - nargv[0][0] = '-'; - } else { - nargv[0] = hg_shell; - } + if (argv[0][0] == '-' && c) { + nargv[0] = strdup(c); + if (nargv[0] == NULL) { + perror("malloc"); + exit(EX_OSERR); + } + nargv[0][0] = '-'; + } else { + nargv[0] = hg_shell; + } - for (i = 1; i < argc; i++) { - nargv[i] = argv[i]; - } - nargv[i] = NULL; + for (i = 1; i < argc; i++) { + nargv[i] = argv[i]; + } + nargv[i] = NULL; - if (debug) { - print_cmdline(i, nargv); - } + if (debug) { + print_cmdline(i, nargv); + } - execv(hg_shell, nargv); - perror(hg_shell); - exit(EX_OSFILE); + execv(hg_shell, nargv); + perror(hg_shell); + exit(EX_OSFILE); } enum cmdline { - hg_init, - hg_serve, + hg_init, + hg_serve, }; @@ -256,25 +256,25 @@ */ static int validate_repo(const char *repo_root, const char *subdir) { - char *abs_path; - struct stat st; - int ret; + char *abs_path; + struct stat st; + int ret; - if (asprintf(&abs_path, "%s.hg/%s", repo_root, subdir) == -1) { - ret = -1; - goto bail; - } + if (asprintf(&abs_path, "%s.hg/%s", repo_root, subdir) == -1) { + ret = -1; + goto bail; + } - /* verify that we really are looking at valid repo. */ + /* verify that we really are looking at valid repo. */ - if (stat(abs_path, &st) == -1) { - ret = 0; - } else { - ret = 1; - } + if (stat(abs_path, &st) == -1) { + ret = 0; + } else { + ret = 1; + } bail: - return ret; + return ret; } /* @@ -282,158 +282,159 @@ */ static void serve_data(int argc, char **argv) { - char *hg_root = HG_ROOT; - char *repo, *repo_root; - enum cmdline cmd; - char *nargv[6]; - size_t repolen; - int i; - - /* - * check argv for looking okay. we should be invoked with argv - * resembling like this: - * - * hgsh - * -c - * hg -R some/path serve --stdio - * - * the "-c" is added by sshd, because it thinks we are login shell. - */ + char *hg_root = HG_ROOT; + char *repo, *repo_root; + enum cmdline cmd; + char *nargv[6]; + size_t repolen; + int i; - if (argc != 3) { - goto badargs; - } - - if (strcmp(argv[1], "-c") != 0) { - goto badargs; - } - - if (sscanf(argv[2], "hg init %as", &repo) == 1) { - cmd = hg_init; - } - else if (sscanf(argv[2], "hg -R %as serve --stdio", &repo) == 1) { - cmd = hg_serve; - } else { - goto badargs; - } - - repolen = repo ? strlen(repo) : 0; + /* + * check argv for looking okay. we should be invoked with argv + * resembling like this: + * + * hgsh + * -c + * hg -R some/path serve --stdio + * + * the "-c" is added by sshd, because it thinks we are login shell. + */ - if (repolen == 0) { - goto badargs; - } - - if (hg_root) { - if (asprintf(&repo_root, "%s/%s/", hg_root, repo) == -1) { - goto badargs; - } + if (argc != 3) { + goto badargs; + } - /* - * attempt to stop break out from inside the repository tree. could - * do something more clever here, because e.g. we could traverse a - * symlink that looks safe, but really breaks us out of tree. - */ - - if (strstr(repo_root, "/../") != NULL) { - goto badargs; - } - - /* only hg init expects no repo. */ + if (strcmp(argv[1], "-c") != 0) { + goto badargs; + } - if (cmd != hg_init) { - int valid; - - valid = validate_repo(repo_root, "data"); - - if (valid == -1) { + if (sscanf(argv[2], "hg init %as", &repo) == 1) { + cmd = hg_init; + } + else if (sscanf(argv[2], "hg -R %as serve --stdio", &repo) == 1) { + cmd = hg_serve; + } else { goto badargs; - } + } - if (valid == 0) { - valid = validate_repo(repo_root, "store"); + repolen = repo ? strlen(repo) : 0; - if (valid == -1) { - goto badargs; - } - } - - if (valid == 0) { - perror(repo); - exit(EX_DATAERR); - } + if (repolen == 0) { + goto badargs; } - if (chdir(hg_root) == -1) { - perror(hg_root); - exit(EX_SOFTWARE); - } - } + if (hg_root) { + if (asprintf(&repo_root, "%s/%s/", hg_root, repo) == -1) { + goto badargs; + } + + /* + * attempt to stop break out from inside the + * repository tree. could do something more clever + * here, because e.g. we could traverse a symlink that + * looks safe, but really breaks us out of tree. + */ + + if (strstr(repo_root, "/../") != NULL) { + goto badargs; + } - i = 0; + /* only hg init expects no repo. */ + + if (cmd != hg_init) { + int valid; + + valid = validate_repo(repo_root, "data"); + + if (valid == -1) { + goto badargs; + } + + if (valid == 0) { + valid = validate_repo(repo_root, "store"); + + if (valid == -1) { + goto badargs; + } + } - switch (cmd) { - case hg_serve: - nargv[i++] = HG; - nargv[i++] = "-R"; - nargv[i++] = repo; - nargv[i++] = "serve"; - nargv[i++] = "--stdio"; - break; - case hg_init: - nargv[i++] = HG; - nargv[i++] = "init"; - nargv[i++] = repo; - break; - } + if (valid == 0) { + perror(repo); + exit(EX_DATAERR); + } + } + + if (chdir(hg_root) == -1) { + perror(hg_root); + exit(EX_SOFTWARE); + } + } + + i = 0; - nargv[i] = NULL; + switch (cmd) { + case hg_serve: + nargv[i++] = HG; + nargv[i++] = "-R"; + nargv[i++] = repo; + nargv[i++] = "serve"; + nargv[i++] = "--stdio"; + break; + case hg_init: + nargv[i++] = HG; + nargv[i++] = "init"; + nargv[i++] = repo; + break; + } - if (debug) { - print_cmdline(i, nargv); - } + nargv[i] = NULL; - execv(HG, nargv); - perror(HG); - exit(EX_UNAVAILABLE); + if (debug) { + print_cmdline(i, nargv); + } + + execv(HG, nargv); + perror(HG); + exit(EX_UNAVAILABLE); badargs: - /* print useless error message. */ + /* print useless error message. */ - usage("invalid arguments", EX_DATAERR); + usage("invalid arguments", EX_DATAERR); } int main(int argc, char **argv) { - char host[1024]; - char *c; + char host[1024]; + char *c; - if (gethostname(host, sizeof(host)) == -1) { - perror("gethostname"); - exit(EX_OSERR); - } + if (gethostname(host, sizeof(host)) == -1) { + perror("gethostname"); + exit(EX_OSERR); + } - if ((c = strchr(host, '.')) != NULL) { - *c = '\0'; - } + if ((c = strchr(host, '.')) != NULL) { + *c = '\0'; + } - if (getenv("SSH_CLIENT")) { - char *hg_gateway = HG_GATEWAY; - char *hg_host = HG_HOST; + if (getenv("SSH_CLIENT")) { + char *hg_gateway = HG_GATEWAY; + char *hg_host = HG_HOST; - if (hg_gateway && strcmp(host, hg_gateway) == 0) { - forward_through_gateway(argc, argv); - } + if (hg_gateway && strcmp(host, hg_gateway) == 0) { + forward_through_gateway(argc, argv); + } - if (hg_host && strcmp(host, hg_host) != 0) { - usage("invoked on unexpected host", EX_USAGE); - } + if (hg_host && strcmp(host, hg_host) != 0) { + usage("invoked on unexpected host", EX_USAGE); + } - serve_data(argc, argv); - } else if (HG_SHELL) { - run_shell(argc, argv); - } else { - usage("invalid arguments", EX_DATAERR); - } + serve_data(argc, argv); + } else if (HG_SHELL) { + run_shell(argc, argv); + } else { + usage("invalid arguments", EX_DATAERR); + } - return 0; + return 0; }
--- a/contrib/memory.py Mon Jan 25 00:05:22 2010 -0600 +++ b/contrib/memory.py Mon Jan 25 00:05:27 2010 -0600 @@ -29,7 +29,7 @@ finally: if status is not None: status.close() - ui.write_err(", ".join(["%s: %.1f MiB" % (key, value/1024.0) + ui.write_err(", ".join(["%s: %.1f MiB" % (key, value / 1024.0) for key, value in result.iteritems()]) + "\n") def extsetup(ui):
--- a/contrib/perf.py Mon Jan 25 00:05:22 2010 -0600 +++ b/contrib/perf.py Mon Jan 25 00:05:27 2010 -0600 @@ -36,7 +36,7 @@ except: try: m = cmdutil.match(repo, pats, {}) - timer(lambda: len([b for a,b,c in repo.dirstate.statwalk([], m)])) + timer(lambda: len([b for a, b, c in repo.dirstate.statwalk([], m)])) except: timer(lambda: len(list(cmdutil.walk(repo, pats, {}))))
--- a/contrib/shrink-revlog.py Mon Jan 25 00:05:22 2010 -0600 +++ b/contrib/shrink-revlog.py Mon Jan 25 00:05:27 2010 -0600 @@ -101,9 +101,9 @@ # argh: have to pass an int to %d, because a float >= 2^32 # blows up under Python 2.5 or earlier ui.write('old file size: %12d bytes (%6.1f MiB)\n' - % (int(oldsize), oldsize/1024/1024)) + % (int(oldsize), oldsize / 1024 / 1024)) ui.write('new file size: %12d bytes (%6.1f MiB)\n' - % (int(newsize), newsize/1024/1024)) + % (int(newsize), newsize / 1024 / 1024)) shrink_percent = (oldsize - newsize) / oldsize * 100 shrink_factor = oldsize / newsize @@ -219,4 +219,4 @@ } if __name__ == "__main__": - print "shrink-revlog.py is now an extension (see hg help extensions)" + print "shrink-revlog.py is now an extension (see hg help extensions)"
--- a/doc/gendoc.py Mon Jan 25 00:05:22 2010 -0600 +++ b/doc/gendoc.py Mon Jan 25 00:05:27 2010 -0600 @@ -19,7 +19,7 @@ i = docstr.find("\n") if i != -1: - desc = docstr[i+2:] + desc = docstr[i + 2:] else: desc = " %s" % shortdesc return (shortdesc, desc) @@ -76,7 +76,8 @@ cmds.sort() for f in cmds: - if f.startswith("debug"): continue + if f.startswith("debug"): + continue d = get_cmd(h[f]) # synopsis ui.write(".. _%s:\n\n" % d['cmd'])
--- a/doc/rst2man.py Mon Jan 25 00:05:22 2010 -0600 +++ b/doc/rst2man.py Mon Jan 25 00:05:27 2010 -0600 @@ -112,7 +112,7 @@ class Table: def __init__(self): self._rows = [] - self._options = ['center', ] + self._options = ['center',] self._tab_char = '\t' self._coldefs = [] def new_row(self): @@ -123,7 +123,7 @@ def append_cell(self, cell_lines): """cell_lines is an array of lines""" start = 0 - if len(cell_lines)>0 and cell_lines[0] == '.sp\n': + if len(cell_lines) > 0 and cell_lines[0] == '.sp\n': start = 1 self._rows[-1].append(cell_lines[start:]) if len(self._coldefs) < len(self._rows[-1]): @@ -223,8 +223,8 @@ 'term' : ('\n.B ', '\n'), 'title_reference' : ('\\fI', '\\fP'), - 'topic-title' : ('.SS ', ), - 'sidebar-title' : ('.SS ', ), + 'topic-title' : ('.SS ',), + 'sidebar-title' : ('.SS ',), 'problematic' : ('\n.nf\n', '\n.fi\n'), } @@ -255,18 +255,18 @@ # ensure we get a ".TH" as viewers require it. self.head.append(self.header()) # filter body - for i in xrange(len(self.body)-1,0,-1): + for i in xrange(len(self.body)-1, 0, -1): # remove superfluous vertical gaps. if self.body[i] == '.sp\n': - if self.body[i-1][:4] in ('.BI ','.IP '): + if self.body[i - 1][:4] in ('.BI ','.IP '): self.body[i] = '.\n' - elif (self.body[i-1][:3] == '.B ' and - self.body[i-2][:4] == '.TP\n'): + elif (self.body[i - 1][:3] == '.B ' and + self.body[i - 2][:4] == '.TP\n'): self.body[i] = '.\n' - elif (self.body[i-1] == '\n' and - self.body[i-2][0] != '.' and - (self.body[i-3][:7] == '.TP\n.B ' - or self.body[i-3][:4] == '\n.B ') + elif (self.body[i - 1] == '\n' and + self.body[i - 2][0] != '.' and + (self.body[i - 3][:7] == '.TP\n.B ' + or self.body[i - 3][:4] == '\n.B ') ): self.body[i] = '.\n' return ''.join(self.head + self.body + self.foot) @@ -451,7 +451,7 @@ depart_caution = depart_admonition def visit_citation(self, node): - num,text = node.astext().split(None,1) + num, text = node.astext().split(None, 1) num = num.strip() self.body.append('.IP [%s] 5\n' % num) @@ -578,19 +578,18 @@ self.defs['indent'][0] % BLOCKQOUTE_INDENT, self._docinfo[name], self.defs['indent'][1], - self.defs['indent'][1], - ) ) + self.defs['indent'][1])) elif not name in skip: if name in self._docinfo_names: label = self._docinfo_names[name] else: label = self.language.labels.get(name, name) - self.body.append("\n%s: %s\n" % (label, self._docinfo[name]) ) + self.body.append("\n%s: %s\n" % (label, self._docinfo[name])) if self._docinfo['copyright']: self.body.append('.SH COPYRIGHT\n%s\n' % self._docinfo['copyright']) - self.body.append( self.comment( - 'Generated by docutils manpage writer.\n' ) ) + self.body.append(self.comment( + 'Generated by docutils manpage writer.\n')) def visit_emphasis(self, node): self.body.append(self.defs['emphasis'][0]) @@ -672,7 +671,7 @@ pass def visit_footnote(self, node): - num,text = node.astext().split(None,1) + num, text = node.astext().split(None, 1) num = num.strip() self.body.append('.IP [%s] 5\n' % self.deunicode(num)) @@ -786,7 +785,7 @@ # man 7 man argues to use ".IP" instead of ".TP" self.body.append('.IP %s %d\n' % ( self._list_char[-1].next(), - self._list_char[-1].get_width(),) ) + self._list_char[-1].get_width(),)) def depart_list_item(self, node): pass @@ -858,7 +857,7 @@ def visit_option(self, node): # each form of the option will be presented separately - if self.context[-1]>0: + if self.context[-1] > 0: self.body.append(', ') if self.context[-3] == '.BI': self.body.append('\\') @@ -877,7 +876,7 @@ def visit_option_argument(self, node): self.context[-3] = '.BI' # bold/italic alternate if node['delimiter'] != ' ': - self.body.append('\\fB%s ' % node['delimiter'] ) + self.body.append('\\fB%s ' % node['delimiter']) elif self.body[len(self.body)-1].endswith('='): # a blank only means no blank in output, just changing font self.body.append(' ')
--- a/hgext/bugzilla.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/bugzilla.py Mon Jan 25 00:05:27 2010 -0600 @@ -297,7 +297,8 @@ def __init__(self, ui): bugzilla_2_16.__init__(self, ui) - self.default_notify = "cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s" + self.default_notify = \ + "cd %(bzdir)s && perl -T contrib/sendbugmail.pl %(id)s %(user)s" class bugzilla_3_0(bugzilla_2_18): '''support for bugzilla 3.0 series.''' @@ -369,7 +370,8 @@ break start = m.end() for id in bugzilla._split_re.split(m.group(1)): - if not id: continue + if not id: + continue ids.add(int(id)) if ids: ids = self.filter_real_bug_ids(ids) @@ -389,7 +391,7 @@ c = root.find('/') if c == -1: break - root = root[c+1:] + root = root[c + 1:] count -= 1 return root
--- a/hgext/churn.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/churn.py Mon Jan 25 00:05:27 2010 -0600 @@ -169,7 +169,7 @@ '*' * charnum(sum(count))) def charnum(count): - return int(round(count*width/maxcount)) + return int(round(count * width / maxcount)) for name, count in rate: ui.write(format(name, count)) @@ -180,7 +180,8 @@ (churn, [('r', 'rev', [], _('count rate for the specified revision or range')), ('d', 'date', '', _('count rate for revisions matching date spec')), - ('t', 'template', '{author|email}', _('template to group changesets')), + ('t', 'template', '{author|email}', + _('template to group changesets')), ('f', 'dateformat', '', _('strftime-compatible format for grouping by date')), ('c', 'changesets', False, _('count rate by number of changesets')),
--- a/hgext/color.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/color.py Mon Jan 25 00:05:27 2010 -0600 @@ -190,8 +190,8 @@ if opts['missing']: effects = _patch_effects['missing'] # Determine if patch is applied. - elif [ applied for applied in repo.mq.applied - if patchname == applied.name ]: + elif [applied for applied in repo.mq.applied + if patchname == applied.name]: effects = _patch_effects['applied'] else: effects = _patch_effects['unapplied']
--- a/hgext/convert/__init__.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/__init__.py Mon Jan 25 00:05:27 2010 -0600 @@ -279,7 +279,8 @@ # Main options shared with cvsps-2.1 ('b', 'branches', [], _('only return changes on specified branches')), ('p', 'prefix', '', _('prefix to remove from file names')), - ('r', 'revisions', [], _('only return changes after or between specified tags')), + ('r', 'revisions', [], + _('only return changes after or between specified tags')), ('u', 'update-cache', None, _("update cvs log cache")), ('x', 'new-cache', None, _("create new cvs log cache")), ('z', 'fuzz', 60, _('set commit time fuzz in seconds')),
--- a/hgext/convert/bzr.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/bzr.py Mon Jan 25 00:05:27 2010 -0600 @@ -203,7 +203,8 @@ changes.append((frompath, revid)) changes.append((topath, revid)) # add to mode cache - mode = ((entry.executable and 'x') or (entry.kind == 'symlink' and 's') + mode = ((entry.executable and 'x') + or (entry.kind == 'symlink' and 's') or '') self._modecache[(topath, revid)] = mode # register the change as move
--- a/hgext/convert/common.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/common.py Mon Jan 25 00:05:27 2010 -0600 @@ -24,7 +24,8 @@ s = base64.decodestring(s) return pickle.loads(s) -class MissingTool(Exception): pass +class MissingTool(Exception): + pass def checktool(exe, name=None, abort=True): name = name or exe @@ -32,7 +33,8 @@ exc = abort and util.Abort or MissingTool raise exc(_('cannot find required "%s" tool') % name) -class NoRepo(Exception): pass +class NoRepo(Exception): + pass SKIPREV = 'SKIP' @@ -322,7 +324,7 @@ # Since ARG_MAX is for command line _and_ environment, lower our limit # (and make happy Windows shells while doing this). - self._argmax = self._argmax/2 - 1 + self._argmax = self._argmax / 2 - 1 return self._argmax def limit_arglist(self, arglist, cmd, *args, **kwargs): @@ -367,8 +369,9 @@ try: key, value = line.splitlines()[0].rsplit(' ', 1) except ValueError: - raise util.Abort(_('syntax error in %s(%d): key/value pair expected') - % (self.path, i+1)) + raise util.Abort( + _('syntax error in %s(%d): key/value pair expected') + % (self.path, i + 1)) if key not in self: self.order.append(key) super(mapfile, self).__setitem__(key, value)
--- a/hgext/convert/convcmd.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/convcmd.py Mon Jan 25 00:05:27 2010 -0600 @@ -108,7 +108,8 @@ parents = {} while visit: n = visit.pop(0) - if n in known or n in self.map: continue + if n in known or n in self.map: + continue known.add(n) commit = self.cachecommit(n) parents[n] = []
--- a/hgext/convert/cvs.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/cvs.py Mon Jan 25 00:05:27 2010 -0600 @@ -46,7 +46,8 @@ # patchset number? maxrev = int(self.rev) except ValueError: - raise util.Abort(_('revision %s is not a patchset number') % self.rev) + raise util.Abort(_('revision %s is not a patchset number') + % self.rev) d = os.getcwd() try: @@ -65,7 +66,7 @@ mergefrom=self.ui.config('convert', 'cvsps.mergefrom', None)) for cs in db: - if maxrev and cs.id>maxrev: + if maxrev and cs.id > maxrev: break id = str(cs.id) cs.author = self.recode(cs.author) @@ -76,7 +77,8 @@ files = {} for f in cs.entries: - files[f.file] = "%s%s" % ('.'.join([str(x) for x in f.revision]), + files[f.file] = "%s%s" % ('.'.join([str(x) + for x in f.revision]), ['', '(DEAD)'][f.dead]) # add current commit to set @@ -186,8 +188,8 @@ self.writep.flush() r = self.readp.readline() if not r.startswith("Valid-requests"): - raise util.Abort(_("unexpected response from CVS server " - "(expected \"Valid-requests\", but got %r)") + raise util.Abort(_('unexpected response from CVS server ' + '(expected "Valid-requests", but got %r)') % r) if "UseUnchanged" in r: self.writep.write("UseUnchanged\n") @@ -208,7 +210,8 @@ while count > 0: data = fp.read(min(count, chunksize)) if not data: - raise util.Abort(_("%d bytes missing from remote file") % count) + raise util.Abort(_("%d bytes missing from remote file") + % count) count -= len(data) output.write(data) return output.getvalue()
--- a/hgext/convert/cvsps.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/cvsps.py Mon Jan 25 00:05:27 2010 -0600 @@ -402,7 +402,7 @@ # normal branch if revparts[:-2] == e.revision: branchpoints.add(branch) - elif revparts == (1,1,1): # vendor branch + elif revparts == (1, 1, 1): # vendor branch if revparts in e.branches: branchpoints.add(branch) e.branchpoints = branchpoints @@ -632,7 +632,7 @@ branches = {} # changeset index where we saw a branch n = len(changesets) i = 0 - while i<n: + while i < n: c = changesets[i] for f in c.entries: @@ -702,9 +702,12 @@ m = None # if no group found then merge to HEAD if m in branches and c.branch != m: # insert empty changeset for merge - cc = changeset(author=c.author, branch=m, date=c.date, - comment='convert-repo: CVS merge from branch %s' % c.branch, - entries=[], tags=[], parents=[changesets[branches[m]], c]) + cc = changeset( + author=c.author, branch=m, date=c.date, + comment='convert-repo: CVS merge from branch %s' + % c.branch, + entries=[], tags=[], + parents=[changesets[branches[m]], c]) changesets.insert(i + 1, cc) branches[m] = i + 1 @@ -774,7 +777,7 @@ if opts["ancestors"]: if cs.branch not in branches and cs.parents and cs.parents[0].id: - ancestors[cs.branch] = (changesets[cs.parents[0].id-1].branch, + ancestors[cs.branch] = (changesets[cs.parents[0].id - 1].branch, cs.parents[0].id) branches[cs.branch] = cs.id @@ -791,14 +794,15 @@ '%Y/%m/%d %H:%M:%S %1%2')) ui.write('Author: %s\n' % cs.author) ui.write('Branch: %s\n' % (cs.branch or 'HEAD')) - ui.write('Tag%s: %s \n' % (['', 's'][len(cs.tags)>1], + ui.write('Tag%s: %s \n' % (['', 's'][len(cs.tags) > 1], ','.join(cs.tags) or '(none)')) branchpoints = getattr(cs, 'branchpoints', None) if branchpoints: ui.write('Branchpoints: %s \n' % ', '.join(branchpoints)) if opts["parents"] and cs.parents: - if len(cs.parents)>1: - ui.write('Parents: %s\n' % (','.join([str(p.id) for p in cs.parents]))) + if len(cs.parents) > 1: + ui.write('Parents: %s\n' % + (','.join([str(p.id) for p in cs.parents]))) else: ui.write('Parent: %d\n' % cs.parents[0].id) @@ -818,8 +822,10 @@ fn = f.file if fn.startswith(opts["prefix"]): fn = fn[len(opts["prefix"]):] - ui.write('\t%s:%s->%s%s \n' % (fn, '.'.join([str(x) for x in f.parent]) or 'INITIAL', - '.'.join([str(x) for x in f.revision]), ['', '(DEAD)'][f.dead])) + ui.write('\t%s:%s->%s%s \n' % ( + fn, '.'.join([str(x) for x in f.parent]) or 'INITIAL', + '.'.join([str(x) for x in f.revision]), + ['', '(DEAD)'][f.dead])) ui.write('\n') # have we seen the start tag? @@ -829,7 +835,7 @@ off = False # see if we reached the end tag - if len(revisions)>1 and not off: + if len(revisions) > 1 and not off: if revisions[1] == str(cs.id) or \ revisions[1] in cs.tags: break
--- a/hgext/convert/darcs.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/darcs.py Mon Jan 25 00:05:27 2010 -0600 @@ -12,15 +12,19 @@ # The naming drift of ElementTree is fun! -try: from xml.etree.cElementTree import ElementTree +try: + from xml.etree.cElementTree import ElementTree except ImportError: - try: from xml.etree.ElementTree import ElementTree + try: + from xml.etree.ElementTree import ElementTree except ImportError: - try: from elementtree.cElementTree import ElementTree + try: + from elementtree.cElementTree import ElementTree except ImportError: - try: from elementtree.ElementTree import ElementTree - except ImportError: ElementTree = None - + try: + from elementtree.ElementTree import ElementTree + except ImportError: + ElementTree = None class darcs_source(converter_source, commandline): def __init__(self, ui, path, rev=None):
--- a/hgext/convert/filemap.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/filemap.py Mon Jan 25 00:05:27 2010 -0600 @@ -12,7 +12,7 @@ def rpairs(name): e = len(name) while e != -1: - yield name[:e], name[e+1:] + yield name[:e], name[e + 1:] e = name.rfind('/', 0, e) yield '.', name
--- a/hgext/convert/git.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/git.py Mon Jan 25 00:05:27 2010 -0600 @@ -43,13 +43,15 @@ def getheads(self): if not self.rev: - return self.gitcmd('git rev-parse --branches --remotes').read().splitlines() + fh = self.gitcmd('git rev-parse --branches --remotes') + return fh.read().splitlines() else: fh = self.gitcmd("git rev-parse --verify %s" % self.rev) return [fh.read()[:-1]] def catfile(self, rev, type): - if rev == "0" * 40: raise IOError() + if rev == "0" * 40: + raise IOError() fh = self.gitcmd("git cat-file %s %s" % (type, rev)) return fh.read() @@ -86,7 +88,7 @@ def getcommit(self, version): c = self.catfile(version, "commit") # read the commit hash end = c.find("\n\n") - message = c[end+2:] + message = c[end + 2:] message = self.recode(message) l = c[:end].splitlines() parents = [] @@ -105,7 +107,8 @@ committer = " ".join(p[:-2]) if committer[0] == "<": committer = committer[1:-1] committer = self.recode(committer) - if n == "parent": parents.append(v) + if n == "parent": + parents.append(v) if committer and committer != author: message += "\ncommitter: %s\n" % committer @@ -145,7 +148,7 @@ fh.close() else: fh = self.gitcmd('git diff-tree --name-only --root -r %s "%s^%s" --' - % (version, version, i+1)) + % (version, version, i + 1)) changes = [f.rstrip('\n') for f in fh] fh.close()
--- a/hgext/convert/gnuarch.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/gnuarch.py Mon Jan 25 00:05:27 2010 -0600 @@ -89,7 +89,8 @@ # Get the complete list of revisions for that tree version output, status = self.runlines('revisions', '-r', '-f', treeversion) - self.checkexit(status, 'failed retrieveing revisions for %s' % treeversion) + self.checkexit(status, 'failed retrieveing revisions for %s' + % treeversion) # No new iteration unless a revision has a continuation-of header treeversion = None @@ -116,7 +117,8 @@ # or if we have to 'jump' to a different treeversion given # by the continuation-of header. if self.changes[rev].continuationof: - treeversion = '--'.join(self.changes[rev].continuationof.split('--')[:-1]) + treeversion = '--'.join( + self.changes[rev].continuationof.split('--')[:-1]) break # If we reached a base-0 revision w/o any continuation-of @@ -220,7 +222,7 @@ return data, mode def _exclude(self, name): - exclude = [ '{arch}', '.arch-ids', '.arch-inventory' ] + exclude = ['{arch}', '.arch-ids', '.arch-inventory'] for exc in exclude: if name.find(exc) != -1: return True @@ -285,7 +287,8 @@ # Commit revision origin when dealing with a branch or tag if 'Continuation-of' in catlog: - self.changes[rev].continuationof = self.recode(catlog['Continuation-of']) + self.changes[rev].continuationof = self.recode( + catlog['Continuation-of']) except Exception: raise util.Abort(_('could not parse cat-log of %s') % rev)
--- a/hgext/convert/hg.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/hg.py Mon Jan 25 00:05:27 2010 -0600 @@ -74,7 +74,7 @@ def getheads(self): h = self.repo.changelog.heads() - return [ hex(x) for x in h ] + return [hex(x) for x in h] def setbranch(self, branch, pbranches): if not self.clonebranches: @@ -147,8 +147,10 @@ m1node = self.repo.changelog.read(bin(parents[0]))[0] parent = parents[0] - if len(parents) < 2: parents.append(nullid) - if len(parents) < 2: parents.append(nullid) + if len(parents) < 2: + parents.append(nullid) + if len(parents) < 2: + parents.append(nullid) p2 = parents.pop(0) text = commit.desc @@ -161,8 +163,8 @@ while parents: p1 = p2 p2 = parents.pop(0) - ctx = context.memctx(self.repo, (p1, p2), text, files.keys(), getfilectx, - commit.author, commit.date, extra) + ctx = context.memctx(self.repo, (p1, p2), text, files.keys(), + getfilectx, commit.author, commit.date, extra) self.repo.commitctx(ctx) text = "(octopus merge fixup)\n" p2 = hex(self.repo.changelog.tip())
--- a/hgext/convert/monotone.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/monotone.py Mon Jan 25 00:05:27 2010 -0600 @@ -38,16 +38,22 @@ lines = r'(?:.|\n)+' self.dir_re = re.compile(space + "dir" + name) - self.file_re = re.compile(space + "file" + name + "content" + revision) - self.add_file_re = re.compile(space + "add_file" + name + "content" + revision) - self.patch_re = re.compile(space + "patch" + name + "from" + revision + "to" + revision) + self.file_re = re.compile(space + "file" + name + + "content" + revision) + self.add_file_re = re.compile(space + "add_file" + name + + "content" + revision) + self.patch_re = re.compile(space + "patch" + name + + "from" + revision + "to" + revision) self.rename_re = re.compile(space + "rename" + name + "to" + name) self.delete_re = re.compile(space + "delete" + name) - self.tag_re = re.compile(space + "tag" + name + "revision" + revision) - self.cert_re = re.compile(lines + space + "name" + name + "value" + value) + self.tag_re = re.compile(space + "tag" + name + "revision" + + revision) + self.cert_re = re.compile(lines + space + "name" + name + + "value" + value) attr = space + "file" + lines + space + "attr" + space - self.attr_execute_re = re.compile(attr + '"mtn:execute"' + space + '"true"') + self.attr_execute_re = re.compile(attr + '"mtn:execute"' + + space + '"true"') # cached data self.manifest_rev = None
--- a/hgext/convert/p4.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/p4.py Mon Jan 25 00:05:27 2010 -0600 @@ -42,8 +42,12 @@ self.encoding = "latin_1" self.depotname = {} # mapping from local name to depot name self.modecache = {} - self.re_type = re.compile("([a-z]+)?(text|binary|symlink|apple|resource|unicode|utf\d+)(\+\w+)?$") - self.re_keywords = re.compile(r"\$(Id|Header|Date|DateTime|Change|File|Revision|Author):[^$\n]*\$") + self.re_type = re.compile( + "([a-z]+)?(text|binary|symlink|apple|resource|unicode|utf\d+)" + "(\+\w+)?$") + self.re_keywords = re.compile( + r"\$(Id|Header|Date|DateTime|Change|File|Revision|Author)" + r":[^$\n]*\$") self.re_keywords_old = re.compile("\$(Id|Header):[^$\n]*\$") self._parse(ui, path) @@ -118,7 +122,8 @@ date = (int(d["time"]), 0) # timezone not set c = commit(author=self.recode(d["user"]), date=util.datestr(date), - parents=parents, desc=desc, branch='', extra={"p4": change}) + parents=parents, desc=desc, branch='', + extra={"p4": change}) files = [] i = 0
--- a/hgext/convert/subversion.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/subversion.py Mon Jan 25 00:05:27 2010 -0600 @@ -138,7 +138,7 @@ # looking for several svn-specific files and directories in the given # directory. def filecheck(ui, path, proto): - for x in ('locks', 'hooks', 'format', 'db', ): + for x in ('locks', 'hooks', 'format', 'db'): if not os.path.exists(os.path.join(path, x)): return False return True @@ -150,7 +150,7 @@ try: opener = urllib2.build_opener() rsp = opener.open('%s://%s/!svn/ver/0/.svn' % (proto, path)) - data = rsp.read() + data = rsp.read() except urllib2.HTTPError, inst: if inst.code != 404: # Except for 404 we cannot know for sure this is not an svn repo @@ -231,7 +231,7 @@ # deleted branches. at = url.rfind('@') if at >= 0: - latest = int(url[at+1:]) + latest = int(url[at + 1:]) url = url[:at] except ValueError: pass @@ -363,7 +363,8 @@ 'with more than one branch')) revnum = self.revnum(self.heads[0]) if revnum < self.startrev: - raise util.Abort(_('svn: no revision found after start revision %d') + raise util.Abort( + _('svn: no revision found after start revision %d') % self.startrev) return self.heads @@ -389,7 +390,7 @@ uuid, module, revnum = self.revsplit(rev) entries = svn.client.ls(self.baseurl + urllib.quote(module), optrev(revnum), True, self.ctx) - files = [n for n,e in entries.iteritems() + files = [n for n, e in entries.iteritems() if e.kind == svn.core.svn_node_file] copies = {} @@ -564,7 +565,8 @@ except SubversionException: dirent = None if not dirent: - raise SvnPathNotFound(_('%s not found up to revision %d') % (path, stop)) + raise SvnPathNotFound(_('%s not found up to revision %d') + % (path, stop)) # stat() gives us the previous revision on this line of # development, but it might be in *another module*. Fetch the @@ -645,7 +647,8 @@ # We can avoid the reparent calls if the module has # not changed but it probably does not worth the pain. prevmodule = self.reparent('') - fromkind = svn.ra.check_path(self.ra, parentpath.strip('/'), prevnum) + fromkind = svn.ra.check_path(self.ra, parentpath.strip('/'), + prevnum) self.reparent(prevmodule) if fromkind == svn.core.svn_node_file: @@ -657,7 +660,7 @@ oroot = parentpath.strip('/') nroot = path.strip('/') children = self._find_children(oroot, prevnum) - children = [s.replace(oroot,nroot) for s in children] + children = [s.replace(oroot, nroot) for s in children] for child in children: childpath = self.getrelpath("/" + child, pmodule) @@ -738,7 +741,8 @@ # check whether this revision is the start of a branch or part # of a branch renaming orig_paths = sorted(orig_paths.iteritems()) - root_paths = [(p,e) for p,e in orig_paths if self.module.startswith(p)] + root_paths = [(p, e) for p, e in orig_paths + if self.module.startswith(p)] if root_paths: path, ent = root_paths[-1] if ent.copyfrom_path: @@ -750,8 +754,9 @@ prevmodule, prevnum = self.revsplit(previd)[1:] if prevnum >= self.startrev: parents = [previd] - self.ui.note(_('found parent of branch %s at %d: %s\n') % - (self.module, prevnum, prevmodule)) + self.ui.note( + _('found parent of branch %s at %d: %s\n') % + (self.module, prevnum, prevmodule)) else: self.ui.debug("no copyfrom path, don't know what to do.\n")
--- a/hgext/convert/transport.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/convert/transport.py Mon Jan 25 00:05:27 2010 -0600 @@ -125,4 +125,5 @@ self._baton, pool) def do_update(self, revnum, path, *args, **kwargs): - return self.Reporter(svn.ra.do_update(self.ra, revnum, path, *args, **kwargs)) + return self.Reporter(svn.ra.do_update(self.ra, revnum, path, + *args, **kwargs))
--- a/hgext/extdiff.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/extdiff.py Mon Jan 25 00:05:27 2010 -0600 @@ -239,7 +239,8 @@ for cmd, path in ui.configitems('extdiff'): if cmd.startswith('cmd.'): cmd = cmd[4:] - if not path: path = cmd + if not path: + path = cmd diffopts = ui.config('extdiff', 'opts.' + cmd, '') diffopts = diffopts and [diffopts] or [] elif cmd.startswith('opts.'):
--- a/hgext/gpg.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/gpg.py Mon Jan 25 00:05:27 2010 -0600 @@ -38,8 +38,10 @@ finally: for f in (sigfile, datafile): try: - if f: os.unlink(f) - except: pass + if f: + os.unlink(f) + except: + pass keys = [] key, fingerprint = None, None err = ""
--- a/hgext/hgk.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/hgk.py Mon Jan 25 00:05:27 2010 -0600 @@ -186,7 +186,7 @@ l[x].changeset() # force reading else: l[x] = 1 - for x in xrange(chunk-1, -1, -1): + for x in xrange(chunk - 1, -1, -1): if l[x] != 0: yield (i + x, full != None and l[x] or None) if i == 0:
--- a/hgext/inotify/__init__.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/inotify/__init__.py Mon Jan 25 00:05:27 2010 -0600 @@ -60,7 +60,7 @@ if ui.config('inotify', 'debug'): r2 = super(inotifydirstate, self).status( match, False, clean, unknown) - for c,a,b in zip('LMARDUIC', result, r2): + for c, a, b in zip('LMARDUIC', result, r2): for f in a: if f not in b: ui.warn('*** inotify: %s +%s\n' % (c, f))
--- a/hgext/inotify/client.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/inotify/client.py Mon Jan 25 00:05:27 2010 -0600 @@ -11,7 +11,8 @@ import common, server import errno, os, socket, struct -class QueryFailed(Exception): pass +class QueryFailed(Exception): + pass def start_server(function): """ @@ -137,8 +138,10 @@ states = 'almrx!' if ignored: raise ValueError('this is insanity') - if clean: states += 'c' - if unknown: states += '?' + if clean: + states += 'c' + if unknown: + states += '?' yield states req = '\0'.join(genquery())
--- a/hgext/inotify/linux/_inotify.c Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/inotify/linux/_inotify.c Mon Jan 25 00:05:27 2010 -0600 @@ -17,298 +17,298 @@ static PyObject *init(PyObject *self, PyObject *args) { - PyObject *ret = NULL; - int fd = -1; + PyObject *ret = NULL; + int fd = -1; - if (!PyArg_ParseTuple(args, ":init")) - goto bail; + if (!PyArg_ParseTuple(args, ":init")) + goto bail; - Py_BEGIN_ALLOW_THREADS - fd = inotify_init(); - Py_END_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; + fd = inotify_init(); + Py_END_ALLOW_THREADS; - if (fd == -1) { - PyErr_SetFromErrno(PyExc_OSError); - goto bail; - } + if (fd == -1) { + PyErr_SetFromErrno(PyExc_OSError); + goto bail; + } - ret = PyInt_FromLong(fd); - if (ret == NULL) - goto bail; + ret = PyInt_FromLong(fd); + if (ret == NULL) + goto bail; - goto done; + goto done; bail: - if (fd != -1) - close(fd); + if (fd != -1) + close(fd); - Py_CLEAR(ret); + Py_CLEAR(ret); done: - return ret; + return ret; } PyDoc_STRVAR( - init_doc, - "init() -> fd\n" - "\n" - "Initialise an inotify instance.\n" - "Return a file descriptor associated with a new inotify event queue."); + init_doc, + "init() -> fd\n" + "\n" + "Initialise an inotify instance.\n" + "Return a file descriptor associated with a new inotify event queue."); static PyObject *add_watch(PyObject *self, PyObject *args) { - PyObject *ret = NULL; - uint32_t mask; - int wd = -1; - char *path; - int fd; + PyObject *ret = NULL; + uint32_t mask; + int wd = -1; + char *path; + int fd; - if (!PyArg_ParseTuple(args, "isI:add_watch", &fd, &path, &mask)) - goto bail; + if (!PyArg_ParseTuple(args, "isI:add_watch", &fd, &path, &mask)) + goto bail; - Py_BEGIN_ALLOW_THREADS - wd = inotify_add_watch(fd, path, mask); - Py_END_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; + wd = inotify_add_watch(fd, path, mask); + Py_END_ALLOW_THREADS; - if (wd == -1) { - PyErr_SetFromErrnoWithFilename(PyExc_OSError, path); - goto bail; - } + if (wd == -1) { + PyErr_SetFromErrnoWithFilename(PyExc_OSError, path); + goto bail; + } - ret = PyInt_FromLong(wd); - if (ret == NULL) - goto bail; + ret = PyInt_FromLong(wd); + if (ret == NULL) + goto bail; - goto done; + goto done; bail: - if (wd != -1) - inotify_rm_watch(fd, wd); + if (wd != -1) + inotify_rm_watch(fd, wd); - Py_CLEAR(ret); + Py_CLEAR(ret); done: - return ret; + return ret; } PyDoc_STRVAR( - add_watch_doc, - "add_watch(fd, path, mask) -> wd\n" - "\n" - "Add a watch to an inotify instance, or modify an existing watch.\n" - "\n" - " fd: file descriptor returned by init()\n" - " path: path to watch\n" - " mask: mask of events to watch for\n" - "\n" - "Return a unique numeric watch descriptor for the inotify instance\n" - "mapped by the file descriptor."); + add_watch_doc, + "add_watch(fd, path, mask) -> wd\n" + "\n" + "Add a watch to an inotify instance, or modify an existing watch.\n" + "\n" + " fd: file descriptor returned by init()\n" + " path: path to watch\n" + " mask: mask of events to watch for\n" + "\n" + "Return a unique numeric watch descriptor for the inotify instance\n" + "mapped by the file descriptor."); static PyObject *remove_watch(PyObject *self, PyObject *args) { - uint32_t wd; - int fd; - int r; + uint32_t wd; + int fd; + int r; - if (!PyArg_ParseTuple(args, "iI:remove_watch", &fd, &wd)) - return NULL; + if (!PyArg_ParseTuple(args, "iI:remove_watch", &fd, &wd)) + return NULL; - Py_BEGIN_ALLOW_THREADS - r = inotify_rm_watch(fd, wd); - Py_END_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; + r = inotify_rm_watch(fd, wd); + Py_END_ALLOW_THREADS; - if (r == -1) { - PyErr_SetFromErrno(PyExc_OSError); - return NULL; - } + if (r == -1) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } - Py_INCREF(Py_None); - return Py_None; + Py_INCREF(Py_None); + return Py_None; } PyDoc_STRVAR( - remove_watch_doc, - "remove_watch(fd, wd)\n" - "\n" - " fd: file descriptor returned by init()\n" - " wd: watch descriptor returned by add_watch()\n" - "\n" - "Remove a watch associated with the watch descriptor wd from the\n" - "inotify instance associated with the file descriptor fd.\n" - "\n" - "Removing a watch causes an IN_IGNORED event to be generated for this\n" - "watch descriptor."); + remove_watch_doc, + "remove_watch(fd, wd)\n" + "\n" + " fd: file descriptor returned by init()\n" + " wd: watch descriptor returned by add_watch()\n" + "\n" + "Remove a watch associated with the watch descriptor wd from the\n" + "inotify instance associated with the file descriptor fd.\n" + "\n" + "Removing a watch causes an IN_IGNORED event to be generated for this\n" + "watch descriptor."); #define bit_name(x) {x, #x} static struct { - int bit; - const char *name; - PyObject *pyname; + int bit; + const char *name; + PyObject *pyname; } bit_names[] = { - bit_name(IN_ACCESS), - bit_name(IN_MODIFY), - bit_name(IN_ATTRIB), - bit_name(IN_CLOSE_WRITE), - bit_name(IN_CLOSE_NOWRITE), - bit_name(IN_OPEN), - bit_name(IN_MOVED_FROM), - bit_name(IN_MOVED_TO), - bit_name(IN_CREATE), - bit_name(IN_DELETE), - bit_name(IN_DELETE_SELF), - bit_name(IN_MOVE_SELF), - bit_name(IN_UNMOUNT), - bit_name(IN_Q_OVERFLOW), - bit_name(IN_IGNORED), - bit_name(IN_ONLYDIR), - bit_name(IN_DONT_FOLLOW), - bit_name(IN_MASK_ADD), - bit_name(IN_ISDIR), - bit_name(IN_ONESHOT), - {0} + bit_name(IN_ACCESS), + bit_name(IN_MODIFY), + bit_name(IN_ATTRIB), + bit_name(IN_CLOSE_WRITE), + bit_name(IN_CLOSE_NOWRITE), + bit_name(IN_OPEN), + bit_name(IN_MOVED_FROM), + bit_name(IN_MOVED_TO), + bit_name(IN_CREATE), + bit_name(IN_DELETE), + bit_name(IN_DELETE_SELF), + bit_name(IN_MOVE_SELF), + bit_name(IN_UNMOUNT), + bit_name(IN_Q_OVERFLOW), + bit_name(IN_IGNORED), + bit_name(IN_ONLYDIR), + bit_name(IN_DONT_FOLLOW), + bit_name(IN_MASK_ADD), + bit_name(IN_ISDIR), + bit_name(IN_ONESHOT), + {0} }; static PyObject *decode_mask(int mask) { - PyObject *ret = PyList_New(0); - int i; + PyObject *ret = PyList_New(0); + int i; - if (ret == NULL) - goto bail; + if (ret == NULL) + goto bail; - for (i = 0; bit_names[i].bit; i++) { - if (mask & bit_names[i].bit) { - if (bit_names[i].pyname == NULL) { - bit_names[i].pyname = PyString_FromString(bit_names[i].name); - if (bit_names[i].pyname == NULL) - goto bail; - } - Py_INCREF(bit_names[i].pyname); - if (PyList_Append(ret, bit_names[i].pyname) == -1) - goto bail; + for (i = 0; bit_names[i].bit; i++) { + if (mask & bit_names[i].bit) { + if (bit_names[i].pyname == NULL) { + bit_names[i].pyname = PyString_FromString(bit_names[i].name); + if (bit_names[i].pyname == NULL) + goto bail; + } + Py_INCREF(bit_names[i].pyname); + if (PyList_Append(ret, bit_names[i].pyname) == -1) + goto bail; + } } - } - goto done; + goto done; bail: - Py_CLEAR(ret); + Py_CLEAR(ret); done: - return ret; + return ret; } static PyObject *pydecode_mask(PyObject *self, PyObject *args) { - int mask; + int mask; - if (!PyArg_ParseTuple(args, "i:decode_mask", &mask)) - return NULL; + if (!PyArg_ParseTuple(args, "i:decode_mask", &mask)) + return NULL; - return decode_mask(mask); + return decode_mask(mask); } PyDoc_STRVAR( - decode_mask_doc, - "decode_mask(mask) -> list_of_strings\n" - "\n" - "Decode an inotify mask value into a list of strings that give the\n" - "name of each bit set in the mask."); + decode_mask_doc, + "decode_mask(mask) -> list_of_strings\n" + "\n" + "Decode an inotify mask value into a list of strings that give the\n" + "name of each bit set in the mask."); static char doc[] = "Low-level inotify interface wrappers."; static void define_const(PyObject *dict, const char *name, uint32_t val) { - PyObject *pyval = PyInt_FromLong(val); - PyObject *pyname = PyString_FromString(name); + PyObject *pyval = PyInt_FromLong(val); + PyObject *pyname = PyString_FromString(name); - if (!pyname || !pyval) - goto bail; + if (!pyname || !pyval) + goto bail; - PyDict_SetItem(dict, pyname, pyval); + PyDict_SetItem(dict, pyname, pyval); bail: - Py_XDECREF(pyname); - Py_XDECREF(pyval); + Py_XDECREF(pyname); + Py_XDECREF(pyval); } static void define_consts(PyObject *dict) { - define_const(dict, "IN_ACCESS", IN_ACCESS); - define_const(dict, "IN_MODIFY", IN_MODIFY); - define_const(dict, "IN_ATTRIB", IN_ATTRIB); - define_const(dict, "IN_CLOSE_WRITE", IN_CLOSE_WRITE); - define_const(dict, "IN_CLOSE_NOWRITE", IN_CLOSE_NOWRITE); - define_const(dict, "IN_OPEN", IN_OPEN); - define_const(dict, "IN_MOVED_FROM", IN_MOVED_FROM); - define_const(dict, "IN_MOVED_TO", IN_MOVED_TO); + define_const(dict, "IN_ACCESS", IN_ACCESS); + define_const(dict, "IN_MODIFY", IN_MODIFY); + define_const(dict, "IN_ATTRIB", IN_ATTRIB); + define_const(dict, "IN_CLOSE_WRITE", IN_CLOSE_WRITE); + define_const(dict, "IN_CLOSE_NOWRITE", IN_CLOSE_NOWRITE); + define_const(dict, "IN_OPEN", IN_OPEN); + define_const(dict, "IN_MOVED_FROM", IN_MOVED_FROM); + define_const(dict, "IN_MOVED_TO", IN_MOVED_TO); - define_const(dict, "IN_CLOSE", IN_CLOSE); - define_const(dict, "IN_MOVE", IN_MOVE); + define_const(dict, "IN_CLOSE", IN_CLOSE); + define_const(dict, "IN_MOVE", IN_MOVE); - define_const(dict, "IN_CREATE", IN_CREATE); - define_const(dict, "IN_DELETE", IN_DELETE); - define_const(dict, "IN_DELETE_SELF", IN_DELETE_SELF); - define_const(dict, "IN_MOVE_SELF", IN_MOVE_SELF); - define_const(dict, "IN_UNMOUNT", IN_UNMOUNT); - define_const(dict, "IN_Q_OVERFLOW", IN_Q_OVERFLOW); - define_const(dict, "IN_IGNORED", IN_IGNORED); + define_const(dict, "IN_CREATE", IN_CREATE); + define_const(dict, "IN_DELETE", IN_DELETE); + define_const(dict, "IN_DELETE_SELF", IN_DELETE_SELF); + define_const(dict, "IN_MOVE_SELF", IN_MOVE_SELF); + define_const(dict, "IN_UNMOUNT", IN_UNMOUNT); + define_const(dict, "IN_Q_OVERFLOW", IN_Q_OVERFLOW); + define_const(dict, "IN_IGNORED", IN_IGNORED); - define_const(dict, "IN_ONLYDIR", IN_ONLYDIR); - define_const(dict, "IN_DONT_FOLLOW", IN_DONT_FOLLOW); - define_const(dict, "IN_MASK_ADD", IN_MASK_ADD); - define_const(dict, "IN_ISDIR", IN_ISDIR); - define_const(dict, "IN_ONESHOT", IN_ONESHOT); - define_const(dict, "IN_ALL_EVENTS", IN_ALL_EVENTS); + define_const(dict, "IN_ONLYDIR", IN_ONLYDIR); + define_const(dict, "IN_DONT_FOLLOW", IN_DONT_FOLLOW); + define_const(dict, "IN_MASK_ADD", IN_MASK_ADD); + define_const(dict, "IN_ISDIR", IN_ISDIR); + define_const(dict, "IN_ONESHOT", IN_ONESHOT); + define_const(dict, "IN_ALL_EVENTS", IN_ALL_EVENTS); } struct event { - PyObject_HEAD - PyObject *wd; - PyObject *mask; - PyObject *cookie; - PyObject *name; + PyObject_HEAD + PyObject *wd; + PyObject *mask; + PyObject *cookie; + PyObject *name; }; static PyObject *event_wd(PyObject *self, void *x) { - struct event *evt = (struct event *) self; - Py_INCREF(evt->wd); - return evt->wd; + struct event *evt = (struct event *)self; + Py_INCREF(evt->wd); + return evt->wd; } static PyObject *event_mask(PyObject *self, void *x) { - struct event *evt = (struct event *) self; - Py_INCREF(evt->mask); - return evt->mask; + struct event *evt = (struct event *)self; + Py_INCREF(evt->mask); + return evt->mask; } static PyObject *event_cookie(PyObject *self, void *x) { - struct event *evt = (struct event *) self; - Py_INCREF(evt->cookie); - return evt->cookie; + struct event *evt = (struct event *)self; + Py_INCREF(evt->cookie); + return evt->cookie; } static PyObject *event_name(PyObject *self, void *x) { - struct event *evt = (struct event *) self; - Py_INCREF(evt->name); - return evt->name; + struct event *evt = (struct event *)self; + Py_INCREF(evt->name); + return evt->name; } static struct PyGetSetDef event_getsets[] = { - {"wd", event_wd, NULL, - "watch descriptor"}, - {"mask", event_mask, NULL, - "event mask"}, - {"cookie", event_cookie, NULL, - "rename cookie, if rename-related event"}, - {"name", event_name, NULL, - "file name"}, - {NULL} + {"wd", event_wd, NULL, + "watch descriptor"}, + {"mask", event_mask, NULL, + "event mask"}, + {"cookie", event_cookie, NULL, + "rename cookie, if rename-related event"}, + {"name", event_name, NULL, + "file name"}, + {NULL} }; PyDoc_STRVAR( @@ -317,284 +317,285 @@ static PyObject *event_new(PyTypeObject *t, PyObject *a, PyObject *k) { - return (*t->tp_alloc)(t, 0); + return (*t->tp_alloc)(t, 0); } static void event_dealloc(struct event *evt) { - Py_XDECREF(evt->wd); - Py_XDECREF(evt->mask); - Py_XDECREF(evt->cookie); - Py_XDECREF(evt->name); + Py_XDECREF(evt->wd); + Py_XDECREF(evt->mask); + Py_XDECREF(evt->cookie); + Py_XDECREF(evt->name); - (*evt->ob_type->tp_free)(evt); + (*evt->ob_type->tp_free)(evt); } static PyObject *event_repr(struct event *evt) { - int wd = PyInt_AsLong(evt->wd); - int cookie = evt->cookie == Py_None ? -1 : PyInt_AsLong(evt->cookie); - PyObject *ret = NULL, *pymasks = NULL, *pymask = NULL; - PyObject *join = NULL; - char *maskstr; + int wd = PyInt_AsLong(evt->wd); + int cookie = evt->cookie == Py_None ? -1 : PyInt_AsLong(evt->cookie); + PyObject *ret = NULL, *pymasks = NULL, *pymask = NULL; + PyObject *join = NULL; + char *maskstr; - join = PyString_FromString("|"); - if (join == NULL) - goto bail; + join = PyString_FromString("|"); + if (join == NULL) + goto bail; - pymasks = decode_mask(PyInt_AsLong(evt->mask)); - if (pymasks == NULL) - goto bail; + pymasks = decode_mask(PyInt_AsLong(evt->mask)); + if (pymasks == NULL) + goto bail; - pymask = _PyString_Join(join, pymasks); - if (pymask == NULL) - goto bail; + pymask = _PyString_Join(join, pymasks); + if (pymask == NULL) + goto bail; - maskstr = PyString_AsString(pymask); + maskstr = PyString_AsString(pymask); + + if (evt->name != Py_None) { + PyObject *pyname = PyString_Repr(evt->name, 1); + char *name = pyname ? PyString_AsString(pyname) : "???"; - if (evt->name != Py_None) { - PyObject *pyname = PyString_Repr(evt->name, 1); - char *name = pyname ? PyString_AsString(pyname) : "???"; - - if (cookie == -1) - ret = PyString_FromFormat("event(wd=%d, mask=%s, name=%s)", - wd, maskstr, name); - else - ret = PyString_FromFormat("event(wd=%d, mask=%s, " - "cookie=0x%x, name=%s)", - wd, maskstr, cookie, name); + if (cookie == -1) + ret = PyString_FromFormat( + "event(wd=%d, mask=%s, name=%s)", + wd, maskstr, name); + else + ret = PyString_FromFormat("event(wd=%d, mask=%s, " + "cookie=0x%x, name=%s)", + wd, maskstr, cookie, name); - Py_XDECREF(pyname); - } else { - if (cookie == -1) - ret = PyString_FromFormat("event(wd=%d, mask=%s)", - wd, maskstr); - else { - ret = PyString_FromFormat("event(wd=%d, mask=%s, cookie=0x%x)", - wd, maskstr, cookie); + Py_XDECREF(pyname); + } else { + if (cookie == -1) + ret = PyString_FromFormat("event(wd=%d, mask=%s)", + wd, maskstr); + else { + ret = PyString_FromFormat( + "event(wd=%d, mask=%s, cookie=0x%x)", + wd, maskstr, cookie); + } } - } - goto done; + goto done; bail: - Py_CLEAR(ret); + Py_CLEAR(ret); done: - Py_XDECREF(pymask); - Py_XDECREF(pymasks); - Py_XDECREF(join); + Py_XDECREF(pymask); + Py_XDECREF(pymasks); + Py_XDECREF(join); - return ret; + return ret; } static PyTypeObject event_type = { - PyObject_HEAD_INIT(NULL) - 0, /*ob_size*/ - "_inotify.event", /*tp_name*/ - sizeof(struct event), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - (destructor)event_dealloc, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - (reprfunc)event_repr, /*tp_repr*/ - 0, /*tp_as_number*/ - 0, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ - 0, /*tp_hash */ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - 0, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ - event_doc, /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - 0, /* tp_methods */ - 0, /* tp_members */ - event_getsets, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - event_new, /* tp_new */ + PyObject_HEAD_INIT(NULL) + 0, /*ob_size*/ + "_inotify.event", /*tp_name*/ + sizeof(struct event), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + (destructor)event_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_compare*/ + (reprfunc)event_repr, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash */ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ + event_doc, /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + 0, /* tp_members */ + event_getsets, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + 0, /* tp_init */ + 0, /* tp_alloc */ + event_new, /* tp_new */ }; PyObject *read_events(PyObject *self, PyObject *args) { - PyObject *ctor_args = NULL; - PyObject *pybufsize = NULL; - PyObject *ret = NULL; - int bufsize = 65536; - char *buf = NULL; - int nread, pos; - int fd; + PyObject *ctor_args = NULL; + PyObject *pybufsize = NULL; + PyObject *ret = NULL; + int bufsize = 65536; + char *buf = NULL; + int nread, pos; + int fd; + + if (!PyArg_ParseTuple(args, "i|O:read", &fd, &pybufsize)) + goto bail; - if (!PyArg_ParseTuple(args, "i|O:read", &fd, &pybufsize)) - goto bail; + if (pybufsize && pybufsize != Py_None) + bufsize = PyInt_AsLong(pybufsize); - if (pybufsize && pybufsize != Py_None) - bufsize = PyInt_AsLong(pybufsize); + ret = PyList_New(0); + if (ret == NULL) + goto bail; - ret = PyList_New(0); - if (ret == NULL) - goto bail; + if (bufsize <= 0) { + int r; - if (bufsize <= 0) { - int r; + Py_BEGIN_ALLOW_THREADS; + r = ioctl(fd, FIONREAD, &bufsize); + Py_END_ALLOW_THREADS; - Py_BEGIN_ALLOW_THREADS - r = ioctl(fd, FIONREAD, &bufsize); - Py_END_ALLOW_THREADS - - if (r == -1) { - PyErr_SetFromErrno(PyExc_OSError); - goto bail; + if (r == -1) { + PyErr_SetFromErrno(PyExc_OSError); + goto bail; + } + if (bufsize == 0) + goto done; } - if (bufsize == 0) - goto done; - } - else { - static long name_max; - static long name_fd = -1; - long min; + else { + static long name_max; + static long name_fd = -1; + long min; - if (name_fd != fd) { - name_fd = fd; - Py_BEGIN_ALLOW_THREADS - name_max = fpathconf(fd, _PC_NAME_MAX); - Py_END_ALLOW_THREADS + if (name_fd != fd) { + name_fd = fd; + Py_BEGIN_ALLOW_THREADS; + name_max = fpathconf(fd, _PC_NAME_MAX); + Py_END_ALLOW_THREADS; + } + + min = sizeof(struct inotify_event) + name_max + 1; + + if (bufsize < min) { + PyErr_Format(PyExc_ValueError, + "bufsize must be at least %d", (int)min); + goto bail; + } } - min = sizeof(struct inotify_event) + name_max + 1; - - if (bufsize < min) { - PyErr_Format(PyExc_ValueError, "bufsize must be at least %d", - (int) min); - goto bail; - } - } - - buf = alloca(bufsize); - - Py_BEGIN_ALLOW_THREADS - nread = read(fd, buf, bufsize); - Py_END_ALLOW_THREADS - - if (nread == -1) { - PyErr_SetFromErrno(PyExc_OSError); - goto bail; - } - - ctor_args = PyTuple_New(0); - - if (ctor_args == NULL) - goto bail; + buf = alloca(bufsize); - pos = 0; - - while (pos < nread) { - struct inotify_event *in = (struct inotify_event *) (buf + pos); - struct event *evt; - PyObject *obj; - - obj = PyObject_CallObject((PyObject *) &event_type, ctor_args); - - if (obj == NULL) - goto bail; - - evt = (struct event *) obj; + Py_BEGIN_ALLOW_THREADS; + nread = read(fd, buf, bufsize); + Py_END_ALLOW_THREADS; - evt->wd = PyInt_FromLong(in->wd); - evt->mask = PyInt_FromLong(in->mask); - if (in->mask & IN_MOVE) - evt->cookie = PyInt_FromLong(in->cookie); - else { - Py_INCREF(Py_None); - evt->cookie = Py_None; - } - if (in->len) - evt->name = PyString_FromString(in->name); - else { - Py_INCREF(Py_None); - evt->name = Py_None; + if (nread == -1) { + PyErr_SetFromErrno(PyExc_OSError); + goto bail; } - if (!evt->wd || !evt->mask || !evt->cookie || !evt->name) - goto mybail; + ctor_args = PyTuple_New(0); + + if (ctor_args == NULL) + goto bail; + + pos = 0; - if (PyList_Append(ret, obj) == -1) - goto mybail; + while (pos < nread) { + struct inotify_event *in = (struct inotify_event *)(buf + pos); + struct event *evt; + PyObject *obj; - pos += sizeof(struct inotify_event) + in->len; - continue; + obj = PyObject_CallObject((PyObject *)&event_type, ctor_args); + + if (obj == NULL) + goto bail; + + evt = (struct event *)obj; - mybail: - Py_CLEAR(evt->wd); - Py_CLEAR(evt->mask); - Py_CLEAR(evt->cookie); - Py_CLEAR(evt->name); - Py_DECREF(obj); + evt->wd = PyInt_FromLong(in->wd); + evt->mask = PyInt_FromLong(in->mask); + if (in->mask & IN_MOVE) + evt->cookie = PyInt_FromLong(in->cookie); + else { + Py_INCREF(Py_None); + evt->cookie = Py_None; + } + if (in->len) + evt->name = PyString_FromString(in->name); + else { + Py_INCREF(Py_None); + evt->name = Py_None; + } + + if (!evt->wd || !evt->mask || !evt->cookie || !evt->name) + goto mybail; - goto bail; - } + if (PyList_Append(ret, obj) == -1) + goto mybail; + + pos += sizeof(struct inotify_event) + in->len; + continue; - goto done; + mybail: + Py_CLEAR(evt->wd); + Py_CLEAR(evt->mask); + Py_CLEAR(evt->cookie); + Py_CLEAR(evt->name); + Py_DECREF(obj); + + goto bail; + } + + goto done; bail: - Py_CLEAR(ret); + Py_CLEAR(ret); done: - Py_XDECREF(ctor_args); + Py_XDECREF(ctor_args); - return ret; + return ret; } PyDoc_STRVAR( - read_doc, - "read(fd, bufsize[=65536]) -> list_of_events\n" - "\n" - "\nRead inotify events from a file descriptor.\n" - "\n" - " fd: file descriptor returned by init()\n" - " bufsize: size of buffer to read into, in bytes\n" - "\n" - "Return a list of event objects.\n" - "\n" - "If bufsize is > 0, block until events are available to be read.\n" - "Otherwise, immediately return all events that can be read without\n" - "blocking."); - + read_doc, + "read(fd, bufsize[=65536]) -> list_of_events\n" + "\n" + "\nRead inotify events from a file descriptor.\n" + "\n" + " fd: file descriptor returned by init()\n" + " bufsize: size of buffer to read into, in bytes\n" + "\n" + "Return a list of event objects.\n" + "\n" + "If bufsize is > 0, block until events are available to be read.\n" + "Otherwise, immediately return all events that can be read without\n" + "blocking."); static PyMethodDef methods[] = { - {"init", init, METH_VARARGS, init_doc}, - {"add_watch", add_watch, METH_VARARGS, add_watch_doc}, - {"remove_watch", remove_watch, METH_VARARGS, remove_watch_doc}, - {"read", read_events, METH_VARARGS, read_doc}, - {"decode_mask", pydecode_mask, METH_VARARGS, decode_mask_doc}, - {NULL}, + {"init", init, METH_VARARGS, init_doc}, + {"add_watch", add_watch, METH_VARARGS, add_watch_doc}, + {"remove_watch", remove_watch, METH_VARARGS, remove_watch_doc}, + {"read", read_events, METH_VARARGS, read_doc}, + {"decode_mask", pydecode_mask, METH_VARARGS, decode_mask_doc}, + {NULL}, }; void init_inotify(void) { - PyObject *mod, *dict; + PyObject *mod, *dict; - if (PyType_Ready(&event_type) == -1) - return; + if (PyType_Ready(&event_type) == -1) + return; - mod = Py_InitModule3("_inotify", methods, doc); + mod = Py_InitModule3("_inotify", methods, doc); - dict = PyModule_GetDict(mod); + dict = PyModule_GetDict(mod); - if (dict) - define_consts(dict); + if (dict) + define_consts(dict); }
--- a/hgext/inotify/linuxserver.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/inotify/linuxserver.py Mon Jan 25 00:05:27 2010 -0600 @@ -112,7 +112,8 @@ timeout = None timeobj = None for obj in cls.instances.itervalues(): - if obj.timeout is not None and (timeout is None or obj.timeout < timeout): + if obj.timeout is not None and (timeout is None + or obj.timeout < timeout): timeout, timeobj = obj.timeout, obj try: events = cls.poll.poll(timeout)
--- a/hgext/inotify/server.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/inotify/server.py Mon Jan 25 00:05:27 2010 -0600 @@ -17,7 +17,8 @@ import sys import tempfile -class AlreadyStartedException(Exception): pass +class AlreadyStartedException(Exception): + pass def join(a, b): if a: @@ -30,7 +31,7 @@ c = path.rfind('/') if c == -1: return '', path - return path[:c], path[c+1:] + return path[:c], path[c + 1:] walk_ignored_errors = (errno.ENOENT, errno.ENAMETOOLONG) @@ -332,8 +333,8 @@ self.sock.bind(self.sockpath) except socket.error, err: if err[0] == errno.EADDRINUSE: - raise AlreadyStartedException( _('cannot start: socket is ' - 'already bound')) + raise AlreadyStartedException(_('cannot start: socket is ' + 'already bound')) if err[0] == "AF_UNIX path too long": if os.path.islink(self.sockpath) and \ not os.path.exists(self.sockpath):
--- a/hgext/mq.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/mq.py Mon Jan 25 00:05:27 2010 -0600 @@ -376,7 +376,8 @@ try: guards = self.opener(self.guards_path).read().split() except IOError, err: - if err.errno != errno.ENOENT: raise + if err.errno != errno.ENOENT: + raise guards = [] for i, guard in enumerate(guards): bad = self.check_guard(guard) @@ -450,9 +451,12 @@ for i in items: fp.write("%s\n" % i) fp.close() - if self.applied_dirty: write_list(map(str, self.applied), self.status_path) - if self.series_dirty: write_list(self.full_series, self.series_path) - if self.guards_dirty: write_list(self.active_guards, self.guards_path) + if self.applied_dirty: + write_list(map(str, self.applied), self.status_path) + if self.series_dirty: + write_list(self.full_series, self.series_path) + if self.guards_dirty: + write_list(self.active_guards, self.guards_path) def removeundo(self, repo): undo = repo.sjoin('undo') @@ -482,7 +486,7 @@ def mergeone(self, repo, mergeq, head, patch, rev, diffopts): # first try just applying the patch - (err, n) = self.apply(repo, [ patch ], update_status=False, + (err, n) = self.apply(repo, [patch], update_status=False, strict=True, merge=rev) if err == 0: @@ -529,7 +533,7 @@ return bin(self.applied[-1].rev) pp = repo.changelog.parents(rev) if pp[1] != nullid: - arevs = [ x.rev for x in self.applied ] + arevs = [x.rev for x in self.applied] p0 = hex(pp[0]) p1 = hex(pp[1]) if p0 in arevs: @@ -864,7 +868,8 @@ wlock.release() wlock = None r = self.qrepo() - if r: r.add([patchfn]) + if r: + r.add([patchfn]) except: repo.rollback() raise @@ -941,7 +946,7 @@ if not os.path.isfile(self.join(patch)): try: sno = int(patch) - except(ValueError, OverflowError): + except (ValueError, OverflowError): pass else: if -len(self.series) <= sno < len(self.series): @@ -957,8 +962,8 @@ if res: i = self.series.index(res) try: - off = int(patch[minus+1:] or 1) - except(ValueError, OverflowError): + off = int(patch[minus + 1:] or 1) + except (ValueError, OverflowError): pass else: if i - off >= 0: @@ -969,8 +974,8 @@ if res: i = self.series.index(res) try: - off = int(patch[plus+1:] or 1) - except(ValueError, OverflowError): + off = int(patch[plus + 1:] or 1) + except (ValueError, OverflowError): pass else: if i + off < len(self.series): @@ -1106,7 +1111,7 @@ if not update: parents = repo.dirstate.parents() - rr = [ bin(x.rev) for x in self.applied ] + rr = [bin(x.rev) for x in self.applied] for p in parents: if p in rr: self.ui.warn(_("qpop: forcing dirstate update\n")) @@ -1306,7 +1311,8 @@ f = repo.file(dst) src = f.renamed(man[dst]) if src: - copies.setdefault(src[0], []).extend(copies.get(dst, [])) + copies.setdefault(src[0], []).extend( + copies.get(dst, [])) if dst in a: copies[src[0]].append(dst) # we can't copy a file created by the patch itself @@ -1440,8 +1446,8 @@ length = len(self.series) - start if not missing: if self.ui.verbose: - idxwidth = len(str(start+length - 1)) - for i in xrange(start, start+length): + idxwidth = len(str(start + length - 1)) + for i in xrange(start, start + length): patch = self.series[i] if patch in applied: stat = 'A' @@ -1493,7 +1499,7 @@ elif line.startswith('Dirstate:'): l = line.rstrip() l = l[10:].split(' ') - qpp = [ bin(x) for x in l ] + qpp = [bin(x) for x in l] elif datastart != None: l = line.rstrip() se = statusentry(l) @@ -1542,7 +1548,7 @@ self.ui.warn(_("status is already saved\n")) return 1 - ar = [ ':' + x for x in self.full_series ] + ar = [':' + x for x in self.full_series] if not msg: msg = _("hg patches saved state") else: @@ -1694,7 +1700,8 @@ try: if filename == '-': if not patchname: - raise util.Abort(_('need --name to import a patch from -')) + raise util.Abort( + _('need --name to import a patch from -')) text = sys.stdin.read() else: text = url.open(self.ui, filename).read() @@ -1912,7 +1919,8 @@ """commit changes in the queue repository""" q = repo.mq r = q.qrepo() - if not r: raise util.Abort('no queue repository') + if not r: + raise util.Abort('no queue repository') commands.commit(r.ui, r, *pats, **opts) def series(ui, repo, **opts): @@ -1925,7 +1933,7 @@ q = repo.mq t = q.applied and q.series_end(True) or 0 if t: - return q.qseries(repo, start=t-1, length=1, status='A', + return q.qseries(repo, start=t - 1, length=1, status='A', summary=opts.get('summary')) else: ui.write(_("no patches applied\n")) @@ -1950,7 +1958,7 @@ if not l: ui.write(_("no patches applied\n")) return 1 - return q.qseries(repo, start=l-2, length=1, status='A', + return q.qseries(repo, start=l - 2, length=1, status='A', summary=opts.get('summary')) def setupheaderopts(ui, opts): @@ -1984,7 +1992,8 @@ information. """ msg = cmdutil.logmessage(opts) - def getmsg(): return ui.edit(msg, ui.username()) + def getmsg(): + return ui.edit(msg, ui.username()) q = repo.mq opts['msg'] = msg if opts.get('edit'): @@ -2272,7 +2281,8 @@ raise util.Abort(_('%s already exists') % absdest) if name in q.series: - raise util.Abort(_('A patch named %s already exists in the series file') % name) + raise util.Abort( + _('A patch named %s already exists in the series file') % name) if ui.verbose: ui.write('renaming %s to %s\n' % (patch, name)) @@ -2464,7 +2474,7 @@ if i == 0: q.pop(repo, all=True) else: - q.pop(repo, i-1) + q.pop(repo, i - 1) break if popped: try: @@ -2575,8 +2585,8 @@ start = lrev + 1 if start < qbase: # update the cache (excluding the patches) and save it - self._updatebranchcache(partial, lrev+1, qbase) - self._writebranchcache(partial, cl.node(qbase-1), qbase-1) + self._updatebranchcache(partial, lrev + 1, qbase) + self._writebranchcache(partial, cl.node(qbase - 1), qbase - 1) start = qbase # if start = qbase, the cache is as updated as it should be. # if start > qbase, the cache includes (part of) the patches. @@ -2591,7 +2601,8 @@ repo.__class__ = mqrepo def mqimport(orig, ui, repo, *args, **kwargs): - if hasattr(repo, 'abort_if_wdir_patched') and not kwargs.get('no_commit', False): + if (hasattr(repo, 'abort_if_wdir_patched') + and not kwargs.get('no_commit', False)): repo.abort_if_wdir_patched(_('cannot import over an applied patch'), kwargs.get('force')) return orig(ui, repo, *args, **kwargs) @@ -2688,11 +2699,16 @@ (refresh, [('e', 'edit', None, _('edit commit message')), ('g', 'git', None, _('use git extended diff format')), - ('s', 'short', None, _('refresh only files already in the patch and specified files')), - ('U', 'currentuser', None, _('add/update author field in patch with current user')), - ('u', 'user', '', _('add/update author field in patch with given user')), - ('D', 'currentdate', None, _('add/update date field in patch with current date')), - ('d', 'date', '', _('add/update date field in patch with given date')) + ('s', 'short', None, + _('refresh only files already in the patch and specified files')), + ('U', 'currentuser', None, + _('add/update author field in patch with current user')), + ('u', 'user', '', + _('add/update author field in patch with given user')), + ('D', 'currentdate', None, + _('add/update date field in patch with current date')), + ('d', 'date', '', + _('add/update date field in patch with given date')) ] + commands.walkopts + commands.commitopts, _('hg qrefresh [-I] [-X] [-e] [-m TEXT] [-l FILE] [-s] [FILE]...')), 'qrename|qmv':
--- a/hgext/notify.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/notify.py Mon Jan 25 00:05:27 2010 -0600 @@ -134,7 +134,7 @@ c = path.find('/') if c == -1: break - path = path[c+1:] + path = path[c + 1:] count -= 1 return path @@ -216,7 +216,7 @@ subject = '%s: %s' % (self.root, s) maxsubject = int(self.ui.config('notify', 'maxsubject', 67)) if maxsubject and len(subject) > maxsubject: - subject = subject[:maxsubject-3] + '...' + subject = subject[:maxsubject - 3] + '...' msg['Subject'] = mail.headencode(self.ui, subject, self.charsets, self.test)
--- a/hgext/parentrevspec.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/parentrevspec.py Mon Jan 25 00:05:27 2010 -0600 @@ -67,7 +67,7 @@ p = cl.parentrevs(rev) if j < len(suffix) and suffix[j].isdigit(): j += 1 - n = int(suffix[i+1:j]) + n = int(suffix[i + 1:j]) if n > 2 or n == 2 and p[1] == -1: raise else: @@ -85,7 +85,7 @@ j += 1 if j == i + 1: raise - n = int(suffix[i+1:j]) + n = int(suffix[i + 1:j]) for k in xrange(n): rev = cl.parentrevs(rev)[0] i = j
--- a/hgext/patchbomb.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/patchbomb.py Mon Jan 25 00:05:27 2010 -0600 @@ -80,7 +80,7 @@ if not ui.interactive(): if default is not None: return default - raise util.Abort(_("%s Please enter a valid value" % (prompt+rest))) + raise util.Abort(_("%s Please enter a valid value" % (prompt + rest))) if default: prompt += ' [%s]' % default prompt += rest
--- a/hgext/record.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/record.py Mon Jan 25 00:05:27 2010 -0600 @@ -297,7 +297,8 @@ doc = gettext(record.__doc__) c = doc.find(_('y - record this change')) for l in doc[c:].splitlines(): - if l: ui.write(l.strip(), '\n') + if l: + ui.write(l.strip(), '\n') continue elif r == 0: # yes ret = True @@ -437,8 +438,10 @@ contenders = set() for h in chunks: - try: contenders.update(set(h.files())) - except AttributeError: pass + try: + contenders.update(set(h.files())) + except AttributeError: + pass changed = changes[0] + changes[1] + changes[2] newfiles = [f for f in changed if f in contenders]
--- a/hgext/schemes.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/schemes.py Mon Jan 25 00:05:27 2010 -0600 @@ -64,7 +64,7 @@ parts = parts[:-1] else: tail = '' - context = dict((str(i+1), v) for i, v in enumerate(parts)) + context = dict((str(i + 1), v) for i, v in enumerate(parts)) url = ''.join(self.templater.process(self.url, context)) + tail return hg._lookup(url).instance(ui, url, create)
--- a/hgext/transplant.py Mon Jan 25 00:05:22 2010 -0600 +++ b/hgext/transplant.py Mon Jan 25 00:05:27 2010 -0600 @@ -489,7 +489,7 @@ def incwalk(repo, incoming, branches, match=util.always): if not branches: - branches=None + branches = None for node in repo.changelog.nodesbetween(incoming, branches)[0]: if match(node): yield node @@ -506,7 +506,7 @@ def checkopts(opts, revs): if opts.get('continue'): - if filter(lambda opt: opts.get(opt), ('branch', 'all', 'merge')): + if opts.get('branch') or opts.get('all') or opts.get('merge'): raise util.Abort(_('--continue is incompatible with ' 'branch, all or merge')) return
--- a/hgwebdir.cgi Mon Jan 25 00:05:22 2010 -0600 +++ b/hgwebdir.cgi Mon Jan 25 00:05:27 2010 -0600 @@ -37,7 +37,7 @@ # [collections] # /prefix/to/strip/off = /root/of/tree/full/of/repos # -# paths example: +# paths example: # # * First two lines mount one repository into one virtual path, like # '/real/path1' into 'virtual/path1'.
--- a/mercurial/archival.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/archival.py Mon Jan 25 00:05:27 2010 -0600 @@ -205,7 +205,8 @@ prefix is name of path to put before every archive member.''' def write(name, mode, islink, getdata): - if matchfn and not matchfn(name): return + if matchfn and not matchfn(name): + return data = getdata() if decode: data = repo.wwritedata(name, data)
--- a/mercurial/base85.c Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/base85.c Mon Jan 25 00:05:27 2010 -0600 @@ -105,18 +105,24 @@ { c = b85dec[(int)*text++] - 1; if (c < 0) - return PyErr_Format(PyExc_ValueError, "Bad base85 character at position %d", i); + return PyErr_Format( + PyExc_ValueError, + "Bad base85 character at position %d", i); acc = acc * 85 + c; } if (i++ < len) { c = b85dec[(int)*text++] - 1; if (c < 0) - return PyErr_Format(PyExc_ValueError, "Bad base85 character at position %d", i); + return PyErr_Format( + PyExc_ValueError, + "Bad base85 character at position %d", i); /* overflow detection: 0xffffffff == "|NsC0", * "|NsC" == 0x03030303 */ if (acc > 0x03030303 || (acc *= 85) > 0xffffffff - c) - return PyErr_Format(PyExc_ValueError, "Bad base85 sequence at position %d", i); + return PyErr_Format( + PyExc_ValueError, + "Bad base85 sequence at position %d", i); acc += c; }
--- a/mercurial/bdiff.c Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/bdiff.c Mon Jan 25 00:05:27 2010 -0600 @@ -15,11 +15,11 @@ #include <limits.h> #if defined __hpux || defined __SUNPRO_C || defined _AIX -# define inline +#define inline #endif #ifdef __linux -# define inline __inline +#define inline __inline #endif #ifdef _WIN32 @@ -267,19 +267,21 @@ /* normalize the hunk list, try to push each hunk towards the end */ for (curr = l.base; curr != l.head; curr++) { - struct hunk *next = curr+1; + struct hunk *next = curr + 1; int shift = 0; if (next == l.head) break; if (curr->a2 == next->a1) - while (curr->a2+shift < an && curr->b2+shift < bn - && !cmp(a+curr->a2+shift, b+curr->b2+shift)) + while (curr->a2 + shift < an && curr->b2 + shift < bn + && !cmp(a + curr->a2 + shift, + b + curr->b2 + shift)) shift++; else if (curr->b2 == next->b1) - while (curr->b2+shift < bn && curr->a2+shift < an - && !cmp(b+curr->b2+shift, a+curr->a2+shift)) + while (curr->b2 + shift < bn && curr->a2 + shift < an + && !cmp(b + curr->b2 + shift, + a + curr->a2 + shift)) shift++; if (!shift) continue;
--- a/mercurial/bundlerepo.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/bundlerepo.py Mon Jan 25 00:05:27 2010 -0600 @@ -73,7 +73,8 @@ if rev < 0: return False return rev in self.basemap - def bundlebase(self, rev): return self.basemap[rev] + def bundlebase(self, rev): + return self.basemap[rev] def _chunk(self, rev): # Warning: in case of bundle, the diff is against bundlebase, # not against rev - 1 @@ -98,7 +99,8 @@ def revision(self, node): """return an uncompressed revision of a given""" - if node == nullid: return "" + if node == nullid: + return "" text = None chain = []
--- a/mercurial/byterange.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/byterange.py Mon Jan 25 00:05:27 2010 -0600 @@ -310,7 +310,8 @@ (fb, lb) = range_tup if lb == '': if retrlen is None or retrlen == 0: - raise RangeError('Requested Range Not Satisfiable due to unobtainable file length.') + raise RangeError('Requested Range Not Satisfiable due' + ' to unobtainable file length.') lb = retrlen retrlen = lb - fb if retrlen < 0:
--- a/mercurial/changelog.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/changelog.py Mon Jan 25 00:05:27 2010 -0600 @@ -78,7 +78,7 @@ doff = self.offset - self.size self.data.insert(0, "".join(self.data)) del self.data[1:] - s = self.data[0][doff:doff+count] + s = self.data[0][doff:doff + count] self.offset += len(s) ret += s return ret
--- a/mercurial/cmdutil.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/cmdutil.py Mon Jan 25 00:05:27 2010 -0600 @@ -93,7 +93,8 @@ limit = int(limit) except ValueError: raise util.Abort(_('limit must be a positive integer')) - if limit <= 0: raise util.Abort(_('limit must be positive')) + if limit <= 0: + raise util.Abort(_('limit must be positive')) else: limit = None return limit @@ -166,7 +167,7 @@ start = revfix(repo, start, 0) end = revfix(repo, end, len(repo) - 1) step = start > end and -1 or 1 - for rev in xrange(start, end+step, step): + for rev in xrange(start, end + step, step): if rev in seen: continue seen.add(rev) @@ -569,21 +570,21 @@ if opts['daemon'] and not opts['daemon_pipefds']: # Signal child process startup with file removal lockfd, lockpath = tempfile.mkstemp(prefix='hg-service-') - os.close(lockfd) + os.close(lockfd) try: if not runargs: runargs = util.hgcmd() + sys.argv[1:] runargs.append('--daemon-pipefds=%s' % lockpath) # Don't pass --cwd to the child process, because we've already # changed directory. - for i in xrange(1,len(runargs)): + for i in xrange(1, len(runargs)): if runargs[i].startswith('--cwd='): del runargs[i] break elif runargs[i].startswith('--cwd'): - del runargs[i:i+2] + del runargs[i:i + 2] break - pid = util.spawndetached(runargs) + pid = util.spawndetached(runargs) while os.path.exists(lockpath): time.sleep(0.1) finally: @@ -903,13 +904,15 @@ if not os.path.split(mapfile)[0]: mapname = (templater.templatepath('map-cmdline.' + mapfile) or templater.templatepath(mapfile)) - if mapname: mapfile = mapname + if mapname: + mapfile = mapname try: t = changeset_templater(ui, repo, patch, opts, mapfile, buffered) except SyntaxError, inst: raise util.Abort(inst.args[0]) - if tmpl: t.use_template(tmpl) + if tmpl: + t.use_template(tmpl) return t def finddate(ui, repo, date): @@ -951,13 +954,13 @@ def increasing_windows(start, end, windowsize=8, sizelimit=512): if start < end: while start < end: - yield start, min(windowsize, end-start) + yield start, min(windowsize, end - start) start += windowsize if windowsize < sizelimit: windowsize *= 2 else: while start > end: - yield start, min(windowsize, start-end-1) + yield start, min(windowsize, start - end - 1) start -= windowsize if windowsize < sizelimit: windowsize *= 2 @@ -1014,7 +1017,8 @@ # A zero count may be a directory or deleted file, so # try to find matching entries on the slow path. if follow: - raise util.Abort(_('cannot follow nonexistent file: "%s"') % file_) + raise util.Abort( + _('cannot follow nonexistent file: "%s"') % file_) slowpath = True break else: @@ -1088,7 +1092,7 @@ rev = repo.changelog.rev(repo.lookup(rev)) ff = followfilter() stop = min(revs[0], revs[-1]) - for x in xrange(rev, stop-1, -1): + for x in xrange(rev, stop - 1, -1): if ff.match(x): wanted.discard(x) @@ -1103,7 +1107,7 @@ for i, window in increasing_windows(0, len(revs)): change = util.cachefunc(repo.changectx) - nrevs = [rev for rev in revs[i:i+window] if want(rev)] + nrevs = [rev for rev in revs[i:i + window] if want(rev)] for rev in sorted(nrevs): fns = fncache.get(rev) ctx = change(rev)
--- a/mercurial/commands.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/commands.py Mon Jan 25 00:05:27 2010 -0600 @@ -34,7 +34,7 @@ names = [] m = cmdutil.match(repo, pats, opts) oldbad = m.bad - m.bad = lambda x,y: bad.append(x) or oldbad(x,y) + m.bad = lambda x, y: bad.append(x) or oldbad(x, y) for f in repo.walk(m): exact = m.exact(f) @@ -69,7 +69,7 @@ raise util.Abort(_('similarity must be a number')) if sim < 0 or sim > 100: raise util.Abort(_('similarity must be between 0 and 100')) - return cmdutil.addremove(repo, pats, opts, similarity=sim/100.) + return cmdutil.addremove(repo, pats, opts, similarity=sim / 100.0) def annotate(ui, repo, *pats, **opts): """show changeset information by line for each file @@ -98,8 +98,8 @@ ('follow', lambda x: x[0].path()), ] - if (not opts.get('user') and not opts.get('changeset') and not opts.get('date') - and not opts.get('follow')): + if (not opts.get('user') and not opts.get('changeset') + and not opts.get('date') and not opts.get('follow')): opts['number'] = 1 linenumber = opts.get('line_number') is not None @@ -173,7 +173,8 @@ if kind == 'files': raise util.Abort(_('cannot archive plain files to stdout')) dest = sys.stdout - if not prefix: prefix = os.path.basename(repo.root) + '-%h' + if not prefix: + prefix = os.path.basename(repo.root) + '-%h' prefix = cmdutil.make_filename(repo, prefix, node) archival.archive(repo, dest, node, kind, not opts.get('no_decode'), matchfn, prefix) @@ -257,7 +258,8 @@ if op1 != node: hg.clean(repo, op1, show_stats=False) if opts.get('merge'): - ui.status(_('merging with changeset %s\n') % nice(repo.changelog.tip())) + ui.status(_('merging with changeset %s\n') + % nice(repo.changelog.tip())) hg.merge(repo, hex(repo.changelog.tip())) else: ui.status(_('the backout changeset is a new head - ' @@ -868,11 +870,14 @@ if showdate: if ent[3] == -1: # Pad or slice to locale representation - locale_len = len(time.strftime("%Y-%m-%d %H:%M:%S ", time.localtime(0))) + locale_len = len(time.strftime("%Y-%m-%d %H:%M:%S ", + time.localtime(0))) timestr = 'unset' - timestr = timestr[:locale_len] + ' '*(locale_len - len(timestr)) + timestr = (timestr[:locale_len] + + ' ' * (locale_len - len(timestr))) else: - timestr = time.strftime("%Y-%m-%d %H:%M:%S ", time.localtime(ent[3])) + timestr = time.strftime("%Y-%m-%d %H:%M:%S ", + time.localtime(ent[3])) if ent[1] & 020000: mode = 'lnk' else: @@ -884,7 +889,7 @@ def debugsub(ui, repo, rev=None): if rev == '': rev = None - for k,v in sorted(repo[rev].substate.items()): + for k, v in sorted(repo[rev].substate.items()): ui.write('path %s\n' % k) ui.write(' source %s\n' % v[0]) ui.write(' revision %s\n' % v[1]) @@ -1428,7 +1433,8 @@ bheads = repo.branchheads(branch, start, closed=closed) if not bheads: if not opts.get('rev'): - ui.warn(_("no open branch heads on branch %s\n") % encodedbranch) + ui.warn(_("no open branch heads on branch %s\n") + % encodedbranch) elif branch != branchrev: ui.warn(_("no changes on branch %s containing %s are " "reachable from %s\n") @@ -1640,7 +1646,8 @@ for title, options in option_lists: opt_output.append(("\n%s" % title, None)) for shortopt, longopt, default, desc in options: - if _("DEPRECATED") in desc and not ui.verbose: continue + if _("DEPRECATED") in desc and not ui.verbose: + continue opt_output.append(("%2s%s" % (shortopt and "-%s" % shortopt, longopt and " --%s" % longopt), "%s%s" % (desc, @@ -1851,7 +1858,8 @@ patch.patch(tmpname, ui, strip=strip, cwd=repo.root, files=files, eolmode=None) finally: - files = patch.updatedir(ui, repo, files, similarity=sim/100.) + files = patch.updatedir(ui, repo, files, + similarity=sim / 100.0) if not opts.get('no_commit'): m = cmdutil.matchfiles(repo, files or []) n = repo.commit(message, opts.get('user') or user, @@ -1976,7 +1984,7 @@ ret = 1 m = cmdutil.match(repo, pats, opts, default='relglob') - m.bad = lambda x,y: False + m.bad = lambda x, y: False for abs in repo[rev].walk(m): if not rev and abs not in repo.dirstate: continue @@ -2168,7 +2176,8 @@ """ limit = cmdutil.loglimit(opts) dest, revs, checkout = hg.parseurl( - ui.expandpath(dest or 'default-push', dest or 'default'), opts.get('rev')) + ui.expandpath(dest or 'default-push', dest or 'default'), + opts.get('rev')) if revs: revs = [repo.lookup(rev) for rev in revs] @@ -2324,7 +2333,8 @@ URLs. If DESTINATION is omitted, a default path will be used. """ dest, revs, checkout = hg.parseurl( - ui.expandpath(dest or 'default-push', dest or 'default'), opts.get('rev')) + ui.expandpath(dest or 'default-push', dest or 'default'), + opts.get('rev')) other = hg.repository(cmdutil.remoteui(repo, opts), dest) ui.status(_('pushing to %s\n') % url.hidepassword(dest)) if revs: @@ -2561,7 +2571,7 @@ # walk dirstate. m = cmdutil.match(repo, pats, opts) - m.bad = lambda x,y: False + m.bad = lambda x, y: False for abs in repo.walk(m): names[abs] = m.rel(abs), m.exact(abs) @@ -2634,7 +2644,8 @@ msg = msg(abs) ui.status(msg % rel) for table, hitlist, misslist, backuphit, backupmiss in disptable: - if abs not in table: continue + if abs not in table: + continue # file has changed in dirstate if mfentry: handle(hitlist, backuphit) @@ -2650,7 +2661,8 @@ continue # file has not changed in dirstate if node == parent: - if exact: ui.warn(_('no changes needed to %s\n') % rel) + if exact: + ui.warn(_('no changes needed to %s\n') % rel) continue if pmf is None: # only need parent manifest in this unlikely case, @@ -2782,7 +2794,8 @@ util.set_signal_handler() self.httpd = server.create_server(baseui, repo) - if not ui.verbose: return + if not ui.verbose: + return if self.httpd.prefix: prefix = self.httpd.prefix.strip('/') + '/' @@ -2939,7 +2952,7 @@ _('%d deleted'), _('%d unknown'), _('%d ignored'), _('%d unresolved')] t = [] - for s,l in zip(st, labels): + for s, l in zip(st, labels): if s: t.append(l % len(s)) @@ -3463,7 +3476,8 @@ [('0', 'print0', None, _('end fields with NUL')), ('', 'all', None, _('print all revisions that match')), ('f', 'follow', None, - _('follow changeset history, or file history across copies and renames')), + _('follow changeset history,' + ' or file history across copies and renames')), ('i', 'ignore-case', None, _('ignore case when matching')), ('l', 'files-with-matches', None, _('print only filenames and revisions that match')), @@ -3499,7 +3513,8 @@ ('b', 'base', '', _('base path')), ('f', 'force', None, _('skip check for outstanding uncommitted changes')), - ('', 'no-commit', None, _("don't commit, just update the working directory")), + ('', 'no-commit', None, + _("don't commit, just update the working directory")), ('', 'exact', None, _('apply patch to the nodes from which it was generated')), ('', 'import-branch', None, @@ -3533,7 +3548,8 @@ "^log|history": (log, [('f', 'follow', None, - _('follow changeset history, or file history across copies and renames')), + _('follow changeset history,' + ' or file history across copies and renames')), ('', 'follow-first', None, _('only follow the first parent of merge changesets')), ('d', 'date', '', _('show revisions matching date spec')), @@ -3545,7 +3561,8 @@ ('u', 'user', [], _('revisions committed by user')), ('b', 'only-branch', [], _('show only changesets within the given named branch')), - ('P', 'prune', [], _('do not display revision or any of its ancestors')), + ('P', 'prune', [], + _('do not display revision or any of its ancestors')), ] + logopts + walkopts, _('[OPTION]... [FILE]')), "manifest": @@ -3632,8 +3649,10 @@ ('', 'daemon-pipefds', '', _('used internally by daemon mode')), ('E', 'errorlog', '', _('name of error log file to write to')), ('p', 'port', 0, _('port to listen on (default: 8000)')), - ('a', 'address', '', _('address to listen on (default: all interfaces)')), - ('', 'prefix', '', _('prefix path to serve from (default: server root)')), + ('a', 'address', '', + _('address to listen on (default: all interfaces)')), + ('', 'prefix', '', + _('prefix path to serve from (default: server root)')), ('n', 'name', '', _('name to show in web pages (default: working directory)')), ('', 'webdir-conf', '', _('name of the webdir config file'
--- a/mercurial/context.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/context.py Mon Jan 25 00:05:27 2010 -0600 @@ -87,20 +87,33 @@ for f in sorted(self._manifest): yield f - def changeset(self): return self._changeset - def manifest(self): return self._manifest - def manifestnode(self): return self._changeset[0] + def changeset(self): + return self._changeset + def manifest(self): + return self._manifest + def manifestnode(self): + return self._changeset[0] - def rev(self): return self._rev - def node(self): return self._node - def hex(self): return hex(self._node) - def user(self): return self._changeset[1] - def date(self): return self._changeset[2] - def files(self): return self._changeset[3] - def description(self): return self._changeset[4] - def branch(self): return self._changeset[5].get("branch") - def extra(self): return self._changeset[5] - def tags(self): return self._repo.nodetags(self._node) + def rev(self): + return self._rev + def node(self): + return self._node + def hex(self): + return hex(self._node) + def user(self): + return self._changeset[1] + def date(self): + return self._changeset[2] + def files(self): + return self._changeset[3] + def description(self): + return self._changeset[4] + def branch(self): + return self._changeset[5].get("branch") + def extra(self): + return self._changeset[5] + def tags(self): + return self._repo.nodetags(self._node) def parents(self): """return contexts for each parent changeset""" @@ -283,10 +296,14 @@ return filectx(self._repo, self._path, fileid=fileid, filelog=self._filelog) - def filerev(self): return self._filerev - def filenode(self): return self._filenode - def flags(self): return self._changectx.flags(self._path) - def filelog(self): return self._filelog + def filerev(self): + return self._filerev + def filenode(self): + return self._filenode + def flags(self): + return self._changectx.flags(self._path) + def filelog(self): + return self._filelog def rev(self): if '_changectx' in self.__dict__: @@ -295,23 +312,38 @@ return self._changectx.rev() return self._filelog.linkrev(self._filerev) - def linkrev(self): return self._filelog.linkrev(self._filerev) - def node(self): return self._changectx.node() - def hex(self): return hex(self.node()) - def user(self): return self._changectx.user() - def date(self): return self._changectx.date() - def files(self): return self._changectx.files() - def description(self): return self._changectx.description() - def branch(self): return self._changectx.branch() - def extra(self): return self._changectx.extra() - def manifest(self): return self._changectx.manifest() - def changectx(self): return self._changectx + def linkrev(self): + return self._filelog.linkrev(self._filerev) + def node(self): + return self._changectx.node() + def hex(self): + return hex(self.node()) + def user(self): + return self._changectx.user() + def date(self): + return self._changectx.date() + def files(self): + return self._changectx.files() + def description(self): + return self._changectx.description() + def branch(self): + return self._changectx.branch() + def extra(self): + return self._changectx.extra() + def manifest(self): + return self._changectx.manifest() + def changectx(self): + return self._changectx - def data(self): return self._filelog.read(self._filenode) - def path(self): return self._path - def size(self): return self._filelog.size(self._filerev) + def data(self): + return self._filelog.read(self._filenode) + def path(self): + return self._path + def size(self): + return self._filelog.size(self._filerev) - def cmp(self, text): return self._filelog.cmp(self._filenode, text) + def cmp(self, text): + return self._filelog.cmp(self._filenode, text) def renamed(self): """check if file was actually renamed in this changeset revision @@ -348,7 +380,7 @@ pl[0] = (r[0], r[1], None) return [filectx(self._repo, p, fileid=n, filelog=l) - for p,n,l in pl if n != nullid] + for p, n, l in pl if n != nullid] def children(self): # hard for renames @@ -594,22 +626,33 @@ self._parents = [changectx(self._repo, x) for x in p] return self._parents - def manifest(self): return self._manifest - - def user(self): return self._user or self._repo.ui.username() - def date(self): return self._date - def description(self): return self._text + def manifest(self): + return self._manifest + def user(self): + return self._user or self._repo.ui.username() + def date(self): + return self._date + def description(self): + return self._text def files(self): return sorted(self._status[0] + self._status[1] + self._status[2]) - def modified(self): return self._status[0] - def added(self): return self._status[1] - def removed(self): return self._status[2] - def deleted(self): return self._status[3] - def unknown(self): return self._status[4] - def clean(self): return self._status[5] - def branch(self): return self._extra['branch'] - def extra(self): return self._extra + def modified(self): + return self._status[0] + def added(self): + return self._status[1] + def removed(self): + return self._status[2] + def deleted(self): + return self._status[3] + def unknown(self): + return self._status[4] + def clean(self): + return self._status[5] + def branch(self): + return self._extra['branch'] + def extra(self): + return self._extra def tags(self): t = [] @@ -685,7 +728,8 @@ def __str__(self): return "%s@%s" % (self.path(), self._changectx) - def data(self): return self._repo.wread(self._path) + def data(self): + return self._repo.wread(self._path) def renamed(self): rp = self._repo.dirstate.copied(self._path) if not rp: @@ -711,21 +755,24 @@ pl.append((path, filenode(pc, path), fl)) return [filectx(self._repo, p, fileid=n, filelog=l) - for p,n,l in pl if n != nullid] + for p, n, l in pl if n != nullid] def children(self): return [] - def size(self): return os.stat(self._repo.wjoin(self._path)).st_size + def size(self): + return os.stat(self._repo.wjoin(self._path)).st_size def date(self): t, tz = self._changectx.date() try: return (int(os.lstat(self._repo.wjoin(self._path)).st_mtime), tz) except OSError, err: - if err.errno != errno.ENOENT: raise + if err.errno != errno.ENOENT: + raise return (t, tz) - def cmp(self, text): return self._repo.wread(self._path) == text + def cmp(self, text): + return self._repo.wread(self._path) == text class memctx(object): """Use memctx to perform in-memory commits via localrepo.commitctx(). @@ -787,22 +834,37 @@ def __getitem__(self, key): return self.filectx(key) - def p1(self): return self._parents[0] - def p2(self): return self._parents[1] + def p1(self): + return self._parents[0] + def p2(self): + return self._parents[1] - def user(self): return self._user or self._repo.ui.username() - def date(self): return self._date - def description(self): return self._text - def files(self): return self.modified() - def modified(self): return self._status[0] - def added(self): return self._status[1] - def removed(self): return self._status[2] - def deleted(self): return self._status[3] - def unknown(self): return self._status[4] - def clean(self): return self._status[5] - def branch(self): return self._extra['branch'] - def extra(self): return self._extra - def flags(self, f): return self[f].flags() + def user(self): + return self._user or self._repo.ui.username() + def date(self): + return self._date + def description(self): + return self._text + def files(self): + return self.modified() + def modified(self): + return self._status[0] + def added(self): + return self._status[1] + def removed(self): + return self._status[2] + def deleted(self): + return self._status[3] + def unknown(self): + return self._status[4] + def clean(self): + return self._status[5] + def branch(self): + return self._extra['branch'] + def extra(self): + return self._extra + def flags(self, f): + return self[f].flags() def parents(self): """return contexts for each parent changeset""" @@ -832,11 +894,19 @@ if copied: self._copied = (copied, nullid) - def __nonzero__(self): return True - def __str__(self): return "%s@%s" % (self.path(), self._changectx) - def path(self): return self._path - def data(self): return self._data - def flags(self): return self._flags - def isexec(self): return 'x' in self._flags - def islink(self): return 'l' in self._flags - def renamed(self): return self._copied + def __nonzero__(self): + return True + def __str__(self): + return "%s@%s" % (self.path(), self._changectx) + def path(self): + return self._path + def data(self): + return self._data + def flags(self): + return self._flags + def isexec(self): + return 'x' in self._flags + def islink(self): + return 'l' in self._flags + def renamed(self): + return self._copied
--- a/mercurial/copies.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/copies.py Mon Jan 25 00:05:27 2010 -0600 @@ -190,8 +190,10 @@ repo.ui.debug(" all copies found (* = to merge, ! = divergent):\n") for f in fullcopy: note = "" - if f in copy: note += "*" - if f in diverge2: note += "!" + if f in copy: + note += "*" + if f in diverge2: + note += "!" repo.ui.debug(" %s -> %s %s\n" % (f, fullcopy[f], note)) del diverge2
--- a/mercurial/diffhelpers.c Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/diffhelpers.c Mon Jan 25 00:05:27 2010 -0600 @@ -33,7 +33,7 @@ hline = PyString_FromStringAndSize(l, sz-1); if (c == ' ' || c == '+') { - PyObject *rline = PyString_FromStringAndSize(l+1, sz-2); + PyObject *rline = PyString_FromStringAndSize(l + 1, sz - 2); PyList_SetItem(b, blen-1, rline); } if (c == ' ' || c == '-') { @@ -74,13 +74,13 @@ if (!PyArg_ParseTuple(args, "OOiiOO", &fp, &hunk, &lena, &lenb, &a, &b)) return NULL; - while(1) { + while (1) { todoa = lena - PyList_Size(a); todob = lenb - PyList_Size(b); num = todoa > todob ? todoa : todob; if (num == 0) break; - for (i = 0 ; i < num ; i++) { + for (i = 0; i < num; i++) { x = PyFile_GetLine(fp, 0); s = PyString_AS_STRING(x); c = *s; @@ -135,10 +135,10 @@ if (alen > blen - bstart) { return Py_BuildValue("l", -1); } - for (i = 0 ; i < alen ; i++) { + for (i = 0; i < alen; i++) { sa = PyString_AS_STRING(PyList_GET_ITEM(a, i)); sb = PyString_AS_STRING(PyList_GET_ITEM(b, i + bstart)); - if (strcmp(sa+1, sb) != 0) + if (strcmp(sa + 1, sb) != 0) return Py_BuildValue("l", -1); } return Py_BuildValue("l", 0);
--- a/mercurial/dirstate.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/dirstate.py Mon Jan 25 00:05:27 2010 -0600 @@ -87,13 +87,14 @@ elif l > 0 and l < 40: raise util.Abort(_('working directory state appears damaged!')) except IOError, err: - if err.errno != errno.ENOENT: raise + if err.errno != errno.ENOENT: + raise return [nullid, nullid] @propertycache def _dirs(self): dirs = {} - for f,s in self._map.iteritems(): + for f, s in self._map.iteritems(): if s[0] != 'r': _incdirs(dirs, f) return dirs @@ -157,7 +158,8 @@ def getcwd(self): cwd = os.getcwd() - if cwd == self._root: return '' + if cwd == self._root: + return '' # self._root ends with a path separator if self._root is '/' or 'C:\' rootsep = self._root if not util.endswithsep(rootsep): @@ -215,7 +217,8 @@ try: st = self._opener("dirstate").read() except IOError, err: - if err.errno != errno.ENOENT: raise + if err.errno != errno.ENOENT: + raise return if not st: return @@ -440,11 +443,16 @@ def badtype(mode): kind = _('unknown') - if stat.S_ISCHR(mode): kind = _('character device') - elif stat.S_ISBLK(mode): kind = _('block device') - elif stat.S_ISFIFO(mode): kind = _('fifo') - elif stat.S_ISSOCK(mode): kind = _('socket') - elif stat.S_ISDIR(mode): kind = _('directory') + if stat.S_ISCHR(mode): + kind = _('character device') + elif stat.S_ISBLK(mode): + kind = _('block device') + elif stat.S_ISFIFO(mode): + kind = _('fifo') + elif stat.S_ISSOCK(mode): + kind = _('socket') + elif stat.S_ISDIR(mode): + kind = _('directory') return _('unsupported file type (type is %s)') % kind ignore = self._ignore
--- a/mercurial/dispatch.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/dispatch.py Mon Jan 25 00:05:27 2010 -0600 @@ -35,7 +35,8 @@ for name in 'SIGBREAK', 'SIGHUP', 'SIGTERM': num = getattr(signal, name, None) - if num: signal.signal(num, catchterm) + if num: + signal.signal(num, catchterm) try: try:
--- a/mercurial/encoding.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/encoding.py Mon Jan 25 00:05:27 2010 -0600 @@ -62,7 +62,7 @@ try: return s.decode(encoding, encodingmode).encode("utf-8") except UnicodeDecodeError, inst: - sub = s[max(0, inst.start-10):inst.start+10] + sub = s[max(0, inst.start - 10):inst.start + 10] raise error.Abort("decoding near '%s': %s!" % (sub, inst)) except LookupError, k: raise error.Abort("%s, please check your locale settings" % k)
--- a/mercurial/fancyopts.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/fancyopts.py Mon Jan 25 00:05:27 2010 -0600 @@ -16,7 +16,7 @@ extraargs = [] if '--' in args: stopindex = args.index('--') - extraargs = args[stopindex+1:] + extraargs = args[stopindex + 1:] args = args[:stopindex] opts, parseargs = getopt.getopt(args, options, longoptions) args = [] @@ -77,8 +77,10 @@ # does it take a parameter? if not (default is None or default is True or default is False): - if short: short += ':' - if oname: oname += '=' + if short: + short += ':' + if oname: + oname += '=' if short: shortlist += short if name:
--- a/mercurial/filelog.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/filelog.py Mon Jan 25 00:05:27 2010 -0600 @@ -17,7 +17,7 @@ if not t.startswith('\1\n'): return t s = t.index('\1\n', 2) - return t[s+2:] + return t[s + 2:] def _readmeta(self, node): t = self.revision(node)
--- a/mercurial/filemerge.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/filemerge.py Mon Jan 25 00:05:27 2010 -0600 @@ -65,19 +65,19 @@ # then merge tools tools = {} - for k,v in ui.configitems("merge-tools"): + for k, v in ui.configitems("merge-tools"): t = k.split('.')[0] if t not in tools: tools[t] = int(_toolstr(ui, t, "priority", "0")) names = tools.keys() - tools = sorted([(-p,t) for t,p in tools.items()]) + tools = sorted([(-p, t) for t, p in tools.items()]) uimerge = ui.config("ui", "merge") if uimerge: if uimerge not in names: return (uimerge, uimerge) tools.insert(0, (None, uimerge)) # highest priority tools.append((None, "hgmerge")) # the old default, if found - for p,t in tools: + for p, t in tools: if check(t, None, symlink, binary): toolpath = _findtool(ui, t) return (t, '"' + toolpath + '"')
--- a/mercurial/help.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/help.py Mon Jan 25 00:05:27 2010 -0600 @@ -13,17 +13,19 @@ def moduledoc(file): '''return the top-level python documentation for the given file - Loosely inspired by pydoc.source_synopsis(), but rewritten to handle \''' - as well as """ and to return the whole text instead of just the synopsis''' + Loosely inspired by pydoc.source_synopsis(), but rewritten to + handle triple quotes and to return the whole text instead of just + the synopsis''' result = [] line = file.readline() while line[:1] == '#' or not line.strip(): line = file.readline() - if not line: break + if not line: + break start = line[:3] - if start == '"""' or start == "'''": + if start == '\"\"\"' or start == "\'\'\'": line = line[3:] while line: if line.rstrip().endswith(start): @@ -83,11 +85,15 @@ (["config"], _("Configuration Files"), loaddoc('config')), (["dates"], _("Date Formats"), loaddoc('dates')), (["patterns"], _("File Name Patterns"), loaddoc('patterns')), - (['environment', 'env'], _('Environment Variables'), loaddoc('environment')), - (['revs', 'revisions'], _('Specifying Single Revisions'), loaddoc('revisions')), - (['mrevs', 'multirevs'], _('Specifying Multiple Revisions'), loaddoc('multirevs')), + (['environment', 'env'], _('Environment Variables'), + loaddoc('environment')), + (['revs', 'revisions'], _('Specifying Single Revisions'), + loaddoc('revisions')), + (['mrevs', 'multirevs'], _('Specifying Multiple Revisions'), + loaddoc('multirevs')), (['diffs'], _('Diff Formats'), loaddoc('diffs')), - (['templating', 'templates'], _('Template Usage'), loaddoc('templates')), + (['templating', 'templates'], _('Template Usage'), + loaddoc('templates')), (['urls'], _('URL Paths'), loaddoc('urls')), (["extensions"], _("Using additional features"), extshelp), )
--- a/mercurial/hg.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/hg.py Mon Jan 25 00:05:27 2010 -0600 @@ -348,7 +348,8 @@ def clean(repo, node, show_stats=True): """forcibly switch the working directory to node, clobbering changes""" stats = _merge.update(repo, node, False, True, None) - if show_stats: _showstats(repo, stats) + if show_stats: + _showstats(repo, stats) return stats[3] > 0 def merge(repo, node, force=None, remind=True):
--- a/mercurial/hgweb/hgweb_mod.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/hgweb/hgweb_mod.py Mon Jan 25 00:05:27 2010 -0600 @@ -136,7 +136,7 @@ style = cmd.rfind('-') if style != -1: req.form['style'] = [cmd[:style]] - cmd = cmd[style+1:] + cmd = cmd[style + 1:] # avoid accepting e.g. style parameter as command if hasattr(webcommands, cmd):
--- a/mercurial/hgweb/hgwebdir_mod.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/hgweb/hgwebdir_mod.py Mon Jan 25 00:05:27 2010 -0600 @@ -324,7 +324,7 @@ style, mapfile = templater.stylemap(styles) if style == styles[0]: vars['style'] = style - + start = url[-1] == '?' and '&' or '?' sessionvars = webutil.sessionvars(vars, start) staticurl = config('web', 'staticurl') or url + 'static/'
--- a/mercurial/hgweb/webcommands.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/hgweb/webcommands.py Mon Jan 25 00:05:27 2010 -0600 @@ -228,7 +228,7 @@ start = max(0, pos - revcount + 1) end = min(count, start + revcount) pos = end - 1 - parity = paritygen(web.stripecount, offset=start-end) + parity = paritygen(web.stripecount, offset=start - end) changenav = webutil.revnavgen(pos, revcount, count, web.repo.changectx) @@ -334,7 +334,7 @@ emptydirs = [] h = dirs[d] while isinstance(h, dict) and len(h) == 1: - k,v = h.items()[0] + k, v = h.items()[0] if v: emptydirs.append(k) h = v @@ -378,9 +378,9 @@ return tmpl("tags", node=hex(web.repo.changelog.tip()), - entries=lambda **x: entries(False,0, **x), - entriesnotip=lambda **x: entries(True,0, **x), - latestentry=lambda **x: entries(True,1, **x)) + entries=lambda **x: entries(False, 0, **x), + entriesnotip=lambda **x: entries(True, 0, **x), + latestentry=lambda **x: entries(True, 1, **x)) def branches(web, req, tmpl): b = web.repo.branchtags() @@ -437,14 +437,14 @@ b = web.repo.branchtags() l = [(-web.repo.changelog.rev(n), n, t) for t, n in b.iteritems()] - for r,n,t in sorted(l): + for r, n, t in sorted(l): yield {'parity': parity.next(), 'branch': t, 'node': hex(n), 'date': web.repo[n].date()} def changelist(**map): - parity = paritygen(web.stripecount, offset=start-end) + parity = paritygen(web.stripecount, offset=start - end) l = [] # build a list in forward order for efficiency for i in xrange(start, end): ctx = web.repo[i] @@ -600,7 +600,7 @@ count = fctx.filerev() + 1 start = max(0, fctx.filerev() - revcount + 1) # first rev on this page end = min(count, start + revcount) # last rev on this page - parity = paritygen(web.stripecount, offset=start-end) + parity = paritygen(web.stripecount, offset=start - end) def entries(limit=0, **map): l = []
--- a/mercurial/hgweb/webutil.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/hgweb/webutil.py Mon Jan 25 00:05:27 2010 -0600 @@ -59,7 +59,7 @@ yield {"label": label, "node": node} return f - return (dict(before=gen(navbefore), after=gen(navafter)), ) + return (dict(before=gen(navbefore), after=gen(navafter)),) def _siblings(siblings=[], hiderev=None): siblings = [s for s in siblings if s.node() != nullid]
--- a/mercurial/httprepo.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/httprepo.py Mon Jan 25 00:05:27 2010 -0600 @@ -107,9 +107,10 @@ proto.startswith('text/plain') or proto.startswith('application/hg-changegroup')): self.ui.debug("requested URL: '%s'\n" % url.hidepassword(cu)) - raise error.RepoError(_("'%s' does not appear to be an hg repository:\n" - "---%%<--- (%s)\n%s\n---%%<---\n") - % (safeurl, proto, resp.read())) + raise error.RepoError( + _("'%s' does not appear to be an hg repository:\n" + "---%%<--- (%s)\n%s\n---%%<---\n") + % (safeurl, proto, resp.read())) if proto.startswith('application/mercurial-'): try: @@ -171,7 +172,7 @@ n = " ".join(map(hex, nodes)) d = self.do_read("branches", nodes=n) try: - br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ] + br = [tuple(map(bin, b.split(" "))) for b in d.splitlines()] return br except: raise error.ResponseError(_("unexpected response:"), d) @@ -183,7 +184,8 @@ n = " ".join(["-".join(map(hex, p)) for p in pairs[i:i + batch]]) d = self.do_read("between", pairs=n) try: - r += [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ] + r += [l and map(bin, l.split(" ")) or [] + for l in d.splitlines()] except: raise error.ResponseError(_("unexpected response:"), d) return r
--- a/mercurial/keepalive.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/keepalive.py Mon Jan 25 00:05:27 2010 -0600 @@ -120,7 +120,8 @@ DEBUG = None import sys -if sys.version_info < (2, 4): HANDLE_ERRORS = 1 +if sys.version_info < (2, 4): + HANDLE_ERRORS = 1 else: HANDLE_ERRORS = 0 class ConnectionManager: @@ -137,7 +138,8 @@ def add(self, host, connection, ready): self._lock.acquire() try: - if not host in self._hostmap: self._hostmap[host] = [] + if not host in self._hostmap: + self._hostmap[host] = [] self._hostmap[host].append(connection) self._connmap[connection] = host self._readymap[connection] = ready @@ -160,8 +162,10 @@ self._lock.release() def set_ready(self, connection, ready): - try: self._readymap[connection] = ready - except KeyError: pass + try: + self._readymap[connection] = ready + except KeyError: + pass def get_ready_conn(self, host): conn = None @@ -214,7 +218,8 @@ self._cm.set_ready(connection, 1) def _remove_connection(self, host, connection, close=0): - if close: connection.close() + if close: + connection.close() self._cm.remove(connection) #### Transaction Execution @@ -233,7 +238,8 @@ # if this response is non-None, then it worked and we're # done. Break out, skipping the else block. - if r: break + if r: + break # connection is bad - possibly closed by server # discard it and ask for the next free connection @@ -243,8 +249,9 @@ else: # no (working) free connections were found. Create a new one. h = http_class(host) - if DEBUG: DEBUG.info("creating new connection to %s (%d)", - host, id(h)) + if DEBUG: + DEBUG.info("creating new connection to %s (%d)", + host, id(h)) self._cm.add(host, h, 0) self._start_transaction(h, req) r = h.getresponse() @@ -252,9 +259,11 @@ raise urllib2.URLError(err) # if not a persistent connection, don't try to reuse it - if r.will_close: self._cm.remove(h) + if r.will_close: + self._cm.remove(h) - if DEBUG: DEBUG.info("STATUS: %s, %s", r.status, r.reason) + if DEBUG: + DEBUG.info("STATUS: %s, %s", r.status, r.reason) r._handler = self r._host = host r._url = req.get_full_url() @@ -293,8 +302,9 @@ # same exception was raised, etc. The tradeoff is # that it's now possible this call will raise # a DIFFERENT exception - if DEBUG: DEBUG.error("unexpected exception - closing " + \ - "connection to %s (%d)", host, id(h)) + if DEBUG: + DEBUG.error("unexpected exception - closing " + "connection to %s (%d)", host, id(h)) self._cm.remove(h) h.close() raise @@ -304,11 +314,13 @@ # bad header back. This is most likely to happen if # the socket has been closed by the server since we # last used the connection. - if DEBUG: DEBUG.info("failed to re-use connection to %s (%d)", - host, id(h)) + if DEBUG: + DEBUG.info("failed to re-use connection to %s (%d)", + host, id(h)) r = None else: - if DEBUG: DEBUG.info("re-using connection to %s (%d)", host, id(h)) + if DEBUG: + DEBUG.info("re-using connection to %s (%d)", host, id(h)) return r @@ -319,7 +331,7 @@ if sys.version_info >= (2, 4): headers.update(req.unredirected_hdrs) headers.update(self.parent.addheaders) - headers = dict((n.lower(), v) for n,v in headers.items()) + headers = dict((n.lower(), v) for n, v in headers.items()) skipheaders = {} for n in ('host', 'accept-encoding'): if n in headers: @@ -477,13 +489,18 @@ i = self._rbuf.find('\n') while i < 0 and not (0 < limit <= len(self._rbuf)): new = self._raw_read(self._rbufsize) - if not new: break + if not new: + break i = new.find('\n') - if i >= 0: i = i + len(self._rbuf) + if i >= 0: + i = i + len(self._rbuf) self._rbuf = self._rbuf + new - if i < 0: i = len(self._rbuf) - else: i = i+1 - if 0 <= limit < len(self._rbuf): i = limit + if i < 0: + i = len(self._rbuf) + else: + i = i + 1 + if 0 <= limit < len(self._rbuf): + i = limit data, self._rbuf = self._rbuf[:i], self._rbuf[i:] return data @@ -492,7 +509,8 @@ list = [] while 1: line = self.readline() - if not line: break + if not line: + break list.append(line) total += len(line) if sizehint and total >= sizehint: @@ -528,9 +546,10 @@ if self.debuglevel > 0: print "send:", repr(str) try: - blocksize=8192 + blocksize = 8192 if hasattr(str,'read') : - if self.debuglevel > 0: print "sendIng a read()able" + if self.debuglevel > 0: + print "sendIng a read()able" data=str.read(blocksize) while data: self.sock.sendall(data) @@ -588,8 +607,10 @@ fo = urllib2.urlopen(url) fo.read() fo.close() - try: status, reason = fo.status, fo.reason - except AttributeError: status, reason = None, None + try: + status, reason = fo.status, fo.reason + except AttributeError: + status, reason = None, None except IOError, e: print " EXCEPTION: %s" % e raise @@ -635,7 +656,8 @@ foo = '' while 1: f = fo.readline() - if f: foo = foo + f + if f: + foo = foo + f else: break fo.close() m = md5.new(foo) @@ -657,14 +679,15 @@ urllib2.install_opener(opener) t2 = fetch(N, url) print ' TIME: %.3f s' % t2 - print ' improvement factor: %.2f' % (t1/t2, ) + print ' improvement factor: %.2f' % (t1 / t2) def fetch(N, url, delay=0): import time lens = [] starttime = time.time() for i in range(N): - if delay and i > 0: time.sleep(delay) + if delay and i > 0: + time.sleep(delay) fo = urllib2.urlopen(url) foo = fo.read() fo.close() @@ -683,7 +706,8 @@ global DEBUG dbbackup = DEBUG class FakeLogger: - def debug(self, msg, *args): print msg % args + def debug(self, msg, *args): + print msg % args info = warning = error = debug DEBUG = FakeLogger() print " fetching the file to establish a connection"
--- a/mercurial/localrepo.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/localrepo.py Mon Jan 25 00:05:27 2010 -0600 @@ -319,7 +319,7 @@ # TODO: rename this function? tiprev = len(self) - 1 if lrev != tiprev: - self._updatebranchcache(partial, lrev+1, tiprev+1) + self._updatebranchcache(partial, lrev + 1, tiprev + 1) self._writebranchcache(partial, self.changelog.tip(), tiprev) return partial @@ -377,7 +377,8 @@ # invalidate the cache raise ValueError('invalidating branch cache (tip differs)') for l in lines: - if not l: continue + if not l: + continue node, label = l.split(" ", 1) partial.setdefault(label.strip(), []).append(bin(node)) except KeyboardInterrupt: @@ -562,7 +563,8 @@ # abort here if the journal already exists if os.path.exists(self.sjoin("journal")): - raise error.RepoError(_("abandoned transaction found - run hg recover")) + raise error.RepoError( + _("abandoned transaction found - run hg recover")) # save dirstate for rollback try: @@ -587,7 +589,8 @@ try: if os.path.exists(self.sjoin("journal")): self.ui.status(_("rolling back interrupted transaction\n")) - transaction.rollback(self.sopener, self.sjoin("journal"), self.ui.warn) + transaction.rollback(self.sopener, self.sjoin("journal"), + self.ui.warn) self.invalidate() return True else: @@ -603,7 +606,8 @@ lock = self.lock() if os.path.exists(self.sjoin("undo")): self.ui.status(_("rolling back last transaction\n")) - transaction.rollback(self.sopener, self.sjoin("undo"), self.ui.warn) + transaction.rollback(self.sopener, self.sjoin("undo"), + self.ui.warn) util.rename(self.join("undo.dirstate"), self.join("dirstate")) try: branch = self.opener("undo.branch").read() @@ -1339,7 +1343,7 @@ self.ui.debug("request %d: %s\n" % (reqcnt, " ".join(map(short, r)))) for p in xrange(0, len(r), 10): - for b in remote.branches(r[p:p+10]): + for b in remote.branches(r[p:p + 10]): self.ui.debug("received %s:%s\n" % (short(b[0]), short(b[1]))) unknown.append(b) @@ -1609,7 +1613,8 @@ ret = self.prepush(remote, force, revs) if ret[0] is not None: cg, remote_heads = ret - if force: remote_heads = ['force'] + if force: + remote_heads = ['force'] return remote.unbundle(cg, remote_heads, 'push') return ret[1]
--- a/mercurial/manifest.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/manifest.py Mon Jan 25 00:05:27 2010 -0600 @@ -11,8 +11,10 @@ class manifestdict(dict): def __init__(self, mapping=None, flags=None): - if mapping is None: mapping = {} - if flags is None: flags = {} + if mapping is None: + mapping = {} + if flags is None: + flags = {} dict.__init__(self, mapping) self._flags = flags def flags(self, f): @@ -70,7 +72,7 @@ while lo < hi: mid = (lo + hi) // 2 start = mid - while start > 0 and m[start-1] != '\n': + while start > 0 and m[start - 1] != '\n': start -= 1 end = advance(start, '\0') if m[start:end] < s: @@ -85,7 +87,7 @@ if cmp(s, found) == 0: # we know that after the null there are 40 bytes of sha1 end = advance(end + 40, '\n') - return (lo, end+1) + return (lo, end + 1) else: return (lo, lo)
--- a/mercurial/match.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/match.py Mon Jan 25 00:05:27 2010 -0600 @@ -125,10 +125,11 @@ res = '' group = 0 escape = re.escape - def peek(): return i < n and pat[i] + def peek(): + return i < n and pat[i] while i < n: c = pat[i] - i = i+1 + i += 1 if c not in '*?[{},\\': res += escape(c) elif c == '*':
--- a/mercurial/mdiff.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/mdiff.py Mon Jan 25 00:05:27 2010 -0600 @@ -96,7 +96,8 @@ return '\t\n' return '\n' - if not a and not b: return "" + if not a and not b: + return "" epoch = util.datestr((0, 0)) if not opts.text and (util.binary(a) or util.binary(b)): @@ -125,7 +126,8 @@ al = splitnewlines(a) bl = splitnewlines(b) l = list(bunidiff(a, b, al, bl, "a/" + fn1, "b/" + fn2, opts=opts)) - if not l: return "" + if not l: + return "" # difflib uses a space, rather than a tab l[0] = "%s%s" % (l[0][:-2], datetag(ad)) l[1] = "%s%s" % (l[1][:-2], datetag(bd)) @@ -182,7 +184,7 @@ for x in xrange(a2, aend): yield ' ' + l1[x] - header = [ "--- %s\t\n" % header1, "+++ %s\t\n" % header2 ] + header = ["--- %s\t\n" % header1, "+++ %s\t\n" % header2] if opts.showfunc: funcre = re.compile('\w') @@ -203,7 +205,7 @@ # in the file. If it starts later, old and new below will both be # empty and we'll continue to the next match. if i > 0: - s = diff[i-1] + s = diff[i - 1] else: s = [0, 0, 0, 0] delta = [] @@ -246,11 +248,11 @@ delta = hunk[4] else: # create a new hunk - hunk = [ astart, a2, bstart, b2, delta ] + hunk = [astart, a2, bstart, b2, delta] - delta[len(delta):] = [ ' ' + x for x in l1[astart:a1] ] - delta[len(delta):] = [ '-' + x for x in old ] - delta[len(delta):] = [ '+' + x for x in new ] + delta[len(delta):] = [' ' + x for x in l1[astart:a1]] + delta[len(delta):] = ['-' + x for x in old] + delta[len(delta):] = ['+' + x for x in new] if hunk: for x in yieldhunk(hunk, header):
--- a/mercurial/merge.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/merge.py Mon Jan 25 00:05:27 2010 -0600 @@ -135,8 +135,10 @@ _(" conflicting flags for %s\n" "(n)one, e(x)ec or sym(l)ink?") % f, (_("&None"), _("E&xec"), _("Sym&link")), 0) - if r == 1: return "x" # Exec - if r == 2: return "l" # Symlink + if r == 1: + return "x" # Exec + if r == 2: + return "l" # Symlink return "" if m and m != a: # changed from a to m return m
--- a/mercurial/minirst.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/minirst.py Mon Jan 25 00:05:27 2010 -0600 @@ -78,9 +78,9 @@ # | indented literal block | # +---------------------------+ blocks[i]['type'] = 'paragraph' - if blocks[i]['lines'][-1].endswith('::') and i+1 < len(blocks): + if blocks[i]['lines'][-1].endswith('::') and i + 1 < len(blocks): indent = blocks[i]['indent'] - adjustment = blocks[i+1]['indent'] - indent + adjustment = blocks[i + 1]['indent'] - indent if blocks[i]['lines'] == ['::']: # Expanded form: remove block @@ -104,9 +104,9 @@ adjustment -= m.end() # Mark the following indented blocks. - while i+1 < len(blocks) and blocks[i+1]['indent'] > indent: - blocks[i+1]['type'] = 'literal' - blocks[i+1]['indent'] -= adjustment + while i + 1 < len(blocks) and blocks[i + 1]['indent'] > indent: + blocks[i + 1]['type'] = 'literal' + blocks[i + 1]['indent'] -= adjustment i += 1 i += 1 return blocks @@ -133,7 +133,7 @@ item (but only if singleline is True). """ line1 = lines[i] - line2 = i+1 < len(lines) and lines[i+1] or '' + line2 = i + 1 < len(lines) and lines[i + 1] or '' if not itemre.match(line1): return False if singleline: @@ -153,7 +153,7 @@ items.append(dict(type=type, lines=[], indent=blocks[i]['indent'])) items[-1]['lines'].append(line) - blocks[i:i+1] = items + blocks[i:i + 1] = items break i += 1 return blocks @@ -221,7 +221,7 @@ """ i = 1 while i < len(blocks): - if (blocks[i]['type'] == blocks[i-1]['type'] and + if (blocks[i]['type'] == blocks[i - 1]['type'] and blocks[i]['type'] in ('bullet', 'option', 'field', 'definition')): i += 1 else:
--- a/mercurial/mpatch.c Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/mpatch.c Mon Jan 25 00:05:27 2010 -0600 @@ -35,13 +35,13 @@ #endif #ifdef _WIN32 -# ifdef _MSC_VER +#ifdef _MSC_VER /* msvc 6.0 has problems */ -# define inline __inline +#define inline __inline typedef unsigned long uint32_t; -# else -# include <stdint.h> -# endif +#else +#include <stdint.h> +#endif static uint32_t ntohl(uint32_t x) { return ((x & 0x000000ffUL) << 24) | @@ -51,13 +51,13 @@ } #else /* not windows */ -# include <sys/types.h> -# if defined __BEOS__ && !defined __HAIKU__ -# include <ByteOrder.h> -# else -# include <arpa/inet.h> -# endif -# include <inttypes.h> +#include <sys/types.h> +#if defined __BEOS__ && !defined __HAIKU__ +#include <ByteOrder.h> +#else +#include <arpa/inet.h> +#endif +#include <inttypes.h> #endif static char mpatch_doc[] = "Efficient binary patching.";
--- a/mercurial/osutil.c Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/osutil.c Mon Jan 25 00:05:27 2010 -0600 @@ -14,13 +14,13 @@ #include <string.h> #ifdef _WIN32 -# include <windows.h> -# include <io.h> +#include <windows.h> +#include <io.h> #else -# include <dirent.h> -# include <sys/stat.h> -# include <sys/types.h> -# include <unistd.h> +#include <dirent.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h> #endif /* some platforms lack the PATH_MAX definition (eg. GNU/Hurd) */ @@ -174,7 +174,7 @@ stp->st_mtime = to_python_time(&fd->ftLastWriteTime); stp->st_ctime = to_python_time(&fd->ftCreationTime); if (kind == _S_IFREG) - stp->st_size = ((__int64)fd->nFileSizeHigh << 32) + stp->st_size = ((__int64)fd->nFileSizeHigh << 32) + fd->nFileSizeLow; return Py_BuildValue("siN", fd->cFileName, kind, py_st); @@ -189,7 +189,7 @@ char *pattern; /* build the path + \* pattern string */ - pattern = malloc(plen+3); /* path + \* + \0 */ + pattern = malloc(plen + 3); /* path + \* + \0 */ if (!pattern) { PyErr_NoMemory(); goto error_nomem; @@ -485,7 +485,7 @@ goto bail; } - fd = _open_osfhandle((intptr_t) handle, flags); + fd = _open_osfhandle((intptr_t)handle, flags); if (fd == -1) { CloseHandle(handle); PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
--- a/mercurial/parsers.c Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/parsers.c Mon Jan 25 00:05:27 2010 -0600 @@ -131,14 +131,14 @@ } #ifdef _WIN32 -# ifdef _MSC_VER +#ifdef _MSC_VER /* msvc 6.0 has problems */ -# define inline __inline +#define inline __inline typedef unsigned long uint32_t; typedef unsigned __int64 uint64_t; -# else -# include <stdint.h> -# endif +#else +#include <stdint.h> +#endif static uint32_t ntohl(uint32_t x) { return ((x & 0x000000ffUL) << 24) | @@ -148,13 +148,13 @@ } #else /* not windows */ -# include <sys/types.h> -# if defined __BEOS__ && !defined __HAIKU__ -# include <ByteOrder.h> -# else -# include <arpa/inet.h> -# endif -# include <inttypes.h> +#include <sys/types.h> +#if defined __BEOS__ && !defined __HAIKU__ +#include <ByteOrder.h> +#else +#include <arpa/inet.h> +#endif +#include <inttypes.h> #endif static PyObject *parse_dirstate(PyObject *self, PyObject *args) @@ -303,16 +303,16 @@ if (n == 0) /* mask out version number for the first entry */ offset_flags &= 0xFFFF; else { - uint32_t offset_high = ntohl(*((uint32_t *) decode)); - offset_flags |= ((uint64_t) offset_high) << 32; + uint32_t offset_high = ntohl(*((uint32_t *)decode)); + offset_flags |= ((uint64_t)offset_high) << 32; } - comp_len = ntohl(*((uint32_t *) (decode + 8))); - uncomp_len = ntohl(*((uint32_t *) (decode + 12))); - base_rev = ntohl(*((uint32_t *) (decode + 16))); - link_rev = ntohl(*((uint32_t *) (decode + 20))); - parent_1 = ntohl(*((uint32_t *) (decode + 24))); - parent_2 = ntohl(*((uint32_t *) (decode + 28))); + comp_len = ntohl(*((uint32_t *)(decode + 8))); + uncomp_len = ntohl(*((uint32_t *)(decode + 12))); + base_rev = ntohl(*((uint32_t *)(decode + 16))); + link_rev = ntohl(*((uint32_t *)(decode + 20))); + parent_1 = ntohl(*((uint32_t *)(decode + 24))); + parent_2 = ntohl(*((uint32_t *)(decode + 28))); c_node_id = decode + 32; entry = _build_idx_entry(nodemap, n, offset_flags,
--- a/mercurial/patch.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/patch.py Mon Jan 25 00:05:27 2010 -0600 @@ -78,7 +78,7 @@ if subject.startswith('[PATCH'): pend = subject.find(']') if pend >= 0: - subject = subject[pend+1:].lstrip() + subject = subject[pend + 1:].lstrip() subject = subject.replace('\n\t', ' ') ui.debug('Subject: %s\n' % subject) if user: @@ -472,7 +472,7 @@ search_start = orig_start + self.skew for fuzzlen in xrange(3): - for toponly in [ True, False ]: + for toponly in [True, False]: old = h.old(fuzzlen, toponly) cand = self.findlines(old[0][1:], search_start) @@ -497,7 +497,7 @@ else: msg = _("Hunk #%d succeeded at %d %s" "(offset %d lines).\n") - f(msg % (h.number, l+1, fuzzstr, offset)) + f(msg % (h.number, l + 1, fuzzstr, offset)) return fuzzlen self.printfile(True) self.ui.warn(_("Hunk #%d FAILED at %d\n") % (h.number, orig_start)) @@ -508,7 +508,7 @@ def __init__(self, desc, num, lr, context, create=False, remove=False): self.number = num self.desc = desc - self.hunk = [ desc ] + self.hunk = [desc] self.a = [] self.b = [] self.starta = self.lena = None @@ -621,7 +621,7 @@ if l.startswith('\ '): s = self.b[-1][:-1] self.b[-1] = s - self.hunk[hunki-1] = s + self.hunk[hunki - 1] = s continue if not l: lr.push(l) @@ -650,7 +650,7 @@ elif h.startswith('-'): continue else: - self.hunk.insert(hunki-1, u) + self.hunk.insert(hunki - 1, u) break if not self.a: @@ -689,15 +689,15 @@ top = 0 bot = 0 hlen = len(self.hunk) - for x in xrange(hlen-1): + for x in xrange(hlen - 1): # the hunk starts with the @@ line, so use x+1 - if self.hunk[x+1][0] == ' ': + if self.hunk[x + 1][0] == ' ': top += 1 else: break if not toponly: - for x in xrange(hlen-1): - if self.hunk[hlen-bot-1][0] == ' ': + for x in xrange(hlen - 1): + if self.hunk[hlen - bot - 1][0] == ' ': bot += 1 else: break @@ -1025,11 +1025,13 @@ afile, bfile, first_hunk = values try: if sourcefile: - current_file = patchfile(ui, sourcefile, opener, eolmode=eolmode) + current_file = patchfile(ui, sourcefile, opener, + eolmode=eolmode) else: - current_file, missing = selectfile(afile, bfile, first_hunk, - strip) - current_file = patchfile(ui, current_file, opener, missing, eolmode) + current_file, missing = selectfile(afile, bfile, + first_hunk, strip) + current_file = patchfile(ui, current_file, opener, + missing, eolmode) except PatchError, err: ui.warn(str(err) + '\n') current_file, current_hunk = None, None @@ -1196,7 +1198,8 @@ try: return internalpatch(patchname, ui, strip, cwd, files, eolmode) except NoHunks: - patcher = util.find_exe('gpatch') or util.find_exe('patch') or 'patch' + patcher = (util.find_exe('gpatch') or util.find_exe('patch') + or 'patch') ui.debug('no valid hunks found; trying with %r instead\n' % patcher) if util.needbinarypatch(): @@ -1232,7 +1235,7 @@ l = len(text) i = 0 while i < l: - yield text[i:i+csize] + yield text[i:i + csize] i += csize tohash = gitindex(to) @@ -1460,7 +1463,7 @@ fp.write(chunk) for seqno, rev in enumerate(revs): - single(rev, seqno+1, fp) + single(rev, seqno + 1, fp) def diffstatdata(lines): filename, adds, removes = None, 0, 0 @@ -1495,7 +1498,7 @@ totaladds += adds totalremoves += removes maxname = max(maxname, len(filename)) - maxtotal = max(maxtotal, adds+removes) + maxtotal = max(maxtotal, adds + removes) if isbinary: hasbinary = True
--- a/mercurial/pure/base85.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/pure/base85.py Mon Jan 25 00:05:27 2010 -0600 @@ -48,7 +48,7 @@ l = len(text) out = [] for i in range(0, len(text), 5): - chunk = text[i:i+5] + chunk = text[i:i + 5] acc = 0 for j, c in enumerate(chunk): try:
--- a/mercurial/pure/bdiff.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/pure/bdiff.py Mon Jan 25 00:05:27 2010 -0600 @@ -33,13 +33,15 @@ a2end = a2 + l2 b2end = b2 + l2 if a1end == a2: - while a1end+shift < a2end and a[a1end+shift] == b[b1end+shift]: + while (a1end + shift < a2end and + a[a1end + shift] == b[b1end + shift]): shift += 1 elif b1end == b2: - while b1end+shift < b2end and a[a1end+shift] == b[b1end+shift]: + while (b1end + shift < b2end and + a[a1end + shift] == b[b1end + shift]): shift += 1 - yield a1, b1, l1+shift - prev = a2+shift, b2+shift, l2-shift + yield a1, b1, l1 + shift + prev = a2 + shift, b2 + shift, l2 - shift yield prev def bdiff(a, b):
--- a/mercurial/pure/mpatch.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/pure/mpatch.py Mon Jan 25 00:05:27 2010 -0600 @@ -22,7 +22,8 @@ # temporary string buffers. def patches(a, bins): - if not bins: return a + if not bins: + return a plens = [len(x) for x in bins] pl = sum(plens) @@ -30,7 +31,8 @@ tl = bl + bl + pl # enough for the patches and two working texts b1, b2 = 0, bl - if not tl: return a + if not tl: + return a m = StringIO() def move(dest, src, count):
--- a/mercurial/pure/osutil.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/pure/osutil.py Mon Jan 25 00:05:27 2010 -0600 @@ -11,13 +11,20 @@ posixfile = open def _mode_to_kind(mode): - if _stat.S_ISREG(mode): return _stat.S_IFREG - if _stat.S_ISDIR(mode): return _stat.S_IFDIR - if _stat.S_ISLNK(mode): return _stat.S_IFLNK - if _stat.S_ISBLK(mode): return _stat.S_IFBLK - if _stat.S_ISCHR(mode): return _stat.S_IFCHR - if _stat.S_ISFIFO(mode): return _stat.S_IFIFO - if _stat.S_ISSOCK(mode): return _stat.S_IFSOCK + if _stat.S_ISREG(mode): + return _stat.S_IFREG + if _stat.S_ISDIR(mode): + return _stat.S_IFDIR + if _stat.S_ISLNK(mode): + return _stat.S_IFLNK + if _stat.S_ISBLK(mode): + return _stat.S_IFBLK + if _stat.S_ISCHR(mode): + return _stat.S_IFCHR + if _stat.S_ISFIFO(mode): + return _stat.S_IFIFO + if _stat.S_ISSOCK(mode): + return _stat.S_IFSOCK return mode def listdir(path, stat=False, skip=None):
--- a/mercurial/revlog.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/revlog.py Mon Jan 25 00:05:27 2010 -0600 @@ -127,7 +127,7 @@ self.dataf = dataf self.s = struct.calcsize(indexformatng) self.datasize = size - self.l = size/self.s + self.l = size / self.s self.index = [None] * self.l self.map = {nullid: nullrev} self.allmap = 0 @@ -902,7 +902,7 @@ try: # hex(node)[:...] l = len(id) // 2 # grab an even number of digits - bin_id = bin(id[:l*2]) + bin_id = bin(id[:l * 2]) nl = [n for n in self.nodemap if n[:l] == bin_id] nl = [n for n in nl if hex(n).startswith(id)] if len(nl) > 0: @@ -1403,7 +1403,7 @@ return (dd, di) def files(self): - res = [ self.indexfile ] + res = [self.indexfile] if not self._inline: res.append(self.datafile) return res
--- a/mercurial/simplemerge.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/simplemerge.py Mon Jan 25 00:05:27 2010 -0600 @@ -50,7 +50,7 @@ def compare_range(a, astart, aend, b, bstart, bend): """Compare a[astart:aend] == b[bstart:bend], without slicing. """ - if (aend-astart) != (bend-bstart): + if (aend - astart) != (bend - bstart): return False for ia, ib in zip(xrange(astart, aend), xrange(bstart, bend)): if a[ia] != b[ib]: @@ -303,7 +303,7 @@ region_ib) if reg is not None: yield reg - yield 'same', region_ia, region_len+region_ia + yield 'same', region_ia, region_len + region_ia next_a = region_ia + region_len next_b = region_ib + region_len reg = self.mismatch_region(next_a, amatch, next_b, bmatch) @@ -336,7 +336,7 @@ # there is an unconflicted block at i; how long does it # extend? until whichever one ends earlier. - i = intersect((abase, abase+alen), (bbase, bbase+blen)) + i = intersect((abase, abase + alen), (bbase, bbase + blen)) if i: intbase = i[0] intend = i[1]
--- a/mercurial/sshrepo.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/sshrepo.py Mon Jan 25 00:05:27 2010 -0600 @@ -90,9 +90,11 @@ def readerr(self): while 1: size = util.fstat(self.pipee).st_size - if size == 0: break + if size == 0: + break l = self.pipee.readline() - if not l: break + if not l: + break self.ui.status(_("remote: "), l) def abort(self, exception): @@ -190,7 +192,7 @@ n = " ".join(map(hex, nodes)) d = self.call("branches", nodes=n) try: - br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ] + br = [tuple(map(bin, b.split(" "))) for b in d.splitlines()] return br except: self.abort(error.ResponseError(_("unexpected response:"), d)) @@ -199,7 +201,7 @@ n = " ".join(["-".join(map(hex, p)) for p in pairs]) d = self.call("between", pairs=n) try: - p = [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ] + p = [l and map(bin, l.split(" ")) or [] for l in d.splitlines()] return p except: self.abort(error.ResponseError(_("unexpected response:"), d))
--- a/mercurial/sshserver.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/sshserver.py Mon Jan 25 00:05:27 2010 -0600 @@ -42,7 +42,8 @@ def serve_forever(self): try: - while self.serve_one(): pass + while self.serve_one(): + pass finally: if self.lock is not None: self.lock.release() @@ -52,7 +53,8 @@ cmd = self.fin.readline()[:-1] if cmd: impl = getattr(self, 'do_' + cmd, None) - if impl: impl() + if impl: + impl() else: self.respond("") return cmd != ''
--- a/mercurial/store.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/store.py Mon Jan 25 00:05:27 2010 -0600 @@ -32,7 +32,7 @@ def _buildencodefun(): e = '_' win_reserved = [ord(x) for x in '\\:*?"<>|'] - cmap = dict([ (chr(x), chr(x)) for x in xrange(127) ]) + cmap = dict([(chr(x), chr(x)) for x in xrange(127)]) for x in (range(32) + range(126, 256) + win_reserved): cmap[chr(x)] = "~%02x" % x for x in range(ord("A"), ord("Z")+1) + [ord(e)]: @@ -45,7 +45,7 @@ while i < len(s): for l in xrange(1, 4): try: - yield dmap[s[i:i+l]] + yield dmap[s[i:i + l]] i += l break except KeyError: @@ -59,7 +59,7 @@ def _build_lower_encodefun(): win_reserved = [ord(x) for x in '\\:*?"<>|'] - cmap = dict([ (chr(x), chr(x)) for x in xrange(127) ]) + cmap = dict([(chr(x), chr(x)) for x in xrange(127)]) for x in (range(32) + range(126, 256) + win_reserved): cmap[chr(x)] = "~%02x" % x for x in range(ord("A"), ord("Z")+1):
--- a/mercurial/templatefilters.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/templatefilters.py Mon Jan 25 00:05:27 2010 -0600 @@ -64,7 +64,8 @@ m = para_re.search(text, start) if not m: w = len(text) - while w > start and text[w-1].isspace(): w -= 1 + while w > start and text[w - 1].isspace(): + w -= 1 yield text[start:w], text[w:] break yield text[start:m.start(0)], m.group(1) @@ -91,17 +92,21 @@ def domain(author): '''get domain of author, or empty string if none.''' f = author.find('@') - if f == -1: return '' - author = author[f+1:] + if f == -1: + return '' + author = author[f + 1:] f = author.find('>') - if f >= 0: author = author[:f] + if f >= 0: + author = author[:f] return author def person(author): '''get name of author, or else username.''' - if not '@' in author: return author + if not '@' in author: + return author f = author.find('<') - if f == -1: return util.shortuser(author) + if f == -1: + return util.shortuser(author) return author[:f].rstrip() def indent(text, prefix):
--- a/mercurial/templatekw.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/templatekw.py Mon Jan 25 00:05:27 2010 -0600 @@ -29,7 +29,8 @@ expand 'end_foos'. ''' templ = args['templ'] - if plural: names = plural + if plural: + names = plural else: names = name + 's' if not values: noname = 'no_' + names @@ -188,7 +189,7 @@ rename = getrenamed(fn, ctx.rev()) if rename: copies.append((fn, rename[0])) - + c = [{'name': x[0], 'source': x[1]} for x in copies] return showlist('file_copy', c, plural='file_copies', **args)
--- a/mercurial/templater.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/templater.py Mon Jan 25 00:05:27 2010 -0600 @@ -77,7 +77,7 @@ raise SyntaxError(_("error expanding '%s%%%s'") % (key, format)) lm = map.copy() for i in v: - if isinstance(i, dict): + if isinstance(i, dict): lm.update(i) yield self.process(format, lm) else: @@ -244,7 +244,6 @@ styles = [styles] for style in styles: - if not style: continue locations = [os.path.join(style, 'map'), 'map-' + style]
--- a/mercurial/transaction.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/transaction.py Mon Jan 25 00:05:27 2010 -0600 @@ -73,8 +73,8 @@ @active def add(self, file, offset, data=None): - if file in self.map: return - + if file in self.map: + return if self._queue: self._queue[-1].append((file, offset, data)) return @@ -147,7 +147,8 @@ self.report(_("transaction abort!\n")) try: - _playback(self.journal, self.report, self.opener, self.entries, False) + _playback(self.journal, self.report, self.opener, + self.entries, False) self.report(_("rollback completed\n")) except: self.report(_("rollback failed - please run hg recover\n"))
--- a/mercurial/ui.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/ui.py Mon Jan 25 00:05:27 2010 -0600 @@ -198,7 +198,8 @@ def shortuser(self, user): """Return a short representation of a user name or email address.""" - if not self.verbose: user = util.shortuser(user) + if not self.verbose: + user = util.shortuser(user) return user def _path(self, loc): @@ -236,12 +237,14 @@ def write_err(self, *args): try: - if not sys.stdout.closed: sys.stdout.flush() + if not sys.stdout.closed: + sys.stdout.flush() for a in args: sys.stderr.write(str(a)) # stderr may be buffered under win32 when redirected to files, # including stdout. - if not sys.stderr.closed: sys.stderr.flush() + if not sys.stderr.closed: + sys.stderr.flush() except IOError, inst: if inst.errno != errno.EPIPE: raise @@ -311,21 +314,24 @@ return resps.index(r.lower()) self.write(_("unrecognized response\n")) - def getpass(self, prompt=None, default=None): - if not self.interactive(): return default + if not self.interactive(): + return default try: return getpass.getpass(prompt or _('password: ')) except EOFError: raise util.Abort(_('response expected')) def status(self, *msg): - if not self.quiet: self.write(*msg) + if not self.quiet: + self.write(*msg) def warn(self, *msg): self.write_err(*msg) def note(self, *msg): - if self.verbose: self.write(*msg) + if self.verbose: + self.write(*msg) def debug(self, *msg): - if self.debugflag: self.write(*msg) + if self.debugflag: + self.write(*msg) def edit(self, text, user): (fd, name) = tempfile.mkstemp(prefix="hg-editor-", suffix=".txt", text=True)
--- a/mercurial/url.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/url.py Mon Jan 25 00:05:27 2010 -0600 @@ -30,18 +30,18 @@ if a == -1: user, passwd = None, None else: - userpass, netloc = netloc[:a], netloc[a+1:] + userpass, netloc = netloc[:a], netloc[a + 1:] c = userpass.find(':') if c == -1: user, passwd = urllib.unquote(userpass), None else: user = urllib.unquote(userpass[:c]) - passwd = urllib.unquote(userpass[c+1:]) + passwd = urllib.unquote(userpass[c + 1:]) c = netloc.find(':') if c == -1: host, port = netloc, None else: - host, port = netloc[:c], netloc[c+1:] + host, port = netloc[:c], netloc[c + 1:] return host, port, user, passwd def netlocunsplit(host, port, user=None, passwd=None): @@ -89,7 +89,8 @@ l = list(path) for i in xrange(len(l)): c = l[i] - if c == '%' and i + 2 < len(l) and (l[i+1] in _hex and l[i+2] in _hex): + if (c == '%' and i + 2 < len(l) and + l[i + 1] in _hex and l[i + 2] in _hex): pass elif c not in _safeset: l[i] = '%%%02X' % ord(c) @@ -148,7 +149,8 @@ bestauth = None for auth in config.itervalues(): prefix = auth.get('prefix') - if not prefix: continue + if not prefix: + continue p = prefix.split('://', 1) if len(p) > 1: schemes, prefix = [p[0]], p[1] @@ -180,7 +182,7 @@ proxypasswd = ui.config("http_proxy", "passwd") # see if we should use a proxy for this url - no_list = [ "localhost", "127.0.0.1" ] + no_list = ["localhost", "127.0.0.1"] no_list.extend([p.lower() for p in ui.configlist("http_proxy", "no")]) no_list.extend([p.strip().lower() for @@ -436,7 +438,8 @@ self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.connect((self.host, self.port)) if _generic_proxytunnel(self): - self.sock = _ssl_wrap_socket(self.sock, self.cert_file, self.key_file) + self.sock = _ssl_wrap_socket(self.sock, self.cert_file, + self.key_file) else: BetterHTTPS.connect(self)
--- a/mercurial/util.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/util.py Mon Jan 25 00:05:27 2010 -0600 @@ -182,16 +182,21 @@ code = os.system(cmd) if sys.platform == 'OpenVMS' and code & 1: code = 0 - if code: raise Abort(_("command '%s' failed: %s") % - (cmd, explain_exit(code))) + if code: + raise Abort(_("command '%s' failed: %s") % + (cmd, explain_exit(code))) return open(outname, 'rb').read() finally: try: - if inname: os.unlink(inname) - except: pass + if inname: + os.unlink(inname) + except: + pass try: - if outname: os.unlink(outname) - except: pass + if outname: + os.unlink(outname) + except: + pass filtertable = { 'tempfile:': tempfilter, @@ -242,8 +247,11 @@ Abort = error.Abort -def always(fn): return True -def never(fn): return False +def always(fn): + return True + +def never(fn): + return False def pathto(root, n1, n2): '''return the relative path from one place to another. @@ -256,7 +264,8 @@ relative to root. n2 should always be relative to root. ''' - if not n1: return localpath(n2) + if not n1: + return localpath(n2) if os.path.isabs(n1): if os.path.splitdrive(root)[0] != os.path.splitdrive(n1)[0]: return os.path.join(root, localpath(n2)) @@ -912,11 +921,15 @@ assert size >= 0 assert limit is None or limit >= 0 while True: - if limit is None: nbytes = size - else: nbytes = min(limit, size) + if limit is None: + nbytes = size + else: + nbytes = min(limit, size) s = nbytes and f.read(nbytes) - if not s: break - if limit: limit -= len(s) + if not s: + break + if limit: + limit -= len(s) yield s def makedate(): @@ -1084,7 +1097,7 @@ user = user[:f] f = user.find('<') if f >= 0: - user = user[f+1:] + user = user[f + 1:] f = user.find(' ') if f >= 0: user = user[:f] @@ -1096,15 +1109,16 @@ def email(author): '''get email of author.''' r = author.find('>') - if r == -1: r = None - return author[author.find('<')+1:r] + if r == -1: + r = None + return author[author.find('<') + 1:r] def ellipsis(text, maxlength=400): """Trim string to at most maxlength (default: 400) characters.""" if len(text) <= maxlength: return text else: - return "%s..." % (text[:maxlength-3]) + return "%s..." % (text[:maxlength - 3]) def walkrepos(path, followsym=False, seen_dirs=None, recurse=False): '''yield every hg repository under path, recursively.''' @@ -1173,7 +1187,8 @@ if 'HGRCPATH' in os.environ: _rcpath = [] for p in os.environ['HGRCPATH'].split(os.pathsep): - if not p: continue + if not p: + continue p = expandpath(p) if os.path.isdir(p): for f, kind in osutil.listdir(p): @@ -1189,15 +1204,15 @@ '''return byte count formatted as readable string, with units''' units = ( - (100, 1<<30, _('%.0f GB')), - (10, 1<<30, _('%.1f GB')), - (1, 1<<30, _('%.2f GB')), - (100, 1<<20, _('%.0f MB')), - (10, 1<<20, _('%.1f MB')), - (1, 1<<20, _('%.2f MB')), - (100, 1<<10, _('%.0f KB')), - (10, 1<<10, _('%.1f KB')), - (1, 1<<10, _('%.2f KB')), + (100, 1 << 30, _('%.0f GB')), + (10, 1 << 30, _('%.1f GB')), + (1, 1 << 30, _('%.2f GB')), + (100, 1 << 20, _('%.0f MB')), + (10, 1 << 20, _('%.1f MB')), + (1, 1 << 20, _('%.2f MB')), + (100, 1 << 10, _('%.0f KB')), + (10, 1 << 10, _('%.1f KB')), + (1, 1 << 10, _('%.2f KB')), (1, 1, _('%.0f bytes')), ) @@ -1219,7 +1234,7 @@ # root. On POSIX they are rooted at the file system root. if os.name == 'nt': droot = os.path.splitdrive(os.getcwd())[0] + '/' - path = os.path.join(droot, path[i+1:]) + path = os.path.join(droot, path[i + 1:]) else: path = path[i:] else:
--- a/mercurial/verify.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/verify.py Mon Jan 25 00:05:27 2010 -0600 @@ -155,7 +155,8 @@ ui.status(_("crosschecking files in changesets and manifests\n")) if havemf: - for c,m in sorted([(c, m) for m in mflinkrevs for c in mflinkrevs[m]]): + for c, m in sorted([(c, m) for m in mflinkrevs + for c in mflinkrevs[m]]): err(c, _("changeset refers to unknown manifest %s") % short(m)) mflinkrevs = None # del is bad here due to scope issues @@ -259,7 +260,7 @@ # cross-check if f in filenodes: - fns = [(lr, n) for n,lr in filenodes[f].iteritems()] + fns = [(lr, n) for n, lr in filenodes[f].iteritems()] for lr, node in sorted(fns): err(lr, _("%s in manifests not found") % short(node), f)
--- a/mercurial/windows.py Mon Jan 25 00:05:22 2010 -0600 +++ b/mercurial/windows.py Mon Jan 25 00:05:27 2010 -0600 @@ -47,7 +47,8 @@ self.fp.write(s[start:end]) start = end except IOError, inst: - if inst.errno != 0: raise + if inst.errno != 0: + raise self.close() raise IOError(errno.EPIPE, 'Broken pipe') @@ -55,7 +56,8 @@ try: return self.fp.flush() except IOError, inst: - if inst.errno != errno.EINVAL: raise + if inst.errno != errno.EINVAL: + raise self.close() raise IOError(errno.EPIPE, 'Broken pipe') @@ -333,7 +335,7 @@ hStdOutput = None hStdError = None wShowWindow = subprocess.SW_HIDE - + args = subprocess.list2cmdline(args) # Not running the command in shell mode makes python26 hang when # writing to hgweb output socket.
--- a/setup.py Mon Jan 25 00:05:22 2010 -0600 +++ b/setup.py Mon Jan 25 00:05:27 2010 -0600 @@ -240,7 +240,7 @@ ] packages = ['mercurial', 'mercurial.hgweb', 'hgext', 'hgext.convert', - 'hgext.highlight', 'hgext.zeroconf', ] + 'hgext.highlight', 'hgext.zeroconf'] if sys.platform == 'linux2' and os.uname()[2] > '2.6': # The inotify extension is only usable with Linux 2.6 kernels. @@ -257,7 +257,7 @@ def ordinarypath(p): return p and p[0] != '.' and p[-1] != '~' -for root in ('templates', ): +for root in ('templates',): for curdir, dirs, files in os.walk(os.path.join('mercurial', root)): curdir = curdir.split(os.sep, 1)[1] dirs[:] = filter(ordinarypath, dirs)
--- a/tests/coverage.py Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/coverage.py Mon Jan 25 00:05:27 2010 -0600 @@ -106,20 +106,20 @@ self.excluded = excluded self.suite_spots = suite_spots self.excluding_suite = 0 - + def doRecursive(self, node): for n in node.getChildNodes(): self.dispatch(n) visitStmt = visitModule = doRecursive - + def doCode(self, node): if hasattr(node, 'decorators') and node.decorators: self.dispatch(node.decorators) self.recordAndDispatch(node.code) else: self.doSuite(node, node.code) - + visitFunction = visitClass = doCode def getFirstLine(self, node): @@ -139,26 +139,26 @@ for n in node.getChildNodes(): lineno = max(lineno, self.getLastLine(n)) return lineno - + def doStatement(self, node): self.recordLine(self.getFirstLine(node)) visitAssert = visitAssign = visitAssTuple = visitPrint = \ visitPrintnl = visitRaise = visitSubscript = visitDecorators = \ doStatement - + def visitPass(self, node): - # Pass statements have weird interactions with docstrings. If this - # pass statement is part of one of those pairs, claim that the statement - # is on the later of the two lines. + # Pass statements have weird interactions with docstrings. If + # this pass statement is part of one of those pairs, claim + # that the statement is on the later of the two lines. l = node.lineno if l: - lines = self.suite_spots.get(l, [l,l]) + lines = self.suite_spots.get(l, [l, l]) self.statements[lines[1]] = 1 - + def visitDiscard(self, node): # Discard nodes are statements that execute an expression, but then - # discard the results. This includes function calls, so we can't + # discard the results. This includes function calls, so we can't # ignore them all. But if the expression is a constant, the statement # won't be "executed", so don't count it now. if node.expr.__class__.__name__ != 'Const': @@ -172,7 +172,7 @@ return self.recordLine(self.getFirstLine(node)) else: return 0 - + def recordLine(self, lineno): # Returns a bool, whether the line is included or excluded. if lineno: @@ -196,9 +196,9 @@ self.statements[lineno] = 1 return 1 return 0 - + default = recordNodeLine - + def recordAndDispatch(self, node): self.recordNodeLine(node) self.dispatch(node) @@ -209,7 +209,7 @@ self.excluding_suite = 1 self.recordAndDispatch(body) self.excluding_suite = exsuite - + def doPlainWordSuite(self, prevsuite, suite): # Finding the exclude lines for else's is tricky, because they aren't # present in the compiler parse tree. Look at the previous suite, @@ -217,17 +217,17 @@ # first line are excluded, then we exclude the else. lastprev = self.getLastLine(prevsuite) firstelse = self.getFirstLine(suite) - for l in range(lastprev+1, firstelse): + for l in range(lastprev + 1, firstelse): if self.suite_spots.has_key(l): self.doSuite(None, suite, exclude=self.excluded.has_key(l)) break else: self.doSuite(None, suite) - + def doElse(self, prevsuite, node): if node.else_: self.doPlainWordSuite(prevsuite, node.else_) - + def visitFor(self, node): self.doSuite(node, node.body) self.doElse(node.body, node) @@ -250,21 +250,21 @@ if not a: # It's a plain "except:". Find the previous suite. if i > 0: - prev = node.handlers[i-1][2] + prev = node.handlers[i - 1][2] else: prev = node.body self.doPlainWordSuite(prev, h) else: self.doSuite(a, h) self.doElse(node.handlers[-1][2], node) - + def visitTryFinally(self, node): self.doSuite(node, node.body) self.doPlainWordSuite(node.body, node.final) - + def visitWith(self, node): self.doSuite(node, node.body) - + def visitGlobal(self, node): # "global" statements don't execute like others (they don't call the # trace function), so don't record their line numbers. @@ -285,7 +285,7 @@ # A dictionary with an entry for (Python source file name, line number # in that file) if that line has been executed. c = {} - + # A map from canonical Python source file name to a dictionary in # which there's an entry for each line number that has been # executed. @@ -313,19 +313,18 @@ self.relative_dir = self.abs_file(os.curdir)+os.sep self.exclude('# *pragma[: ]*[nN][oO] *[cC][oO][vV][eE][rR]') - # t(f, x, y). This method is passed to sys.settrace as a trace function. - # See [van Rossum 2001-07-20b, 9.2] for an explanation of sys.settrace and + # t(f, x, y). This method is passed to sys.settrace as a trace function. + # See [van Rossum 2001-07-20b, 9.2] for an explanation of sys.settrace and # the arguments and return value of the trace function. # See [van Rossum 2001-07-20a, 3.2] for a description of frame and code # objects. - - def t(self, f, w, unused): #pragma: no cover + def t(self, f, w, unused): #pragma: no cover if w == 'line': self.c[(f.f_code.co_filename, f.f_lineno)] = 1 #-for c in self.cstack: #- c[(f.f_code.co_filename, f.f_lineno)] = 1 return self.t - + def help(self, error=None): #pragma: no cover if error: print error @@ -363,7 +362,8 @@ elif o[2:] + '=' in long_opts: settings[o[2:]+'='] = a else: #pragma: no cover - pass # Can't get here, because getopt won't return anything unknown. + # Can't get here, because getopt won't return anything unknown. + pass if settings.get('help'): help_fn() @@ -377,14 +377,14 @@ args_needed = (settings.get('execute') or settings.get('annotate') or settings.get('report')) - action = (settings.get('erase') + action = (settings.get('erase') or settings.get('collect') or args_needed) if not action: help_fn("You must specify at least one of -e, -x, -c, -r, or -a.") if not args_needed and args: help_fn("Unexpected arguments: %s" % " ".join(args)) - + self.parallel_mode = settings.get('parallel-mode') self.get_ready() @@ -402,7 +402,7 @@ self.collect() if not args: args = self.cexecuted.keys() - + ignore_errors = settings.get('ignore-errors') show_missing = settings.get('show-missing') directory = settings.get('directory=') @@ -412,7 +412,7 @@ omit = [self.abs_file(p) for p in omit.split(',')] else: omit = [] - + if settings.get('report'): self.report(args, show_missing, ignore_errors, omit_prefixes=omit) if settings.get('annotate'): @@ -422,7 +422,7 @@ self.usecache = usecache if cache_file and not self.cache: self.cache_default = cache_file - + def get_ready(self, parallel_mode=False): if self.usecache and not self.cache: self.cache = os.environ.get(self.cache_env, self.cache_default) @@ -430,7 +430,7 @@ self.cache += "." + gethostname() + "." + str(os.getpid()) self.restore() self.analysis_cache = {} - + def start(self, parallel_mode=False): self.get_ready() if self.nesting == 0: #pragma: no cover @@ -438,7 +438,7 @@ if hasattr(threading, 'settrace'): threading.settrace(self.t) self.nesting += 1 - + def stop(self): self.nesting -= 1 if self.nesting == 0: #pragma: no cover @@ -462,7 +462,7 @@ def begin_recursive(self): self.cstack.append(self.c) self.xstack.append(self.exclude_re) - + def end_recursive(self): self.c = self.cstack.pop() self.exclude_re = self.xstack.pop() @@ -568,7 +568,7 @@ self.canonical_filename_cache[filename] = cf return self.canonical_filename_cache[filename] - # canonicalize_filenames(). Copy results from "c" to "cexecuted", + # canonicalize_filenames(). Copy results from "c" to "cexecuted", # canonicalizing filenames on the way. Clear the "c" map. def canonicalize_filenames(self): @@ -598,7 +598,6 @@ # in the source code, (3) a list of lines of excluded statements, # and (4), a map of line numbers to multi-line line number ranges, for # statements that cross lines. - def analyze_morf(self, morf): if self.analysis_cache.has_key(morf): return self.analysis_cache[morf] @@ -636,26 +635,27 @@ if len(tree) == 3 and type(tree[2]) == type(1): return tree[2] tree = tree[1] - + def last_line_of_tree(self, tree): while True: if len(tree) == 3 and type(tree[2]) == type(1): return tree[2] tree = tree[-1] - + def find_docstring_pass_pair(self, tree, spots): for i in range(1, len(tree)): - if self.is_string_constant(tree[i]) and self.is_pass_stmt(tree[i+1]): + if (self.is_string_constant(tree[i]) and + self.is_pass_stmt(tree[i + 1]): first_line = self.first_line_of_tree(tree[i]) - last_line = self.last_line_of_tree(tree[i+1]) + last_line = self.last_line_of_tree(tree[i + 1]) self.record_multiline(spots, first_line, last_line) - + def is_string_constant(self, tree): try: return tree[0] == symbol.stmt and tree[1][1][1][0] == symbol.expr_stmt except: return False - + def is_pass_stmt(self, tree): try: return tree[0] == symbol.stmt and tree[1][1][1][0] == symbol.pass_stmt @@ -663,9 +663,9 @@ return False def record_multiline(self, spots, i, j): - for l in range(i, j+1): + for l in range(i, j + 1): spots[l] = (i, j) - + def get_suite_spots(self, tree, spots): """ Analyze a parse tree to find suite introducers which span a number of lines. @@ -675,16 +675,16 @@ if tree[i][0] == symbol.suite: # Found a suite, look back for the colon and keyword. lineno_colon = lineno_word = None - for j in range(i-1, 0, -1): + for j in range(i - 1, 0, -1): if tree[j][0] == token.COLON: # Colons are never executed themselves: we want the # line number of the last token before the colon. - lineno_colon = self.last_line_of_tree(tree[j-1]) + lineno_colon = self.last_line_of_tree(tree[j - 1]) elif tree[j][0] == token.NAME: if tree[j][1] == 'elif': - # Find the line number of the first non-terminal - # after the keyword. - t = tree[j+1] + # Find the line number of the first + # non-terminal after the keyword. + t = tree[j + 1] while t and token.ISNONTERMINAL(t[0]): t = t[1] if t: @@ -694,7 +694,7 @@ break elif tree[j][0] == symbol.except_clause: # "except" clauses look like: - # ('except_clause', ('NAME', 'except', lineno), ...) + # ('except_clause', ('NAME', 'except', lineno),...) if tree[j][1][0] == token.NAME: lineno_word = tree[j][1][2] break @@ -703,11 +703,11 @@ # between the two with the two line numbers. self.record_multiline(spots, lineno_word, lineno_colon) - # "pass" statements are tricky: different versions of Python - # treat them differently, especially in the common case of a - # function with a doc string and a single pass statement. + # "pass" statements are tricky: different versions + # of Python treat them differently, especially in + # the common case of a function with a doc string + # and a single pass statement. self.find_docstring_pass_pair(tree[i], spots) - elif tree[i][0] == symbol.simple_stmt: first_line = self.first_line_of_tree(tree[i]) last_line = self.last_line_of_tree(tree[i]) @@ -724,7 +724,7 @@ lines = text.split('\n') for i in range(len(lines)): if reExclude.search(lines[i]): - excluded[i+1] = 1 + excluded[i + 1] = 1 # Parse the code and analyze the parse tree to find out which statements # are multiline, and where suites begin and end. @@ -732,7 +732,7 @@ tree = parser.suite(text+'\n\n').totuple(1) self.get_suite_spots(tree, suite_spots) #print "Suite spots:", suite_spots - + # Use the compiler module to parse the text and find the executable # statements. We add newlines to be impervious to final partial lines. statements = {} @@ -831,7 +831,8 @@ def morf_name_compare(self, x, y): return cmp(self.morf_name(x), self.morf_name(y)) - def report(self, morfs, show_missing=1, ignore_errors=0, file=None, omit_prefixes=[]): + def report(self, morfs, show_missing=1, ignore_errors=0, file=None, + omit_prefixes=[]): if not isinstance(morfs, types.ListType): morfs = [morfs] # On windows, the shell doesn't expand wildcards. Do it here. @@ -842,7 +843,7 @@ else: globbed.append(morf) morfs = globbed - + morfs = self.filter_by_prefix(morfs, omit_prefixes) morfs.sort(self.morf_name_compare) @@ -856,8 +857,8 @@ fmt_coverage = fmt_coverage + " %s" if not file: file = sys.stdout - print >>file, header - print >>file, "-" * len(header) + print >> file, header + print >> file, "-" * len(header) total_statements = 0 total_executed = 0 for morf in morfs: @@ -903,14 +904,16 @@ for morf in morfs: try: filename, statements, excluded, missing, _ = self.analysis2(morf) - self.annotate_file(filename, statements, excluded, missing, directory) + self.annotate_file(filename, statements, excluded, missing, + directory) except KeyboardInterrupt: raise except: if not ignore_errors: raise - - def annotate_file(self, filename, statements, excluded, missing, directory=None): + + def annotate_file(self, filename, statements, excluded, missing, + directory=None): source = open(filename, 'r') if directory: dest_file = os.path.join(directory, @@ -937,7 +940,7 @@ if self.blank_re.match(line): dest.write(' ') elif self.else_re.match(line): - # Special logic for lines containing only 'else:'. + # Special logic for lines containing only 'else:'. # See [GDR 2001-12-04b, 3.2]. if i >= len(statements) and j >= len(missing): dest.write('! ') @@ -961,40 +964,40 @@ the_coverage = coverage() # Module functions call methods in the singleton object. -def use_cache(*args, **kw): +def use_cache(*args, **kw): return the_coverage.use_cache(*args, **kw) -def start(*args, **kw): +def start(*args, **kw): return the_coverage.start(*args, **kw) -def stop(*args, **kw): +def stop(*args, **kw): return the_coverage.stop(*args, **kw) -def erase(*args, **kw): +def erase(*args, **kw): return the_coverage.erase(*args, **kw) -def begin_recursive(*args, **kw): +def begin_recursive(*args, **kw): return the_coverage.begin_recursive(*args, **kw) -def end_recursive(*args, **kw): +def end_recursive(*args, **kw): return the_coverage.end_recursive(*args, **kw) -def exclude(*args, **kw): +def exclude(*args, **kw): return the_coverage.exclude(*args, **kw) -def analysis(*args, **kw): +def analysis(*args, **kw): return the_coverage.analysis(*args, **kw) -def analysis2(*args, **kw): +def analysis2(*args, **kw): return the_coverage.analysis2(*args, **kw) -def report(*args, **kw): +def report(*args, **kw): return the_coverage.report(*args, **kw) -def annotate(*args, **kw): +def annotate(*args, **kw): return the_coverage.annotate(*args, **kw) -def annotate_file(*args, **kw): +def annotate_file(*args, **kw): return the_coverage.annotate_file(*args, **kw) # Save coverage data when Python exits. (The atexit module wasn't @@ -1008,7 +1011,7 @@ def main(): the_coverage.command_line(sys.argv[1:]) - + # Command-line interface. if __name__ == '__main__': main() @@ -1072,7 +1075,7 @@ # Thanks, Allen. # # 2005-12-02 NMB Call threading.settrace so that all threads are measured. -# Thanks Martin Fuzzey. Add a file argument to report so that reports can be +# Thanks Martin Fuzzey. Add a file argument to report so that reports can be # captured to a different destination. # # 2005-12-03 NMB coverage.py can now measure itself.
--- a/tests/printenv.py Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/printenv.py Mon Jan 25 00:05:27 2010 -0600 @@ -48,7 +48,8 @@ out.write("%s hook: " % name) for v in env: - out.write("%s=%s " % (v, os.environ[v].replace(os.environ["HGTMP"], '$HGTMP'))) + out.write("%s=%s " % + (v, os.environ[v].replace(os.environ["HGTMP"], '$HGTMP'))) out.write("\n") out.close()
--- a/tests/readlink.py Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/readlink.py Mon Jan 25 00:05:27 2010 -0600 @@ -6,7 +6,8 @@ try: print f, '->', os.readlink(f) except OSError, err: - if err.errno != errno.EINVAL: raise + if err.errno != errno.EINVAL: + raise print f, 'not a symlink' sys.exit(0)
--- a/tests/run-tests.py Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/run-tests.py Mon Jan 25 00:05:27 2010 -0600 @@ -231,7 +231,7 @@ if last: lines.append(last) return lines - lines.append(text[i:n+1]) + lines.append(text[i:n + 1]) i = n + 1 def parsehghaveoutput(lines): @@ -660,7 +660,8 @@ jobs = [[] for j in xrange(options.jobs)] while tests: for job in jobs: - if not tests: break + if not tests: + break job.append(tests.pop()) fps = {} for j, job in enumerate(jobs):
--- a/tests/test-gendoc Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-gendoc Mon Jan 25 00:05:27 2010 -0600 @@ -1,13 +1,13 @@ #!/bin/sh "$TESTDIR/hghave" rst2html || exit 80 -RST2HTML=$(which rst2html 2> /dev/null || which rst2html.py) +RST2HTML=`which rst2html 2> /dev/null || which rst2html.py` HGENCODING=UTF-8 export HGENCODING for PO in C $TESTDIR/../i18n/*.po; do - LOCALE=$(basename $PO .po) + LOCALE=`basename $PO .po` echo echo "% extracting documentation from $LOCALE" echo ".. -*- coding: utf-8 -*-" > gendoc-$LOCALE.txt
--- a/tests/test-hgweb-auth.py Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-hgweb-auth.py Mon Jan 25 00:05:27 2010 -0600 @@ -16,7 +16,8 @@ return ui def dumpdict(dict): - return '{' + ', '.join(['%s: %s' % (k, dict[k]) for k in sorted(dict.iterkeys())]) + '}' + return '{' + ', '.join(['%s: %s' % (k, dict[k]) + for k in sorted(dict.iterkeys())]) + '}' def test(auth): print 'CFG:', dumpdict(auth) @@ -56,6 +57,8 @@ test({'x.prefix': 'example.org', 'x.schemes': 'http https'}) print '\n*** Test prefix matching\n' -test({'x.prefix': 'http://example.org/foo', 'y.prefix': 'http://example.org/bar'}) -test({'x.prefix': 'http://example.org/foo', 'y.prefix': 'http://example.org/foo/bar'}) +test({'x.prefix': 'http://example.org/foo', + 'y.prefix': 'http://example.org/bar'}) +test({'x.prefix': 'http://example.org/foo', + 'y.prefix': 'http://example.org/foo/bar'}) test({'x.prefix': '*', 'y.prefix': 'https://example.org/bar'})
--- a/tests/test-merge-tools Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-merge-tools Mon Jan 25 00:05:27 2010 -0600 @@ -83,7 +83,7 @@ domerge -r 2 --config merge-tools.true.executable=nonexistingmergetool echo "# or true.executable with bogus path:" -domerge -r 2 --config merge-tools.true.executable=/bin/nonexistingmergetool +domerge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool echo "# but true.executable set to cat found in PATH works:" echo "true.executable=cat" >> .hg/hgrc @@ -103,7 +103,7 @@ domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool echo "# merge-patterns specifies executable with bogus path and gets warning:" -domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/bin/nonexistingmergetool +domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool echo echo ui.merge overrules priority
--- a/tests/test-merge-tools.out Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-merge-tools.out Mon Jan 25 00:05:27 2010 -0600 @@ -116,7 +116,7 @@ false.whatever= true.priority=1 # hg update -C 1 -# hg merge -r 2 --config merge-tools.true.executable=/bin/nonexistingmergetool +# hg merge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool merging f merging f failed! 0 files updated, 0 files merged, 0 files removed, 1 files unresolved @@ -218,7 +218,7 @@ true.priority=1 true.executable=cat # hg update -C 1 -# hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/bin/nonexistingmergetool +# hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool couldn't find merge tool true specified for f merging f merging f failed!
--- a/tests/test-mq-git Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-mq-git Mon Jan 25 00:05:27 2010 -0600 @@ -76,4 +76,4 @@ hg cp a c hg qrefresh -d '0 0' cat .hg/patches/regular -cd .. \ No newline at end of file +cd ..
--- a/tests/test-mq-qrefresh Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-mq-qrefresh Mon Jan 25 00:05:27 2010 -0600 @@ -166,4 +166,4 @@ hg mv a b hg qrefresh hg qdiff --nodates -cd .. \ No newline at end of file +cd ..
--- a/tests/test-parse-date Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-parse-date Mon Jan 25 00:05:27 2010 -0600 @@ -84,4 +84,4 @@ hg log -d '< 02/01 ' --template '{date|date}\n' hg log -d ' > 02/01 ' --template '{date|date}\n' -hg log -d ' < 02/01 ' --template '{date|date}\n' \ No newline at end of file +hg log -d ' < 02/01 ' --template '{date|date}\n'
--- a/tests/test-simplemerge.py Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/test-simplemerge.py Mon Jan 25 00:05:27 2010 -0600 @@ -89,7 +89,8 @@ """) -MERGED_RESULT = split_lines(""" The Way that can be told of is not the eternal Way; +MERGED_RESULT = split_lines("""\ + The Way that can be told of is not the eternal Way; The name that can be named is not the eternal name. The Nameless is the origin of Heaven and Earth; The Named is the mother of all things. @@ -125,7 +126,7 @@ [(0, 2, 0, 2, 0, 2), - (2,2, 2,2, 2,2)]) + (2, 2, 2, 2, 2, 2)]) self.assertEquals(list(m3.merge_regions()), [('unchanged', 0, 2)]) @@ -141,8 +142,8 @@ # todo: should use a sentinal at end as from get_matching_blocks # to match without zz self.assertEquals(list(m3.find_sync_regions()), - [(0,1, 2,3, 0,1), - (1,1, 3,3, 1,1),]) + [(0, 1, 2, 3, 0, 1), + (1, 1, 3, 3, 1, 1),]) self.assertEquals(list(m3.merge_regions()), [('a', 0, 2), @@ -159,7 +160,7 @@ # todo: should use a sentinal at end as from get_matching_blocks # to match without zz self.assertEquals(list(m3.find_sync_regions()), - [(0,0, 2,2, 0,0)]) + [(0, 0, 2, 2, 0, 0)]) self.assertEquals(list(m3.merge_regions()), [('a', 0, 2)]) @@ -177,9 +178,9 @@ [(0, 1), (1, 2)]) self.assertEquals(list(m3.find_sync_regions()), - [(0,1, 0,1, 0,1), - (1,2, 2,3, 1,2), - (2,2, 3,3, 2,2),]) + [(0, 1, 0, 1, 0, 1), + (1, 2, 2, 3, 1, 2), + (2, 2, 3, 3, 2, 2),]) self.assertEquals(list(m3.merge_regions()), [('unchanged', 0, 1), @@ -253,14 +254,14 @@ [(0, 1), (1, 2)]) self.assertEquals(list(m3.find_sync_regions()), - [(0,1, 0,1, 0,1), - (1,2, 2,3, 2,3), - (2,2, 3,3, 3,3),]) + [(0, 1, 0, 1, 0, 1), + (1, 2, 2, 3, 2, 3), + (2, 2, 3, 3, 3, 3),]) self.assertEquals(list(m3.merge_regions()), - [('unchanged', 0,1), - ('conflict', 1,1, 1,2, 1,2), - ('unchanged', 1,2)]) + [('unchanged', 0, 1), + ('conflict', 1, 1, 1, 2, 1, 2), + ('unchanged', 1, 2)]) self.assertEquals(list(m3.merge_groups()), [('unchanged', ['aaa\n']), @@ -293,9 +294,9 @@ [(0, 1), (2, 3)]) self.assertEquals(list(m3.find_sync_regions()), - [(0,1, 0,1, 0,1), - (2,3, 2,3, 2,3), - (3,3, 3,3, 3,3),]) + [(0, 1, 0, 1, 0, 1), + (2, 3, 2, 3, 2, 3), + (3, 3, 3, 3, 3, 3),]) def test_replace_multi(self): """Replacement with regions of different size.""" @@ -308,9 +309,9 @@ self.assertEquals(list(m3.find_sync_regions()), - [(0,1, 0,1, 0,1), - (3,4, 4,5, 5,6), - (4,4, 5,5, 6,6),]) + [(0, 1, 0, 1, 0, 1), + (3, 4, 4, 5, 5, 6), + (4, 4, 5, 5, 6, 6)]) def test_merge_poem(self): """Test case from diff3 manual"""
--- a/tests/tinyproxy.py Mon Jan 25 00:05:22 2010 -0600 +++ b/tests/tinyproxy.py Mon Jan 25 00:05:27 2010 -0600 @@ -25,14 +25,15 @@ (ip, port) = self.client_address if hasattr(self, 'allowed_clients') and ip not in self.allowed_clients: self.raw_requestline = self.rfile.readline() - if self.parse_request(): self.send_error(403) + if self.parse_request(): + self.send_error(403) else: self.__base_handle() def _connect_to(self, netloc, soc): i = netloc.find(':') if i >= 0: - host_port = netloc[:i], int(netloc[i+1:]) + host_port = netloc[:i], int(netloc[i + 1:]) else: host_port = netloc, 80 print "\t" "connect to %s:%d" % host_port @@ -91,7 +92,8 @@ while 1: count += 1 (ins, _, exs) = select.select(iw, ow, iw, 3) - if exs: break + if exs: + break if ins: for i in ins: if i is soc: @@ -104,12 +106,13 @@ count = 0 else: print "\t" "idle", count - if count == max_idling: break + if count == max_idling: + break do_HEAD = do_GET do_POST = do_GET do_PUT = do_GET - do_DELETE=do_GET + do_DELETE = do_GET class ThreadingHTTPServer (SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): pass