diff --git a/Contributing-checkers.md b/Contributing-checkers.md new file mode 100644 index 0000000..a28fed0 --- /dev/null +++ b/Contributing-checkers.md @@ -0,0 +1,38 @@ +```py +from typing import Dict, Optional + +from loguru import logger +from pywhat import identifier + +from ciphey.iface import Checker, Config, ParamSpec, T, registry + + +@registry.register +class GTestChecker(Checker[str]): + + """ + G-test of fitness, similar to Chi squared. + """ + + def check(self, text: T) -> Optional[str]: + logger.trace("Trying PyWhat checker") + returned_regexes = self.id.identify(text) + if returned_regexes["Regexes"] > 0: + return returned_regexes["Regexes"][0]["Regex Pattern"]["Name"] + return None + + def getExpectedRuntime(self, text: T) -> float: + # TODO: actually bench this + return 4e-7 * len(text) + + def __init__(self, config: Config): + super().__init__(config) + self.id = identifier.Identifier() + + @staticmethod + def getParams() -> Optional[Dict[str, ParamSpec]]: + pass + +``` + +Checkers return a string (with what it found) or None if it fails. \ No newline at end of file