mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-15 01:05:42 +00:00
Update CQi stuff
This commit is contained in:
parent
467080c7f8
commit
e881401a10
@ -17,14 +17,14 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CTRL_CONNECT)
|
||||
self.__send_STRING(username)
|
||||
self.__send_STRING(password)
|
||||
self.__recv_response()
|
||||
return self.__recv_response(CQi.STATUS_CONNECT_OK)
|
||||
|
||||
def ctrl_bye(self):
|
||||
# INPUT: ()
|
||||
# OUTPUT: CQI_STATUS_BYE_OK
|
||||
# print('CTRL_BYE')
|
||||
self.__send_WORD(CQi.CTRL_BYE)
|
||||
self.__recv_response()
|
||||
return self.__recv_response(CQi.STATUS_BYE_OK)
|
||||
|
||||
def ctrl_user_abort(self):
|
||||
# INPUT: ()
|
||||
@ -37,7 +37,7 @@ class CQiClient:
|
||||
# OUTPUT: CQI_STATUS_PING_OK
|
||||
# print('CTRL_PING')
|
||||
self.__send_WORD(CQi.CTRL_PING)
|
||||
self.__recv_response()
|
||||
return self.__recv_response(CQi.STATUS_PING_OK)
|
||||
|
||||
def ctrl_last_general_error(self):
|
||||
# INPUT: ()
|
||||
@ -46,35 +46,35 @@ class CQiClient:
|
||||
# CQi server
|
||||
# print('CTRL_LAST_GENERAL_ERROR')
|
||||
self.__send_WORD(CQi.CTRL_LAST_GENERAL_ERROR)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING)
|
||||
|
||||
def ask_feature_cqi_1_0(self):
|
||||
# INPUT: ()
|
||||
# OUTPUT: CQI_DATA_BOOL
|
||||
# print('ASK_FEATURE_CQI_1_0')
|
||||
self.__send_WORD(CQi.ASK_FEATURE_CQI_1_0)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_BOOL)
|
||||
|
||||
def ask_feature_cl_2_3(self):
|
||||
# INPUT: ()
|
||||
# OUTPUT: CQI_DATA_BOOL
|
||||
# print('ASK_FEATURE_CL_2_3')
|
||||
self.__send_WORD(CQi.ASK_FEATURE_CL_2_3)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_BOOL)
|
||||
|
||||
def ask_feature_cqp_2_3(self):
|
||||
# INPUT: ()
|
||||
# OUTPUT: CQI_DATA_BOOL
|
||||
# print('ASK_FEATURE_CL_2_3')
|
||||
self.__send_WORD(CQi.ASK_FEATURE_CL_2_3)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_BOOL)
|
||||
|
||||
def corpus_list_coprora(self):
|
||||
# INPUT: ()
|
||||
# OUTPUT: CQI_DATA_STRING_LIST
|
||||
# print('CORPUS_LIST_CORPORA')
|
||||
self.__send_WORD(CQi.CORPUS_LIST_CORPORA)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def corpus_charset(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -82,7 +82,7 @@ class CQiClient:
|
||||
# print('CORPUS_CHARSET')
|
||||
self.__send_WORD(CQi.CORPUS_CHARSET)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING)
|
||||
|
||||
def corpus_properties(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -90,7 +90,7 @@ class CQiClient:
|
||||
# print('CORPUS_PROPERTIES')
|
||||
self.__send_WORD(CQi.CORPUS_PROPERTIES)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def corpus_positional_attributes(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -98,7 +98,7 @@ class CQiClient:
|
||||
# print('CORPUS_POSITIONAL_ATTRIBUTES')
|
||||
self.__send_WORD(CQi.CORPUS_POSITIONAL_ATTRIBUTES)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def corpus_structural_attributes(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -106,7 +106,7 @@ class CQiClient:
|
||||
# print('CORPUS_STRUCTURAL_ATTRIBUTES')
|
||||
self.__send_WORD(CQi.CORPUS_STRUCTURAL_ATTRIBUTES)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def corpus_structural_attribute_has_values(self, attribute):
|
||||
# INPUT: (STRING attribute)
|
||||
@ -114,7 +114,7 @@ class CQiClient:
|
||||
# print('CORPUS_STRUCTURAL_ATTRIBUTE_HAS_VALUES')
|
||||
self.__send_WORD(CQi.CORPUS_STRUCTURAL_ATTRIBUTE_HAS_VALUES)
|
||||
self.__send_STRING(attribute)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_BOOL)
|
||||
|
||||
def corpus_alignment_attributes(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -122,7 +122,7 @@ class CQiClient:
|
||||
# print('CORPUS_ALIGNMENT_ATTRIBUTES')
|
||||
self.__send_WORD(CQi.CORPUS_ALIGNMENT_ATTRIBUTES)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def corpus_full_name(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -131,7 +131,7 @@ class CQiClient:
|
||||
# print('CORPUS_FULL_NAME')
|
||||
self.__send_WORD(CQi.CORPUS_FULL_NAME)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING)
|
||||
|
||||
def corpus_info(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -140,7 +140,7 @@ class CQiClient:
|
||||
# print('CORPUS_INFO')
|
||||
self.__send_WORD(CQi.CORPUS_INFO)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def corpus_drop_corpus(self, corpus):
|
||||
'''
|
||||
@ -153,7 +153,7 @@ class CQiClient:
|
||||
# print('CORPUS_DROP_CORPUS')
|
||||
self.__send_WORD(CQi.CORPUS_DROP_CORPUS)
|
||||
self.__send_STRING(corpus)
|
||||
self.__recv_response()
|
||||
return self.__recv_response(CQi.STATUS_OK)
|
||||
|
||||
def cl_attribute_size(self, attribute):
|
||||
# INPUT: (STRING attribute)
|
||||
@ -165,7 +165,7 @@ class CQiClient:
|
||||
# print('CL_ATTRIBUTE_SIZE')
|
||||
self.__send_WORD(CQi.CL_ATTRIBUTE_SIZE)
|
||||
self.__send_STRING(attribute)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT)
|
||||
|
||||
def cl_lexicon_size(self, attribute):
|
||||
# INPUT: (STRING attribute)
|
||||
@ -176,7 +176,7 @@ class CQiClient:
|
||||
# print('CL_LEXICON_SIZE')
|
||||
self.__send_WORD(CQi.CL_LEXICON_SIZE)
|
||||
self.__send_STRING(attribute)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT)
|
||||
|
||||
def cl_drop_attribute(self, attribute):
|
||||
# INPUT: (STRING attribute)
|
||||
@ -185,7 +185,7 @@ class CQiClient:
|
||||
# print('CL_DROP_ATTRIBUTE')
|
||||
self.__send_WORD(CQi.CL_LEXICON_SIZE)
|
||||
self.__send_STRING(attribute)
|
||||
self.__recv_response()
|
||||
return self.__recv_response(CQi.STATUS_OK)
|
||||
|
||||
"""
|
||||
" NOTE: simple (scalar) mappings are applied to lists (the returned list
|
||||
@ -201,7 +201,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_LEXICON_SIZE)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_STRING_LIST(strings)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_id2str(self, attribute, id):
|
||||
# INPUT: (STRING attribute, INT_LIST id)
|
||||
@ -211,7 +211,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_ID2STR)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(id)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def cl_id2freq(self, attribute, id):
|
||||
# INPUT: (STRING attribute, INT_LIST id)
|
||||
@ -221,7 +221,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_ID2FREQ)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(id)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_cpos2id(self, attribute, cpos):
|
||||
# INPUT: (STRING attribute, INT_LIST cpos)
|
||||
@ -231,7 +231,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_ID2FREQ)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(cpos)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_cpos2str(self, attribute, cpos):
|
||||
# INPUT: (STRING attribute, INT_LIST cpos)
|
||||
@ -241,7 +241,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_CPOS2STR)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(cpos)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def cl_cpos2struc(self, attribute, cpos):
|
||||
# INPUT: (STRING attribute, INT_LIST cpos)
|
||||
@ -251,7 +251,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_CPOS2STRUC)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(cpos)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
"""
|
||||
" NOTE: temporary addition for the Euralex2000 tutorial, but should
|
||||
@ -267,7 +267,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_CPOS2LBOUND)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(cpos)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_cpos2rbound(self, attribute, cpos):
|
||||
# INPUT: (STRING attribute, INT_LIST cpos)
|
||||
@ -278,7 +278,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_CPOS2RBOUND)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(cpos)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_cpos2alg(self, attribute, cpos):
|
||||
# INPUT: (STRING attribute, INT_LIST cpos)
|
||||
@ -288,7 +288,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_CPOS2ALG)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(cpos)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_struc2str(self, attribute, strucs):
|
||||
# INPUT: (STRING attribute, INT_LIST strucs)
|
||||
@ -300,7 +300,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_STRUC2STR)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(strucs)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
"""
|
||||
" NOTE: the following mappings take a single argument and return multiple
|
||||
@ -315,7 +315,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_ID2CPOS)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT(id)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_idlist2cpos(self, attribute, id_list):
|
||||
# INPUT: (STRING attribute, INT_LIST id_list)
|
||||
@ -326,7 +326,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_IDLIST2CPOS)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT_LIST(id_list)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_regex2id(self, attribute, regex):
|
||||
# INPUT: (STRING attribute, STRING regex)
|
||||
@ -337,7 +337,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_REGEX2ID)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_STRING(regex)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_struc2cpos(self, attribute, struc):
|
||||
# INPUT: (STRING attribute, INT struc)
|
||||
@ -347,7 +347,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_STRUC2CPOS)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT(struc)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cl_alg2cpos(self, attribute, alg):
|
||||
# INPUT: (STRING attribute, INT alg)
|
||||
@ -357,7 +357,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CL_ALG2CPOS)
|
||||
self.__send_STRING(attribute)
|
||||
self.__send_INT(alg)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_INT_INT_INT)
|
||||
|
||||
def cqp_query(self, mother_corpus, subcorpus_name, query):
|
||||
# INPUT: (STRING mother_corpus, STRING subcorpus_name, STRING query)
|
||||
@ -368,7 +368,7 @@ class CQiClient:
|
||||
self.__send_STRING(mother_corpus)
|
||||
self.__send_STRING(subcorpus_name)
|
||||
self.__send_STRING(query)
|
||||
self.__recv_response()
|
||||
return self.__recv_response(CQi.STATUS_OK)
|
||||
|
||||
def cqp_list_subcorpora(self, corpus):
|
||||
# INPUT: (STRING corpus)
|
||||
@ -376,7 +376,7 @@ class CQiClient:
|
||||
# print('CQP_LIST_SUBCORPORA')
|
||||
self.__send_WORD(CQi.CQP_LIST_SUBCORPORA)
|
||||
self.__send_STRING(corpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_STRING_LIST)
|
||||
|
||||
def cqp_subcorpus_size(self, subcorpus):
|
||||
# INPUT: (STRING subcorpus)
|
||||
@ -384,7 +384,7 @@ class CQiClient:
|
||||
# print('CQP_SUBCORPUS_SIZE')
|
||||
self.__send_WORD(CQi.CQP_SUBCORPUS_SIZE)
|
||||
self.__send_STRING(subcorpus)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT)
|
||||
|
||||
def cqp_subcorpus_has_field(self, subcorpus, field):
|
||||
# INPUT: (STRING subcorpus, BYTE field)
|
||||
@ -393,7 +393,7 @@ class CQiClient:
|
||||
self.__send_WORD(CQi.CQP_SUBCORPUS_HAS_FIELD)
|
||||
self.__send_STRING(subcorpus)
|
||||
self.__send_BYTE(field)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_BOOL)
|
||||
|
||||
def cqp_dump_subcorpus(self, subcorpus, field, first, last):
|
||||
# INPUT: (STRING subcorpus, BYTE field, INT first, INT last)
|
||||
@ -406,7 +406,7 @@ class CQiClient:
|
||||
self.__send_BYTE(field)
|
||||
self.__send_INT(first)
|
||||
self.__send_INT(last)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cqp_drop_subcorpus(self, subcorpus):
|
||||
# INPUT: (STRING subcorpus)
|
||||
@ -415,7 +415,7 @@ class CQiClient:
|
||||
# print('CQP_DROP_SUBCORPUS')
|
||||
self.__send_WORD(CQi.CQP_DROP_SUBCORPUS)
|
||||
self.__send_STRING(subcorpus)
|
||||
self.__recv_response()
|
||||
return self.__recv_response(CQi.STATUS_OK)
|
||||
|
||||
"""
|
||||
" NOTE: The following two functions are temporarily included for the
|
||||
@ -436,7 +436,7 @@ class CQiClient:
|
||||
self.__send_INT(cutoff)
|
||||
self.__send_BYTE(field)
|
||||
self.__send_STRING(attribute)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def cqp_fdist_2(self, subcorpus, cutoff, field1, attribute1, field2,
|
||||
attribute2):
|
||||
@ -455,28 +455,35 @@ class CQiClient:
|
||||
self.__send_STRING(attribute1)
|
||||
self.__send_BYTE(field2)
|
||||
self.__send_STRING(attribute2)
|
||||
return self.__recv_response()
|
||||
return self.__recv_response(CQi.DATA_INT_LIST)
|
||||
|
||||
def __recv_response(self):
|
||||
def __recv_response(self, expected_response_type=None):
|
||||
byte_data = self.__recv_WORD()
|
||||
response_type = byte_data >> 8
|
||||
if response_type == CQi.STATUS:
|
||||
response = byte_data
|
||||
elif response_type == CQi.ERROR:
|
||||
raise Exception(CQi.lookup[byte_data])
|
||||
elif response_type == CQi.ERROR_SYNTAX_ERROR:
|
||||
raise Exception(CQi.lookup[byte_data])
|
||||
elif response_type == CQi.DATA:
|
||||
response = self.__recv_DATA(byte_data)
|
||||
elif response_type == CQi.CL_ERROR:
|
||||
if response_type == CQi.CL_ERROR:
|
||||
raise Exception(CQi.lookup[byte_data])
|
||||
elif response_type == CQi.CQP_ERROR:
|
||||
raise Exception(CQi.lookup[byte_data])
|
||||
elif response_type == CQi.DATA:
|
||||
if (expected_response_type is not None
|
||||
and byte_data != expected_response_type):
|
||||
raise Exception("Expected different response type."
|
||||
+ "Received: {}, ".format(byte_data)
|
||||
+ "Expected {}".format(expected_response_type))
|
||||
return self.__recv_DATA(byte_data)
|
||||
elif response_type == CQi.ERROR:
|
||||
raise Exception(CQi.lookup[byte_data])
|
||||
elif response_type == CQi.STATUS:
|
||||
if (expected_response_type is not None
|
||||
and byte_data != expected_response_type):
|
||||
raise Exception("Expected different response type."
|
||||
+ "Received: {}, ".format(byte_data)
|
||||
+ "Expected {}".format(expected_response_type))
|
||||
return byte_data
|
||||
else:
|
||||
raise Exception(
|
||||
'Unknown response type: {}'.format(hex(response_type))
|
||||
)
|
||||
return response
|
||||
|
||||
def __recv_DATA(self, data_type):
|
||||
if data_type == CQi.DATA_BYTE:
|
||||
|
@ -20,8 +20,8 @@ class CQiWrapper(CQiClient):
|
||||
|
||||
SUBCORPUS_NAMES = []
|
||||
|
||||
def __init__(self, host='127.0.0.1', port=4877, username='opaque',
|
||||
password='opaque'):
|
||||
def __init__(self, host='127.0.0.1', port=4877, username='anonymous',
|
||||
password=''):
|
||||
super(CQiWrapper, self).__init__(host=host, port=port)
|
||||
self.username = username
|
||||
self.password = password
|
||||
|
Loading…
Reference in New Issue
Block a user