def separatewords(text, minWordReturnSize): words = [] for singleWord in splitter.split(text): currWord = singleWord.strip().lower() # leave numbers in phrase, but don't count as words, since they tend to invlate scores of their phrases if len(currWord) > minWordReturnSize and currWord != '' and not isnum(currWord): words.append(currWord) return words
def pre_deal(operator, value): if operator == '$set': value = {'value': value} elif operator == '$addToSet': if isinstance(value, dict) and '$each' in value: if len(value.items()) > 1: raise SyntaxError( "There cant't be other keys except '$each'.") value = value['$each'] if not isinstance(value, (list, tuple)): raise TypeError( "Value of '$each' should be list or tuple type.") value = {'value': value, 'each': True} else: value = {'value': [value], 'each': False} elif operator == '$inc': if not util.isnum(value): raise ValueError("Value in '$inc' must be number.") value = {'value': value} elif operator == '$pushAll': if not isinstance(value, (list, tuple)): raise TypeError( "Value in '$pushAll' should be list or tuple.") value = {'value': value} elif operator == '$push': if isinstance(value, dict) and '$each' in value: if len(value.items()) > 1: raise SyntaxError( "There cant't be other keys except '$each'.") value = value['$each'] if not isinstance(value, (list, tuple)): raise TypeError( "Value of '$each' should be list or tuple type.") value = {'value': value, 'each': True} else: value = {'value': [value], 'each': False} elif operator == '$bit': if not isinstance(value, dict): raise TypeError( "The field value of '$bit' shoud be dict type.") if len(value.items()) != 1: raise ValueError( "Can't have other key except 'and' and 'or' in '$bit'") key = value.keys()[0] if key != 'and' and key != 'or': raise ValueError("Key in '$bit' should be 'and' or 'or'.") if not isinstance(value[key], (int, long)): raise TypeError("Value in '$bit' should be int or long type.") value = {'value': value[key]} return value
def pre_deal(operator, value): if operator == '$set': value = {'value': value} elif operator == '$addToSet': if isinstance(value, dict) and '$each' in value: if len(value.items()) > 1: raise SyntaxError( "There cant't be other keys except '$each'.") value = value['$each'] if not isinstance(value, (list, tuple)): raise TypeError( "Value of '$each' should be list or tuple type.") value = {'value': value, 'each': True} else: value = {'value': [value], 'each': False} elif operator == '$inc': if not util.isnum(value): raise ValueError("Value in '$inc' must be number.") value = {'value': value} elif operator == '$pushAll': if not isinstance(value, (list, tuple)): raise TypeError( "Value in '$pushAll' should be list or tuple.") value = {'value': value} elif operator == '$push': if isinstance(value, dict) and '$each' in value: if len(value.items()) > 1: raise SyntaxError( "There cant't be other keys except '$each'.") value = value['$each'] if not isinstance(value, (list, tuple)): raise TypeError( "Value of '$each' should be list or tuple type.") value = {'value': value, 'each': True} else: value = {'value': [value], 'each': False} elif operator == '$bit': if not isinstance(value, dict): raise TypeError( "The field value of '$bit' shoud be dict type.") if len(value.items()) != 1: raise ValueError( "Can't have other key except 'and' and 'or' in '$bit'") key = value.keys()[0] if key != 'and' and key != 'or': raise ValueError("Key in '$bit' should be 'and' or 'or'.") if not isinstance(value[key], (int, long)): raise TypeError( "Value in '$bit' should be int or long type.") value = {'value': value[key]} return value