14
0
forked from pool/python-tweepy

Accepting request 1231587 from devel:languages:python

- Add patch support-python-313.patch:
  * Fall back to mimetypes if imghdr isn't available.
- Add patch loosen-requests-oauthlib.patch:
  * We can also work with requests-oauthlib < 3.

OBS-URL: https://build.opensuse.org/request/show/1231587
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-tweepy?expand=0&rev=16
This commit is contained in:
2024-12-17 18:22:49 +00:00
committed by Git OBS Bridge
4 changed files with 92 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
From 5b43f6be94aad0ff248c07539def70883dd33462 Mon Sep 17 00:00:00 2001
From: Ryan Barrett <git@ryanb.org>
Date: Thu, 11 Apr 2024 09:48:38 -0700
Subject: [PATCH] deps: bump requests-oauthlib to <3 to allow v2.0.0
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 50548a312..c097abfe2 100644
--- a/setup.py
+++ b/setup.py
@@ -36,7 +36,7 @@
install_requires=[
"oauthlib>=3.2.0,<4",
"requests>=2.27.0,<3",
- "requests-oauthlib>=1.2.0,<2",
+ "requests-oauthlib>=1.2.0,<3",
],
extras_require={
"async": [

View File

@@ -1,3 +1,11 @@
-------------------------------------------------------------------
Tue Dec 17 00:36:07 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-python-313.patch:
* Fall back to mimetypes if imghdr isn't available.
- Add patch loosen-requests-oauthlib.patch:
* We can also work with requests-oauthlib < 3.
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Mar 13 06:06:29 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com> Wed Mar 13 06:06:29 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>

View File

@@ -23,6 +23,10 @@ Summary: Twitter library for python
License: MIT License: MIT
URL: https://github.com/tweepy/tweepy URL: https://github.com/tweepy/tweepy
Source: https://github.com/tweepy/tweepy/archive/v%{version}.tar.gz Source: https://github.com/tweepy/tweepy/archive/v%{version}.tar.gz
# PATCH-FIX-UPSTREAM Based on gh#tweepy/tweepy#2205
Patch0: support-python-313.patch
# PATCH-FIX-UPSTREAM gh#tweepy/tweepy#2179
Patch1: loosen-requests-oauthlib.patch
BuildRequires: %{python_module aiohttp} BuildRequires: %{python_module aiohttp}
BuildRequires: %{python_module async-lru} BuildRequires: %{python_module async-lru}
BuildRequires: %{python_module pip} BuildRequires: %{python_module pip}
@@ -45,7 +49,7 @@ A library for accessing the Twitter.com API. Supports OAuth, covers the entire
API, and streaming API. API, and streaming API.
%prep %prep
%setup -q -n tweepy-%{version} %autosetup -p1 -n tweepy-%{version}
%build %build
%pyproject_wheel %pyproject_wheel

57
support-python-313.patch Normal file
View File

@@ -0,0 +1,57 @@
From 1cd1f4e51948b20dea9814ba27dfda271f299b99 Mon Sep 17 00:00:00 2001
From: Christian Clauss <cclauss@me.com>
Date: Sat, 11 May 2024 07:24:17 +0200
Subject: [PATCH 1/2] GitHub Actions: Test on Python 3.13 beta
https://www.python.org/downloads/release/python-3130b1/
Raises an error because https://docs.python.org/3/library/imghdr.html was removed from the Standard Library in Python 3.13.
---
.github/workflows/test.yml | 7 ++++---
tests/test_api.py | 4 ++++
tweepy/api.py | 5 ++++-
3 files changed, 12 insertions(+), 4 deletions(-)
Index: tweepy-4.14.0/tweepy/api.py
===================================================================
--- tweepy-4.14.0.orig/tweepy/api.py
+++ tweepy-4.14.0/tweepy/api.py
@@ -4,7 +4,6 @@
import contextlib
import functools
-import imghdr
import logging
import mimetypes
from platform import python_version
@@ -3382,15 +3381,22 @@ class API:
----------
https://developer.twitter.com/en/docs/twitter-api/v1/media/upload-media/overview
"""
- h = None
- if file is not None:
- location = file.tell()
- h = file.read(32)
- file.seek(location)
- file_type = imghdr.what(filename, h=h)
- if file_type is not None:
- file_type = 'image/' + file_type
+ file_type = None
+ try:
+ import imghdr
+ except ModuleNotFoundError:
+ # imghdr was removed in Python 3.13
+ pass
else:
+ h = None
+ if file is not None:
+ location = file.tell()
+ h = file.read(32)
+ file.seek(location)
+ file_type = imghdr.what(filename, h=h)
+ if file_type is not None:
+ file_type = 'image/' + file_type
+ if file_type is None:
file_type = mimetypes.guess_type(filename)[0]
if chunked or file_type.startswith('video/'):