Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-django-minio-storage for
openSUSE:Factory checked in at 2023-04-24 22:31:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-minio-storage (Old)
and /work/SRC/openSUSE:Factory/.python-django-minio-storage.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-django-minio-storage"
Mon Apr 24 22:31:05 2023 rev:6 rq:1082317 version:0.5.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-django-minio-storage/python-django-minio-storage.changes
2020-12-22 11:52:45.382123179 +0100
+++
/work/SRC/openSUSE:Factory/.python-django-minio-storage.new.1533/python-django-minio-storage.changes
2023-04-24 22:31:11.111500632 +0200
@@ -1,0 +2,9 @@
+Sun Apr 23 20:15:19 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 0.5.0:
+ * Switched the minio-py client library version from `<7` to
+ `>=7`.
+ * Minimum Django version is now 3.2
+ * Minimum Python version is now 3.8
+
+-------------------------------------------------------------------
Old:
----
django-minio-storage-0.3.10.tar.gz
New:
----
django-minio-storage-0.5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-django-minio-storage.spec ++++++
--- /var/tmp/diff_new_pack.CuxmRz/_old 2023-04-24 22:31:12.483508788 +0200
+++ /var/tmp/diff_new_pack.CuxmRz/_new 2023-04-24 22:31:12.487508812 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-django-minio-storage
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,10 +20,10 @@
%bcond_with test
%define skip_python2 1
Name: python-django-minio-storage
-Version: 0.3.10
+Version: 0.5.0
Release: 0
Summary: Django file storage using minio
-License: MIT OR Apache-2.0
+License: Apache-2.0 OR MIT
URL: https://github.com/py-pa/django-minio-storage
Source:
https://files.pythonhosted.org/packages/source/d/django-minio-storage/django-minio-storage-%{version}.tar.gz
BuildRequires: %{python_module setuptools_scm}
@@ -31,12 +31,12 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-Django >= 1.11
-Requires: python-minio >= 4.0.21
+Requires: python-minio >= 7
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module Django >= 1.11}
BuildRequires: %{python_module freezegun}
-BuildRequires: %{python_module minio >= 4.0.21}
+BuildRequires: %{python_module minio >= 7}
BuildRequires: %{python_module pytest-django >= 3.5.1}
BuildRequires: %{python_module pytest-pythonpath}
BuildRequires: %{python_module requests}
++++++ django-minio-storage-0.3.10.tar.gz -> django-minio-storage-0.5.0.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/.github/workflows/release.yml
new/django-minio-storage-0.5.0/.github/workflows/release.yml
--- old/django-minio-storage-0.3.10/.github/workflows/release.yml
1970-01-01 01:00:00.000000000 +0100
+++ new/django-minio-storage-0.5.0/.github/workflows/release.yml
2023-04-23 13:01:14.000000000 +0200
@@ -0,0 +1,38 @@
+name: Release
+
+on:
+ push:
+ tags:
+ - v0.**
+ - v1.**
+
+jobs:
+ pypi-publish:
+ name: Upload release to PyPI
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ environment: release
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: "3.x"
+ - name: Install pypa/build
+ run: >-
+ python -m
+ pip install
+ build
+ --user
+ - name: Build a binary wheel and a source tarball
+ run: >-
+ python -m
+ build
+ --sdist
+ --wheel
+ --outdir dist/
+ .
+ - name: Publish package
+ uses: pypa/gh-action-pypi-publish@release/v1
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/.github/workflows/tox.yml
new/django-minio-storage-0.5.0/.github/workflows/tox.yml
--- old/django-minio-storage-0.3.10/.github/workflows/tox.yml 1970-01-01
01:00:00.000000000 +0100
+++ new/django-minio-storage-0.5.0/.github/workflows/tox.yml 2023-04-23
13:01:14.000000000 +0200
@@ -0,0 +1,42 @@
+name: tox
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: ['3.8', '3.9', '3.10', '3.11']
+
+ env:
+ AWS_ACCESS_KEY_ID: minioadmin
+ AWS_SECRET_ACCESS_KEY: minioadmin
+ MINIO_STORAGE_ENDPOINT: 127.0.0.1:9000
+ MINIO_STORAGE_ACCESS_KEY: minioadmin
+ MINIO_STORAGE_SECRET_KEY: minioadmin
+
+ services:
+ minio:
+ image: fclairamb/minio-github-actions
+ ports:
+ - 9000:9000
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ python -m pip install tox tox-gh-actions
+ - name: Test with tox
+ run: tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/.gitignore
new/django-minio-storage-0.5.0/.gitignore
--- old/django-minio-storage-0.3.10/.gitignore 2019-12-16 12:38:04.000000000
+0100
+++ new/django-minio-storage-0.5.0/.gitignore 2023-04-23 13:01:14.000000000
+0200
@@ -1,3 +1,4 @@
+/minio_storage/version.py
*.pyc
pycache
htmlcov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/.readthedocs.yaml
new/django-minio-storage-0.5.0/.readthedocs.yaml
--- old/django-minio-storage-0.3.10/.readthedocs.yaml 1970-01-01
01:00:00.000000000 +0100
+++ new/django-minio-storage-0.5.0/.readthedocs.yaml 2023-04-23
13:01:14.000000000 +0200
@@ -0,0 +1,20 @@
+# .readthedocs.yaml
+# Read the Docs configuration file
+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
+
+# Required
+version: 2
+
+# Set the version of Python and other tools you might need
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "3.11"
+
+mkdocs:
+ configuration: mkdocs.yml
+
+python:
+ install:
+ - requirements: docs-requirements.txt
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/.travis.yml
new/django-minio-storage-0.5.0/.travis.yml
--- old/django-minio-storage-0.3.10/.travis.yml 2019-10-18 14:43:28.000000000
+0200
+++ new/django-minio-storage-0.5.0/.travis.yml 1970-01-01 01:00:00.000000000
+0100
@@ -1,35 +0,0 @@
-language: python
-python:
-- '3.6'
-- '3.7'
-- '3.8'
-install:
-- pip install tox tox-travis
-script:
-- tox
-sudo: required
-services:
-- docker
-env:
- global:
- - MINIO_STORAGE_ENDPOINT=localhost:9153
- - MINIO_STORAGE_ACCESS_KEY=weak_access_key
- - MINIO_STORAGE_SECRET_KEY=weak_secret_key
-before_install:
-- docker run -d -p 9153:9000 -e MINIO_ACCESS_KEY=$MINIO_STORAGE_ACCESS_KEY -e
MINIO_SECRET_KEY=$MINIO_STORAGE_SECRET_KEY minio/minio server /export
-# after_success:
-# - pip install codecov
-# - codecov -e TOXENV,DJANGO
-# deploy:
-# provider: pypi
-# user: py-pa
-# distributions: sdist bdist_wheel
-# docs_dir: site
-# password:
-# secure:
O29yLKNLInnlH1fQsp1mxZzUZSuu5kdjl1m65YO9RowELrmj2bmvUgTFJYhEEyyQhzcvzPnZqgL3X9/Nqz+oEqfF5Bu9SpF6U/RgLjbUaR+m1aQlW9HiZHCglRLifXPF3lL0JHQaHdbkaLz/O4Cap5M9upqYfdXX13drfgWfe2Cdd62FlcE8eCeRdYjJ4ux3F7TqD1da8gbFxMN+gjkWzXeyEq9kAffZRKz3OXefOH4s07czuaircaFTQNb39j8bQ1/uEJ+tdLtCkyRRnTqm2a/mTqO8830NO/IH0xaSG2rS5vOWnq+OiJsYvjdmtMRAuoKvJipolYH9RZXKJUK89wcweA0L4k06F3Hp2ZY8ZvJ3fDM5gBeEmfXG+hAYQHVKod7RFUr3sp7UGVIhPdNfDHw+gXMy+MPgu0gknOm6Om6JGtx0cqO2jB6SpYK76CRa0TzCauetVfbJmTNsVNUVx8++xlkMXh8iJ+ewZ54UosIpr1Xl2suCZsPDhMEBnhrj3GsX+3FeEfNa9U0ViPUz9sUu83H4GLBoTaZQDLfvVSyIS2Q+qu0ygOz0xCqfVbkbrVGq5EpexNb7qL8LhJULamSjXHQH6+Nd7rAuOvVTRFWROX3eG4hJU4kyvBlACTQUBo6TWeYJdW2V2EHOaHfjldM4DS7GRMiVvwf5eLj8wnk=
-# on:
-# tags: true
-# python: "3.7"
-# repo: py-pa/django-minio-storage
-# notifications:
-# email: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/CHANGELOG.md
new/django-minio-storage-0.5.0/CHANGELOG.md
--- old/django-minio-storage-0.3.10/CHANGELOG.md 2020-10-03
07:55:15.000000000 +0200
+++ new/django-minio-storage-0.5.0/CHANGELOG.md 2023-04-23 13:01:14.000000000
+0200
@@ -1,3 +1,11 @@
+## 0.5.0
+
+Switched the minio-py client library version from `<7` to `>=7`.
+
+Minimum Django version is now 3.2
+
+Minimum Python version is now 3.8
+
## 0.3.9
The minio client is now deconstructable by Django, fixes migrations.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/PKG-INFO
new/django-minio-storage-0.5.0/PKG-INFO
--- old/django-minio-storage-0.3.10/PKG-INFO 2020-12-09 05:37:13.374475000
+0100
+++ new/django-minio-storage-0.5.0/PKG-INFO 2023-04-23 13:01:30.946837400
+0200
@@ -1,31 +1,11 @@
Metadata-Version: 2.1
Name: django-minio-storage
-Version: 0.3.10
+Version: 0.5.0
Summary: Django file storage using the minio python client
Home-page: https://github.com/py-pa/django-minio-storage
Author: Tom Houlé
Author-email: [email protected]
License: MIT
-Description: [](https://badge.fury.io/py/django-minio-storage)
- [](http://django-minio-storage.readthedocs.io/en/latest/?badge=latest)
- [](https://travis-ci.org/py-pa/django-minio-storage)
-
- # django-minio-storage
-
- Use [minio](https://minio.io) for django static and media file storage.
-
- Minio is accessed through the Amazon S3 API, so existing django file
storage
- adapters for S3 should work, but in practice they are hard to
configure. This
- project uses the minio python client instead. Inspiration has been
drawn from
- `django-s3-storage` and `django-storages`.
-
- # Documentation
-
- See
-
[http://django-minio-storage.readthedocs.io/en/latest/](http://django-minio-storage.readthedocs.io/en/latest/)
for
- documentation and usage guides.
-
-Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
@@ -34,5 +14,26 @@
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: Django
+Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: test
+License-File: LICENSE-APACHE
+License-File: LICENSE-MIT
+
+[](https://badge.fury.io/py/django-minio-storage)
+[](http://django-minio-storage.readthedocs.io/en/latest/?badge=latest)
+
+# django-minio-storage
+
+Use [minio](https://minio.io) for django static and media file storage.
+
+Minio is accessed through the Amazon S3 API, so existing django file storage
+adapters for S3 should work, but in practice they are hard to configure. This
+project uses the minio python client instead. Inspiration has been drawn from
+`django-s3-storage` and `django-storages`.
+
+# Documentation
+
+See
+[http://django-minio-storage.readthedocs.io/en/latest/](http://django-minio-storage.readthedocs.io/en/latest/)
for
+documentation and usage guides.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/README.md
new/django-minio-storage-0.5.0/README.md
--- old/django-minio-storage-0.3.10/README.md 2018-07-12 21:09:03.000000000
+0200
+++ new/django-minio-storage-0.5.0/README.md 2023-04-23 13:01:14.000000000
+0200
@@ -1,6 +1,5 @@
[](https://badge.fury.io/py/django-minio-storage)
[](http://django-minio-storage.readthedocs.io/en/latest/?badge=latest)
-[](https://travis-ci.org/py-pa/django-minio-storage)
# django-minio-storage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/dev-requirements.txt
new/django-minio-storage-0.5.0/dev-requirements.txt
--- old/django-minio-storage-0.3.10/dev-requirements.txt 2019-10-22
05:11:11.000000000 +0200
+++ new/django-minio-storage-0.5.0/dev-requirements.txt 2023-04-23
13:01:14.000000000 +0200
@@ -4,7 +4,6 @@
freezegun
# PyTest for running the tests.
-pytest==5.2.1
-pytest-django==3.5.1
-pytest-cov==2.8.1
-pytest-pythonpath
+pytest==7.3.1
+pytest-django==4.5.2
+pytest-cov==4.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/django_minio_storage.egg-info/PKG-INFO
new/django-minio-storage-0.5.0/django_minio_storage.egg-info/PKG-INFO
--- old/django-minio-storage-0.3.10/django_minio_storage.egg-info/PKG-INFO
2020-12-09 05:37:13.000000000 +0100
+++ new/django-minio-storage-0.5.0/django_minio_storage.egg-info/PKG-INFO
2023-04-23 13:01:30.000000000 +0200
@@ -1,31 +1,11 @@
Metadata-Version: 2.1
Name: django-minio-storage
-Version: 0.3.10
+Version: 0.5.0
Summary: Django file storage using the minio python client
Home-page: https://github.com/py-pa/django-minio-storage
Author: Tom Houlé
Author-email: [email protected]
License: MIT
-Description: [](https://badge.fury.io/py/django-minio-storage)
- [](http://django-minio-storage.readthedocs.io/en/latest/?badge=latest)
- [](https://travis-ci.org/py-pa/django-minio-storage)
-
- # django-minio-storage
-
- Use [minio](https://minio.io) for django static and media file storage.
-
- Minio is accessed through the Amazon S3 API, so existing django file
storage
- adapters for S3 should work, but in practice they are hard to
configure. This
- project uses the minio python client instead. Inspiration has been
drawn from
- `django-s3-storage` and `django-storages`.
-
- # Documentation
-
- See
-
[http://django-minio-storage.readthedocs.io/en/latest/](http://django-minio-storage.readthedocs.io/en/latest/)
for
- documentation and usage guides.
-
-Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
@@ -34,5 +14,26 @@
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: Django
+Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: test
+License-File: LICENSE-APACHE
+License-File: LICENSE-MIT
+
+[](https://badge.fury.io/py/django-minio-storage)
+[](http://django-minio-storage.readthedocs.io/en/latest/?badge=latest)
+
+# django-minio-storage
+
+Use [minio](https://minio.io) for django static and media file storage.
+
+Minio is accessed through the Amazon S3 API, so existing django file storage
+adapters for S3 should work, but in practice they are hard to configure. This
+project uses the minio python client instead. Inspiration has been drawn from
+`django-s3-storage` and `django-storages`.
+
+# Documentation
+
+See
+[http://django-minio-storage.readthedocs.io/en/latest/](http://django-minio-storage.readthedocs.io/en/latest/)
for
+documentation and usage guides.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/django_minio_storage.egg-info/SOURCES.txt
new/django-minio-storage-0.5.0/django_minio_storage.egg-info/SOURCES.txt
--- old/django-minio-storage-0.3.10/django_minio_storage.egg-info/SOURCES.txt
2020-12-09 05:37:13.000000000 +0100
+++ new/django-minio-storage-0.5.0/django_minio_storage.egg-info/SOURCES.txt
2023-04-23 13:01:30.000000000 +0200
@@ -2,7 +2,7 @@
.flake8rc
.gitignore
.isort.cfg
-.travis.yml
+.readthedocs.yaml
CHANGELOG.md
CONTRIBUTING.md
LICENSE-APACHE
@@ -10,10 +10,13 @@
README.md
dev-requirements.txt
docker-compose.yml
+docs-requirements.txt
mkdocs.yml
pyproject.toml
setup.py
tox.ini
+.github/workflows/release.yml
+.github/workflows/tox.yml
django_minio_storage.egg-info/PKG-INFO
django_minio_storage.egg-info/SOURCES.txt
django_minio_storage.egg-info/dependency_links.txt
@@ -31,6 +34,7 @@
minio_storage/files.py
minio_storage/policy.py
minio_storage/storage.py
+minio_storage/version.py
minio_storage/management/__init__.py
minio_storage/management/commands/__init__.py
minio_storage/management/commands/minio.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/django_minio_storage.egg-info/requires.txt
new/django-minio-storage-0.5.0/django_minio_storage.egg-info/requires.txt
--- old/django-minio-storage-0.3.10/django_minio_storage.egg-info/requires.txt
2020-12-09 05:37:13.000000000 +0100
+++ new/django-minio-storage-0.5.0/django_minio_storage.egg-info/requires.txt
2023-04-23 13:01:30.000000000 +0200
@@ -1,5 +1,5 @@
-django>=1.11
-minio<7,>=4.0.21
+django>=3.2
+minio>=7.1.12
[test]
coverage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/docs/index.md
new/django-minio-storage-0.5.0/docs/index.md
--- old/django-minio-storage-0.3.10/docs/index.md 2019-10-17
19:18:18.000000000 +0200
+++ new/django-minio-storage-0.5.0/docs/index.md 2023-04-23
13:01:14.000000000 +0200
@@ -10,7 +10,7 @@
# Compatibility
-CI is currenlty executed on Python 3.6+ and Django 1.11+.
+CI is currenlty executed on Python 3.8+ and Django 3.2+.
The goal is to have a thoroughly tested, small code base that delegates as much
as possible to the minio client.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/docs-requirements.txt
new/django-minio-storage-0.5.0/docs-requirements.txt
--- old/django-minio-storage-0.3.10/docs-requirements.txt 1970-01-01
01:00:00.000000000 +0100
+++ new/django-minio-storage-0.5.0/docs-requirements.txt 2023-04-23
13:01:14.000000000 +0200
@@ -0,0 +1 @@
+mkdocs==1.4.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/minio_storage/errors.py
new/django-minio-storage-0.5.0/minio_storage/errors.py
--- old/django-minio-storage-0.3.10/minio_storage/errors.py 2020-12-09
05:34:22.000000000 +0100
+++ new/django-minio-storage-0.5.0/minio_storage/errors.py 2023-04-23
13:01:14.000000000 +0200
@@ -9,22 +9,10 @@
reraise = {}
for v in (
- merr.APINotImplemented,
- merr.AccessDenied,
- merr.AccountProblem,
- merr.CredentialNotSupported,
- merr.CrossLocationLoggingProhibited,
- merr.ExpiredToken,
- merr.InvalidAccessKeyId,
- merr.InvalidAddressingHeader,
- merr.InvalidBucketError,
- merr.InvalidBucketName,
- merr.InvalidDigest,
- merr.InvalidEncryptionAlgorithmError,
- merr.InvalidEndpointError,
- merr.InvalidSecurity,
- merr.InvalidToken,
- merr.NoSuchBucket,
+ merr.MinioException,
+ merr.InvalidResponseError,
+ merr.ServerError,
+ merr.S3Error,
):
reraise[v] = {"err": v}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/minio_storage/files.py
new/django-minio-storage-0.5.0/minio_storage/files.py
--- old/django-minio-storage-0.3.10/minio_storage/files.py 2020-10-03
07:55:15.000000000 +0200
+++ new/django-minio-storage-0.5.0/minio_storage/files.py 2023-04-23
13:01:14.000000000 +0200
@@ -74,7 +74,7 @@
)
self._file = obj
return self._file
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
logger.warn(error)
raise OSError(f"File {self.name} does not exist")
finally:
@@ -131,7 +131,7 @@
self._file.write(d)
self._file.seek(0)
return self._file
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
raise minio_error(f"File {self.name} does not exist", error)
finally:
try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/minio_storage/management/commands/minio.py
new/django-minio-storage-0.5.0/minio_storage/management/commands/minio.py
--- old/django-minio-storage-0.3.10/minio_storage/management/commands/minio.py
2020-10-03 07:55:15.000000000 +0200
+++ new/django-minio-storage-0.5.0/minio_storage/management/commands/minio.py
2023-04-23 13:01:14.000000000 +0200
@@ -24,7 +24,6 @@
FULL_FORMAT = "$name $size $modified $url $etag"
def add_arguments(self, parser):
-
group = parser.add_argument_group("minio")
group.add_argument(
"--class",
@@ -167,7 +166,7 @@
summary: bool = True,
):
try:
- objs = storage.client.list_objects_v2(
+ objs = storage.client.list_objects(
bucket_name, prefix=prefix, recursive=recursive
)
@@ -200,24 +199,25 @@
if summary:
print(f"{n_files} files and {n_dirs} directories",
file=sys.stderr)
- except minio.error.NoSuchBucket:
- raise CommandError(f"bucket {bucket_name} does not exist")
+ except minio.error.S3Error as e:
+ raise CommandError(f"error reading bucket {bucket_name}") from e
def bucket_create(self, storage, bucket_name):
try:
storage.client.make_bucket(bucket_name)
print(f"created bucket: {bucket_name}", file=sys.stderr)
- except minio.error.BucketAlreadyOwnedByYou:
- raise CommandError(f"you have already created {bucket_name}")
+ except minio.error.S3Error as e:
+ raise CommandError(f"error creating {bucket_name}") from e
return
def bucket_delete(self, storage, bucket_name):
try:
storage.client.remove_bucket(bucket_name)
- except minio.error.NoSuchBucket:
- raise CommandError(f"bucket {bucket_name} does not exist")
- except minio.error.BucketNotEmpty:
- raise CommandError(f"bucket {bucket_name} is not empty")
+ except minio.error.S3Error as err:
+ if err.code == "BucketNotEmpty":
+ raise CommandError(f"bucket {bucket_name} is not empty")
+ elif err.code == "NoSuchBucket":
+ raise CommandError(f"bucket {bucket_name} does not exist")
def policy_get(self, storage, bucket_name):
try:
@@ -225,14 +225,15 @@
policy = json.loads(policy)
policy = json.dumps(policy, ensure_ascii=False, indent=2)
return policy
- except minio.error.NoSuchBucket:
- raise CommandError(f"bucket {bucket_name} does not exist")
- except minio.error.NoSuchBucketPolicy:
- raise CommandError(f"bucket {bucket_name} has no policy")
+ except minio.error.S3Error as err:
+ if err.code == "NoSuchBucket":
+ raise CommandError(f"bucket {bucket_name} does not exist")
+ elif err.code == "NoSuchBucketPolicy":
+ raise CommandError(f"bucket {bucket_name} has no policy")
def policy_set(self, storage, bucket_name, policy: Policy):
try:
policy = Policy(policy)
storage.client.set_bucket_policy(bucket_name,
policy.bucket(bucket_name))
- except minio.error.NoSuchBucket as e:
- raise CommandError(e.message)
+ except minio.error.S3Error as e:
+ raise CommandError(e.message) from e
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/minio_storage/storage.py
new/django-minio-storage-0.5.0/minio_storage/storage.py
--- old/django-minio-storage-0.3.10/minio_storage/storage.py 2020-12-09
05:34:22.000000000 +0100
+++ new/django-minio-storage-0.5.0/minio_storage/storage.py 2023-04-23
13:01:14.000000000 +0200
@@ -4,7 +4,6 @@
import typing as T
import urllib
from logging import getLogger
-from time import mktime
from urllib.parse import urlsplit, urlunsplit
import minio
@@ -14,7 +13,6 @@
from django.core.files.storage import Storage
from django.utils import timezone
from django.utils.deconstruct import deconstructible
-from minio.helpers import get_target_url
from minio_storage.errors import minio_error
from minio_storage.files import ReadOnlySpooledTemporaryFile
@@ -109,15 +107,16 @@
base_url_parts = urlsplit(base_url)
# Clone from the normal client, but with base_url as the endpoint
+ credentials = client._provider.retrieve()
base_url_client = minio.Minio(
base_url_parts.netloc,
- access_key=client._access_key,
- secret_key=client._secret_key,
- session_token=client._session_token,
+ access_key=credentials.access_key,
+ secret_key=credentials.secret_key,
+ session_token=credentials.session_token,
secure=base_url_parts.scheme == "https",
# The bucket region may be auto-detected by client (via an HTTP
# request), so don't just use client._region
- region=client._get_bucket_region(bucket_name),
+ region=client._get_region(bucket_name, None),
http_client=client._http,
)
if hasattr(client, "_credentials"):
@@ -151,8 +150,8 @@
def _open(self, name, mode="rb"):
try:
f = self.file_class(self._sanitize_path(name), mode, self)
- except merr.MinioError as e:
- raise minio_error("File {} could not be saved: {}".format(name,
str(e)), e)
+ except merr.MinioException as e:
+ raise minio_error(f"File {name} could not be saved: {str(e)}", e)
return f
def _save(self, name: str, content: bytes) -> str:
@@ -169,14 +168,14 @@
metadata=self.object_metadata,
)
return sane_name
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
raise minio_error(f"File {name} could not be saved", error)
def delete(self, name: str) -> None:
if self.backup_format and self.backup_bucket:
try:
obj = self.client.get_object(self.bucket_name, name)
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
raise minio_error(
"Could not obtain file {} " "to make a copy of
it".format(name),
error,
@@ -195,7 +194,7 @@
self.client.put_object(
self.backup_bucket, target_name, obj, content_length
)
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
raise minio_error(
"Could not make a copy of file "
"{} before removing it".format(name),
@@ -204,22 +203,22 @@
try:
self.client.remove_object(self.bucket_name, name)
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
raise minio_error(f"Could not remove file {name}", error)
def exists(self, name: str) -> bool:
try:
self.client.stat_object(self.bucket_name,
self._sanitize_path(name))
return True
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
# TODO - deprecate
if error.code == "NoSuchKey":
return False
else:
raise minio_error(f"Could not stat file {name}", error)
- except merr.NoSuchKey:
+ except merr.S3Error:
return False
- except merr.NoSuchBucket:
+ except merr.S3Error:
raise
except Exception as error:
logger.error(error)
@@ -242,7 +241,7 @@
dirs: T.List[str] = []
files: T.List[str] = []
try:
- objects = self.client.list_objects_v2(self.bucket_name,
prefix=path)
+ objects = self.client.list_objects(self.bucket_name, prefix=path)
for o in objects:
p = posixpath.relpath(o.object_name, path)
if o.is_dir:
@@ -250,16 +249,16 @@
else:
files.append(p)
return dirs, files
- except merr.NoSuchBucket:
+ except merr.S3Error:
raise
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
raise minio_error(f"Could not list directory {path}", error)
def size(self, name: str) -> int:
try:
info = self.client.stat_object(self.bucket_name, name)
return info.size
- except merr.ResponseError as error:
+ except merr.InvalidResponseError as error:
raise minio_error(f"Could not access file size for {name}", error)
def _presigned_url(
@@ -302,30 +301,33 @@
if self.presign_urls:
url = self._presigned_url(name, max_age=max_age)
else:
- if self.base_url is not None:
- def strip_beg(path):
- while path.startswith("/"):
- path = path[1:]
- return path
-
- def strip_end(path):
- while path.endswith("/"):
- path = path[:-1]
- return path
+ def strip_beg(path):
+ while path.startswith("/"):
+ path = path[1:]
+ return path
+
+ def strip_end(path):
+ while path.endswith("/"):
+ path = path[:-1]
+ return path
+ if self.base_url is not None:
url = "{}/{}".format(
strip_end(self.base_url),
urllib.parse.quote(strip_beg(name))
)
else:
- url = get_target_url(
- self.client._endpoint_url,
- bucket_name=self.bucket_name,
- object_name=name,
- # bucket_region=region,
+ url = "{}/{}/{}".format(
+ strip_end(self.endpoint_url),
+ self.bucket_name,
+ urllib.parse.quote(strip_beg(name)),
)
return url
+ @property
+ def endpoint_url(self):
+ return self.client._base_url._url.geturl()
+
def accessed_time(self, name: str) -> datetime.datetime:
"""
Not available via the S3 API
@@ -341,8 +343,8 @@
def modified_time(self, name: str) -> datetime.datetime:
try:
info = self.client.stat_object(self.bucket_name, name)
- return datetime.datetime.fromtimestamp(mktime(info.last_modified))
- except merr.ResponseError as error:
+ return info.last_modified
+ except merr.InvalidResponseError as error:
raise minio_error(
f"Could not access modification time for file {name}", error
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/minio_storage/version.py
new/django-minio-storage-0.5.0/minio_storage/version.py
--- old/django-minio-storage-0.3.10/minio_storage/version.py 1970-01-01
01:00:00.000000000 +0100
+++ new/django-minio-storage-0.5.0/minio_storage/version.py 2023-04-23
13:01:30.000000000 +0200
@@ -0,0 +1 @@
+__version__ = "0.5.0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/mkdocs.yml
new/django-minio-storage-0.5.0/mkdocs.yml
--- old/django-minio-storage-0.3.10/mkdocs.yml 2018-07-12 21:09:03.000000000
+0200
+++ new/django-minio-storage-0.5.0/mkdocs.yml 2023-04-23 13:01:14.000000000
+0200
@@ -1,6 +1,6 @@
site_name: django-minio-storage
theme: readthedocs
-pages:
+nav:
- Home: index.md
- Usage: usage.md
- Development: development.md
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/pyproject.toml
new/django-minio-storage-0.5.0/pyproject.toml
--- old/django-minio-storage-0.3.10/pyproject.toml 2019-10-17
00:34:52.000000000 +0200
+++ new/django-minio-storage-0.5.0/pyproject.toml 2023-04-23
13:01:14.000000000 +0200
@@ -1,3 +1,3 @@
[tool.black]
-target_version = ['py36']
+target_version = ['py38']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/setup.py
new/django-minio-storage-0.5.0/setup.py
--- old/django-minio-storage-0.3.10/setup.py 2020-12-09 05:34:24.000000000
+0100
+++ new/django-minio-storage-0.5.0/setup.py 2023-04-23 13:01:14.000000000
+0200
@@ -7,7 +7,11 @@
setup(
name="django-minio-storage",
license="MIT",
- use_scm_version=True,
+ use_scm_version={
+ "write_to": "minio_storage/version.py",
+ "write_to_template": '__version__ = "{version}"\n',
+ "tag_regex": r"^v(?P<prefix>v)?(?P<version>[^\+]+)(?P<suffix>.*)?$",
+ },
description="Django file storage using the minio python client",
long_description=long_description,
long_description_content_type="text/markdown",
@@ -20,7 +24,8 @@
"minio_storage/management/commands/",
],
setup_requires=["setuptools_scm"],
- install_requires=["django>=1.11", "minio>=4.0.21,<7"],
+ python_requires=">=3.8",
+ install_requires=["django>=3.2", "minio>=7.1.12"],
extras_require={"test": ["coverage", "requests"]},
classifiers=[
"Development Status :: 4 - Beta",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/tests/test_app/tests/bucket_tests.py
new/django-minio-storage-0.5.0/tests/test_app/tests/bucket_tests.py
--- old/django-minio-storage-0.3.10/tests/test_app/tests/bucket_tests.py
2020-10-03 07:55:15.000000000 +0200
+++ new/django-minio-storage-0.5.0/tests/test_app/tests/bucket_tests.py
2023-04-23 13:01:14.000000000 +0200
@@ -77,7 +77,7 @@
)
def test_auto_create_no_policy(self):
ms = MinioMediaStorage()
- with self.assertRaises(minio.error.NoSuchBucketPolicy):
+ with self.assertRaises(minio.error.S3Error):
ms.client.get_bucket_policy(ms.bucket_name)
@override_settings(
@@ -96,7 +96,7 @@
url = ms.url(fn)
self.assertEqual(requests.get(url).status_code, 200)
self.assertEqual(
-
requests.get(f"{ms.client._endpoint_url}/{ms.bucket_name}").status_code, 403
+ requests.get(f"{ms.endpoint_url}/{ms.bucket_name}").status_code,
403
)
@override_settings(
@@ -114,7 +114,7 @@
self.assertEqual(ms.open(fn).read(), b"test")
self.assertEqual(requests.get(ms.url(fn)).status_code, 200)
self.assertEqual(
-
requests.get(f"{ms.client._endpoint_url}/{ms.bucket_name}").status_code, 403
+ requests.get(f"{ms.endpoint_url}/{ms.bucket_name}").status_code,
403
)
@override_settings(
@@ -132,7 +132,7 @@
self.assertEqual(ms.open(fn).read(), b"test")
self.assertEqual(requests.get(ms.url(fn)).status_code, 403)
self.assertEqual(
-
requests.get(f"{ms.client._endpoint_url}/{ms.bucket_name}").status_code, 403
+ requests.get(f"{ms.endpoint_url}/{ms.bucket_name}").status_code,
403
)
@override_settings(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/tests/test_app/tests/custom_storage_class_tests.py
new/django-minio-storage-0.5.0/tests/test_app/tests/custom_storage_class_tests.py
---
old/django-minio-storage-0.3.10/tests/test_app/tests/custom_storage_class_tests.py
2020-10-03 07:55:15.000000000 +0200
+++
new/django-minio-storage-0.5.0/tests/test_app/tests/custom_storage_class_tests.py
2023-04-23 13:01:14.000000000 +0200
@@ -42,7 +42,6 @@
file_class = ReadOnlyMinioObjectFile
def __init__(self, bucket_name=None):
-
# we can create the minio client ourselves or use
# create_minio_client_from_settings convinience function while
providing it with
# extra args.
@@ -82,7 +81,6 @@
# with statement here.
#
with tempfile.TemporaryDirectory() as workspace:
-
# A filename to use for the file inside the working directory.
#
filename = os.path.join(workspace, "secret.txt")
@@ -96,7 +94,6 @@
with open(filename, "wb") as out_file, storage.open(
storage_filename
) as storage_file:
-
# Copy the stream from the http stream to the out_file
#
shutil.copyfileobj(storage_file.file, out_file)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/tests/test_app/tests/managementcommand_tests.py
new/django-minio-storage-0.5.0/tests/test_app/tests/managementcommand_tests.py
---
old/django-minio-storage-0.3.10/tests/test_app/tests/managementcommand_tests.py
2020-10-03 07:55:15.000000000 +0200
+++
new/django-minio-storage-0.5.0/tests/test_app/tests/managementcommand_tests.py
2023-04-23 13:01:14.000000000 +0200
@@ -20,7 +20,6 @@
MINIO_STORAGE_AUTO_CREATE_MEDIA_POLICY=False,
)
def test_management_command(self):
-
storage = self.media_storage
bucket = self.media_storage.bucket_name
@@ -31,7 +30,7 @@
try:
self.obliterate_bucket(self.media_storage.bucket_name)
- except minio.error.NoSuchBucket:
+ except minio.error.S3Error:
pass
with self.assertRaisesRegex(CommandError, f"bucket {bucket} does not
exist"):
@@ -40,7 +39,7 @@
with self.assertRaisesRegex(CommandError, f"bucket {bucket} does not
exist"):
call_command("minio", "policy")
- with self.assertRaisesRegex(CommandError, f"bucket {bucket} does not
exist"):
+ with self.assertRaisesRegex(CommandError, f"error reading bucket
{bucket}"):
call_command("minio", "ls")
with self.assertRaisesRegex(CommandError, f"bucket {bucket} does not
exist"):
@@ -50,7 +49,7 @@
call_command("minio", "check")
- with self.assertRaisesRegex(CommandError, f"you have already created
{bucket}"):
+ with self.assertRaisesRegex(CommandError, f"error creating {bucket}"):
call_command("minio", "create")
with self.assertRaisesRegex(CommandError, f"bucket {bucket} has no
policy"):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/tests/test_app/tests/retrieve_tests.py
new/django-minio-storage-0.5.0/tests/test_app/tests/retrieve_tests.py
--- old/django-minio-storage-0.3.10/tests/test_app/tests/retrieve_tests.py
2020-12-09 05:34:22.000000000 +0100
+++ new/django-minio-storage-0.5.0/tests/test_app/tests/retrieve_tests.py
2023-04-23 13:01:14.000000000 +0200
@@ -7,7 +7,7 @@
from django.core.files.base import ContentFile
from django.test import TestCase, override_settings
from freezegun import freeze_time
-from minio.error import NoSuchKey
+from minio.error import S3Error
from minio_storage.errors import MinIOError
from minio_storage.storage import MinioMediaStorage
@@ -44,7 +44,7 @@
def test_size_of_non_existent_throws(self):
test_file = self.media_storage.save("sizetest.txt",
ContentFile(b"1234"))
self.media_storage.delete(test_file)
- with self.assertRaises(NoSuchKey):
+ with self.assertRaises(S3Error):
self.media_storage.size(test_file)
def test_modified_time(self):
@@ -63,7 +63,7 @@
)
def test_modified_time_of_non_existent_throws(self):
- with self.assertRaises(NoSuchKey):
+ with self.assertRaises(S3Error):
self.media_storage.modified_time("nonexistent.jpg")
def _listdir_root(self, root):
@@ -128,7 +128,7 @@
try:
self.media_storage.open("this does not exist")
except MinIOError as e:
- assert e.cause.__class__ == NoSuchKey
+ assert e.cause.__class__ == S3Error
def test_file_names_are_properly_sanitized(self):
self.media_storage.save("./meh22222.txt", io.BytesIO(b"stuff"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/tests/test_app/tests/upload_tests.py
new/django-minio-storage-0.5.0/tests/test_app/tests/upload_tests.py
--- old/django-minio-storage-0.3.10/tests/test_app/tests/upload_tests.py
2020-12-09 05:34:22.000000000 +0100
+++ new/django-minio-storage-0.5.0/tests/test_app/tests/upload_tests.py
2023-04-23 13:01:14.000000000 +0200
@@ -4,7 +4,7 @@
from django.conf import settings
from django.core.files.base import ContentFile, File
from django.test import TestCase, override_settings
-from minio.error import InvalidAccessKeyId
+from minio.error import S3Error
from minio_storage.storage import MinioMediaStorage
@@ -22,7 +22,7 @@
MINIO_STORAGE_ACCESS_KEY="wrong_key",
MINIO_STORAGE_SECRET_KEY="wrong_secret"
)
def test_file_upload_fail_incorrect_keys(self):
- with self.assertRaises(InvalidAccessKeyId):
+ with self.assertRaises(S3Error):
MinioMediaStorage()
def test_two_files_with_the_same_name_can_be_uploaded(self):
@@ -88,7 +88,20 @@
res = self.media_storage.client.stat_object(
self.media_storage.bucket_name, ivan
)
- self.assertEqual(res.metadata, {"Content-Type": "text/plain"})
+ metadata_attrs = {
+ "Accept-Ranges",
+ "Content-Length",
+ "Content-Security-Policy",
+ "Content-Type",
+ "ETag",
+ "Last-Modified",
+ "Server",
+ "Vary",
+ "X-Amz-Request-Id",
+ "X-Xss-Protection",
+ "Date",
+ }
+ self.assertTrue(metadata_attrs.issubset(res.metadata.keys()))
@override_settings(
@@ -100,7 +113,5 @@
res = self.media_storage.client.stat_object(
self.media_storage.bucket_name, ivan
)
- self.assertEqual(
- res.metadata,
- {"Cache-Control": "max-age=1000", "Content-Type": "text/plain"},
- )
+
+ self.assertEqual(res.metadata["Cache-Control"], "max-age=1000")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/django-minio-storage-0.3.10/tests/test_app/tests/utils.py
new/django-minio-storage-0.5.0/tests/test_app/tests/utils.py
--- old/django-minio-storage-0.3.10/tests/test_app/tests/utils.py
2020-10-03 07:55:15.000000000 +0200
+++ new/django-minio-storage-0.5.0/tests/test_app/tests/utils.py
2023-04-23 13:01:14.000000000 +0200
@@ -53,6 +53,4 @@
for obj in client.list_objects(name, "", True):
client.remove_object(name, obj.object_name)
- for obj in client.list_incomplete_uploads(name, ""): # pragma: no
cover # noqa
- client.remove_incomplete_upload(name, obj.objectname)
client.remove_bucket(name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/django-minio-storage-0.3.10/tox.ini
new/django-minio-storage-0.5.0/tox.ini
--- old/django-minio-storage-0.3.10/tox.ini 2020-10-03 07:55:15.000000000
+0200
+++ new/django-minio-storage-0.5.0/tox.ini 2023-04-23 13:01:14.000000000
+0200
@@ -1,38 +1,31 @@
[pytest]
-python_paths = ./tests
-changedir = ./tests
+pythonpath = . tests
DJANGO_SETTINGS_MODULE = django_minio_storage_tests.settings
addopts=--tb=short
python_files = tests.py test_*.py *_tests.py
+django_find_project = false
-[travis]
+[gh-actions]
python =
- 3.6: py36
- 3.7: py37
- 3.8: py38, lint, docs
-
-[travis:env]
-DJANGO =
- 1.11: django111
- 2.1: django21
- 2.2: django22, lint, docs
- 3.0: django30
+ 3.8: py38
+ 3.9: py39
+ 3.10: py310
+ 3.11: py311, lint, docs
+
[testenv]
commands = pytest {posargs}
setenv =
PYTHONDONTWRITEBYTECODE=1
- MINIO_STORAGE_ENDPOINT=localhost:9153
- MINIO_STORAGE_ACCESS_KEY=weak_access_key
- MINIO_STORAGE_SECRET_KEY=weak_secret_key
+ MINIO_STORAGE_ENDPOINT={env:MINIO_STORAGE_ENDPOINT:localhost:9153}
+ MINIO_STORAGE_ACCESS_KEY={env:MINIO_STORAGE_ACCESS_KEY:weak_access_key}
+ MINIO_STORAGE_SECRET_KEY={env:MINIO_STORAGE_SECRET_KEY:weak_secret_key}
TOX_ENVNAME={envname}
deps =
- django111: Django==1.11.*
- django21: Django==2.1.*
- django22: Django==2.2.*
- django30: Django==3.0b1
+ django32: Django==3.2.*
+ django42: Django==4.2.*
minio: minio
- minioknown: minio==4.0.21
+ minioknown: minio==7.1.12
-rdev-requirements.txt
[testenv:lint]
@@ -40,9 +33,9 @@
PYTHONWARNINGS=ignore
basepython = python3
deps =
- flake8==3.8.3
- isort==5.4.2
- black==20.8b1
+ flake8==4.0.1
+ isort==5.10.1
+ black==22.3.0
commands =
flake8 --config .flake8rc
isort --check --diff .
@@ -54,9 +47,9 @@
basepython = python3
deps =
pyupgrade-directories
- flake8==3.8.3
- isort==5.4.2
- black==20.8b1
+ flake8==6.0.0
+ isort==5.12.0
+ black==23.3.0
commands =
pyup_dirs --exit-zero-even-if-changed --py36-plus minio_storage tests
isort .
@@ -69,8 +62,8 @@
[tox]
envlist =
- {py36,py37,py38}-django22-minioknown
- py38-django{111,21,30}-minioknown
- py38-django22-minio
+ {py38,py39,py310,py311}-django42-minioknown
+ py311-django{32,42}-minioknown
+ py311-django42-minio
lint
docs