Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Commit 0c12076

Browse files
committed
Removed couroutine decorator
1 parent e27e100 commit 0c12076

File tree

7 files changed

+52
-58
lines changed

7 files changed

+52
-58
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ junit.xml
1212
test_elasticsearch_async/htmlcov
1313
docs/_build
1414
.cache
15+
.eggs

elasticsearch_async/__init__.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,8 @@ class AsyncElasticsearch(Elasticsearch):
1010
def __init__(self, hosts=None, transport_class=AsyncTransport, **kwargs):
1111
super().__init__(hosts, transport_class=transport_class, **kwargs)
1212

13-
@asyncio.coroutine
14-
def __aenter__(self):
13+
async def __aenter__(self):
1514
return self
1615

17-
@asyncio.coroutine
18-
def __aexit__(self, _exc_type, _exc_val, _exc_tb):
19-
yield from self.transport.close()
16+
async def __aexit__(self, _exc_type, _exc_val, _exc_tb):
17+
await self.transport.close()

elasticsearch_async/transport.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def __init__(self, hosts, connection_class=AIOHttpConnection, loop=None,
1919
self.raise_on_sniff_error = raise_on_sniff_error
2020
self.loop = asyncio.get_event_loop() if loop is None else loop
2121
kwargs['loop'] = self.loop
22-
super().__init__(hosts, connection_class=connection_class, sniff_on_start=False,
22+
super().__init__(hosts, connection_class=connection_class, sniff_on_start=False,
2323
connection_pool_class=connection_pool_class, **kwargs)
2424

2525
self.sniffing_task = None
@@ -46,11 +46,10 @@ def initiate_sniff(self, initial=False):
4646
if self.sniffing_task is None:
4747
self.sniffing_task = ensure_future(self.sniff_hosts(initial), loop=self.loop)
4848

49-
@asyncio.coroutine
50-
def close(self):
49+
async def close(self):
5150
if self.sniffing_task:
5251
self.sniffing_task.cancel()
53-
yield from self.connection_pool.close()
52+
await self.connection_pool.close()
5453

5554
def set_connections(self, hosts):
5655
super().set_connections(hosts)
@@ -68,8 +67,7 @@ def mark_dead(self, connection):
6867
if self.sniff_on_connection_fail:
6968
self.initiate_sniff()
7069

71-
@asyncio.coroutine
72-
def _get_sniff_data(self, initial=False):
70+
async def _get_sniff_data(self, initial=False):
7371
previous_sniff = self.last_sniff
7472

7573
# reset last_sniff timestamp
@@ -89,7 +87,7 @@ def _get_sniff_data(self, initial=False):
8987
try:
9088
while tasks:
9189
# execute sniff requests in parallel, wait for first to return
92-
done, tasks = yield from asyncio.wait(tasks, return_when=asyncio.FIRST_COMPLETED, loop=self.loop)
90+
done, tasks = await asyncio.wait(tasks, return_when=asyncio.FIRST_COMPLETED, loop=self.loop)
9391
# go through all the finished tasks
9492
for t in done:
9593
try:
@@ -112,8 +110,7 @@ def _get_sniff_data(self, initial=False):
112110
for t in chain(done, tasks):
113111
t.cancel()
114112

115-
@asyncio.coroutine
116-
def sniff_hosts(self, initial=False):
113+
async def sniff_hosts(self, initial=False):
117114
"""
118115
Obtain a list of nodes from the cluster and create a new connection
119116
pool using the information retrieved.
@@ -123,7 +120,7 @@ def sniff_hosts(self, initial=False):
123120
:arg initial: flag indicating if this is during startup
124121
(``sniff_on_start``), ignore the ``sniff_timeout`` if ``True``
125122
"""
126-
node_info = yield from self._get_sniff_data(initial)
123+
node_info = await self._get_sniff_data(initial)
127124

128125
hosts = list(filter(None, (self._get_host_info(n) for n in node_info)))
129126

@@ -138,15 +135,14 @@ def sniff_hosts(self, initial=False):
138135
# close those connections that are not in use any more
139136
for c in orig_connections:
140137
if c not in self.connection_pool.connections:
141-
yield from c.close()
138+
await c.close()
142139

143-
@asyncio.coroutine
144-
def main_loop(self, method, url, params, body, headers=None, ignore=(), timeout=None):
140+
async def main_loop(self, method, url, params, body, headers=None, ignore=(), timeout=None):
145141
for attempt in range(self.max_retries + 1):
146142
connection = self.get_connection()
147143

148144
try:
149-
status, headers, data = yield from connection.perform_request(
145+
status, headers, data = await connection.perform_request(
150146
method, url, params, body, headers=headers, ignore=ignore, timeout=timeout)
151147
except TransportError as e:
152148
if method == 'HEAD' and e.status_code == 404:

test_elasticsearch_async/test_client.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,46 @@
33
from elasticsearch import NotFoundError
44

55
@mark.asyncio
6-
def test_custom_body(server, client):
6+
async def test_custom_body(server, client):
77
server.register_response('/', {'custom': 'body'})
8-
data = yield from client.info()
8+
data = await client.info()
99

1010
assert [('GET', '/', '', {})] == server.calls
1111
assert {'custom': 'body'} == data
1212

1313
@mark.asyncio
14-
def test_info_works(server, client):
15-
data = yield from client.info()
14+
async def test_info_works(server, client):
15+
data = await client.info()
1616

1717
assert [('GET', '/', '', {})] == server.calls
1818
assert {'body': '', 'method': 'GET', 'params': {}, 'path': '/'} == data
1919

2020
@mark.asyncio
21-
def test_ping_works(server, client):
22-
data = yield from client.ping()
21+
async def test_ping_works(server, client):
22+
data = await client.ping()
2323

2424
assert [('HEAD', '/', '', {})] == server.calls
2525
assert data is True
2626

2727
@mark.asyncio
28-
def test_exists_with_404_returns_false(server, client):
28+
async def test_exists_with_404_returns_false(server, client):
2929
server.register_response('/not-there', status=404)
30-
data = yield from client.indices.exists(index='not-there')
30+
data = await client.indices.exists(index='not-there')
3131

3232
assert data is False
3333

3434
@mark.asyncio
35-
def test_404_properly_raised(server, client):
35+
async def test_404_properly_raised(server, client):
3636
server.register_response('/i/t/42', status=404)
3737
with raises(NotFoundError):
38-
yield from client.get(index='i', doc_type='t', id=42)
38+
await client.get(index='i', doc_type='t', id=42)
3939

4040
@mark.asyncio
41-
def test_body_gets_passed_properly(client):
42-
data = yield from client.index(index='i', doc_type='t', id='42', body={'some': 'data'})
41+
async def test_body_gets_passed_properly(client):
42+
data = await client.index(index='i', doc_type='t', id='42', body={'some': 'data'})
4343
assert {'body': {'some': 'data'}, 'method': 'PUT', 'params': {}, 'path': '/i/t/42'} == data
4444

4545
@mark.asyncio
46-
def test_params_get_passed_properly(client):
47-
data = yield from client.info(params={'some': 'data'})
46+
async def test_params_get_passed_properly(client):
47+
data = await client.info(params={'some': 'data'})
4848
assert {'body': '', 'method': 'GET', 'params': {'some': 'data'}, 'path': '/'} == data

test_elasticsearch_async/test_connection.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
from elasticsearch_async.connection import AIOHttpConnection
1313

1414
@mark.asyncio
15-
def test_info(connection):
16-
status, headers, data = yield from connection.perform_request('GET', '/')
15+
async def test_info(connection):
16+
status, headers, data = await connection.perform_request('GET', '/')
1717

1818
data = json.loads(data)
1919

@@ -41,9 +41,9 @@ def test_ssl_context_is_correctly(event_loop):
4141

4242

4343
@mark.asyncio
44-
def test_request_is_properly_logged(connection, caplog, port, server):
44+
async def test_request_is_properly_logged(connection, caplog, port, server):
4545
server.register_response('/_cat/indices', {'cat': 'indices'})
46-
yield from connection.perform_request('GET', '/_cat/indices', body=b'{}', params={"format": "json"})
46+
await connection.perform_request('GET', '/_cat/indices', body=b'{}', params={"format": "json"})
4747

4848
for logger, level, message in caplog.record_tuples:
4949
if logger == 'elasticsearch' and level == logging.INFO:
@@ -56,10 +56,10 @@ def test_request_is_properly_logged(connection, caplog, port, server):
5656
assert ('elasticsearch', logging.DEBUG, '< {"cat": "indices"}') in caplog.record_tuples
5757

5858
@mark.asyncio
59-
def test_error_is_properly_logged(connection, caplog, port, server):
59+
async def test_error_is_properly_logged(connection, caplog, port, server):
6060
server.register_response('/i', status=404)
6161
with raises(NotFoundError):
62-
yield from connection.perform_request('GET', '/i', params={'some': 'data'})
62+
await connection.perform_request('GET', '/i', params={'some': 'data'})
6363

6464
for logger, level, message in caplog.record_tuples:
6565
if logger == 'elasticsearch' and level == logging.WARNING:
@@ -69,15 +69,14 @@ def test_error_is_properly_logged(connection, caplog, port, server):
6969
assert False, "Log not received"
7070

7171
@mark.asyncio
72-
def test_timeout_is_properly_raised(connection, server):
73-
@asyncio.coroutine
74-
def slow_request():
75-
yield from asyncio.sleep(0.01)
72+
async def test_timeout_is_properly_raised(connection, server):
73+
async def slow_request():
74+
await asyncio.sleep(0.01)
7675
return {}
7776
server.register_response('/_search', slow_request())
7877

7978
with raises(ConnectionTimeout):
80-
yield from connection.perform_request('GET', '/_search', timeout=0.0001)
79+
await connection.perform_request('GET', '/_search', timeout=0.0001)
8180

8281

8382
def test_dns_cache_is_enabled_by_default(event_loop):

test_elasticsearch_async/test_connection_pool.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,31 @@
66

77

88
@mark.asyncio
9-
def test_single_host_makes_async_dummy_pool(server, client, event_loop, port):
9+
async def test_single_host_makes_async_dummy_pool(server, client, event_loop, port):
1010
client = AsyncElasticsearch(port=port, loop=event_loop)
1111
assert isinstance(client.transport.connection_pool, AsyncDummyConnectionPool)
12-
yield from client.transport.close()
12+
await client.transport.close()
1313

1414
@mark.asyncio
15-
def test_multiple_hosts_make_async_pool(server, event_loop, port):
15+
async def test_multiple_hosts_make_async_pool(server, event_loop, port):
1616
client = AsyncElasticsearch(
1717
hosts=['localhost', 'localhost'], port=port, loop=event_loop)
1818
assert isinstance(client.transport.connection_pool, AsyncConnectionPool)
1919
assert len(client.transport.connection_pool.orig_connections) == 2
20-
yield from client.transport.close()
20+
await client.transport.close()
2121

2222
@mark.asyncio
23-
def test_async_dummy_pool_is_closed_properly(server, event_loop, port):
23+
async def test_async_dummy_pool_is_closed_properly(server, event_loop, port):
2424
client = AsyncElasticsearch(port=port, loop=event_loop)
2525
assert isinstance(client.transport.connection_pool, AsyncDummyConnectionPool)
26-
yield from client.transport.close()
26+
await client.transport.close()
2727
assert client.transport.connection_pool.connection.session.closed
2828

2929
@mark.asyncio
30-
def test_async_pool_is_closed_properly(server, event_loop, port):
30+
async def test_async_pool_is_closed_properly(server, event_loop, port):
3131
client = AsyncElasticsearch(
3232
hosts=['localhost', 'localhost'], port=port, loop=event_loop)
3333
assert isinstance(client.transport.connection_pool, AsyncConnectionPool)
34-
yield from client.transport.close()
34+
await client.transport.close()
3535
for conn in client.transport.connection_pool.orig_connections:
3636
assert conn.session.closed

test_elasticsearch_async/test_transport.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,32 @@
66

77

88
@mark.asyncio
9-
def test_sniff_on_start_sniffs(server, event_loop, port, sniff_data):
9+
async def test_sniff_on_start_sniffs(server, event_loop, port, sniff_data):
1010
server.register_response('/_nodes/_all/http', sniff_data)
1111

1212
client = AsyncElasticsearch(
1313
port=port, sniff_on_start=True, loop=event_loop)
1414

1515
# sniff has been called in the background
1616
assert client.transport.sniffing_task is not None
17-
yield from client.transport.sniffing_task
17+
await client.transport.sniffing_task
1818

1919
assert [('GET', '/_nodes/_all/http', '', {})] == server.calls
2020
connections = client.transport.connection_pool.connections
2121

2222
assert 1 == len(connections)
2323
assert 'http://node1:9200' == connections[0].host
24-
yield from client.transport.close()
24+
await client.transport.close()
2525

2626

2727
@mark.asyncio
28-
def test_retry_will_work(port, server, event_loop):
28+
async def test_retry_will_work(port, server, event_loop):
2929
client = AsyncElasticsearch(
3030
hosts=['not-an-es-host', 'localhost'],
3131
port=port,
3232
loop=event_loop,
3333
randomize_hosts=False)
3434

35-
data = yield from client.info()
35+
data = await client.info()
3636
assert {'body': '', 'method': 'GET', 'params': {}, 'path': '/'} == data
37-
yield from client.transport.close()
37+
await client.transport.close()

0 commit comments

Comments
 (0)