diff options
author | SoniEx2 <endermoneymod@gmail.com> | 2020-02-24 15:47:30 -0300 |
---|---|---|
committer | SoniEx2 <endermoneymod@gmail.com> | 2020-02-25 22:47:35 -0300 |
commit | b4971f08758a4428fe90d0a56f58257cdbd728eb (patch) | |
tree | a6200fd659c806424b53bc2ec0575622f62ac3b5 /abdl/feature.py | |
parent | 6f4df5d08e147f74f91bf7ce2f882dca1390c721 (diff) |
Warn/error when using Predicate types as predicate
This only applies to Predicate types. Predicate instances still function as expected, as do non-Predicate types.
Diffstat (limited to 'abdl/feature.py')
-rw-r--r-- | abdl/feature.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/abdl/feature.py b/abdl/feature.py new file mode 100644 index 0000000..9821bd2 --- /dev/null +++ b/abdl/feature.py @@ -0,0 +1,40 @@ +# This file is part of A Boneless Datastructure Language +# Copyright (C) 2020 Soni L. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +"""Feature Deprecation Control. + +When features get deprecated, they show up here. + +Libraries must never use this module directly. Instead, it should be up to +applications and test suites to use this module. +""" + +class PredicateTypePredicate(DeprecationWarning): + """Indicates that a Predicate type is being used as a predicate. + + This usually indicates a bug. + + The following triggers this warning: + + >>> import abdl + >>> abdl.match("->x:$x", "x", {"x": abdl.predicates.Predicate}) + + The following doesn't: + + >>> import abdl + >>> predicate = abdl.predicates.IsInstance(abdl.predicates.Predicate) + >>> abdl.match("->x:$x", "x", {"x": predicate}) + """ |