From: Aleš Mrázek Date: Thu, 26 Feb 2026 13:50:09 +0000 (+0100) Subject: python: modeling: types: added integer and float types X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9f64ff7f9399a445548c934dd59d49ce2d2c245e;p=thirdparty%2Fknot-resolver.git python: modeling: types: added integer and float types --- diff --git a/python/knot_resolver/utils/modeling/types/__init__.py b/python/knot_resolver/utils/modeling/types/__init__.py index 61a7cc3f9..eaea0e935 100644 --- a/python/knot_resolver/utils/modeling/types/__init__.py +++ b/python/knot_resolver/utils/modeling/types/__init__.py @@ -1,6 +1,24 @@ from .base_generic_custom_types import ListOrItem, Transformed +from .float_types import FloatNonNegative +from .integer_types import ( + Integer0_32, + Integer0_512, + Integer0_65535, + IntegerNonNegative, + IntegerPositive, + Percent, + PortNumber, +) __all__ = [ + "FloatNonNegative", + "Integer0_32", + "Integer0_512", + "Integer0_65535", + "IntegerNonNegative", + "IntegerPositive", "ListOrItem", "Transformed", + "Percent", + "PortNumber", ] diff --git a/python/knot_resolver/utils/modeling/types/float_types.py b/python/knot_resolver/utils/modeling/types/float_types.py new file mode 100644 index 000000000..eefbe38ef --- /dev/null +++ b/python/knot_resolver/utils/modeling/types/float_types.py @@ -0,0 +1,7 @@ +from __future__ import annotations + +from .base_float_types import BaseFloatRange + + +class FloatNonNegative(BaseFloatRange): + _min: float = 0.0 diff --git a/python/knot_resolver/utils/modeling/types/integer_types.py b/python/knot_resolver/utils/modeling/types/integer_types.py new file mode 100644 index 000000000..db04feb54 --- /dev/null +++ b/python/knot_resolver/utils/modeling/types/integer_types.py @@ -0,0 +1,37 @@ +# ruff: noqa: N801 +from __future__ import annotations + +from .base_integer_types import BaseIntegerRange + + +class Integer0_32(BaseIntegerRange): + _min: int = 0 + _max: int = 32 + + +class Integer0_512(BaseIntegerRange): + _min: int = 0 + _max: int = 512 + + +class Integer0_65535(BaseIntegerRange): + _min: int = 0 + _max: int = 65_535 + + +class IntegerNonNegative(BaseIntegerRange): + _min: int = 0 + + +class IntegerPositive(BaseIntegerRange): + _min: int = 1 + + +class Percent(BaseIntegerRange): + _min: int = 0 + _max: int = 100 + + +class PortNumber(BaseIntegerRange): + _min: int = 1 + _max: int = 65_535