Skip to content

Commit

Permalink
Implement meter.SimpleTextMeter that prints what's being downloaded
Browse files Browse the repository at this point in the history
  • Loading branch information
dmach committed Sep 6, 2024
1 parent 1f5e568 commit 437cfbe
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions osc/meter.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,18 @@ def end(self):
self.bar.finish()


class NoPBTextMeter:
class SimpleTextMeter(TextMeterBase):
def start(self, basename: str, size: Optional[int] = None):
print(basename, file=sys.stderr)

def update(self, amount_read: int):
pass

def end(self):
pass


class NoTextMeter(TextMeterBase):
def start(self, basename: str, size: Optional[int] = None):
pass

Expand All @@ -74,12 +85,15 @@ def end(self):
def create_text_meter(*args, **kwargs) -> TextMeterBase:
from .conf import config

# this option is no longer used
kwargs.pop("use_pb_fallback", True)
use_pb_fallback = kwargs.pop("use_pb_fallback", True)

meter_class = PBTextMeter
if not have_pb_module or config.quiet or not config.show_download_progress or not sys.stdout.isatty():
meter_class = NoPBTextMeter
meter_class: TextMeterBase
if config.quiet:
meter_class = NoTextMeter
elif not have_pb_module or not config.show_download_progress or not sys.stdout.isatty() or use_pb_fallback:
meter_class = SimpleTextMeter
else:
meter_class = PBTextMeter

return meter_class(*args, **kwargs)

Expand Down

0 comments on commit 437cfbe

Please sign in to comment.