diff options
| author | Hunternif | 2019-04-17 00:24:34 +0700 |
|---|---|---|
| committer | Hunternif | 2019-04-17 00:24:34 +0700 |
| commit | def305c11c9f3a8e0e347dab0b2ec03e7275c93c (patch) | |
| tree | 6f0f64dfd015186ef40843db54f07bfeafc9bc8e /server/szurubooru/rest/context.py | |
| parent | 110c1125fe143ac91cbda007129ec84e5d21930d (diff) | |
Update metrics via tag API
Diffstat (limited to 'server/szurubooru/rest/context.py')
| -rw-r--r-- | server/szurubooru/rest/context.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/server/szurubooru/rest/context.py b/server/szurubooru/rest/context.py index 2aad101..647e2e3 100644 --- a/server/szurubooru/rest/context.py +++ b/server/szurubooru/rest/context.py @@ -160,6 +160,32 @@ class Context: raise errors.InvalidParameterError( 'Parameter %r must be an integer value.' % name) + def get_param_as_float( + self, + name: str, + default: Union[object, float] = MISSING, + min: Optional[float] = None, + max: Optional[float] = None) -> float: + if name not in self._params: + if default is not MISSING: + return cast(float, default) + raise errors.MissingRequiredParameterError( + 'Required parameter %r is missing.' % name) + value = self._params[name] + try: + value = float(value) + if min is not None and value < min: + raise errors.InvalidParameterError( + 'Parameter %r must be at least %r.' % (name, min)) + if max is not None and value > max: + raise errors.InvalidParameterError( + 'Parameter %r may not exceed %r.' % (name, max)) + return value + except (ValueError, TypeError): + pass + raise errors.InvalidParameterError( + 'Parameter %r must be a float value.' % name) + def get_param_as_bool( self, name: str, |