Mercurial > hg
comparison mercurial/ui.py @ 38345:bec1212eceaa
progress: create helper class for incrementing progress
When using ui.progress(), there's a clear pattern that is followed:
* Pass the same topic and unit
* Usually pass the same total
* Call with pos=None to close the progress bar
* Often keep track of the current position and increment it
This patch creates a simple helper class for this. I'll probably make
it implement the context manager protocol later (calling update(None)
on __exit__).
Progress is used in low-level modules like changegroup, so I also
exposed it via a method on the ui object. Perhaps the class itself
should also live in ui.py?
This patch also makes merge.oy use it to show that it works.
Differential Revision: https://phab.mercurial-scm.org/D3765
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 15 Jun 2018 22:37:01 -0700 |
parents | aac4be30e250 |
children | 313a940d49a3 |
comparison
equal
deleted
inserted
replaced
38344:c6f82a18a63d | 38345:bec1212eceaa |
---|---|
1594 self.debug('%s:%s %d/%d%s (%4.2f%%)\n' | 1594 self.debug('%s:%s %d/%d%s (%4.2f%%)\n' |
1595 % (topic, item, pos, total, unit, pct)) | 1595 % (topic, item, pos, total, unit, pct)) |
1596 else: | 1596 else: |
1597 self.debug('%s:%s %d%s\n' % (topic, item, pos, unit)) | 1597 self.debug('%s:%s %d%s\n' % (topic, item, pos, unit)) |
1598 | 1598 |
1599 def makeprogress(self, topic, unit="", total=None): | |
1600 '''exists only so low-level modules won't need to import scmutil''' | |
1601 return scmutil.progress(self, topic, unit, total) | |
1602 | |
1599 def log(self, service, *msg, **opts): | 1603 def log(self, service, *msg, **opts): |
1600 '''hook for logging facility extensions | 1604 '''hook for logging facility extensions |
1601 | 1605 |
1602 service should be a readily-identifiable subsystem, which will | 1606 service should be a readily-identifiable subsystem, which will |
1603 allow filtering. | 1607 allow filtering. |