From 1187c373a3cbe6fc32238e8dd8ed6134388f6ea5 Mon Sep 17 00:00:00 2001 From: Maya Sternberg Date: Thu, 16 Jul 2026 11:30:27 +0300 Subject: [PATCH] Add Python 3.12 support, drop Python 2.7 - Rename urllib3 Retry's method_whitelist to allowed_methods (removed in urllib3 2.0) - Import Retry from urllib3 directly instead of the legacy requests.packages alias - Replace outdated exact pins in requirements.txt with floors; require urllib3>=1.26 and drop the py2-only futures package - Add python_requires>=3.8 and update classifiers to 3.8-3.12 - Bump version to 0.8.0 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01P7hZS5E4vzDp7mUMa9N5fF --- requirements.txt | 8 ++++---- setup.py | 12 +++++++----- singular_api_client/singular_client.py | 4 ++-- singular_api_client/version.py | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/requirements.txt b/requirements.txt index 07b7acf..d8a1725 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -requests==2.20.0 -pytz==2016.6.1 -retrying==1.3.3 -futures==3.1.1 \ No newline at end of file +requests>=2.26.0 +urllib3>=1.26.0 +pytz>=2021.1 +retrying>=1.3.3 diff --git a/setup.py b/setup.py index 6106e6b..2aded50 100644 --- a/setup.py +++ b/setup.py @@ -22,17 +22,19 @@ 'Tracker': 'https://github.com/singular-labs/singular_api_client/issues', }, install_requires=[ - 'requests', + 'requests>=2.26.0', + 'urllib3>=1.26.0', 'pytz', 'retrying', ], - extras_require={':python_version == "2.7"': ['futures']}, + python_requires='>=3.8', classifiers=[ 'Programming Language :: Python', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ] ) \ No newline at end of file diff --git a/singular_api_client/singular_client.py b/singular_api_client/singular_client.py index aa37c1d..93e2887 100644 --- a/singular_api_client/singular_client.py +++ b/singular_api_client/singular_client.py @@ -1,6 +1,6 @@ import requests from requests.adapters import HTTPAdapter -from requests.packages.urllib3.util.retry import Retry +from urllib3.util.retry import Retry import logging import json @@ -32,7 +32,7 @@ def __init__(self, api_key, http_timeout=DEFAULT_HTTP_TIMEOUT, user_agent='Singu connect=5, backoff_factor=0.5, status_forcelist=(500, 502, 503, 504), - method_whitelist=('GET', 'POST') + allowed_methods=('GET', 'POST') ) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) diff --git a/singular_api_client/version.py b/singular_api_client/version.py index ed9d4d8..777f190 100644 --- a/singular_api_client/version.py +++ b/singular_api_client/version.py @@ -1 +1 @@ -__version__ = "0.7.4" +__version__ = "0.8.0"