コード例 #1
0
    def _build_validator(self):
        self._sig = inspect.signature(self.Regressor)
        default_hyperpars = {
            key: value.default
            for key, value in self._sig.parameters.items()
            if value.default not in [None, inspect._empty]
        }
        schema = Schema.infer(default_hyperpars).schema
        coerce_schema = {
            key: Coerce(value)
            for key, value in schema.items() if key != "kwargs"
        }
        coerce_schema.update(self.override_validation)
        self._coerce_schema = Schema(coerce_schema, extra=ALLOW_EXTRA)

        def validator(pars):
            dpars = default_hyperpars.copy()
            dpars.update({
                key: value
                for key, value in pars.items() if value is not None
            })
            pars = self._coerce_schema(dpars)
            return pars

        return validator
コード例 #2
0
ファイル: tests.py プロジェクト: tuukkamustonen/voluptuous
def test_schema_infer_list():
    schema = Schema.infer({
        'list': ['foo', True, 42, 3.14]
    })

    assert_equal(schema, Schema({
        Required('list'): [str, bool, int, float]
    }))
コード例 #3
0
ファイル: tests.py プロジェクト: spacegaier/voluptuous
def test_schema_infer_list():
    schema = Schema.infer({
        'list': ['foo', True, 42, 3.14]
    })

    assert_equal(schema, Schema({
        Required('list'): [str, bool, int, float]
    }))
コード例 #4
0
def test_schema_infer_dict():
    schema = Schema.infer({'a': {'b': {'c': 'foo'}}})

    assert_equal(
        schema, Schema({Required('a'): {
                            Required('b'): {
                                Required('c'): str
                            }
                        }}))
コード例 #5
0
def test_schema_infer_scalar():
    assert_equal(Schema.infer('foo'), Schema(str))
    assert_equal(Schema.infer(True), Schema(bool))
    assert_equal(Schema.infer(42), Schema(int))
    assert_equal(Schema.infer(3.14), Schema(float))
    assert_equal(Schema.infer({}), Schema(dict))
    assert_equal(Schema.infer([]), Schema(list))
コード例 #6
0
ファイル: tests.py プロジェクト: tuukkamustonen/voluptuous
def test_schema_infer_scalar():
    assert_equal(Schema.infer('foo'), Schema(str))
    assert_equal(Schema.infer(True), Schema(bool))
    assert_equal(Schema.infer(42), Schema(int))
    assert_equal(Schema.infer(3.14), Schema(float))
    assert_equal(Schema.infer({}), Schema(dict))
    assert_equal(Schema.infer([]), Schema(list))
コード例 #7
0
def test_schema_infer_scalar():
    assert Schema.infer('foo') == Schema(str)
    assert Schema.infer(True) == Schema(bool)
    assert Schema.infer(42) == Schema(int)
    assert Schema.infer(3.14) == Schema(float)
    assert Schema.infer({}) == Schema(dict)
    assert Schema.infer([]) == Schema(list)
コード例 #8
0
ファイル: tests.py プロジェクト: tuukkamustonen/voluptuous
def test_schema_infer():
    schema = Schema.infer({
        'str': 'foo',
        'bool': True,
        'int': 42,
        'float': 3.14
    })
    assert_equal(schema, Schema({
        Required('str'): str,
        Required('bool'): bool,
        Required('int'): int,
        Required('float'): float
    }))
コード例 #9
0
ファイル: tests.py プロジェクト: spacegaier/voluptuous
def test_schema_infer():
    schema = Schema.infer({
        'str': 'foo',
        'bool': True,
        'int': 42,
        'float': 3.14
    })
    assert_equal(schema, Schema({
        Required('str'): str,
        Required('bool'): bool,
        Required('int'): int,
        Required('float'): float
    }))
コード例 #10
0
ファイル: tests.py プロジェクト: tuukkamustonen/voluptuous
def test_schema_infer_dict():
    schema = Schema.infer({
        'a': {
            'b': {
                'c': 'foo'
            }
        }
    })

    assert_equal(schema, Schema({
        Required('a'): {
            Required('b'): {
                Required('c'): str
            }
        }
    }))
コード例 #11
0
ファイル: tests.py プロジェクト: tuukkamustonen/voluptuous
def test_schema_infer_accepts_kwargs():
    schema = Schema.infer({
        'str': 'foo',
        'bool': True
    }, required=False, extra=True)

    # Subset of schema should be acceptable thanks to required=False.
    schema({'bool': False})

    # Keys that are in schema should still match required types.
    try:
        schema({'str': 42})
    except Invalid:
        pass
    else:
        assert False, 'Did not raise Invalid for Number'

    # Extra fields should be acceptable thanks to extra=True.
    schema({'str': 'bar', 'int': 42})
コード例 #12
0
ファイル: tests.py プロジェクト: spacegaier/voluptuous
def test_schema_infer_accepts_kwargs():
    schema = Schema.infer({
        'str': 'foo',
        'bool': True
    }, required=False, extra=True)

    # Subset of schema should be acceptable thanks to required=False.
    schema({'bool': False})

    # Keys that are in schema should still match required types.
    try:
        schema({'str': 42})
    except Invalid:
        pass
    else:
        assert False, 'Did not raise Invalid for Number'

    # Extra fields should be acceptable thanks to extra=True.
    schema({'str': 'bar', 'int': 42})