forked from pool/python-smart-open
Accepting request 1158157 from devel:languages:python
- Update to 7.0.1: * Do not touch botocore unless it is installed * Upgrade dev status classifier to stable * Add zstandard compression support * Support moto 4 & 5 * Add logic for handling large files in MultipartWriter uploads to S3 * Add support for SSH connection via aliases from ~/.ssh/config * Secure the connection using SSL when connecting to the FTPS server * Make GCS I/O 1000x faster by avoiding unnecessary API call * Retry finalizing multipart S3 upload * Handle exceptions during writes to Azure * Fix str method in SinglepartWriter * Fix KeyError: 'ContentRange' when received full content from S3 * Propagate exit call to the underlying filestream - Switch to autosetup and pyproject macros. - Less globs in %files. - Update all URLs, the github repository owner has changed. - Add patch skip-gzip-tests-python312.patch, skip broken tests under Python 3.12. OBS-URL: https://build.opensuse.org/request/show/1158157 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-smart-open?expand=0&rev=4
This commit is contained in:
@@ -1,3 +1,26 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Mar 15 07:48:15 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
|
||||||
|
|
||||||
|
- Update to 7.0.1:
|
||||||
|
* Do not touch botocore unless it is installed
|
||||||
|
* Upgrade dev status classifier to stable
|
||||||
|
* Add zstandard compression support
|
||||||
|
* Support moto 4 & 5
|
||||||
|
* Add logic for handling large files in MultipartWriter uploads to S3
|
||||||
|
* Add support for SSH connection via aliases from ~/.ssh/config
|
||||||
|
* Secure the connection using SSL when connecting to the FTPS server
|
||||||
|
* Make GCS I/O 1000x faster by avoiding unnecessary API call
|
||||||
|
* Retry finalizing multipart S3 upload
|
||||||
|
* Handle exceptions during writes to Azure
|
||||||
|
* Fix str method in SinglepartWriter
|
||||||
|
* Fix KeyError: 'ContentRange' when received full content from S3
|
||||||
|
* Propagate exit call to the underlying filestream
|
||||||
|
- Switch to autosetup and pyproject macros.
|
||||||
|
- Less globs in %files.
|
||||||
|
- Update all URLs, the github repository owner has changed.
|
||||||
|
- Add patch skip-gzip-tests-python312.patch, skip broken tests under
|
||||||
|
Python 3.12.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Oct 12 13:26:22 UTC 2023 - Ondřej Súkup <mimi.vx@gmail.com>
|
Thu Oct 12 13:26:22 UTC 2023 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-smart-open
|
# spec file for package python-smart-open
|
||||||
#
|
#
|
||||||
# Copyright (c) 2023 SUSE LLC
|
# Copyright (c) 2024 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -17,13 +17,16 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: python-smart-open
|
Name: python-smart-open
|
||||||
Version: 6.4.0
|
Version: 7.0.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Python utils for streaming large files
|
Summary: Python utils for streaming large files
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/RaRe-Technologies/smart_open
|
URL: https://github.com/piskvorky/smart_open
|
||||||
Source: https://github.com/RaRe-Technologies/smart_open/archive/refs/tags/v%{version}.tar.gz#/smart_open-%{version}.tar.gz
|
Source: https://github.com/piskvorky/smart_open/archive/refs/tags/v%{version}.tar.gz#/smart_open-%{version}.tar.gz
|
||||||
|
Patch0: skip-gzip-tests-python312.patch
|
||||||
|
BuildRequires: %{python_module pip}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: %{python_module wheel}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
Requires: python-azure-common
|
Requires: python-azure-common
|
||||||
@@ -32,9 +35,11 @@ Requires: python-azure-storage-blob
|
|||||||
Requires: python-boto3
|
Requires: python-boto3
|
||||||
Requires: python-google-cloud-storage
|
Requires: python-google-cloud-storage
|
||||||
Requires: python-requests
|
Requires: python-requests
|
||||||
|
Requires: python-wrapt
|
||||||
|
Requires: python-zstandard
|
||||||
Suggests: python-paramiko
|
Suggests: python-paramiko
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
# see https://github.com/RaRe-Technologies/smart_open/issues/784
|
# see https://github.com/piskvorky/smart_open/issues/784
|
||||||
BuildRequires: %{python_module urllib3 < 2}
|
BuildRequires: %{python_module urllib3 < 2}
|
||||||
Requires: python-urllib3 < 2
|
Requires: python-urllib3 < 2
|
||||||
# SECTION test requirements
|
# SECTION test requirements
|
||||||
@@ -50,6 +55,7 @@ BuildRequires: %{python_module pytest-rerunfailures}
|
|||||||
BuildRequires: %{python_module pytest}
|
BuildRequires: %{python_module pytest}
|
||||||
BuildRequires: %{python_module requests}
|
BuildRequires: %{python_module requests}
|
||||||
BuildRequires: %{python_module responses}
|
BuildRequires: %{python_module responses}
|
||||||
|
BuildRequires: %{python_module zstandard}
|
||||||
# /SECTION
|
# /SECTION
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
@@ -58,23 +64,25 @@ Python utils for streaming large files.
|
|||||||
Includes support for S3, HDFS, gzip, bz2, etc.
|
Includes support for S3, HDFS, gzip, bz2, etc.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n smart_open-%{version}
|
%autosetup -p1 -n smart_open-%{version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%python_build
|
%pyproject_wheel
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%python_install
|
%pyproject_install
|
||||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
|
||||||
%check
|
%check
|
||||||
moto_server -p5000 2>/dev/null &
|
moto_server -p5000 2>/dev/null &
|
||||||
export SO_ENABLE_MOTO_SERVER=1
|
export SO_ENABLE_MOTO_SERVER=1
|
||||||
%pytest -rs smart_open/
|
# Requires network
|
||||||
|
%pytest -rs -k 'not (test_http_gz or test_s3_gzip_compress_sanity)' smart_open/
|
||||||
|
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%doc README.rst
|
%doc README.rst
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{python_sitelib}/smart[-_]open*/
|
%{python_sitelib}/smart_open
|
||||||
|
%{python_sitelib}/smart_open-%{version}.dist-info
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
48
skip-gzip-tests-python312.patch
Normal file
48
skip-gzip-tests-python312.patch
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
Index: smart_open-7.0.1/smart_open/tests/test_smart_open.py
|
||||||
|
===================================================================
|
||||||
|
--- smart_open-7.0.1.orig/smart_open/tests/test_smart_open.py
|
||||||
|
+++ smart_open-7.0.1/smart_open/tests/test_smart_open.py
|
||||||
|
@@ -20,6 +20,7 @@ import tempfile
|
||||||
|
import unittest
|
||||||
|
from unittest import mock
|
||||||
|
import warnings
|
||||||
|
+import sys
|
||||||
|
|
||||||
|
import boto3
|
||||||
|
import pytest
|
||||||
|
@@ -1795,6 +1796,8 @@ def test_s3_gzip_compress_sanity():
|
||||||
|
)
|
||||||
|
def test_s3_read_explicit(url, _compression):
|
||||||
|
"""Can we read using the explicitly specified compression?"""
|
||||||
|
+ if sys.version_info.minor == 12 and _compression == ".gz":
|
||||||
|
+ raise unittest.SkipTest
|
||||||
|
initialize_bucket()
|
||||||
|
with smart_open.open(url, 'rb', compression=_compression) as fin:
|
||||||
|
assert fin.read() == _DECOMPRESSED_DATA
|
||||||
|
@@ -1811,6 +1814,8 @@ def test_s3_read_explicit(url, _compress
|
||||||
|
)
|
||||||
|
def test_s3_write_explicit(_compression, expected):
|
||||||
|
"""Can we write using the explicitly specified compression?"""
|
||||||
|
+ if sys.version_info.minor == 12 and _compression == ".gz":
|
||||||
|
+ raise unittest.SkipTest
|
||||||
|
initialize_bucket()
|
||||||
|
|
||||||
|
with smart_open.open("s3://bucket/key", "wb", compression=_compression) as fout:
|
||||||
|
@@ -1831,6 +1836,8 @@ def test_s3_write_explicit(_compression,
|
||||||
|
)
|
||||||
|
def test_s3_write_implicit(url, _compression, expected):
|
||||||
|
"""Can we determine the compression from the file extension?"""
|
||||||
|
+ if sys.version_info.minor == 12 and _compression == ".gz":
|
||||||
|
+ raise unittest.SkipTest
|
||||||
|
initialize_bucket()
|
||||||
|
|
||||||
|
with smart_open.open(url, "wb", compression=INFER_FROM_EXTENSION) as fout:
|
||||||
|
@@ -1851,6 +1858,8 @@ def test_s3_write_implicit(url, _compres
|
||||||
|
)
|
||||||
|
def test_s3_disable_compression(url, _compression, expected):
|
||||||
|
"""Can we handle the compression parameter when reading/writing?"""
|
||||||
|
+ if sys.version_info.minor == 12 and _compression == ".gz":
|
||||||
|
+ raise unittest.SkipTest
|
||||||
|
initialize_bucket()
|
||||||
|
|
||||||
|
with smart_open.open(url, "wb") as fout:
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:9b17cb6a195ef0713c71efe6b48b6fc6f756737972c4e3ddb845799a477b6c3d
|
|
||||||
size 132125
|
|
3
smart_open-7.0.1.tar.gz
Normal file
3
smart_open-7.0.1.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:95b942e6075a9216848eb7264b5d66963d916361e9c9c40f771559948649feaf
|
||||||
|
size 138934
|
Reference in New Issue
Block a user