def filename_valid(self, text):
        error = ''
        # noinspection PyBroadException
        try:
            if text in forbidden_names:
                return ValidationError(description=f'Forbidden name {text}')

            validate_filename(text)

        except ValidationError as ve:
            if ve.description is not None:
                error = 'Could not change filename.\n\nReason: {}'.format(
                    ve.description)
            elif len(ve.args):
                error = 'Could not change filename.\n\nReason: {}'.format(
                    ve.args[0])
            else:
                error = 'Could not change filename.\n\nReason: {}'.format(
                    ve.reason)
        except Exception as ex:
            error = f'Unknown exception: {ex}'

        finally:
            if error:
                return False
            else:
                return True
Beispiel #2
0
def validate_arguments():
    """
    One time utility used to group argument validation.
    """

    cmd_args.template = Path(cmd_args.template)

    if cmd_args.source:
        cmd_args.source = Path(cmd_args.source)

    if cmd_args.output_dir:
        cmd_args.output_dir = Path(cmd_args.output_dir)
        cmd_args.output_dir.mkdir(parents=True, exist_ok=True)

    if cmd_args.target:
        for t in cmd_args.target:

            if not t.is_file() and not t.is_dir():  # Check if targets are valid files or directories
                raise NotADirectoryError("Target not found: \'%s\'" % t)

    if cmd_args.exclude:
        for x in cmd_args.exclude:
            if not x.is_file() and not x.is_dir():  # Check if exclusions are valid files or directories
                raise NotADirectoryError("Target not found: \'%s\'" % x)

    try:
        validate_filename(cmd_args.prefix + 'test.css')  # Check if the prefix is valid for a filename
    except ValidationError as e:
        raise ValidationError("Prefix is not a valid filename: %s" % cmd_args.prefix, e)
Beispiel #3
0
    def test_upload_invalid_filename(self, validate_filename, async_task):
        validate_filename.side_effect = ValidationError()
        with open(os.path.join(os.path.dirname(__file__), "samples", "simple.pdf"), "rb") as f:
            response = self.client.post("/api/documents/post_document/", {"document": f})
        self.assertEqual(response.status_code, 400)

        async_task.assert_not_called()
Beispiel #4
0
def check_drop_col(form, field):
    check_ncolumns(form)
    try:
        integers = str_to_ints(field.data)
        for integer in integers:
            if integer >= ncolumns_cur \
                    or integer < 0:
                raise Exception
    except Exception as e:
        raise ValidationError('Wrong drop columns')
Beispiel #5
0
def check_ncolumns(form):
    global ncolumns_cur
    global dataset_name_cur

    if form.__contains__('train_data'):
        dataset_name = data_sets[form.train_data.data[0]]
    elif form.__contains__('data'):
        dataset_name = data_sets[form.data.data[0]]
    else:
        raise ValidationError('Wrong name of the parametr of the form')

    if dataset_name != dataset_name_cur:
        dt = pd.read_csv(os.path.join(datasets_path, dataset_name))
        ncolumns_cur = len(dt.columns)
        dataset_name_cur = dataset_name
Beispiel #6
0
def check_pred_y(form, field):
    check_ncolumns(form)
    if ncolumns_cur <= form.y.data \
            or field.data < -1:
        raise ValidationError('Wrong y')
Beispiel #7
0
def check_feature_subsample_size(form, field):
    check_ncolumns(form)
    if ncolumns_cur < form.feature_subsample_size.data \
            or field.data < -1 or field.data == 0:
        raise ValidationError('Wrong feature_subsample_size')
Beispiel #8
0
def check_filename(form, field):
    try:
        validate_filename(field.data)
    except ValidationError as e:
        raise ValidationError('Wrong filename')