%global _empty_manifest_terminate_build 0 Name: python-aiohttp-socks Version: 0.8.0 Release: 1 Summary: Proxy connector for aiohttp License: Apache 2 URL: https://github.com/romis2012/aiohttp-socks Source0: https://mirrors.nju.edu.cn/pypi/web/packages/03/eb/85d2c04c111a8cc872f2ba2b9323278873e23f4a45045a436909da8ce2d2/aiohttp_socks-0.8.0.tar.gz BuildArch: noarch Requires: python3-aiohttp Requires: python3-socks[asyncio] %description ## 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) 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. It uses [python-socks](https://github.com/romis2012/python-socks) for core proxy functionality. ## Requirements - Python >= 3.6 - aiohttp >= 2.3.2 - python-socks[asyncio] >= 1.0.1 ## Installation ``` pip install aiohttp_socks ``` ## Usage #### aiohttp usage: ```python import aiohttp from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector async def fetch(url): connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080') ### or use ProxyConnector constructor # connector = ProxyConnector( # proxy_type=ProxyType.SOCKS5, # host='127.0.0.1', # port=1080, # username='user', # password='password', # rdns=True # ) ### proxy chaining (since ver 0.3.3) # connector = ChainProxyConnector.from_urls([ # 'socks5://user:password@127.0.0.1:1080', # 'socks4://127.0.0.1:1081', # 'http://user:password@127.0.0.1:3128', # ]) async with aiohttp.ClientSession(connector=connector) as session: async with session.get(url) as response: return await response.text() ``` #### aiohttp-socks also provides `open_connection` and `create_connection` functions: ```python from aiohttp_socks import open_connection async def fetch(): reader, writer = await open_connection( proxy_url='socks5://user:password@127.0.0.1:1080', host='check-host.net', port=80 ) request = (b"GET /ip HTTP/1.1\r\n" b"Host: check-host.net\r\n" b"Connection: close\r\n\r\n") writer.write(request) return await reader.read(-1) ``` ## Why yet another SOCKS connector for aiohttp Unlike [aiosocksy](https://github.com/romis2012/aiosocksy), aiohttp_socks has only single point of integration with aiohttp. This makes it easier to maintain compatibility with new aiohttp versions. %package -n python3-aiohttp-socks Summary: Proxy connector for aiohttp Provides: python-aiohttp-socks BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-aiohttp-socks ## 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) 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. It uses [python-socks](https://github.com/romis2012/python-socks) for core proxy functionality. ## Requirements - Python >= 3.6 - aiohttp >= 2.3.2 - python-socks[asyncio] >= 1.0.1 ## Installation ``` pip install aiohttp_socks ``` ## Usage #### aiohttp usage: ```python import aiohttp from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector async def fetch(url): connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080') ### or use ProxyConnector constructor # connector = ProxyConnector( # proxy_type=ProxyType.SOCKS5, # host='127.0.0.1', # port=1080, # username='user', # password='password', # rdns=True # ) ### proxy chaining (since ver 0.3.3) # connector = ChainProxyConnector.from_urls([ # 'socks5://user:password@127.0.0.1:1080', # 'socks4://127.0.0.1:1081', # 'http://user:password@127.0.0.1:3128', # ]) async with aiohttp.ClientSession(connector=connector) as session: async with session.get(url) as response: return await response.text() ``` #### aiohttp-socks also provides `open_connection` and `create_connection` functions: ```python from aiohttp_socks import open_connection async def fetch(): reader, writer = await open_connection( proxy_url='socks5://user:password@127.0.0.1:1080', host='check-host.net', port=80 ) request = (b"GET /ip HTTP/1.1\r\n" b"Host: check-host.net\r\n" b"Connection: close\r\n\r\n") writer.write(request) return await reader.read(-1) ``` ## Why yet another SOCKS connector for aiohttp Unlike [aiosocksy](https://github.com/romis2012/aiosocksy), aiohttp_socks has only single point of integration with aiohttp. This makes it easier to maintain compatibility with new aiohttp versions. %package help Summary: Development documents and examples for aiohttp-socks Provides: python3-aiohttp-socks-doc %description help ## 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) 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. It uses [python-socks](https://github.com/romis2012/python-socks) for core proxy functionality. ## Requirements - Python >= 3.6 - aiohttp >= 2.3.2 - python-socks[asyncio] >= 1.0.1 ## Installation ``` pip install aiohttp_socks ``` ## Usage #### aiohttp usage: ```python import aiohttp from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector async def fetch(url): connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080') ### or use ProxyConnector constructor # connector = ProxyConnector( # proxy_type=ProxyType.SOCKS5, # host='127.0.0.1', # port=1080, # username='user', # password='password', # rdns=True # ) ### proxy chaining (since ver 0.3.3) # connector = ChainProxyConnector.from_urls([ # 'socks5://user:password@127.0.0.1:1080', # 'socks4://127.0.0.1:1081', # 'http://user:password@127.0.0.1:3128', # ]) async with aiohttp.ClientSession(connector=connector) as session: async with session.get(url) as response: return await response.text() ``` #### aiohttp-socks also provides `open_connection` and `create_connection` functions: ```python from aiohttp_socks import open_connection async def fetch(): reader, writer = await open_connection( proxy_url='socks5://user:password@127.0.0.1:1080', host='check-host.net', port=80 ) request = (b"GET /ip HTTP/1.1\r\n" b"Host: check-host.net\r\n" b"Connection: close\r\n\r\n") writer.write(request) return await reader.read(-1) ``` ## Why yet another SOCKS connector for aiohttp Unlike [aiosocksy](https://github.com/romis2012/aiosocksy), aiohttp_socks has only single point of integration with aiohttp. This makes it easier to maintain compatibility with new aiohttp versions. %prep %autosetup -n aiohttp-socks-0.8.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-aiohttp-socks -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri Apr 07 2023 Python_Bot - 0.8.0-1 - Package Spec generated