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 2023-11-13 22:18:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aiohttp-socks (Old)
 and      /work/SRC/openSUSE:Factory/.python-aiohttp-socks.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-aiohttp-socks"

Mon Nov 13 22:18:09 2023 rev:9 rq:1124986 version:0.8.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-aiohttp-socks/python-aiohttp-socks.changes    
    2023-09-20 13:28:23.320923800 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-aiohttp-socks.new.17445/python-aiohttp-socks.changes
     2023-11-13 22:20:47.743336741 +0100
@@ -1,0 +2,7 @@
+Fri Nov 10 13:35:29 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 0.8.4:
+  * Reimplement proxy chains
+  * Implement another solution to fix issue #27
+
+-------------------------------------------------------------------

Old:
----
  aiohttp_socks-0.8.3.tar.gz

New:
----
  aiohttp_socks-0.8.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-aiohttp-socks.spec ++++++
--- /var/tmp/diff_new_pack.ndymzS/_old  2023-11-13 22:20:48.263355888 +0100
+++ /var/tmp/diff_new_pack.ndymzS/_new  2023-11-13 22:20:48.267356035 +0100
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-aiohttp-socks
-Version:        0.8.3
+Version:        0.8.4
 Release:        0
 Summary:        SOCKS proxy connector for aiohttp
 License:        Apache-2.0

++++++ aiohttp_socks-0.8.3.tar.gz -> aiohttp_socks-0.8.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aiohttp_socks-0.8.3/PKG-INFO 
new/aiohttp_socks-0.8.4/PKG-INFO
--- old/aiohttp_socks-0.8.3/PKG-INFO    2023-09-06 10:36:36.000000000 +0200
+++ new/aiohttp_socks-0.8.4/PKG-INFO    2023-10-03 10:02:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: aiohttp_socks
-Version: 0.8.3
+Version: 0.8.4
 Summary: Proxy connector for aiohttp
 Home-page: https://github.com/romis2012/aiohttp-socks
 Author: Roman Snegirev
@@ -13,9 +13,9 @@
 
 ## aiohttp-socks
 
-[![Build 
Status](https://api.travis-ci.com/romis2012/aiohttp-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/aiohttp-socks)
-[![Coverage 
Status](https://coveralls.io/repos/github/romis2012/aiohttp-socks/badge.svg?branch=master&_=x)](https://coveralls.io/github/romis2012/aiohttp-socks?branch=master)
-[![PyPI 
version](https://badge.fury.io/py/aiohttp-socks.svg)](https://badge.fury.io/py/aiohttp-socks)
+[![CI](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml/badge.svg)](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml)
+[![Coverage 
Status](https://codecov.io/gh/romis2012/aiohttp-socks/branch/master/graph/badge.svg)](https://codecov.io/gh/romis2012/aiohttp-socks)
+[![PyPI 
version](https://badge.fury.io/py/aiohttp-socks.svg)](https://pypi.python.org/pypi/aiohttp-socks)
 <!--
 
[![Downloads](https://pepy.tech/badge/aiohttp-socks/month)](https://pepy.tech/project/aiohttp-socks)
 -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aiohttp_socks-0.8.3/README.md 
new/aiohttp_socks-0.8.4/README.md
--- old/aiohttp_socks-0.8.3/README.md   2022-01-24 09:58:43.000000000 +0100
+++ new/aiohttp_socks-0.8.4/README.md   2023-10-02 11:51:02.000000000 +0200
@@ -1,8 +1,8 @@
 ## aiohttp-socks
 
-[![Build 
Status](https://api.travis-ci.com/romis2012/aiohttp-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/aiohttp-socks)
-[![Coverage 
Status](https://coveralls.io/repos/github/romis2012/aiohttp-socks/badge.svg?branch=master&_=x)](https://coveralls.io/github/romis2012/aiohttp-socks?branch=master)
-[![PyPI 
version](https://badge.fury.io/py/aiohttp-socks.svg)](https://badge.fury.io/py/aiohttp-socks)
+[![CI](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml/badge.svg)](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml)
+[![Coverage 
Status](https://codecov.io/gh/romis2012/aiohttp-socks/branch/master/graph/badge.svg)](https://codecov.io/gh/romis2012/aiohttp-socks)
+[![PyPI 
version](https://badge.fury.io/py/aiohttp-socks.svg)](https://pypi.python.org/pypi/aiohttp-socks)
 <!--
 
[![Downloads](https://pepy.tech/badge/aiohttp-socks/month)](https://pepy.tech/project/aiohttp-socks)
 -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aiohttp_socks-0.8.3/aiohttp_socks/__init__.py 
new/aiohttp_socks-0.8.4/aiohttp_socks/__init__.py
--- old/aiohttp_socks-0.8.3/aiohttp_socks/__init__.py   2023-09-06 
10:27:32.000000000 +0200
+++ new/aiohttp_socks-0.8.4/aiohttp_socks/__init__.py   2023-10-03 
09:21:39.000000000 +0200
@@ -1,5 +1,5 @@
 __title__ = 'aiohttp-socks'
-__version__ = '0.8.3'
+__version__ = '0.8.4'
 
 from python_socks import (
     ProxyError,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aiohttp_socks-0.8.3/aiohttp_socks/connector.py 
new/aiohttp_socks-0.8.4/aiohttp_socks/connector.py
--- old/aiohttp_socks-0.8.3/aiohttp_socks/connector.py  2023-09-06 
10:25:58.000000000 +0200
+++ new/aiohttp_socks-0.8.4/aiohttp_socks/connector.py  2023-10-02 
14:01:19.000000000 +0200
@@ -1,14 +1,14 @@
+import asyncio
 import socket
 import typing
-from typing import Iterable
 from asyncio import BaseTransport, StreamWriter
+from typing import Iterable
 
 from aiohttp import TCPConnector
 from aiohttp.abc import AbstractResolver
 from aiohttp.client_proto import ResponseHandler
 from python_socks import ProxyType, parse_proxy_url
 from python_socks.async_.asyncio.v2 import Proxy
-from python_socks.async_.asyncio.v2 import ProxyChain
 
 
 class NoResolver(AbstractResolver):
@@ -28,19 +28,17 @@
         pass  # pragma: no cover
 
 
-class RepairedStreamWriter(StreamWriter):
-    def __del__(self):
-        pass
-
-
-def patch_stream(stream):
+class _ResponseHandler(ResponseHandler):
     """
-    Fix issue https://github.com/romis2012/aiohttp-socks/issues/27
+    To fix issue https://github.com/romis2012/aiohttp-socks/issues/27
+    In Python>=3.11.5 we need to keep a reference to the StreamWriter
+    so that the underlying transport is not closed during garbage collection.
+    See StreamWriter.__del__ method (was added in Python 3.11.5)
     """
-    stream.writer.__class__ = RepairedStreamWriter
-    while hasattr(stream, '_inner'):
-        stream = stream._inner  # noqa
-        stream.writer.__class__ = RepairedStreamWriter
+
+    def __init__(self, loop: asyncio.AbstractEventLoop, writer: StreamWriter):
+        super().__init__(loop)
+        self._writer = writer
 
 
 class ProxyConnector(TCPConnector):
@@ -68,7 +66,7 @@
 
     # noinspection PyMethodOverriding
     async def _wrap_create_connection(self, protocol_factory, host, port, *, 
ssl, **kwargs):
-        proxy = Proxy.create(
+        proxy = Proxy(
             proxy_type=self._proxy_type,
             host=self._proxy_host,
             port=self._proxy_port,
@@ -92,13 +90,14 @@
         )
 
         transport: BaseTransport = stream.writer.transport
-        protocol: ResponseHandler = protocol_factory()
+        protocol: ResponseHandler = _ResponseHandler(
+            loop=self._loop,
+            writer=stream.writer,
+        )
 
         transport.set_protocol(protocol)
         protocol.connection_made(transport)
 
-        patch_stream(stream)
-
         return transport, protocol
 
     @classmethod
@@ -132,19 +131,19 @@
 
     # noinspection PyMethodOverriding
     async def _wrap_create_connection(self, protocol_factory, host, port, *, 
ssl, **kwargs):
-        proxies = []
+        forward = None
+        proxy = None
         for info in self._proxy_infos:
-            proxy = Proxy.create(
+            proxy = Proxy(
                 proxy_type=info.proxy_type,
                 host=info.host,
                 port=info.port,
                 username=info.username,
                 password=info.password,
                 rdns=info.rdns,
+                forward=forward,
             )
-            proxies.append(proxy)
-
-        proxy = ProxyChain(proxies)
+            forward = proxy
 
         connect_timeout = None
 
@@ -160,13 +159,14 @@
         )
 
         transport: BaseTransport = stream.writer.transport
-        protocol: ResponseHandler = protocol_factory()
+        protocol: ResponseHandler = _ResponseHandler(
+            loop=self._loop,
+            writer=stream.writer,
+        )
 
         transport.set_protocol(protocol)
         protocol.connection_made(transport)
 
-        patch_stream(stream)
-
         return transport, protocol
 
     @classmethod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aiohttp_socks-0.8.3/aiohttp_socks.egg-info/PKG-INFO 
new/aiohttp_socks-0.8.4/aiohttp_socks.egg-info/PKG-INFO
--- old/aiohttp_socks-0.8.3/aiohttp_socks.egg-info/PKG-INFO     2023-09-06 
10:36:36.000000000 +0200
+++ new/aiohttp_socks-0.8.4/aiohttp_socks.egg-info/PKG-INFO     2023-10-03 
10:02:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: aiohttp-socks
-Version: 0.8.3
+Version: 0.8.4
 Summary: Proxy connector for aiohttp
 Home-page: https://github.com/romis2012/aiohttp-socks
 Author: Roman Snegirev
@@ -13,9 +13,9 @@
 
 ## aiohttp-socks
 
-[![Build 
Status](https://api.travis-ci.com/romis2012/aiohttp-socks.svg?branch=master)](https://travis-ci.com/github/romis2012/aiohttp-socks)
-[![Coverage 
Status](https://coveralls.io/repos/github/romis2012/aiohttp-socks/badge.svg?branch=master&_=x)](https://coveralls.io/github/romis2012/aiohttp-socks?branch=master)
-[![PyPI 
version](https://badge.fury.io/py/aiohttp-socks.svg)](https://badge.fury.io/py/aiohttp-socks)
+[![CI](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml/badge.svg)](https://github.com/romis2012/aiohttp-socks/actions/workflows/ci.yml)
+[![Coverage 
Status](https://codecov.io/gh/romis2012/aiohttp-socks/branch/master/graph/badge.svg)](https://codecov.io/gh/romis2012/aiohttp-socks)
+[![PyPI 
version](https://badge.fury.io/py/aiohttp-socks.svg)](https://pypi.python.org/pypi/aiohttp-socks)
 <!--
 
[![Downloads](https://pepy.tech/badge/aiohttp-socks/month)](https://pepy.tech/project/aiohttp-socks)
 -->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aiohttp_socks-0.8.3/aiohttp_socks.egg-info/requires.txt 
new/aiohttp_socks-0.8.4/aiohttp_socks.egg-info/requires.txt
--- old/aiohttp_socks-0.8.3/aiohttp_socks.egg-info/requires.txt 2023-09-06 
10:36:36.000000000 +0200
+++ new/aiohttp_socks-0.8.4/aiohttp_socks.egg-info/requires.txt 2023-10-03 
10:02:53.000000000 +0200
@@ -1,2 +1,2 @@
 aiohttp>=2.3.2
-python-socks[asyncio]<3.0.0,>=2.0.0
+python-socks[asyncio]<3.0.0,>=2.4.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aiohttp_socks-0.8.3/setup.py 
new/aiohttp_socks-0.8.4/setup.py
--- old/aiohttp_socks-0.8.3/setup.py    2022-10-16 08:23:10.000000000 +0200
+++ new/aiohttp_socks-0.8.4/setup.py    2023-10-02 12:04:49.000000000 +0200
@@ -1,46 +1,41 @@
 #!/usr/bin/env python
-import codecs
 import os
 import re
 import sys
 
-try:
-    from setuptools import setup
-except ImportError:
-    from distutils.core import setup
-
-version = None
-
-with codecs.open(
-    os.path.join(os.path.abspath(os.path.dirname(__file__)), 'aiohttp_socks', 
'__init__.py'),
-    'r',
-    'latin1',
-) as fp:
-    try:
-        version = re.findall(r"^__version__ = '([^']+)'\r?$", fp.read(), 
re.M)[0]
-    except IndexError:
-        raise RuntimeError('Unable to determine version.')
+from setuptools import setup
 
 if sys.version_info < (3, 6, 0):
     raise RuntimeError('aiohttp-socks requires Python 3.6+')
 
-with open('README.md') as f:
-    long_description = f.read()
+
+def get_version():
+    here = os.path.dirname(os.path.abspath(__file__))
+    filename = os.path.join(here, 'aiohttp_socks', '__init__.py')
+    contents = open(filename).read()
+    pattern = r"^__version__ = '(.*?)'$"
+    return re.search(pattern, contents, re.MULTILINE).group(1)
+
+
+def get_long_description():
+    with open('README.md', mode='r', encoding='utf8') as f:
+        return f.read()
+
 
 setup(
     name='aiohttp_socks',
     author='Roman Snegirev',
     author_email='snegir...@gmail.com',
-    version=version,
+    version=get_version(),
     license='Apache 2',
     url='https://github.com/romis2012/aiohttp-socks',
     description='Proxy connector for aiohttp',
-    long_description=long_description,
+    long_description=get_long_description(),
     long_description_content_type='text/markdown',
     packages=['aiohttp_socks'],
     keywords='asyncio aiohttp socks socks5 socks4 http proxy',
     install_requires=[
         'aiohttp>=2.3.2',
-        'python-socks[asyncio]>=2.0.0,<3.0.0',
+        'python-socks[asyncio]>=2.4.3,<3.0.0',
     ],
 )

Reply via email to