예제 #1
0
def validate_regex(value: str, regex: str):
    if type(value) is not str:
        raise ParseError(f'value "{value}" should be string')

    if not re.match(regex, value):
        raise ParseError(
            f"value \"{value}\" doesn't match to regex \"{regex}\"")
예제 #2
0
    async def get_model(self, data: dict) -> dict:
        # TODO: implement
        validate_dict_must_have_key(data, 'name')

        model_name = data['name']
        validate_letters_digits_undescores(model_name)
        if model_name not in settings.PROXY_PROVIDER_SERVER_API_CONFIG:
            raise ParseError("You're not allowed to see this model")

        return {
            "result": "model " + model_name,
        }
예제 #3
0
def validate_uint(value):
    if type(value) is not int:
        raise ParseError("value should be integer")
    if value < 0:
        raise ParseError("value should be positive")
예제 #4
0
def validate_letters_digits_undescores(value):
    if len(value) > settings.PROXY_PROVIDER_SERVER_MAXIMUM_STRING_FIELD_SIZE:
        raise ParseError(f'value "{value}" is too big')

    return validate_regex(value, r'^[a-zA-Z0-9_]+$')
예제 #5
0
def validate_dict_must_have_key(data: dict, key: str):
    if key not in data:
        raise ParseError(f'please, specify the "{key}" key')