"""
Contracts Compatibility Layer
Simple compatibility layer for contracts functionality to avoid
import conflicts with the contracts library.
Author: Adder_1 | Created: 2025-06-26
"""
def require(condition):
"""Simple require decorator that validates preconditions."""
def decorator(func):
def wrapper(*args, **kwargs):
if callable(condition):
if not condition(*args, **kwargs):
raise ValueError(f"Precondition failed for {func.__name__}")
else:
if not condition:
raise ValueError(f"Precondition failed for {func.__name__}")
return func(*args, **kwargs)
return wrapper
return decorator
def ensure(condition):
"""Simple ensure decorator that validates postconditions."""
def decorator(func):
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
if callable(condition):
if not condition(result, *args, **kwargs):
raise ValueError(f"Postcondition failed for {func.__name__}")
else:
if not condition:
raise ValueError(f"Postcondition failed for {func.__name__}")
return result
return wrapper
return decorator