python3.pkgs.bce-python-sdk: 0.9.46 -> 0.9.57; unbreak
Use a patch to stop using `future`, which is not supported on Python 3.13.
This commit is contained in:
@@ -1,34 +1,41 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
pythonAtLeast,
|
||||
fetchPypi,
|
||||
fetchpatch,
|
||||
setuptools,
|
||||
future,
|
||||
pycryptodome,
|
||||
six,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.9.46";
|
||||
version = "0.9.57";
|
||||
in
|
||||
buildPythonPackage {
|
||||
pname = "bce-python-sdk";
|
||||
inherit version;
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonAtLeast "3.13";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "bce_python_sdk";
|
||||
inherit version;
|
||||
hash = "sha256-S/AbIubRcszZSqIB+LxvKpjQ2keEFg53z6z8xxwmhr4=";
|
||||
hash = "sha256-797kmORvaBg/W31BnPgFJLzsLAzWHe+ABdNYtP7PQ4E=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# From https://github.com/baidubce/bce-sdk-python/pull/15 . Upstream
|
||||
# doesn't seem to be responsive, the patch there doesn't apply cleanly on
|
||||
# this version, so a vendored patch was produced by running:
|
||||
#
|
||||
# git show -- setup.py baidubce
|
||||
#
|
||||
# in the Git checkout of the PR above.
|
||||
./no-future.patch
|
||||
];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
future
|
||||
pycryptodome
|
||||
six
|
||||
];
|
||||
|
||||
@@ -0,0 +1,348 @@
|
||||
commit 4e5538e58bd330c609bc196b55f2936f8e8676ea
|
||||
Author: Doron Behar <doron.behar@gmail.com>
|
||||
Date: Tue Dec 30 14:21:20 2025 +0200
|
||||
|
||||
Remove future per CVE-2025-50817
|
||||
|
||||
Fix #14 .
|
||||
|
||||
diff --git a/baidubce/auth/bce_v1_signer.py b/baidubce/auth/bce_v1_signer.py
|
||||
index 35c4557..62937e8 100644
|
||||
--- a/baidubce/auth/bce_v1_signer.py
|
||||
+++ b/baidubce/auth/bce_v1_signer.py
|
||||
@@ -13,7 +13,6 @@
|
||||
"""
|
||||
This module provides authentication functions for bce services.
|
||||
"""
|
||||
-from __future__ import absolute_import
|
||||
import hashlib
|
||||
import hmac
|
||||
import logging
|
||||
diff --git a/baidubce/bce_base_client.py b/baidubce/bce_base_client.py
|
||||
index 6905d0f..02976da 100644
|
||||
--- a/baidubce/bce_base_client.py
|
||||
+++ b/baidubce/bce_base_client.py
|
||||
@@ -13,9 +13,7 @@
|
||||
"""
|
||||
This module provide base class for BCE service clients.
|
||||
"""
|
||||
-from __future__ import absolute_import
|
||||
import copy
|
||||
-from builtins import str, bytes
|
||||
|
||||
import baidubce
|
||||
from baidubce import bce_client_configuration
|
||||
diff --git a/baidubce/bce_client_configuration.py b/baidubce/bce_client_configuration.py
|
||||
index 8d4d834..c3e01d3 100644
|
||||
--- a/baidubce/bce_client_configuration.py
|
||||
+++ b/baidubce/bce_client_configuration.py
|
||||
@@ -14,9 +14,6 @@
|
||||
This module defines a common configuration class for BCE.
|
||||
"""
|
||||
|
||||
-from future.utils import iteritems
|
||||
-from builtins import str
|
||||
-from builtins import bytes
|
||||
import baidubce.protocol
|
||||
import baidubce.region
|
||||
from baidubce.retry.retry_policy import BackOffRetryPolicy
|
||||
@@ -70,7 +67,7 @@ class BceClientConfiguration(object):
|
||||
:param other:
|
||||
:return:
|
||||
"""
|
||||
- for k, v in iteritems(other.__dict__):
|
||||
+ for k, v in other.__dict__.items():
|
||||
if v is not None:
|
||||
self.__dict__[k] = v
|
||||
|
||||
diff --git a/baidubce/bce_response.py b/baidubce/bce_response.py
|
||||
index d55447b..1db49dd 100644
|
||||
--- a/baidubce/bce_response.py
|
||||
+++ b/baidubce/bce_response.py
|
||||
@@ -13,9 +13,6 @@
|
||||
"""
|
||||
This module provides a general response class for BCE services.
|
||||
"""
|
||||
-from future.utils import iteritems
|
||||
-from builtins import str
|
||||
-from builtins import bytes
|
||||
from baidubce import utils
|
||||
from baidubce import compat
|
||||
from baidubce.http import http_headers
|
||||
@@ -34,7 +31,7 @@ class BceResponse(object):
|
||||
:param headers:
|
||||
:return:
|
||||
"""
|
||||
- for k, v in iteritems(headers):
|
||||
+ for k, v in headers.items():
|
||||
if k.startswith(compat.convert_to_string(http_headers.BCE_PREFIX)):
|
||||
k = 'bce_' + k[len(compat.convert_to_string(http_headers.BCE_PREFIX)):]
|
||||
k = utils.pythonize_name(k.replace('-', '_'))
|
||||
@@ -48,7 +45,7 @@ class BceResponse(object):
|
||||
:param headers:
|
||||
:return:
|
||||
"""
|
||||
- for k, v in iteritems(headers):
|
||||
+ for k, v in headers.items():
|
||||
if k.lower() == compat.convert_to_string(http_headers.ETAG.lower()):
|
||||
v = v.strip('"')
|
||||
setattr(self.metadata, k, v)
|
||||
diff --git a/baidubce/http/bce_http_client.py b/baidubce/http/bce_http_client.py
|
||||
index 7c5e4bf..fb1e881 100644
|
||||
--- a/baidubce/http/bce_http_client.py
|
||||
+++ b/baidubce/http/bce_http_client.py
|
||||
@@ -13,8 +13,6 @@
|
||||
"""
|
||||
This module provide http request function for bce services.
|
||||
"""
|
||||
-from future.utils import iteritems, iterkeys, itervalues
|
||||
-from builtins import str, bytes
|
||||
import logging
|
||||
import http.client
|
||||
import sys
|
||||
@@ -77,7 +75,7 @@ def _send_http_request(conn, http_method, uri, headers, body, send_buf_size):
|
||||
uri = compat.convert_to_string(uri)
|
||||
conn.putrequest(http_method, uri, skip_host=True, skip_accept_encoding=True)
|
||||
|
||||
- for k, v in iteritems(headers):
|
||||
+ for k, v in headers.items():
|
||||
k = utils.convert_to_standard_string(k)
|
||||
v = utils.convert_to_standard_string(v)
|
||||
conn.putheader(k, v)
|
||||
@@ -110,7 +108,7 @@ def check_headers(headers):
|
||||
:param headers:
|
||||
:return:
|
||||
"""
|
||||
- for k, v in iteritems(headers):
|
||||
+ for k, v in headers.items():
|
||||
if isinstance(v, (bytes, str)) and \
|
||||
b'\n' in compat.convert_to_bytes(v):
|
||||
raise BceClientError(r'There should not be any "\n" in header[%s]:%s' % (k, v))
|
||||
diff --git a/baidubce/services/bcc/bcc_client.py b/baidubce/services/bcc/bcc_client.py
|
||||
index fd09356..66ffa9c 100644
|
||||
--- a/baidubce/services/bcc/bcc_client.py
|
||||
+++ b/baidubce/services/bcc/bcc_client.py
|
||||
@@ -15,8 +15,6 @@
|
||||
This module provides a client class for BCC.
|
||||
"""
|
||||
|
||||
-from __future__ import unicode_literals
|
||||
-
|
||||
import copy
|
||||
import json
|
||||
import logging
|
||||
diff --git a/baidubce/services/bos/bos_client.py b/baidubce/services/bos/bos_client.py
|
||||
index f759114..c5bbc0b 100644
|
||||
--- a/baidubce/services/bos/bos_client.py
|
||||
+++ b/baidubce/services/bos/bos_client.py
|
||||
@@ -22,9 +22,6 @@ import json
|
||||
import logging
|
||||
import shutil
|
||||
import struct
|
||||
-from builtins import str
|
||||
-from builtins import bytes
|
||||
-from future.utils import iteritems, iterkeys, itervalues
|
||||
from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED, FIRST_COMPLETED
|
||||
import threading
|
||||
import functools
|
||||
@@ -174,7 +171,7 @@ class BosClient(BceBaseClient):
|
||||
@staticmethod
|
||||
def _dump_acl_object(acl):
|
||||
result = {}
|
||||
- for k, v in iteritems(acl.__dict__):
|
||||
+ for k, v in acl.__dict__.items():
|
||||
if not k.startswith('_'):
|
||||
result[k] = v
|
||||
return result
|
||||
@@ -2851,7 +2848,7 @@ class BosClient(BceBaseClient):
|
||||
meta_data_set = set()
|
||||
if not isinstance(user_metadata, dict):
|
||||
raise TypeError('user_metadata should be of type dict.')
|
||||
- for k, v in iteritems(user_metadata):
|
||||
+ for k, v in user_metadata.items():
|
||||
meta_data_set.add(k.lower())
|
||||
k = utils.convert_to_standard_string(k)
|
||||
v = utils.convert_to_standard_string(v)
|
||||
@@ -2911,7 +2908,7 @@ class BosClient(BceBaseClient):
|
||||
http_headers.BCE_COPY_SOURCE_IF_UNMODIFIED_SINCE,
|
||||
http_headers.BCE_COPY_SOURCE_IF_MODIFIED_SINCE]))
|
||||
|
||||
- for k, v in iteritems(user_headers):
|
||||
+ for k, v in user_headers.items():
|
||||
k = utils.convert_to_standard_string(k)
|
||||
if k != http_headers.BOS_OBJECT_EXPIRES:
|
||||
v = utils.convert_to_standard_string(v)
|
||||
diff --git a/baidubce/services/cert/cert_client.py b/baidubce/services/cert/cert_client.py
|
||||
index 9b005b4..1cfe55f 100644
|
||||
--- a/baidubce/services/cert/cert_client.py
|
||||
+++ b/baidubce/services/cert/cert_client.py
|
||||
@@ -14,8 +14,6 @@
|
||||
This module provides a client class for CERT.
|
||||
"""
|
||||
|
||||
-from __future__ import unicode_literals
|
||||
-
|
||||
import copy
|
||||
import json
|
||||
import logging
|
||||
diff --git a/baidubce/services/esg/esg_client.py b/baidubce/services/esg/esg_client.py
|
||||
index e0827f4..fcedd7e 100644
|
||||
--- a/baidubce/services/esg/esg_client.py
|
||||
+++ b/baidubce/services/esg/esg_client.py
|
||||
@@ -13,7 +13,6 @@
|
||||
"""
|
||||
This module provides a client class for esg.
|
||||
"""
|
||||
-from __future__ import unicode_literals
|
||||
|
||||
import copy
|
||||
import json
|
||||
diff --git a/baidubce/services/iam/iam_client.py b/baidubce/services/iam/iam_client.py
|
||||
index ee804ca..d2ce54e 100644
|
||||
--- a/baidubce/services/iam/iam_client.py
|
||||
+++ b/baidubce/services/iam/iam_client.py
|
||||
@@ -18,8 +18,6 @@ import copy
|
||||
import json
|
||||
import logging
|
||||
|
||||
-from future.utils import iteritems
|
||||
-
|
||||
from baidubce.auth import bce_v1_signer
|
||||
from baidubce.bce_base_client import BceBaseClient
|
||||
from baidubce.http import bce_http_client
|
||||
diff --git a/baidubce/services/rds/rds_client.py b/baidubce/services/rds/rds_client.py
|
||||
index 71e058b..a055986 100644
|
||||
--- a/baidubce/services/rds/rds_client.py
|
||||
+++ b/baidubce/services/rds/rds_client.py
|
||||
@@ -14,8 +14,6 @@
|
||||
This module provides a client class for RDS.
|
||||
"""
|
||||
|
||||
-from __future__ import unicode_literals
|
||||
-
|
||||
import copy
|
||||
import json
|
||||
import logging
|
||||
diff --git a/baidubce/services/scs/scs_client.py b/baidubce/services/scs/scs_client.py
|
||||
index c4c1631..c20d593 100644
|
||||
--- a/baidubce/services/scs/scs_client.py
|
||||
+++ b/baidubce/services/scs/scs_client.py
|
||||
@@ -16,7 +16,6 @@
|
||||
"""
|
||||
This module provides a client class for SCS.
|
||||
"""
|
||||
-from __future__ import unicode_literals
|
||||
|
||||
import copy
|
||||
import json
|
||||
diff --git a/baidubce/services/sts/sts_client.py b/baidubce/services/sts/sts_client.py
|
||||
index 9aba0e3..22ee710 100644
|
||||
--- a/baidubce/services/sts/sts_client.py
|
||||
+++ b/baidubce/services/sts/sts_client.py
|
||||
@@ -14,7 +14,6 @@
|
||||
This module provides a client for STS.
|
||||
"""
|
||||
|
||||
-from future.utils import iteritems
|
||||
import copy
|
||||
import http.client
|
||||
import os
|
||||
@@ -94,7 +93,7 @@ class StsClient(BceBaseClient):
|
||||
@staticmethod
|
||||
def _dump_acl_object(acl):
|
||||
result = {}
|
||||
- for k, v in iteritems(acl.__dict__):
|
||||
+ for k, v in acl.__dict__.items():
|
||||
if not k.startswith('_'):
|
||||
result[k] = v
|
||||
return result
|
||||
diff --git a/baidubce/utils.py b/baidubce/utils.py
|
||||
index 1318bbf..3295abf 100644
|
||||
--- a/baidubce/utils.py
|
||||
+++ b/baidubce/utils.py
|
||||
@@ -13,11 +13,6 @@
|
||||
"""
|
||||
This module provide some tools for bce client.
|
||||
"""
|
||||
-# str() generator unicode,bytes() for ASCII
|
||||
-from __future__ import print_function
|
||||
-from __future__ import absolute_import
|
||||
-from builtins import str, bytes
|
||||
-from future.utils import iteritems, iterkeys, itervalues
|
||||
from baidubce import compat
|
||||
|
||||
import os
|
||||
@@ -175,7 +170,7 @@ def safe_get_element(name, container):
|
||||
:return:
|
||||
**Value**
|
||||
"""
|
||||
- for k, v in iteritems(container):
|
||||
+ for k, v in container.items():
|
||||
if k.strip().lower() == name.strip().lower():
|
||||
return v
|
||||
return ""
|
||||
@@ -320,7 +315,7 @@ def guess_content_type_by_file_name(file_name):
|
||||
file_name = compat.convert_to_string(file_name)
|
||||
name = os.path.basename(file_name.lower())
|
||||
suffix = name.split('.')[-1]
|
||||
- if suffix in iterkeys(mime_map):
|
||||
+ if suffix in mime_map.keys():
|
||||
mime_type = mime_map[suffix]
|
||||
else:
|
||||
import mimetypes
|
||||
@@ -368,7 +363,7 @@ def get_canonical_querystring(params, for_signature):
|
||||
if params is None:
|
||||
return ''
|
||||
result = []
|
||||
- for k, v in iteritems(params):
|
||||
+ for k, v in params.items():
|
||||
if not for_signature or k.lower != http_headers.AUTHORIZATION.lower():
|
||||
if v is None:
|
||||
v = ''
|
||||
@@ -384,7 +379,7 @@ def print_object(obj):
|
||||
:return:
|
||||
"""
|
||||
tmp = []
|
||||
- for k, v in iteritems(obj.__dict__):
|
||||
+ for k, v in obj.__dict__.items():
|
||||
if not k.startswith('__') and k != "raw_data":
|
||||
if isinstance(v, bytes):
|
||||
tmp.append("%s:'%s'" % (k, v))
|
||||
@@ -419,7 +414,7 @@ def dict_to_python_object(d):
|
||||
:return:
|
||||
"""
|
||||
attr = {}
|
||||
- for k, v in iteritems(d):
|
||||
+ for k, v in d.items():
|
||||
if not isinstance(k, compat.string_types):
|
||||
k = compat.convert_to_string(k)
|
||||
k = pythonize_name(k)
|
||||
@@ -445,7 +440,7 @@ def required(**types):
|
||||
(f.__code__.co_varnames[i],
|
||||
v,
|
||||
types[f.__code__.co_varnames[i]]))
|
||||
- for k, v in iteritems(kwds):
|
||||
+ for k, v in kwds.items():
|
||||
if k in types:
|
||||
if v is None:
|
||||
raise ValueError('arg "%s" should not be None' % k)
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 54ca7b6..281de62 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -13,7 +13,6 @@
|
||||
"""
|
||||
The setup script to install BCE SDK for python
|
||||
"""
|
||||
-from __future__ import absolute_import
|
||||
import io
|
||||
import os
|
||||
import re
|
||||
@@ -30,7 +29,6 @@ setup(
|
||||
name='bce-python-sdk',
|
||||
version=SDK_VERSION,
|
||||
install_requires=['pycryptodome>=3.8.0',
|
||||
- 'future>=0.6.0',
|
||||
'six>=1.4.0'],
|
||||
python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4',
|
||||
packages=['baidubce',
|
||||
Reference in New Issue
Block a user