import pandas as pd
from IPython.display import display
Query PK-DB¶
how to set the endpoint for queries
how to query data from PKDB
To query the complete database content we can do
from pkdb_analysis import PKDB, PKData, PKFilter
test_study_names = ["Adithan1982"]
url_study_names = "__".join(test_study_names)
pkfilter = PKFilter()
for df_key in [
"studies",
"groups",
"individuals",
"interventions",
"outputs",
"timecourses",
]:
setattr(pkfilter, df_key, {"study_name__in": url_study_names})
data = PKDB.query(pkfilter)
print(data)
---------------------------------------------------------------------------
ConnectionRefusedError Traceback (most recent call last)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connection.py in _new_conn(self)
159 conn = connection.create_connection(
--> 160 (self._dns_host, self.port), self.timeout, **extra_kw
161 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options)
83 if err is not None:
---> 84 raise err
85
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options)
73 sock.bind(source_address)
---> 74 sock.connect(sa)
75 return sock
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
NewConnectionError Traceback (most recent call last)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
676 headers=headers,
--> 677 chunked=chunked,
678 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connectionpool.py in _make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
391 else:
--> 392 conn.request(method, url, **httplib_request_kw)
393
/usr/lib/python3.7/http/client.py in request(self, method, url, body, headers, encode_chunked)
1276 """Send a complete request to the server."""
-> 1277 self._send_request(method, url, body, headers, encode_chunked)
1278
/usr/lib/python3.7/http/client.py in _send_request(self, method, url, body, headers, encode_chunked)
1322 body = _encode(body, 'body')
-> 1323 self.endheaders(body, encode_chunked=encode_chunked)
1324
/usr/lib/python3.7/http/client.py in endheaders(self, message_body, encode_chunked)
1271 raise CannotSendHeader()
-> 1272 self._send_output(message_body, encode_chunked=encode_chunked)
1273
/usr/lib/python3.7/http/client.py in _send_output(self, message_body, encode_chunked)
1031 del self._buffer[:]
-> 1032 self.send(msg)
1033
/usr/lib/python3.7/http/client.py in send(self, data)
971 if self.auto_open:
--> 972 self.connect()
973 else:
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connection.py in connect(self)
186 def connect(self):
--> 187 conn = self._new_conn()
188 self._prepare_conn(conn)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connection.py in _new_conn(self)
171 raise NewConnectionError(
--> 172 self, "Failed to establish a new connection: %s" % e
173 )
NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f4ee65894d0>: Failed to establish a new connection: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
MaxRetryError Traceback (most recent call last)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies)
448 retries=self.max_retries,
--> 449 timeout=timeout
450 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
724 retries = retries.increment(
--> 725 method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
726 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/util/retry.py in increment(self, method, url, response, error, _pool, _stacktrace)
438 if new_retry.is_exhausted():
--> 439 raise MaxRetryError(_pool, url, error or ResponseError(cause))
440
MaxRetryError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: /api-token-auth/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ee65894d0>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
ConnectionError Traceback (most recent call last)
~/Dev/pkdb_analysis/src/pkdb_analysis/query.py in get_authentication_headers(cls, api_base, username, password)
153 try:
--> 154 response = requests.post(auth_token_url, json=auth_dict)
155 except requests.exceptions.ConnectionError as e:
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/api.py in post(url, data, json, **kwargs)
118
--> 119 return request('post', url, data=data, json=json, **kwargs)
120
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/api.py in request(method, url, **kwargs)
60 with sessions.Session() as session:
---> 61 return session.request(method=method, url=url, **kwargs)
62
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/sessions.py in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
529 send_kwargs.update(settings)
--> 530 resp = self.send(prep, **send_kwargs)
531
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/sessions.py in send(self, request, **kwargs)
642 # Send the request
--> 643 r = adapter.send(request, **kwargs)
644
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies)
515
--> 516 raise ConnectionError(e, request=request)
517
ConnectionError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: /api-token-auth/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ee65894d0>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
InvalidURL Traceback (most recent call last)
<ipython-input-1-a554c0550ac3> in <module>
12 setattr(pkfilter, df_key, {"study_name__in": url_study_names})
13
---> 14 data = PKDB.query(pkfilter)
15 print(data)
~/Dev/pkdb_analysis/src/pkdb_analysis/query.py in query(cls, pkfilter)
121
122 url = API_URL + "/filter/" + pkfilter.url_params
--> 123 headers = cls.get_authentication_headers(BASE_URL, USER, PASSWORD)
124 logger.warning(url)
125
~/Dev/pkdb_analysis/src/pkdb_analysis/query.py in get_authentication_headers(cls, api_base, username, password)
155 except requests.exceptions.ConnectionError as e:
156 raise requests.exceptions.InvalidURL(
--> 157 f"Error Connecting (probably wrong url <{api_base}>): ", e
158 )
159
InvalidURL: [Errno Error Connecting (probably wrong url <http://0.0.0.0:8000>): ] HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: /api-token-auth/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4ee65894d0>: Failed to establish a new connection: [Errno 111] Connection refused'))
data = PKDB.query()
---------------------------------------------------------------------------
ConnectionRefusedError Traceback (most recent call last)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connection.py in _new_conn(self)
159 conn = connection.create_connection(
--> 160 (self._dns_host, self.port), self.timeout, **extra_kw
161 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options)
83 if err is not None:
---> 84 raise err
85
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options)
73 sock.bind(source_address)
---> 74 sock.connect(sa)
75 return sock
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
NewConnectionError Traceback (most recent call last)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
676 headers=headers,
--> 677 chunked=chunked,
678 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connectionpool.py in _make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
391 else:
--> 392 conn.request(method, url, **httplib_request_kw)
393
/usr/lib/python3.7/http/client.py in request(self, method, url, body, headers, encode_chunked)
1276 """Send a complete request to the server."""
-> 1277 self._send_request(method, url, body, headers, encode_chunked)
1278
/usr/lib/python3.7/http/client.py in _send_request(self, method, url, body, headers, encode_chunked)
1322 body = _encode(body, 'body')
-> 1323 self.endheaders(body, encode_chunked=encode_chunked)
1324
/usr/lib/python3.7/http/client.py in endheaders(self, message_body, encode_chunked)
1271 raise CannotSendHeader()
-> 1272 self._send_output(message_body, encode_chunked=encode_chunked)
1273
/usr/lib/python3.7/http/client.py in _send_output(self, message_body, encode_chunked)
1031 del self._buffer[:]
-> 1032 self.send(msg)
1033
/usr/lib/python3.7/http/client.py in send(self, data)
971 if self.auto_open:
--> 972 self.connect()
973 else:
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connection.py in connect(self)
186 def connect(self):
--> 187 conn = self._new_conn()
188 self._prepare_conn(conn)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connection.py in _new_conn(self)
171 raise NewConnectionError(
--> 172 self, "Failed to establish a new connection: %s" % e
173 )
NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f4f1c3dd750>: Failed to establish a new connection: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
MaxRetryError Traceback (most recent call last)
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies)
448 retries=self.max_retries,
--> 449 timeout=timeout
450 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
724 retries = retries.increment(
--> 725 method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
726 )
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/urllib3/util/retry.py in increment(self, method, url, response, error, _pool, _stacktrace)
438 if new_retry.is_exhausted():
--> 439 raise MaxRetryError(_pool, url, error or ResponseError(cause))
440
MaxRetryError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: /api-token-auth/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4f1c3dd750>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
ConnectionError Traceback (most recent call last)
~/Dev/pkdb_analysis/src/pkdb_analysis/query.py in get_authentication_headers(cls, api_base, username, password)
153 try:
--> 154 response = requests.post(auth_token_url, json=auth_dict)
155 except requests.exceptions.ConnectionError as e:
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/api.py in post(url, data, json, **kwargs)
118
--> 119 return request('post', url, data=data, json=json, **kwargs)
120
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/api.py in request(method, url, **kwargs)
60 with sessions.Session() as session:
---> 61 return session.request(method=method, url=url, **kwargs)
62
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/sessions.py in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
529 send_kwargs.update(settings)
--> 530 resp = self.send(prep, **send_kwargs)
531
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/sessions.py in send(self, request, **kwargs)
642 # Send the request
--> 643 r = adapter.send(request, **kwargs)
644
~/.virtualenvs/pkdb_analysis/lib/python3.7/site-packages/requests/adapters.py in send(self, request, stream, timeout, verify, cert, proxies)
515
--> 516 raise ConnectionError(e, request=request)
517
ConnectionError: HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: /api-token-auth/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4f1c3dd750>: Failed to establish a new connection: [Errno 111] Connection refused'))
During handling of the above exception, another exception occurred:
InvalidURL Traceback (most recent call last)
<ipython-input-1-2be0e0ad1b6b> in <module>
----> 1 data = PKDB.query()
~/Dev/pkdb_analysis/src/pkdb_analysis/query.py in query(cls, pkfilter)
121
122 url = API_URL + "/filter/" + pkfilter.url_params
--> 123 headers = cls.get_authentication_headers(BASE_URL, USER, PASSWORD)
124 logger.warning(url)
125
~/Dev/pkdb_analysis/src/pkdb_analysis/query.py in get_authentication_headers(cls, api_base, username, password)
155 except requests.exceptions.ConnectionError as e:
156 raise requests.exceptions.InvalidURL(
--> 157 f"Error Connecting (probably wrong url <{api_base}>): ", e
158 )
159
InvalidURL: [Errno Error Connecting (probably wrong url <http://0.0.0.0:8000>): ] HTTPConnectionPool(host='0.0.0.0', port=8000): Max retries exceeded with url: /api-token-auth/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4f1c3dd750>: Failed to establish a new connection: [Errno 111] Connection refused'))