• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

patrickboateng / func-validator / 18180349137

02 Oct 2025 01:14AM UTC coverage: 97.888% (-1.8%) from 99.665%
18180349137

push

github

patrickboateng
removed validators

24 of 27 branches covered (88.89%)

Branch coverage included in aggregate %.

625 of 636 relevant lines covered (98.27%)

1.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

60.0
/func_validator/validators/__init__.py
1
import enum
2✔
2

3
from .collection_arg_validators import (
2✔
4
    MustBeEmpty,
5
    MustBeMemberOf,
6
    MustBeNonEmpty,
7
    MustHaveLengthBetween,
8
    MustHaveLengthEqual,
9
    MustHaveLengthGreaterThan,
10
    MustHaveLengthGreaterThanOrEqual,
11
    MustHaveLengthLessThan,
12
    MustHaveLengthLessThanOrEqual,
13
    MustHaveValuesBetween,
14
    MustHaveValuesGreaterThan,
15
    MustHaveValuesGreaterThanOrEqual,
16
    MustHaveValuesLessThan,
17
    MustHaveValuesLessThanOrEqual,
18
)
19
from .datatype_arg_validators import MustBeA
2✔
20
from .numeric_arg_validators import (
2✔
21
    MustBeBetween,
22
    MustBeEqual,
23
    MustNotBeEqual,
24
    MustBeAlmostEqual,
25
    MustBeGreaterThan,
26
    MustBeGreaterThanOrEqual,
27
    MustBeLessThan,
28
    MustBeLessThanOrEqual,
29
    MustBeNegative,
30
    MustBeNonNegative,
31
    MustBeNonPositive,
32
    MustBePositive,
33
)
34
from .text_arg_validators import MustMatchRegex
2✔
35
from ._core import ValidationError, validator
2✔
36

37
__all__ = [
2✔
38
    # Error
39
    "ValidationError",
40
    # Collection Validators
41
    "MustBeMemberOf",
42
    "MustBeEmpty",
43
    "MustBeNonEmpty",
44
    "MustHaveLengthEqual",
45
    "MustHaveLengthGreaterThan",
46
    "MustHaveLengthGreaterThanOrEqual",
47
    "MustHaveLengthLessThan",
48
    "MustHaveLengthLessThanOrEqual",
49
    "MustHaveLengthBetween",
50
    "MustHaveValuesGreaterThan",
51
    "MustHaveValuesGreaterThanOrEqual",
52
    "MustHaveValuesLessThan",
53
    "MustHaveValuesLessThanOrEqual",
54
    "MustHaveValuesBetween",
55
    # DataType Validators
56
    "MustBeA",
57
    # Numeric Validators
58
    "MustBeBetween",
59
    "MustBeEqual",
60
    "MustNotBeEqual",
61
    "MustBeAlmostEqual",
62
    "MustBeGreaterThan",
63
    "MustBeGreaterThanOrEqual",
64
    "MustBeLessThan",
65
    "MustBeLessThanOrEqual",
66
    "MustBeNegative",
67
    "MustBeNonNegative",
68
    "MustBeNonPositive",
69
    "MustBePositive",
70
    # Text Validators
71
    "MustMatchRegex",
72
    # Core
73
    "DependsOn",
74
    "validator",
75
]
76

77

78
class Strategy(enum.StrEnum):
2✔
79
    MUST_NOT_BE_EMPTY = "must_not_be_empty"
2✔
80

81

82
class DependsOn:
2✔
83
    """Class to indicate that a function argument depends on another
84
    argument.
85

86
    When an argument is marked as depending on another, it implies that
87
    the presence or value of one argument may influence the validation
88
    or necessity of the other.
89
    """
90

91
    def __init__(self, strategy=Strategy.MUST_NOT_BE_EMPTY, **kwargs):
2✔
92
        self.strategy = strategy
×
93
        self.dependencies = kwargs.items()
×
94

95
    def __call__(
2✔
96
        self,
97
        arg_val,
98
        arg_name: str,
99
        dependent_arg_val,
100
        dependent_arg_name: str,
101
    ):
102
        if self.strategy == Strategy.MUST_NOT_BE_EMPTY:
×
103
            if not arg_val:
×
104
                msg = (
×
105
                    f"{arg_name} must not be empty when {dependent_arg_name} "
106
                    f"is {dependent_arg_val}."
107
                )
108
                raise ValidationError(msg)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc