Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-minio for openSUSE:Factory 
checked in at 2025-08-15 21:52:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-minio (Old)
 and      /work/SRC/openSUSE:Factory/.python-minio.new.1085 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-minio"

Fri Aug 15 21:52:33 2025 rev:24 rq:1299768 version:7.2.16

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-minio/python-minio.changes        
2025-01-31 17:18:59.568536396 +0100
+++ /work/SRC/openSUSE:Factory/.python-minio.new.1085/python-minio.changes      
2025-08-15 21:54:02.881078810 +0200
@@ -1,0 +2,11 @@
+Fri Aug 15 07:27:48 UTC 2025 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Update to 7.2.16
+  * Add account_info Admin API by @mhkarimi1383 in #1463
+  * fix mypy error by @balamurugana in #1483
+  * put_object: add append object support by @balamurugana in #1493
+  * Add append_object() API by @balamurugana in #1494
+  * fix: type wrong in commonconfig by @hlf20010508 in #1489
+  * fix pip install for ubuntu 24.04 by @balamurugana in #1502
+
+-------------------------------------------------------------------

Old:
----
  minio-7.2.15.tar.gz

New:
----
  minio-7.2.16.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-minio.spec ++++++
--- /var/tmp/diff_new_pack.lLuYuL/_old  2025-08-15 21:54:03.357098604 +0200
+++ /var/tmp/diff_new_pack.lLuYuL/_new  2025-08-15 21:54:03.361098771 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-minio
-Version:        7.2.15
+Version:        7.2.16
 Release:        0
 Summary:        Minio library for Amazon S3 compatible cloud storage
 License:        Apache-2.0

++++++ minio-7.2.15.tar.gz -> minio-7.2.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/PKG-INFO new/minio-7.2.16/PKG-INFO
--- old/minio-7.2.15/PKG-INFO   2025-01-19 09:57:22.795931800 +0100
+++ new/minio-7.2.16/PKG-INFO   2025-07-21 22:11:12.682272400 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.1
 Name: minio
-Version: 7.2.15
+Version: 7.2.16
 Summary: MinIO Python SDK for Amazon S3 Compatible Cloud Storage
 Home-page: https://github.com/minio/minio-py
 Download-URL: https://github.com/minio/minio-py/releases
@@ -23,22 +23,6 @@
 Description-Content-Type: text/markdown
 License-File: LICENSE
 License-File: NOTICE
-Requires-Dist: certifi
-Requires-Dist: urllib3
-Requires-Dist: argon2-cffi
-Requires-Dist: pycryptodome
-Requires-Dist: typing-extensions
-Dynamic: author
-Dynamic: author-email
-Dynamic: classifier
-Dynamic: description
-Dynamic: description-content-type
-Dynamic: download-url
-Dynamic: home-page
-Dynamic: license
-Dynamic: requires-dist
-Dynamic: requires-python
-Dynamic: summary
 
 # MinIO Python Client SDK for Amazon S3 Compatible Cloud Storage 
[![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Apache 
V2 
License](https://img.shields.io/badge/license-Apache%20V2-blue.svg)](https://github.com/minio/minio-py/blob/master/LICENSE)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/docs/API.md new/minio-7.2.16/docs/API.md
--- old/minio-7.2.15/docs/API.md        2025-01-19 09:56:46.000000000 +0100
+++ new/minio-7.2.16/docs/API.md        2025-07-21 22:09:42.000000000 +0200
@@ -63,30 +63,30 @@
 
 | Bucket operations                                           | Object 
operations                                               |
 
|:------------------------------------------------------------|:----------------------------------------------------------------|
-| [`make_bucket`](#make_bucket)                               | 
[`get_object`](#get_object)                                     |
-| [`list_buckets`](#list_buckets)                             | 
[`put_object`](#put_object)                                     |
-| [`bucket_exists`](#bucket_exists)                           | 
[`copy_object`](#copy_object)                                   |
-| [`remove_bucket`](#remove_bucket)                           | 
[`compose_object`](#compose_object)                             |
-| [`list_objects`](#list_objects)                             | 
[`stat_object`](#stat_object)                                   |
-| [`get_bucket_versioning`](#get_bucket_versioning)           | 
[`remove_object`](#remove_object)                               |
-| [`set_bucket_versioning`](#set_bucket_versioning)           | 
[`remove_objects`](#remove_objects)                             |
-| [`delete_bucket_replication`](#delete_bucket_replication)   | 
[`fput_object`](#fput_object)                                   |
-| [`get_bucket_replication`](#get_bucket_replication)         | 
[`fget_object`](#fget_object)                                   |
-| [`set_bucket_replication`](#set_bucket_replication)         | 
[`select_object_content`](#select_object_content)               |
-| [`delete_bucket_lifecycle`](#delete_bucket_lifecycle)       | 
[`delete_object_tags`](#delete_object_tags)                     |
-| [`get_bucket_lifecycle`](#get_bucket_lifecycle)             | 
[`get_object_tags`](#get_object_tags)                           |
-| [`set_bucket_lifecycle`](#set_bucket_lifecycle)             | 
[`set_object_tags`](#set_object_tags)                           |
-| [`delete_bucket_tags`](#delete_bucket_tags)                 | 
[`enable_object_legal_hold`](#enable_object_legal_hold)         |
-| [`get_bucket_tags`](#get_bucket_tags)                       | 
[`disable_object_legal_hold`](#disable_object_legal_hold)       |
-| [`set_bucket_tags`](#set_bucket_tags)                       | 
[`is_object_legal_hold_enabled`](#is_object_legal_hold_enabled) |
-| [`delete_bucket_policy`](#delete_bucket_policy)             | 
[`get_object_retention`](#get_object_retention)                 |
-| [`get_bucket_policy`](#get_bucket_policy)                   | 
[`set_object_retention`](#set_object_retention)                 |
-| [`set_bucket_policy`](#set_bucket_policy)                   | 
[`presigned_get_object`](#presigned_get_object)                 |
-| [`delete_bucket_notification`](#delete_bucket_notification) | 
[`presigned_put_object`](#presigned_put_object)                 |
-| [`get_bucket_notification`](#get_bucket_notification)       | 
[`presigned_post_policy`](#presigned_post_policy)               |
-| [`set_bucket_notification`](#set_bucket_notification)       | 
[`get_presigned_url`](#get_presigned_url)                       |
-| [`listen_bucket_notification`](#listen_bucket_notification) | 
[`upload_snowball_objects`](#upload_snowball_objects)           |
-| [`delete_bucket_encryption`](#delete_bucket_encryption)     |                
                                                 |
+| [`make_bucket`](#make_bucket)                               | 
[`append_object`](#append_object)                               |
+| [`list_buckets`](#list_buckets)                             | 
[`get_object`](#get_object)                                     |
+| [`bucket_exists`](#bucket_exists)                           | 
[`put_object`](#put_object)                                     |
+| [`remove_bucket`](#remove_bucket)                           | 
[`copy_object`](#copy_object)                                   |
+| [`list_objects`](#list_objects)                             | 
[`compose_object`](#compose_object)                             |
+| [`get_bucket_versioning`](#get_bucket_versioning)           | 
[`stat_object`](#stat_object)                                   |
+| [`set_bucket_versioning`](#set_bucket_versioning)           | 
[`remove_object`](#remove_object)                               |
+| [`delete_bucket_replication`](#delete_bucket_replication)   | 
[`remove_objects`](#remove_objects)                             |
+| [`get_bucket_replication`](#get_bucket_replication)         | 
[`fput_object`](#fput_object)                                   |
+| [`set_bucket_replication`](#set_bucket_replication)         | 
[`fget_object`](#fget_object)                                   |
+| [`delete_bucket_lifecycle`](#delete_bucket_lifecycle)       | 
[`select_object_content`](#select_object_content)               |
+| [`get_bucket_lifecycle`](#get_bucket_lifecycle)             | 
[`delete_object_tags`](#delete_object_tags)                     |
+| [`set_bucket_lifecycle`](#set_bucket_lifecycle)             | 
[`get_object_tags`](#get_object_tags)                           |
+| [`delete_bucket_tags`](#delete_bucket_tags)                 | 
[`set_object_tags`](#set_object_tags)                           |
+| [`get_bucket_tags`](#get_bucket_tags)                       | 
[`enable_object_legal_hold`](#enable_object_legal_hold)         |
+| [`set_bucket_tags`](#set_bucket_tags)                       | 
[`disable_object_legal_hold`](#disable_object_legal_hold)       |
+| [`delete_bucket_policy`](#delete_bucket_policy)             | 
[`is_object_legal_hold_enabled`](#is_object_legal_hold_enabled) |
+| [`get_bucket_policy`](#get_bucket_policy)                   | 
[`get_object_retention`](#get_object_retention)                 |
+| [`set_bucket_policy`](#set_bucket_policy)                   | 
[`set_object_retention`](#set_object_retention)                 |
+| [`delete_bucket_notification`](#delete_bucket_notification) | 
[`presigned_get_object`](#presigned_get_object)                 |
+| [`get_bucket_notification`](#get_bucket_notification)       | 
[`presigned_put_object`](#presigned_put_object)                 |
+| [`set_bucket_notification`](#set_bucket_notification)       | 
[`presigned_post_policy`](#presigned_post_policy)               |
+| [`listen_bucket_notification`](#listen_bucket_notification) | 
[`get_presigned_url`](#get_presigned_url)                       |
+| [`delete_bucket_encryption`](#delete_bucket_encryption)     | 
[`upload_snowball_objects`](#upload_snowball_objects)           |
 | [`get_bucket_encryption`](#get_bucket_encryption)           |                
                                                 |
 | [`set_bucket_encryption`](#set_bucket_encryption)           |                
                                                 |
 | [`delete_object_lock_config`](#delete_object_lock_config)   |                
                                                 |
@@ -836,6 +836,57 @@
 
 ## 3. Object operations
 
+<a name="append_object"></a>
+
+### append_object(bucket_name, object_name, data, length, 
content_type="application/octet-stream", metadata=None, sse=None, 
progress=None, part_size=0, num_parallel_uploads=3, tags=None, retention=None, 
legal_hold=False)
+
+Appends from a stream to existing object in a bucket.
+
+__Parameters__
+
+| Param           | Type        | Description                                  
            |
+|:----------------|:------------|:---------------------------------------------------------|
+| `bucket_name`   | _str_       | Name of the bucket.                          
            |
+| `object_name`   | _str_       | Object name in the bucket.                   
            |
+| `data`          | _object_    | An object having callable read() returning 
bytes object. |
+| `length`        | _int_       | Data size; -1 for unknown size and set valid 
part_size.  |
+| `part_size`     | _int_       | Chunk size.                                  
            |
+| `progress`      | _threading_ | A progress object.                           
            |
+| `extra_headers` | _dict_      | Extra headers.                               
            |
+
+__Return Value__
+
+| Return                      |
+|:----------------------------|
+| _ObjectWriteResult_ object. |
+
+__Example__
+```py
+# Append data.
+result = client.append_object(
+    "my-bucket", "my-object", io.BytesIO(b"world"), 5,
+)
+print(f"appended {result.object_name} object; etag: {result.etag}")
+
+# Append data in chunks.
+data = urlopen(
+    "https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.13.12.tar.xz";,
+)
+result = client.append_object(
+    "my-bucket", "my-object", data, 148611164, 5*1024*1024,
+)
+print(f"appended {result.object_name} object; etag: {result.etag}")
+
+# Append unknown sized data.
+data = urlopen(
+    "https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.14.3.tar.xz";,
+)
+result = client.append_object(
+    "my-bucket", "my-object", data, 149426584, 5*1024*1024,
+)
+print(f"appended {result.object_name} object; etag: {result.etag}")
+```
+
 <a name="get_object"></a>
 
 ### get_object(bucket_name, object_name, offset=0, length=0, 
request_headers=None, ssec=None, version_id=None, extra_query_params=None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/examples/append_object.py 
new/minio-7.2.16/examples/append_object.py
--- old/minio-7.2.15/examples/append_object.py  1970-01-01 01:00:00.000000000 
+0100
+++ new/minio-7.2.16/examples/append_object.py  2025-07-21 22:09:42.000000000 
+0200
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+# MinIO Python Library for Amazon S3 Compatible Cloud Storage,
+# (C) 2025 MinIO, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import io
+from urllib.request import urlopen
+
+from examples.progress import Progress
+from minio import Minio
+
+client = Minio(
+    "play.min.io",
+    access_key="Q3AM3UQ867SPQQA43P2F",
+    secret_key="zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG",
+)
+
+# Upload data.
+result = client.put_object(
+    "my-bucket", "my-object", io.BytesIO(b"hello, "), 7,
+)
+print(f"created {result.object_name} object; etag: {result.etag}")
+
+# Append data.
+result = client.append_object(
+    "my-bucket", "my-object", io.BytesIO(b"world"), 5,
+)
+print(f"appended {result.object_name} object; etag: {result.etag}")
+
+# Append data in chunks.
+data = urlopen(
+    "https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.13.12.tar.xz";,
+)
+result = client.append_object(
+    "my-bucket", "my-object", data, 148611164, 5*1024*1024,
+)
+print(f"appended {result.object_name} object; etag: {result.etag}")
+
+# Append unknown sized data.
+data = urlopen(
+    "https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.14.3.tar.xz";,
+)
+result = client.append_object(
+    "my-bucket", "my-object", data, 149426584, 5*1024*1024,
+)
+print(f"appended {result.object_name} object; etag: {result.etag}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/minio/__init__.py 
new/minio-7.2.16/minio/__init__.py
--- old/minio-7.2.15/minio/__init__.py  2025-01-19 09:56:46.000000000 +0100
+++ new/minio-7.2.16/minio/__init__.py  2025-07-21 22:09:42.000000000 +0200
@@ -33,7 +33,7 @@
 
 __title__ = "minio-py"
 __author__ = "MinIO, Inc."
-__version__ = "7.2.15"
+__version__ = "7.2.16"
 __license__ = "Apache 2.0"
 __copyright__ = "Copyright 2015, 2016, 2017, 2018, 2019, 2020 MinIO, Inc."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/minio/api.py 
new/minio-7.2.16/minio/api.py
--- old/minio-7.2.15/minio/api.py       2025-01-19 09:56:46.000000000 +0100
+++ new/minio-7.2.16/minio/api.py       2025-07-21 22:09:42.000000000 +0200
@@ -20,6 +20,8 @@
 # pylint: disable=too-many-lines
 # pylint: disable=too-many-public-methods
 # pylint: disable=too-many-statements
+# pylint: disable=too-many-locals
+# pylint: disable=too-many-positional-arguments
 
 """
 Simple Storage Service (aka S3) client to perform bucket and object operations.
@@ -1835,7 +1837,8 @@
             num_parallel_uploads: int = 3,
             tags: Tags | None = None,
             retention: Retention | None = None,
-            legal_hold: bool = False
+            legal_hold: bool = False,
+            write_offset: int | None = None,
     ) -> ObjectWriteResult:
         """
         Uploads data from a stream to an object in a bucket.
@@ -1854,6 +1857,7 @@
         :param tags: :class:`Tags` for the object.
         :param retention: :class:`Retention` configuration object.
         :param legal_hold: Flag to set legal hold for the object.
+        :param write_offset: Offset byte for appending data to existing object.
         :return: :class:`ObjectWriteResult` object.
 
         Example::
@@ -1890,6 +1894,12 @@
             raise ValueError("retention must be Retention type")
         if not callable(getattr(data, "read")):
             raise ValueError("input data must have callable read()")
+        if write_offset is not None:
+            if write_offset < 0:
+                raise ValueError("write offset should not be negative")
+            if length < 0:
+                raise ValueError("length must be provided for write offset")
+            part_size = length if length > MIN_PART_SIZE else MIN_PART_SIZE
         part_size, part_count = get_part_info(length, part_size)
         if progress:
             # Set progress bar length and object name before upload
@@ -1897,6 +1907,8 @@
 
         headers = genheaders(metadata, sse, tags, retention, legal_hold)
         headers["Content-Type"] = content_type or "application/octet-stream"
+        if write_offset:
+            headers["x-amz-write-offset-bytes"] = str(write_offset)
 
         object_size = length
         uploaded_size = 0
@@ -1995,6 +2007,124 @@
                 )
             raise exc
 
+    def append_object(
+            self,
+            bucket_name: str,
+            object_name: str,
+            data: BinaryIO,
+            length: int,
+            chunk_size: int | None = None,
+            progress: ProgressType | None = None,
+            extra_headers: DictType | None = None,
+    ) -> ObjectWriteResult:
+        """
+        Appends from a stream to existing object in a bucket.
+
+        :param bucket_name: Name of the bucket.
+        :param object_name: Object name in the bucket.
+        :param data: An object having callable read() returning bytes object.
+        :param length: Data size; -1 for unknown size.
+        :param chunk_size: Chunk size to optimize uploads.
+        :return: :class:`ObjectWriteResult` object.
+
+        Example::
+            # Append data.
+            result = client.append_object(
+                "my-bucket", "my-object", io.BytesIO(b"world"), 5,
+            )
+            print(f"appended {result.object_name} object; etag: {result.etag}")
+
+            # Append data in chunks.
+            data = urlopen(
+                "https://www.kernel.org/pub/linux/kernel/v6.x/";
+                "linux-6.13.12.tar.xz",
+            )
+            result = client.append_object(
+                "my-bucket", "my-object", data, 148611164, 5*1024*1024,
+            )
+            print(f"appended {result.object_name} object; etag: {result.etag}")
+
+            # Append unknown sized data.
+            data = urlopen(
+                "https://www.kernel.org/pub/linux/kernel/v6.x/";
+                "linux-6.14.3.tar.xz",
+            )
+            result = client.append_object(
+                "my-bucket", "my-object", data, 149426584, 5*1024*1024,
+            )
+            print(f"appended {result.object_name} object; etag: {result.etag}")
+        """
+        if length == 0:
+            raise ValueError("length should not be zero")
+        if chunk_size is not None:
+            if chunk_size < MIN_PART_SIZE:
+                raise ValueError("chunk size must be minimum of 5 MiB")
+            if chunk_size > MAX_PART_SIZE:
+                raise ValueError("chunk size must be less than 5 GiB")
+        else:
+            chunk_size = length if length > MIN_PART_SIZE else MIN_PART_SIZE
+
+        chunk_count = -1
+        if length > 0:
+            chunk_count = int(length / chunk_size)
+            if (chunk_count * chunk_size) < length:
+                chunk_count += 1
+            chunk_count = chunk_count or 1
+
+        object_size = length
+        uploaded_size = 0
+        chunk_number = 0
+        one_byte = b""
+        stop = False
+
+        stat = self.stat_object(bucket_name, object_name)
+        write_offset = cast(int, stat.size)
+
+        while not stop:
+            chunk_number += 1
+            if chunk_count > 0:
+                if chunk_number == chunk_count:
+                    chunk_size = object_size - uploaded_size
+                    stop = True
+                chunk_data = read_part_data(
+                    data, chunk_size, progress=progress,
+                )
+                if len(chunk_data) != chunk_size:
+                    raise IOError(
+                        f"stream having not enough data;"
+                        f"expected: {chunk_size}, "
+                        f"got: {len(chunk_data)} bytes"
+                    )
+            else:
+                chunk_data = read_part_data(
+                    data, chunk_size + 1, one_byte, progress=progress,
+                )
+                # If chunk_data_size is less or equal to chunk_size,
+                # then we have reached last chunk.
+                if len(chunk_data) <= chunk_size:
+                    chunk_count = chunk_number
+                    stop = True
+                else:
+                    one_byte = chunk_data[-1:]
+                    chunk_data = chunk_data[:-1]
+
+            uploaded_size += len(chunk_data)
+
+            headers = extra_headers or {}
+            headers["x-amz-write-offset-bytes"] = str(write_offset)
+            upload_result = self._put_object(
+                bucket_name, object_name, chunk_data, headers=headers,
+            )
+            write_offset += len(chunk_data)
+        return ObjectWriteResult(
+            cast(str, upload_result.bucket_name),
+            cast(str, upload_result.object_name),
+            upload_result.version_id,
+            upload_result.etag,
+            upload_result.http_headers,
+            location=upload_result.location,
+        )
+
     def list_objects(
             self,
             bucket_name: str,
@@ -3080,9 +3210,10 @@
         metadata["X-Amz-Meta-Snowball-Auto-Extract"] = "true"
 
         name = staging_filename
-        mode = "w:gz" if compression else "w"
         fileobj = None if name else BytesIO()
-        with tarfile.open(name=name, mode=mode, fileobj=fileobj) as tar:
+        with tarfile.open(
+                name=name, mode="w:gz" if compression else "w", 
fileobj=fileobj,
+        ) as tar:
             for obj in object_list:
                 if obj.filename:
                     tar.add(obj.filename, obj.object_name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/minio/commonconfig.py 
new/minio-7.2.16/minio/commonconfig.py
--- old/minio-7.2.15/minio/commonconfig.py      2025-01-19 09:56:46.000000000 
+0100
+++ new/minio-7.2.16/minio/commonconfig.py      2025-07-21 22:09:42.000000000 
+0200
@@ -313,8 +313,8 @@
             length: int | None = None,
             match_etag: str | None = None,
             not_match_etag: str | None = None,
-            modified_since: str | None = None,
-            unmodified_since: str | None = None,
+            modified_since: datetime | None = None,
+            unmodified_since: datetime | None = None,
     ):
         if ssec is not None and not isinstance(ssec, SseCustomerKey):
             raise ValueError("ssec must be SseCustomerKey type")
@@ -395,12 +395,12 @@
         return self._not_match_etag
 
     @property
-    def modified_since(self) -> str | None:
+    def modified_since(self) -> datetime | None:
         """Get modified since condition."""
         return self._modified_since
 
     @property
-    def unmodified_since(self) -> str | None:
+    def unmodified_since(self) -> datetime | None:
         """Get unmodified since condition."""
         return self._unmodified_since
 
@@ -460,8 +460,8 @@
             length: int | None = None,
             match_etag: str | None = None,
             not_match_etag: str | None = None,
-            modified_since: str | None = None,
-            unmodified_since: str | None = None,
+            modified_since: datetime | None = None,
+            unmodified_since: datetime | None = None,
     ):
         super().__init__(
             bucket_name, object_name, region, version_id, ssec, offset, length,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/minio/minioadmin.py 
new/minio-7.2.16/minio/minioadmin.py
--- old/minio-7.2.15/minio/minioadmin.py        2025-01-19 09:56:46.000000000 
+0100
+++ new/minio-7.2.16/minio/minioadmin.py        2025-07-21 22:09:42.000000000 
+0200
@@ -53,6 +53,7 @@
 @unique
 class _COMMAND(Enum):
     """Admin Command enumerations."""
+    ACCOUNT_INFO = "accountinfo"
     ADD_USER = "add-user"
     USER_INFO = "user-info"
     LIST_USERS = "list-users"
@@ -322,6 +323,15 @@
         )
         return response.data.decode()
 
+    def account_info(self, prefix_usage: bool = False) -> str:
+        """Get usage information for the authenticating account"""
+        response = self._url_open(
+            "GET",
+            _COMMAND.ACCOUNT_INFO,
+            query_params={"prefix-usage": "true"} if prefix_usage else None,
+        )
+        return response.data.decode()
+
     def user_add(self, access_key: str, secret_key: str) -> str:
         """Create user with access and secret keys"""
         body = json.dumps(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/minio.egg-info/PKG-INFO 
new/minio-7.2.16/minio.egg-info/PKG-INFO
--- old/minio-7.2.15/minio.egg-info/PKG-INFO    2025-01-19 09:57:22.000000000 
+0100
+++ new/minio-7.2.16/minio.egg-info/PKG-INFO    2025-07-21 22:11:11.000000000 
+0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.1
 Name: minio
-Version: 7.2.15
+Version: 7.2.16
 Summary: MinIO Python SDK for Amazon S3 Compatible Cloud Storage
 Home-page: https://github.com/minio/minio-py
 Download-URL: https://github.com/minio/minio-py/releases
@@ -23,22 +23,6 @@
 Description-Content-Type: text/markdown
 License-File: LICENSE
 License-File: NOTICE
-Requires-Dist: certifi
-Requires-Dist: urllib3
-Requires-Dist: argon2-cffi
-Requires-Dist: pycryptodome
-Requires-Dist: typing-extensions
-Dynamic: author
-Dynamic: author-email
-Dynamic: classifier
-Dynamic: description
-Dynamic: description-content-type
-Dynamic: download-url
-Dynamic: home-page
-Dynamic: license
-Dynamic: requires-dist
-Dynamic: requires-python
-Dynamic: summary
 
 # MinIO Python Client SDK for Amazon S3 Compatible Cloud Storage 
[![Slack](https://slack.min.io/slack?type=svg)](https://slack.min.io) [![Apache 
V2 
License](https://img.shields.io/badge/license-Apache%20V2-blue.svg)](https://github.com/minio/minio-py/blob/master/LICENSE)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/minio.egg-info/SOURCES.txt 
new/minio-7.2.16/minio.egg-info/SOURCES.txt
--- old/minio-7.2.15/minio.egg-info/SOURCES.txt 2025-01-19 09:57:22.000000000 
+0100
+++ new/minio-7.2.16/minio.egg-info/SOURCES.txt 2025-07-21 22:11:12.000000000 
+0200
@@ -7,6 +7,7 @@
 docs/API.md
 docs/zh_CN/API.md
 docs/zh_CN/CONTRIBUTING.md
+examples/append_object.py
 examples/bucket_exists.py
 examples/compose_object.py
 examples/copy_object.py
@@ -84,7 +85,6 @@
 minio/minioadmin.py
 minio/notificationconfig.py
 minio/objectlockconfig.py
-minio/py.typed
 minio/replicationconfig.py
 minio/retention.py
 minio/select.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/minio-7.2.15/minio.egg-info/requires.txt 
new/minio-7.2.16/minio.egg-info/requires.txt
--- old/minio-7.2.15/minio.egg-info/requires.txt        2025-01-19 
09:57:22.000000000 +0100
+++ new/minio-7.2.16/minio.egg-info/requires.txt        2025-07-21 
22:11:11.000000000 +0200
@@ -1,5 +1,5 @@
-certifi
-urllib3
 argon2-cffi
+certifi
 pycryptodome
 typing-extensions
+urllib3

Reply via email to