def match(value, query):
if type(query) in [str, int, float, type(None)]:<EOL><INDENT>return value == query<EOL><DEDENT>elif type(query) == dict and len(query.keys()) == <NUM_LIT:1>:<EOL><INDENT>for op in query:<EOL><INDENT>if op == "<STR_LIT>": return value == query[op]<EOL>elif op == "<STR_LIT>": return value < query[op]<EOL>elif op == "<STR_LIT>": return value <= query[op]<EOL>elif op == "<STR_LIT>": return value > query[op]<EOL>elif op == "<STR_LIT>": return value >= query[op]<EOL>elif op == "<STR_LIT>": return value != query[op]<EOL>elif op == "<STR_LIT>": return value in query[op]<EOL>elif op == "<STR_LIT>": return value not in query[op]<EOL>else: GeoQLError("<STR_LIT>" + op)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise GeoQLError("<STR_LIT>" + str(query))<EOL><DEDENT>
Determine whether a value satisfies a query.