]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
python: modeling: types: added integer and float types
authorAleš Mrázek <ales.mrazek@nic.cz>
Thu, 26 Feb 2026 13:50:09 +0000 (14:50 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Mon, 20 Apr 2026 22:25:58 +0000 (00:25 +0200)
python/knot_resolver/utils/modeling/types/__init__.py
python/knot_resolver/utils/modeling/types/float_types.py [new file with mode: 0644]
python/knot_resolver/utils/modeling/types/integer_types.py [new file with mode: 0644]

index 61a7cc3f9a695854695b3b0768b4f3bff25a6246..eaea0e9355155faeab364df7ce20b8a0c6ac513d 100644 (file)
@@ -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 (file)
index 0000000..eefbe38
--- /dev/null
@@ -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 (file)
index 0000000..db04feb
--- /dev/null
@@ -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