From 7b67dbd7e5f01e799cb3ed937486dbe7236f7175 Mon Sep 17 00:00:00 2001 From: Stephen Huan Date: Wed, 28 Jan 2026 13:50:17 -0500 Subject: [PATCH 1/3] Move urllib3 from dependencies to testinternet It appears urllib3 is only used in contrib/internet-urllib3.py, so put it with certifi in the `testinternet` optional-dependencies group. Signed-off-by: Stephen Huan --- pyproject.toml | 5 ++--- requirements-certify.txt => requirements-testinternet.txt | 1 + requirements.txt | 1 - setup.py | 5 ++--- 4 files changed, 5 insertions(+), 7 deletions(-) rename requirements-certify.txt => requirements-testinternet.txt (54%) diff --git a/pyproject.toml b/pyproject.toml index 9fefd553..f7acb9fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,8 +2,7 @@ dependencies = [ "distro", "imaplib2>=3.5", - "rfc6555", - "urllib3~=1.25.9" + "rfc6555" ] name = "offlineimap" version = "8.0.1" @@ -50,7 +49,7 @@ requires = [ keyring = ["keyring"] cygwin = ["portalocker[cygwin]"] kerberos = ["gssapi[kerberos]"] -testinternet = ["certifi~=2020.6.20"] +testinternet = ["certifi~=2020.6.20", "urllib3~=1.25.9"] [project.scripts] offlineimap = "offlineimap.init:main" diff --git a/requirements-certify.txt b/requirements-testinternet.txt similarity index 54% rename from requirements-certify.txt rename to requirements-testinternet.txt index edab3f47..77e63991 100644 --- a/requirements-certify.txt +++ b/requirements-testinternet.txt @@ -1 +1,2 @@ certifi~=2020.6.20 +urllib3~=1.25.9 diff --git a/requirements.txt b/requirements.txt index 9070773b..69714187 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,3 @@ rfc6555 distro; python_version > "3.6" imaplib2>=3.5 -urllib3~=1.25.9 diff --git a/setup.py b/setup.py index 9bf3be1b..df61935e 100644 --- a/setup.py +++ b/setup.py @@ -86,11 +86,10 @@ license=copyright + ", Licensed under the GPL version 2", install_requires=['distro', 'imaplib2>=3.5', - 'rfc6555', - 'urllib3~=1.25.9'], + 'rfc6555'], extras_require={'kerberos':'gssapi[kerberos]', 'keyring':'keyring[keyring]', 'cygwin':'portalocker[cygwin]', - 'testinternet':'certifi~=2020.6.20'} + 'testinternet':['certifi~=2020.6.20', 'urllib3~=1.25.9']} ) From 950e7914be83084292923d71728e0d4c2b131c82 Mon Sep 17 00:00:00 2001 From: Stephen Huan Date: Wed, 28 Jan 2026 13:54:41 -0500 Subject: [PATCH 2/3] Add PySocks optional-dependencies PySocks is used for the optional proxy feature. Signed-off-by: Stephen Huan --- pyproject.toml | 3 ++- requirements-pysocks.txt | 1 + setup.py | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 requirements-pysocks.txt diff --git a/pyproject.toml b/pyproject.toml index f7acb9fa..cdf7e3b7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,9 +46,10 @@ requires = [ ] [project.optional-dependencies] -keyring = ["keyring"] cygwin = ["portalocker[cygwin]"] kerberos = ["gssapi[kerberos]"] +keyring = ["keyring"] +pysocks = ["pysocks"] testinternet = ["certifi~=2020.6.20", "urllib3~=1.25.9"] [project.scripts] diff --git a/requirements-pysocks.txt b/requirements-pysocks.txt new file mode 100644 index 00000000..a080b130 --- /dev/null +++ b/requirements-pysocks.txt @@ -0,0 +1 @@ +pysocks diff --git a/setup.py b/setup.py index df61935e..5da550f4 100644 --- a/setup.py +++ b/setup.py @@ -87,9 +87,10 @@ install_requires=['distro', 'imaplib2>=3.5', 'rfc6555'], - extras_require={'kerberos':'gssapi[kerberos]', + extras_require={'cygwin':'portalocker[cygwin]', + 'kerberos':'gssapi[kerberos]', 'keyring':'keyring[keyring]', - 'cygwin':'portalocker[cygwin]', + 'pysocks':'pysocks', 'testinternet':['certifi~=2020.6.20', 'urllib3~=1.25.9']} ) From 649e518d7494e9ffe6ec54825ff2b1917c161b71 Mon Sep 17 00:00:00 2001 From: Stephen Huan Date: Wed, 28 Jan 2026 13:57:14 -0500 Subject: [PATCH 3/3] Change keyring[keyring] -> keyring in setup.py For consistency with pyproject.toml and requirements-keyring.txt. Signed-off-by: Stephen Huan --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5da550f4..4780507b 100644 --- a/setup.py +++ b/setup.py @@ -89,7 +89,7 @@ 'rfc6555'], extras_require={'cygwin':'portalocker[cygwin]', 'kerberos':'gssapi[kerberos]', - 'keyring':'keyring[keyring]', + 'keyring':'keyring', 'pysocks':'pysocks', 'testinternet':['certifi~=2020.6.20', 'urllib3~=1.25.9']} )