Development Tools¶
This section covers tools for development and testing.
@deprecate¶
Mark a function as deprecated.
Parameters: - func (Callable): The function to be wrapped. Automatically passed when used as a decorator.
Usage as a Decorator:
@deprecate
def old_function():
print("This function is deprecated.")
Usage as a Function:
def old_function():
print("This function is deprecated.")
deprecated_function = deprecate(old_function)
deprecated_function() # Outputs a deprecation warning
@no_debug¶
Disable debug output for a function.
Parameters: - func (Callable): The function to be wrapped. Automatically passed when used as a decorator.
Usage as a Decorator:
@no_debug
def sensitive_function():
print("This is a production-safe function.")
Usage as a Function:
def sensitive_function():
print("This is a production-safe function.")
no_debug_function = no_debug(sensitive_function)
no_debug_function() # Executes without debug output
@mock_data¶
Mock the output of a function for testing.
Parameters: - data (Any): The data to return when the function is called. Can be a value or a callable. - func (Callable): The function to be wrapped. Automatically passed when used as a decorator.
Usage as a Decorator:
@mock_data(return_value={"id": 1, "name": "Mock User"})
def get_user_data(user_id):
pass
Usage as a Function:
def get_user_data(user_id):
pass
mocked_function = mock_data(return_value={"id": 1, "name": "Mock User"})(get_user_data)
result = mocked_function(42) # Returns {"id": 1, "name": "Mock User"}
@rate_limit¶
Limit the frequency of function execution.
Parameters: - calls (int): The maximum number of calls allowed within the specified period. - period (float): The time period (in seconds) for rate limiting. - func (Callable): The function to be wrapped. Automatically passed when used as a decorator.
Usage as a Decorator:
@rate_limit(calls=5, period=10)
def api_request():
print("API request made")
Usage as a Function:
def api_request():
print("API request made")
rate_limited_function = rate_limit(calls=5, period=10)(api_request)
rate_limited_function() # Enforces rate limiting