Source code for hashtron.net.input
[docs]
class Input:
def __init__(self, obj):
# Check if the wrapped object has a 'feature' method
if not hasattr(obj, 'feature') or not callable(obj.feature):
raise ValueError("The wrapped object must have a 'feature' method.")
self.obj = obj
[docs]
def feature(self, n: int) -> int:
# Call the wrapped object's feature method
result = self.obj.feature(n)
# Check if the wrapped object has a 'parity' method
if hasattr(self.obj, 'parity') and callable(self.obj.parity):
# If it does, XOR the result with the parity
result ^= self.obj.parity()
return result
[docs]
def parity(self) -> int:
# Check if the wrapped object has a 'parity' method
if hasattr(self.obj, 'parity') and callable(self.obj.parity):
# If it does, return the parity
return self.obj.parity()
return 0