Updated Adding your own checker (markdown)

Brandon 2021-05-20 10:29:15 +01:00
parent 157b4cdd21
commit 5eeb207e22
1 changed files with 41 additions and 1 deletions

@ -128,4 +128,44 @@ Like so:
self.checkers.append(config(Brandon))
```
Finally, write some tests, run our tests with [Nox](https://nox.thea.codes/en/stable/) and make sure everything is a-okay!
Finally, write some tests, run our tests with [Nox](https://nox.thea.codes/en/stable/) and make sure everything is a-okay!
# Extra Info
```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.