Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
2920ba95ee | |||
14d760a266 |
src/autobigs/engine
@ -15,7 +15,7 @@ from autobigs.engine.reading import read_fasta
|
|||||||
from autobigs.engine.structures.alignment import PairwiseAlignment
|
from autobigs.engine.structures.alignment import PairwiseAlignment
|
||||||
from autobigs.engine.structures.genomics import NamedString
|
from autobigs.engine.structures.genomics import NamedString
|
||||||
from autobigs.engine.structures.mlst import Allele, NamedMLSTProfile, AlignmentStats, MLSTProfile
|
from autobigs.engine.structures.mlst import Allele, NamedMLSTProfile, AlignmentStats, MLSTProfile
|
||||||
from autobigs.engine.exceptions.database import BIGSdbResponseNotOkay, NoBIGSdbExactMatchesException, NoBIGSdbMatchesException, NoSuchBIGSdbDatabaseException
|
from autobigs.engine.exceptions.database import NoBIGSdbExactMatchesException, NoBIGSdbMatchesException, NoSuchBIGSdbDatabaseException
|
||||||
|
|
||||||
from Bio.Align import PairwiseAligner
|
from Bio.Align import PairwiseAligner
|
||||||
|
|
||||||
@ -43,12 +43,13 @@ class BIGSdbMLSTProfiler(AbstractAsyncContextManager):
|
|||||||
|
|
||||||
class RemoteBIGSdbMLSTProfiler(BIGSdbMLSTProfiler):
|
class RemoteBIGSdbMLSTProfiler(BIGSdbMLSTProfiler):
|
||||||
|
|
||||||
def __init__(self, database_api: str, database_name: str, scheme_id: int, retry_requests: int = 5):
|
def __init__(self, database_api: str, database_name: str, scheme_id: int, retry_requests: int = 5, timeout: int = 1800):
|
||||||
|
self._timeout = timeout
|
||||||
self._retry_limit = retry_requests
|
self._retry_limit = retry_requests
|
||||||
self._database_name = database_name
|
self._database_name = database_name
|
||||||
self._scheme_id = scheme_id
|
self._scheme_id = scheme_id
|
||||||
self._base_url = f"{database_api}/db/{self._database_name}/schemes/{self._scheme_id}/"
|
self._base_url = f"{database_api}/db/{self._database_name}/schemes/{self._scheme_id}/"
|
||||||
self._http_client = ClientSession(self._base_url, timeout=ClientTimeout(300))
|
self._http_client = ClientSession(self._base_url, timeout=ClientTimeout(timeout))
|
||||||
|
|
||||||
async def __aenter__(self):
|
async def __aenter__(self):
|
||||||
return self
|
return self
|
||||||
@ -99,10 +100,7 @@ class RemoteBIGSdbMLSTProfiler(BIGSdbMLSTProfiler):
|
|||||||
)
|
)
|
||||||
yield result_allele if isinstance(sequence_string, str) else (sequence_string.name, result_allele)
|
yield result_allele if isinstance(sequence_string, str) else (sequence_string.name, result_allele)
|
||||||
else:
|
else:
|
||||||
if response.status == 200:
|
|
||||||
raise NoBIGSdbMatchesException(self._database_name, self._scheme_id, sequence_string.name if isinstance(sequence_string, NamedString) else None)
|
raise NoBIGSdbMatchesException(self._database_name, self._scheme_id, sequence_string.name if isinstance(sequence_string, NamedString) else None)
|
||||||
else:
|
|
||||||
raise BIGSdbResponseNotOkay(sequence_response)
|
|
||||||
except (ConnectionError, ServerDisconnectedError, ClientOSError) as e: # Errors we will retry
|
except (ConnectionError, ServerDisconnectedError, ClientOSError) as e: # Errors we will retry
|
||||||
last_error = e
|
last_error = e
|
||||||
success = False
|
success = False
|
||||||
|
@ -3,8 +3,6 @@ from typing import Union
|
|||||||
class BIGSDbDatabaseAPIException(Exception):
|
class BIGSDbDatabaseAPIException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class BIGSdbResponseNotOkay(BIGSDbDatabaseAPIException):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class NoBIGSdbMatchesException(BIGSDbDatabaseAPIException):
|
class NoBIGSdbMatchesException(BIGSDbDatabaseAPIException):
|
||||||
def __init__(self, database_name: str, database_scheme_id: int, query_name: Union[None, str], *args):
|
def __init__(self, database_name: str, database_scheme_id: int, query_name: Union[None, str], *args):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user