Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-aiohttp-socks for
openSUSE:Factory checked in at 2026-01-22 15:18:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aiohttp-socks (Old)
and /work/SRC/openSUSE:Factory/.python-aiohttp-socks.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-aiohttp-socks"
Thu Jan 22 15:18:03 2026 rev:14 rq:1328621 version:0.11.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-aiohttp-socks/python-aiohttp-socks.changes
2025-01-05 15:29:45.982085206 +0100
+++
/work/SRC/openSUSE:Factory/.python-aiohttp-socks.new.1928/python-aiohttp-socks.changes
2026-01-22 15:19:29.315505873 +0100
@@ -1,0 +2,6 @@
+Thu Jan 22 08:36:42 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.11.0:
+ * Fixed https://github.com/romis2012/aiohttp-socks/issues/52
+
+-------------------------------------------------------------------
Old:
----
aiohttp_socks-0.10.1.tar.gz
New:
----
aiohttp_socks-0.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-aiohttp-socks.spec ++++++
--- /var/tmp/diff_new_pack.WOk47l/_old 2026-01-22 15:19:30.335548303 +0100
+++ /var/tmp/diff_new_pack.WOk47l/_new 2026-01-22 15:19:30.335548303 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-aiohttp-socks
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-aiohttp-socks
-Version: 0.10.1
+Version: 0.11.0
Release: 0
Summary: SOCKS proxy connector for aiohttp
License: Apache-2.0
++++++ aiohttp_socks-0.10.1.tar.gz -> aiohttp_socks-0.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/PKG-INFO
new/aiohttp_socks-0.11.0/PKG-INFO
--- old/aiohttp_socks-0.10.1/PKG-INFO 2024-12-26 08:06:00.312892000 +0100
+++ new/aiohttp_socks-0.11.0/PKG-INFO 2025-12-09 14:35:38.220399100 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: aiohttp_socks
-Version: 0.10.1
+Version: 0.11.0
Summary: Proxy connector for aiohttp
Author-email: Roman Snegirev <[email protected]>
License: Apache-2.0
@@ -17,6 +17,7 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft
Classifier: Operating System :: POSIX :: Linux
@@ -29,17 +30,19 @@
License-File: LICENSE.txt
Requires-Dist: aiohttp>=3.10.0
Requires-Dist: python-socks[asyncio]<3.0.0,>=2.4.3
+Dynamic: license-file
## aiohttp-socks
[](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml)
[](https://codecov.io/gh/romis2012/aiohttp-socks)
[](https://pypi.python.org/pypi/aiohttp-socks)
+[](https://github.com/romis2012/aiohttp-socks)
<!--
[](https://pepy.tech/project/aiohttp-socks)
-->
The `aiohttp-socks` package provides a proxy connector for
[aiohttp](https://github.com/aio-libs/aiohttp).
-Supports SOCKS4(a), SOCKS5(h), HTTP (tunneling) as well as Proxy chains.
+Supports SOCKS4(a), SOCKS5(h), HTTP (CONNECT) as well as Proxy chains.
It uses [python-socks](https://github.com/romis2012/python-socks) for core
proxy functionality.
@@ -55,7 +58,7 @@
## Usage
-#### aiohttp usage:
+#### Simple usage
```python
import aiohttp
from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/README.md
new/aiohttp_socks-0.11.0/README.md
--- old/aiohttp_socks-0.10.1/README.md 2024-12-23 11:28:15.000000000 +0100
+++ new/aiohttp_socks-0.11.0/README.md 2025-12-09 13:50:20.000000000 +0100
@@ -3,11 +3,12 @@
[](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml)
[](https://codecov.io/gh/romis2012/aiohttp-socks)
[](https://pypi.python.org/pypi/aiohttp-socks)
+[](https://github.com/romis2012/aiohttp-socks)
<!--
[](https://pepy.tech/project/aiohttp-socks)
-->
The `aiohttp-socks` package provides a proxy connector for
[aiohttp](https://github.com/aio-libs/aiohttp).
-Supports SOCKS4(a), SOCKS5(h), HTTP (tunneling) as well as Proxy chains.
+Supports SOCKS4(a), SOCKS5(h), HTTP (CONNECT) as well as Proxy chains.
It uses [python-socks](https://github.com/romis2012/python-socks) for core
proxy functionality.
@@ -23,7 +24,7 @@
## Usage
-#### aiohttp usage:
+#### Simple usage
```python
import aiohttp
from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/aiohttp_socks/__init__.py
new/aiohttp_socks-0.11.0/aiohttp_socks/__init__.py
--- old/aiohttp_socks-0.10.1/aiohttp_socks/__init__.py 2024-12-26
08:03:51.000000000 +0100
+++ new/aiohttp_socks-0.11.0/aiohttp_socks/__init__.py 2025-12-09
14:31:38.000000000 +0100
@@ -1,25 +1,22 @@
__title__ = 'aiohttp-socks'
-__version__ = '0.10.1'
+__version__ = '0.11.0'
-from python_socks import (
+from python_socks import ProxyType
+
+from ._errors import (
ProxyError,
ProxyTimeoutError,
ProxyConnectionError,
- ProxyType
)
-from .connector import (
- ProxyConnector,
- ChainProxyConnector,
- ProxyInfo
-)
+from .connector import ProxyConnector, ChainProxyConnector, ProxyInfo
from .utils import open_connection, create_connection
from ._deprecated import (
SocksVer,
SocksConnector,
SocksConnectionError,
- SocksError
+ SocksError,
)
__all__ = (
@@ -34,7 +31,6 @@
'ProxyTimeoutError',
'open_connection',
'create_connection',
-
'SocksVer',
'SocksConnector',
'SocksError',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/aiohttp_socks/_errors.py
new/aiohttp_socks-0.11.0/aiohttp_socks/_errors.py
--- old/aiohttp_socks-0.10.1/aiohttp_socks/_errors.py 1970-01-01
01:00:00.000000000 +0100
+++ new/aiohttp_socks-0.11.0/aiohttp_socks/_errors.py 2025-12-09
13:26:16.000000000 +0100
@@ -0,0 +1,12 @@
+class ProxyTimeoutError(Exception):
+ pass
+
+
+class ProxyConnectionError(Exception):
+ pass
+
+
+class ProxyError(Exception):
+ def __init__(self, message, error_code=None):
+ super().__init__(message)
+ self.error_code = error_code
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/aiohttp_socks/connector.py
new/aiohttp_socks-0.11.0/aiohttp_socks/connector.py
--- old/aiohttp_socks-0.10.1/aiohttp_socks/connector.py 2024-12-26
08:02:39.000000000 +0100
+++ new/aiohttp_socks-0.11.0/aiohttp_socks/connector.py 2025-12-09
13:32:17.000000000 +0100
@@ -6,9 +6,13 @@
from aiohttp import ClientConnectorError, TCPConnector
from aiohttp.abc import AbstractResolver, ResolveResult
from aiohttp.client_proto import ResponseHandler
+
+import python_socks
from python_socks import ProxyType, parse_proxy_url
from python_socks.async_.asyncio.v2 import Proxy
+from ._errors import ProxyConnectionError, ProxyTimeoutError, ProxyError
+
class NoResolver(AbstractResolver):
async def resolve(
@@ -40,7 +44,9 @@
See StreamWriter.__del__ method (was added in Python 3.11.5)
"""
- def __init__(self, loop: asyncio.AbstractEventLoop, writer:
asyncio.StreamWriter) -> None:
+ def __init__(
+ self, loop: asyncio.AbstractEventLoop, writer: asyncio.StreamWriter
+ ) -> None:
super().__init__(loop)
self._writer = writer
@@ -62,13 +68,19 @@
raise ValueError('Invalid arg: `addr_infos`') from e
ssl: Optional[SSLContext] = kwargs.get('ssl') # type: ignore
-
- return await self._connect_via_proxy(
- host=host,
- port=port,
- ssl=ssl,
- timeout=timeout.sock_connect,
- )
+ try:
+ return await self._connect_via_proxy(
+ host=host,
+ port=port,
+ ssl=ssl,
+ timeout=timeout.sock_connect,
+ )
+ except python_socks.ProxyConnectionError as e:
+ raise ProxyConnectionError(str(e)) from e
+ except python_socks.ProxyTimeoutError as e:
+ raise ProxyTimeoutError(str(e)) from e
+ except python_socks.ProxyError as e:
+ raise ProxyError(str(e), error_code=e.error_code) from e
async def _connect_via_proxy(
self,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/aiohttp_socks.egg-info/PKG-INFO
new/aiohttp_socks-0.11.0/aiohttp_socks.egg-info/PKG-INFO
--- old/aiohttp_socks-0.10.1/aiohttp_socks.egg-info/PKG-INFO 2024-12-26
08:06:00.000000000 +0100
+++ new/aiohttp_socks-0.11.0/aiohttp_socks.egg-info/PKG-INFO 2025-12-09
14:35:38.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: aiohttp_socks
-Version: 0.10.1
+Version: 0.11.0
Summary: Proxy connector for aiohttp
Author-email: Roman Snegirev <[email protected]>
License: Apache-2.0
@@ -17,6 +17,7 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft
Classifier: Operating System :: POSIX :: Linux
@@ -29,17 +30,19 @@
License-File: LICENSE.txt
Requires-Dist: aiohttp>=3.10.0
Requires-Dist: python-socks[asyncio]<3.0.0,>=2.4.3
+Dynamic: license-file
## aiohttp-socks
[](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml)
[](https://codecov.io/gh/romis2012/aiohttp-socks)
[](https://pypi.python.org/pypi/aiohttp-socks)
+[](https://github.com/romis2012/aiohttp-socks)
<!--
[](https://pepy.tech/project/aiohttp-socks)
-->
The `aiohttp-socks` package provides a proxy connector for
[aiohttp](https://github.com/aio-libs/aiohttp).
-Supports SOCKS4(a), SOCKS5(h), HTTP (tunneling) as well as Proxy chains.
+Supports SOCKS4(a), SOCKS5(h), HTTP (CONNECT) as well as Proxy chains.
It uses [python-socks](https://github.com/romis2012/python-socks) for core
proxy functionality.
@@ -55,7 +58,7 @@
## Usage
-#### aiohttp usage:
+#### Simple usage
```python
import aiohttp
from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/aiohttp_socks-0.10.1/aiohttp_socks.egg-info/SOURCES.txt
new/aiohttp_socks-0.11.0/aiohttp_socks.egg-info/SOURCES.txt
--- old/aiohttp_socks-0.10.1/aiohttp_socks.egg-info/SOURCES.txt 2024-12-26
08:06:00.000000000 +0100
+++ new/aiohttp_socks-0.11.0/aiohttp_socks.egg-info/SOURCES.txt 2025-12-09
14:35:38.000000000 +0100
@@ -4,6 +4,7 @@
pyproject.toml
aiohttp_socks/__init__.py
aiohttp_socks/_deprecated.py
+aiohttp_socks/_errors.py
aiohttp_socks/connector.py
aiohttp_socks/py.typed
aiohttp_socks/utils.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/pyproject.toml
new/aiohttp_socks-0.11.0/pyproject.toml
--- old/aiohttp_socks-0.10.1/pyproject.toml 2024-12-26 06:27:50.000000000
+0100
+++ new/aiohttp_socks-0.11.0/pyproject.toml 2025-11-10 09:42:18.000000000
+0100
@@ -23,6 +23,7 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: MacOS",
"Operating System :: Microsoft",
"Operating System :: POSIX :: Linux",
@@ -43,7 +44,7 @@
include = ['aiohttp_socks*']
[tool.black]
-line-length = 99
+line-length = 89
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
skip-string-normalization = true
preview = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/aiohttp_socks-0.10.1/tests/test_connector.py
new/aiohttp_socks-0.11.0/tests/test_connector.py
--- old/aiohttp_socks-0.10.1/tests/test_connector.py 2022-10-09
09:06:19.000000000 +0200
+++ new/aiohttp_socks-0.11.0/tests/test_connector.py 2025-12-09
13:37:38.000000000 +0100
@@ -175,7 +175,9 @@
@pytest.mark.parametrize('url', (TEST_URL_IPV4, TEST_URL_IPV4_HTTPS))
@pytest.mark.asyncio
async def test_chain_proxy_from_url(url, target_ssl_context):
- connector = ChainProxyConnector.from_urls([SOCKS5_IPV4_URL, SOCKS4_URL,
HTTP_PROXY_URL])
+ connector = ChainProxyConnector.from_urls(
+ [SOCKS5_IPV4_URL, SOCKS4_URL, HTTP_PROXY_URL]
+ )
res = await fetch(
connector=connector,
url=url,
@@ -240,7 +242,10 @@
server_hostname=url.host if ssl_context else None,
rdns=rdns,
)
- request = "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n" %
(url.path_qs, url.host)
+ request = "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n" % (
+ url.path_qs,
+ url.host,
+ )
writer.write(request.encode())
response = await reader.read(-1)
@@ -253,7 +258,6 @@
async def test_socks5_http_create_connection(
url: str,
rdns: bool,
- event_loop: asyncio.AbstractEventLoop,
target_ssl_context: ssl.SSLContext,
):
url = URL(url)
@@ -262,6 +266,7 @@
if url.scheme == 'https':
ssl_context = target_ssl_context
+ event_loop = asyncio.get_running_loop()
reader = asyncio.StreamReader(loop=event_loop)
protocol = asyncio.StreamReaderProtocol(reader, loop=event_loop)
@@ -277,7 +282,10 @@
writer = asyncio.StreamWriter(transport, protocol, reader, event_loop)
- request = "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n" %
(url.path_qs, url.host)
+ request = "GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n" % (
+ url.path_qs,
+ url.host,
+ )
writer.write(request.encode())
response = await reader.read(-1)