452 lines
10 KiB
Python
452 lines
10 KiB
Python
|
|
# Base Class
|
|
|
|
class SRWDiagnostic (Exception):
|
|
""" Base Diagnostic Class"""
|
|
code = 0
|
|
uri = "info:srw/diagnostic/1/"
|
|
details = ""
|
|
message = ""
|
|
|
|
surrogate = 0
|
|
fatal = 1
|
|
|
|
def __str__(self):
|
|
return "%s [%s]: %s" % (self.uri, self.message, self.details)
|
|
|
|
# NB 'Need' name for serialization in SRW
|
|
def __init__(self, name=None):
|
|
if (self.code):
|
|
self.uri = "%s%d" % (self.uri, self.code)
|
|
Exception.__init__(self)
|
|
|
|
# Diagnostic Types
|
|
|
|
class GeneralDiagnostic (SRWDiagnostic):
|
|
pass
|
|
|
|
class CQLDiagnostic (SRWDiagnostic):
|
|
pass
|
|
|
|
class RecordDiagnostic (SRWDiagnostic):
|
|
pass
|
|
|
|
class ResultSetDiagnostic (SRWDiagnostic):
|
|
pass
|
|
|
|
class SortDiagnostic (SRWDiagnostic):
|
|
pass
|
|
|
|
class StyleDiagnostic (SRWDiagnostic):
|
|
pass
|
|
|
|
class ScanDiagnostic (SRWDiagnostic):
|
|
pass
|
|
|
|
class DeprecatedDiagnostic(SRWDiagnostic):
|
|
def __init__(self, name=None):
|
|
print "WARNING: Use of deprecated diagnostic %s" % (self)
|
|
SRWDiagnostic.__init__(self)
|
|
|
|
class ExplainDiagnostic (DeprecatedDiagnostic):
|
|
pass
|
|
|
|
|
|
# Rob's (empty) diagnostic set
|
|
class RobDiagnostic (SRWDiagnostic):
|
|
uri = "info:srw/diagnostic/2/"
|
|
|
|
|
|
# Individual Diagnostics
|
|
|
|
class Diagnostic1 (GeneralDiagnostic):
|
|
code = 1
|
|
message = "General system error"
|
|
|
|
class Diagnostic2 (GeneralDiagnostic):
|
|
code = 2
|
|
message = "System temporarily unavailable"
|
|
|
|
class Diagnostic3 (GeneralDiagnostic):
|
|
code = 3
|
|
message = "Authentication error"
|
|
|
|
class Diagnostic4 (GeneralDiagnostic):
|
|
code = 4
|
|
message = "Unsupported operation"
|
|
|
|
class Diagnostic5 (GeneralDiagnostic):
|
|
code = 5
|
|
message = "Unsupported version"
|
|
|
|
class Diagnostic6 (GeneralDiagnostic):
|
|
code = 6
|
|
message = "Unsupported parameter value"
|
|
|
|
class Diagnostic7 (GeneralDiagnostic):
|
|
code = 7
|
|
message = "Mandatory parameter not supplied"
|
|
|
|
class Diagnostic8 (GeneralDiagnostic):
|
|
code = 8
|
|
message = "Unknown parameter"
|
|
|
|
|
|
|
|
class Diagnostic10 (CQLDiagnostic):
|
|
code = 10
|
|
message = "Malformed query"
|
|
|
|
class Diagnostic13 (CQLDiagnostic):
|
|
code = 13
|
|
message = "Unsupported use of parentheses"
|
|
|
|
class Diagnostic14 (CQLDiagnostic):
|
|
code = 14
|
|
message = "Unsupported use of quotes"
|
|
|
|
class Diagnostic15 (CQLDiagnostic):
|
|
code = 15
|
|
message = "Unsupported context set"
|
|
|
|
class Diagnostic16 (CQLDiagnostic):
|
|
code = 16
|
|
message = "Unsupported index"
|
|
|
|
class Diagnostic18 (CQLDiagnostic):
|
|
code = 18
|
|
message = "Unsupported combination of indexes"
|
|
|
|
class Diagnostic19 (CQLDiagnostic):
|
|
code = 19
|
|
message = "Unsupported relation"
|
|
|
|
class Diagnostic20 (CQLDiagnostic):
|
|
code = 20
|
|
message = "Unsupported relation modifier"
|
|
|
|
class Diagnostic21 (CQLDiagnostic):
|
|
code = 21
|
|
message = "Unsupported combination of relation modifiers"
|
|
|
|
class Diagnostic22 (CQLDiagnostic):
|
|
code = 22
|
|
message = "Unsupported combination of relation and index"
|
|
|
|
class Diagnostic23 (CQLDiagnostic):
|
|
code = 23
|
|
message = "Too many characters in term"
|
|
|
|
class Diagnostic24 (CQLDiagnostic):
|
|
code = 24
|
|
message = "Unsupported combination of relation and term"
|
|
|
|
class Diagnostic26 (CQLDiagnostic):
|
|
code = 26
|
|
message = "Non special character escaped in term"
|
|
|
|
class Diagnostic27 (CQLDiagnostic):
|
|
code = 27
|
|
message = "Empty term unsupported"
|
|
|
|
class Diagnostic28 (CQLDiagnostic):
|
|
code = 28
|
|
message = "Masking character not supported"
|
|
|
|
class Diagnostic29 (CQLDiagnostic):
|
|
code = 29
|
|
message = "Masked words too short"
|
|
|
|
class Diagnostic30 (CQLDiagnostic):
|
|
code = 30
|
|
message = "Too many masking characters in term"
|
|
|
|
class Diagnostic31 (CQLDiagnostic):
|
|
code = 31
|
|
message = "Anchoring character not supported"
|
|
|
|
class Diagnostic32 (CQLDiagnostic):
|
|
code = 32
|
|
message = "Anchoring character in unsupported position."
|
|
|
|
class Diagnostic33 (CQLDiagnostic):
|
|
code = 33
|
|
message = "Combination of proximity/adjacency and masking characters not supported"
|
|
|
|
class Diagnostic34 (CQLDiagnostic):
|
|
code = 34
|
|
message = "Combination of proximity/adjacency and anchoring characters not supported"
|
|
|
|
class Diagnostic35 (CQLDiagnostic):
|
|
code = 35
|
|
message = "Term only stopwords"
|
|
|
|
class Diagnostic36 (CQLDiagnostic):
|
|
code = 36
|
|
message = "Term in invalid format for index or relation"
|
|
|
|
class Diagnostic37 (CQLDiagnostic):
|
|
code = 37
|
|
message = "Unsupported boolean operator"
|
|
|
|
class Diagnostic38 (CQLDiagnostic):
|
|
code = 38
|
|
message = "Too many boolean operators"
|
|
|
|
class Diagnostic39 (CQLDiagnostic):
|
|
code = 39
|
|
message = "Proximity not supported"
|
|
|
|
class Diagnostic40 (CQLDiagnostic):
|
|
code = 40
|
|
message = "Unsupported proximity relation"
|
|
|
|
class Diagnostic41 (CQLDiagnostic):
|
|
code = 41
|
|
message = "Unsupported proximity distance"
|
|
|
|
class Diagnostic42 (CQLDiagnostic):
|
|
code = 42
|
|
message = "Unsupported proximity unit"
|
|
|
|
class Diagnostic43 (CQLDiagnostic):
|
|
code = 43
|
|
message = "Unsupported proximity ordering"
|
|
|
|
class Diagnostic44 (CQLDiagnostic):
|
|
code = 44
|
|
message = "Unsupported combination of proximity modifiers"
|
|
|
|
|
|
|
|
class Diagnostic50 (ResultSetDiagnostic):
|
|
code = 50
|
|
message = "Result sets not supported"
|
|
|
|
class Diagnostic51 (ResultSetDiagnostic):
|
|
code = 51
|
|
message = "Result set does not exist"
|
|
|
|
class Diagnostic52 (ResultSetDiagnostic):
|
|
code = 52
|
|
message = "Result set temporarily unavailable"
|
|
|
|
class Diagnostic53 (ResultSetDiagnostic):
|
|
code = 53
|
|
message = "Result sets only supported for retrieval"
|
|
|
|
class Diagnostic55 (ResultSetDiagnostic):
|
|
code = 55
|
|
message = "Combination of result sets with search terms not supported"
|
|
|
|
class Diagnostic58 (ResultSetDiagnostic):
|
|
code = 58
|
|
message = "Result set created with unpredictable partial results available"
|
|
|
|
class Diagnostic59 (ResultSetDiagnostic):
|
|
code = 59
|
|
message = "Result set created with valid partial results available"
|
|
|
|
|
|
class Diagnostic60 (RecordDiagnostic):
|
|
code = 60
|
|
message = "Too many records retrieved"
|
|
|
|
class Diagnostic61 (RecordDiagnostic):
|
|
code = 61
|
|
message = "First record position out of range"
|
|
|
|
class Diagnostic64 (RecordDiagnostic):
|
|
code = 64
|
|
message = "Record temporarily unavailable"
|
|
surrogate = 1
|
|
|
|
class Diagnostic65 (RecordDiagnostic):
|
|
code = 65
|
|
message = "Record does not exist"
|
|
surrogate = 1
|
|
|
|
class Diagnostic66 (RecordDiagnostic):
|
|
code = 66
|
|
message = "Unknown schema for retrieval"
|
|
|
|
class Diagnostic67 (RecordDiagnostic):
|
|
code = 67
|
|
message = "Record not available in this schema"
|
|
surrogate = 1
|
|
|
|
class Diagnostic68 (RecordDiagnostic):
|
|
code = 68
|
|
message = "Not authorised to send record"
|
|
surrogate = 1
|
|
|
|
class Diagnostic69 (RecordDiagnostic):
|
|
code = 69
|
|
message = "Not authorised to send record in this schema"
|
|
surrogate = 1
|
|
|
|
class Diagnostic70 (RecordDiagnostic):
|
|
code = 70
|
|
message = "Record too large to send"
|
|
surrogate = 1
|
|
|
|
class Diagnostic71 (RecordDiagnostic):
|
|
code = 71
|
|
message = "Unsupported record packing"
|
|
|
|
class Diagnostic72 (RecordDiagnostic):
|
|
code = 72
|
|
message = "XPath retrieval unsupported"
|
|
|
|
class Diagnostic73 (RecordDiagnostic):
|
|
code = 73
|
|
message = "XPath expression contains unsupported feature"
|
|
|
|
class Diagnostic74 (RecordDiagnostic):
|
|
code = 74
|
|
message = "Unable to evaluate XPath expression"
|
|
|
|
|
|
|
|
class Diagnostic80 (SortDiagnostic):
|
|
code = 80
|
|
message = "Sort not supported"
|
|
|
|
class Diagnostic82 (SortDiagnostic):
|
|
code = 82
|
|
message = "Unsupported sort sequence"
|
|
|
|
class Diagnostic83 (SortDiagnostic):
|
|
code = 83
|
|
message = "Too many records to sort"
|
|
|
|
class Diagnostic84 (SortDiagnostic):
|
|
code = 84
|
|
message = "Too many sort keys"
|
|
|
|
class Diagnostic86 (SortDiagnostic):
|
|
code = 86
|
|
message = "Incompatible record formats"
|
|
|
|
class Diagnostic87 (SortDiagnostic):
|
|
code = 87
|
|
message = "Unsupported schema for sort"
|
|
|
|
class Diagnostic88 (SortDiagnostic):
|
|
code = 88
|
|
message = "Unsupported tag path for sort"
|
|
|
|
class Diagnostic89 (SortDiagnostic):
|
|
code = 89
|
|
message = "Tag path unsupported for schema"
|
|
|
|
class Diagnostic90 (SortDiagnostic):
|
|
code = 90
|
|
message = "Unsupported direction value"
|
|
|
|
class Diagnostic91 (SortDiagnostic):
|
|
code = 91
|
|
message = "Unsupported case value"
|
|
|
|
class Diagnostic92 (SortDiagnostic):
|
|
code = 92
|
|
message = "Unsupported missing value action"
|
|
|
|
|
|
class Diagnostic110 (StyleDiagnostic):
|
|
code = 110
|
|
message = "Stylesheets not supported"
|
|
|
|
class Diagnostic111 (StyleDiagnostic):
|
|
code = 111
|
|
message = "Unsupported stylesheet"
|
|
|
|
class Diagnostic120 (ScanDiagnostic):
|
|
code = 120
|
|
message = "Response position out of range"
|
|
|
|
class Diagnostic121 (ScanDiagnostic):
|
|
code = 121
|
|
message = "Too many terms requested"
|
|
|
|
|
|
|
|
|
|
|
|
# Deprecated diagnostics
|
|
|
|
class Diagnostic11 (DeprecatedDiagnostic):
|
|
code = 11
|
|
message = "Unsupported query type"
|
|
|
|
class Diagnostic12 (DeprecatedDiagnostic):
|
|
code = 12
|
|
message = "Too many characters in query"
|
|
|
|
class Diagnostic17 (DeprecatedDiagnostic):
|
|
code = 17
|
|
message = "Illegal or unsupported combination of index and index set."
|
|
|
|
class Diagnostic25 (DeprecatedDiagnostic):
|
|
code = 25
|
|
message = "Special characters not quoted in term"
|
|
|
|
class Diagnostic45 (DeprecatedDiagnostic):
|
|
code = 45
|
|
message = "Index set name (prefix) assigned to multiple identifiers"
|
|
|
|
class Diagnostic54 (DeprecatedDiagnostic):
|
|
code = 54
|
|
message = "Retrieval may only occur from an existing result set"
|
|
|
|
class Diagnostic56 (DeprecatedDiagnostic):
|
|
code = 56
|
|
message = "Only combination of single result set with search terms supported"
|
|
|
|
class Diagnostic57 (DeprecatedDiagnostic):
|
|
code = 57
|
|
message = "Result set created but no records available"
|
|
|
|
class Diagnostic62 (DeprecatedDiagnostic):
|
|
code = 62
|
|
message = "Negative number of records requested"
|
|
|
|
class Diagnostic63 (DeprecatedDiagnostic):
|
|
code = 63
|
|
message = "System error in retrieving records"
|
|
|
|
class Diagnostic81 (DeprecatedDiagnostic):
|
|
code = 81
|
|
message = "Unsupported sort type"
|
|
|
|
class Diagnostic85 (DeprecatedDiagnostic):
|
|
code = 85
|
|
message = "Duplicate sort keys"
|
|
|
|
class Diagnostic100 (ExplainDiagnostic):
|
|
code = 100
|
|
message = "Explain not supported"
|
|
|
|
class Diagnostic101 (ExplainDiagnostic):
|
|
code = 101
|
|
message = "Explain request type not supported"
|
|
|
|
class Diagnostic102 (ExplainDiagnostic):
|
|
code = 102
|
|
message = "Explain record temporarily unavailable"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|