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>
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# 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
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -17,13 +17,16 @@
|
||||
|
||||
|
||||
Name: python-smart-open
|
||||
Version: 6.4.0
|
||||
Version: 7.0.1
|
||||
Release: 0
|
||||
Summary: Python utils for streaming large files
|
||||
License: MIT
|
||||
URL: https://github.com/RaRe-Technologies/smart_open
|
||||
Source: https://github.com/RaRe-Technologies/smart_open/archive/refs/tags/v%{version}.tar.gz#/smart_open-%{version}.tar.gz
|
||||
URL: https://github.com/piskvorky/smart_open
|
||||
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 wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
Requires: python-azure-common
|
||||
@@ -32,9 +35,11 @@ Requires: python-azure-storage-blob
|
||||
Requires: python-boto3
|
||||
Requires: python-google-cloud-storage
|
||||
Requires: python-requests
|
||||
Requires: python-wrapt
|
||||
Requires: python-zstandard
|
||||
Suggests: python-paramiko
|
||||
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}
|
||||
Requires: python-urllib3 < 2
|
||||
# SECTION test requirements
|
||||
@@ -50,6 +55,7 @@ BuildRequires: %{python_module pytest-rerunfailures}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module requests}
|
||||
BuildRequires: %{python_module responses}
|
||||
BuildRequires: %{python_module zstandard}
|
||||
# /SECTION
|
||||
%python_subpackages
|
||||
|
||||
@@ -58,23 +64,25 @@ Python utils for streaming large files.
|
||||
Includes support for S3, HDFS, gzip, bz2, etc.
|
||||
|
||||
%prep
|
||||
%setup -q -n smart_open-%{version}
|
||||
%autosetup -p1 -n smart_open-%{version}
|
||||
|
||||
%build
|
||||
%python_build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%python_install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
|
||||
%check
|
||||
moto_server -p5000 2>/dev/null &
|
||||
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}
|
||||
%doc README.rst
|
||||
%license LICENSE
|
||||
%{python_sitelib}/smart[-_]open*/
|
||||
%{python_sitelib}/smart_open
|
||||
%{python_sitelib}/smart_open-%{version}.dist-info
|
||||
|
||||
%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