Mercurial > public > mercurial-scm > hg
diff mercurial/commands.py @ 1909:37b9f80a5fbb
add doc comments to template code.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Mon, 27 Feb 2006 15:07:25 -0800 |
parents | be71c04d62c0 |
children | e2fe1953f417 |
line wrap: on
line diff
--- a/mercurial/commands.py Mon Feb 27 13:25:40 2006 -0800 +++ b/mercurial/commands.py Mon Feb 27 15:07:25 2006 -0800 @@ -338,15 +338,20 @@ return user class changeset_templater(object): + '''use templater module to format changeset information.''' + def __init__(self, ui, repo, mapfile): self.t = templater.templater(mapfile, templater.common_filters) self.ui = ui self.repo = repo def use_template(self, t): + '''set template string to use''' self.t.cache['template'] = t def write(self, thing): + '''write expanded template. + uses in-order recursive traverse of iterators.''' for t in thing: if hasattr(t, '__iter__'): self.write(t) @@ -354,7 +359,7 @@ self.ui.write(t) def show(self, rev=0, changenode=None, brinfo=None): - """show a single changeset or file revision""" + '''show a single changeset or file revision''' log = self.repo.changelog if changenode is None: changenode = log.node(rev) @@ -364,6 +369,25 @@ changes = log.read(changenode) def showlist(name, values, plural=None, **args): + '''expand set of values. + name is name of key in template map. + values is list of strings or dicts. + plural is plural of name, if not simply name + 's'. + + expansion works like this, given name 'foo'. + + if values is empty, expand 'no_foos'. + + if 'foo' not in template map, return values as a string, + joined by space. + + expand 'start_foos'. + + for each value, expand 'foo'. if 'last_foo' in template + map, expand it instead of 'foo' for last key. + + expand 'end_foos'. + ''' if plural: names = plural else: names = name + 's' if not values: @@ -371,13 +395,13 @@ if noname in self.t: yield self.t(noname, **args) return - vargs = args.copy() if name not in self.t: yield ' '.join(values) return startname = 'start_' + names if startname in self.t: yield self.t(startname, **args) + vargs = args.copy() def one(v, tag=name): try: vargs.update(v) @@ -464,12 +488,14 @@ raise util.Abort(_('%s: %s') % (self.t.mapfile, inst.args[0])) class changeset_printer(object): + '''show changeset information when templating not requested.''' + def __init__(self, ui, repo): self.ui = ui self.repo = repo def show(self, rev=0, changenode=None, brinfo=None): - """show a single changeset or file revision""" + '''show a single changeset or file revision''' log = self.repo.changelog if changenode is None: changenode = log.node(rev) @@ -530,6 +556,9 @@ self.ui.status("\n") def show_changeset(ui, repo, opts): + '''show one changeset. uses template or regular display. caller + can pass in 'map_file' and 'template' options in opts.''' + tmpl = opts.get('template') if tmpl: tmpl = templater.parsestring(tmpl, quoted=False)