From a2867a97ece1874a60319d60e889afb683897ab0 Mon Sep 17 00:00:00 2001 From: Johannes Maron Date: Fri, 26 Mar 2021 10:14:58 +0100 Subject: [PATCH] Remove progressbar dependency --- .github/workflows/ci.yml | 14 ++++--- setup.cfg | 5 ++- .../management/commands/rendervariations.py | 40 +++++++++++-------- 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 062fdb7..808aa2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,7 +64,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Install gettext - run: sudo apt-get install gettext -y + run: sudo apt install gettext -y - uses: actions/setup-python@v2.2.1 - run: python -m pip install --upgrade pip setuptools wheel twine readme-renderer - uses: actions/checkout@v2.3.4 @@ -89,16 +89,20 @@ jobs: - "2.2" - "3.1" - "3.2rc1" + extra: + - "" + - "progressbar" steps: - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2.2.1 with: python-version: ${{ matrix.python-version }} + - run: sudo apt install gettext -y - uses: actions/checkout@v2.3.4 - - name: Install dependencies - run: | - python -m pip install --upgrade pip setuptools codecov - pip install django~=${{ matrix.django-version }} + - run: python -m pip install --upgrade pip setuptools codecov wheel + - run: python -m pip install .[${{ matrix.extra }}] + if: ${{ matrix.extra }} + - run: python -m pip install django~=${{ matrix.django-version }} - name: Test with pytest run: python setup.py test - run: codecov diff --git a/setup.cfg b/setup.cfg index 373bf87..696d7c0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,7 +36,7 @@ packages = stdimage install_requires = Django>=2.2 pillow>=2.5 - progressbar2>=3.0.0 + setup_requires = setuptools_scm pytest-runner @@ -52,6 +52,9 @@ tests_require = exclude = tests +[options.extras_require] +progressbar = progressbar2>=3.0.0 + [bdist_wheel] universal = 1 diff --git a/stdimage/management/commands/rendervariations.py b/stdimage/management/commands/rendervariations.py index 07e5efb..bcc852e 100644 --- a/stdimage/management/commands/rendervariations.py +++ b/stdimage/management/commands/rendervariations.py @@ -1,4 +1,3 @@ -import progressbar from django.apps import apps from django.core.files.storage import get_storage_class from django.core.management import BaseCommand, CommandError @@ -59,8 +58,7 @@ def handle(self, *args, **options): self.render(field, images, count, replace, ignore_missing, do_render) - @staticmethod - def render(field, images, count, replace, ignore_missing, do_render): + def render(self, field, images, count, replace, ignore_missing, do_render): kwargs_list = ( dict( file_name=file_name, @@ -73,20 +71,26 @@ def render(field, images, count, replace, ignore_missing, do_render): ) for file_name in images ) - with progressbar.ProgressBar( - max_value=count, - widgets=( - progressbar.RotatingMarker(), - " | ", - progressbar.AdaptiveETA(), - " | ", - progressbar.Percentage(), - " ", - progressbar.Bar(), - ), - ) as bar: - for _ in map(render_field_variations, kwargs_list): - bar += 1 + try: + import progressbar + except ImportError: + for file_name in map(render_field_variations, kwargs_list): + self.stdout.write(f"Processing: {file_name}", self.style.NOTICE) + else: + with progressbar.ProgressBar( + max_value=count, + widgets=( + progressbar.RotatingMarker(), + " | ", + progressbar.AdaptiveETA(), + " | ", + progressbar.Percentage(), + " ", + progressbar.Bar(), + ), + ) as bar: + for _ in map(render_field_variations, kwargs_list): + bar += 1 def render_field_variations(kwargs): @@ -101,7 +105,9 @@ def render_field_variations(kwargs): render_variations(**kwargs) except FileNotFoundError as e: if not ignore_missing: + print(ignore_missing) raise CommandError( "Source file was not found, terminating. " "Use -i/--ignore-missing to skip this error." ) from e + return kwargs["file_name"]