Documentation

User Guide

Epochly User Guide: Decorators

Use @epochly.optimize and other decorators to target specific functions for acceleration with fine-grained control.

Function decorators for applying Epochly optimizations.


@optimize

Main optimization decorator. Applies progressive enhancement based on configured level.

Signature

@epochly.optimize
def function(args):
...
@epochly.optimize(level=3)
def function(args):
...
@epochly.optimize(level=2)
def function(args):
...

Parameters

ParameterTypeDefaultDescription
levelintNoneTarget enhancement level (0-4)
monitor_performanceboolTrueEnable performance monitoring

Example

import epochly
@epochly.optimize
def process_data(data):
return [x ** 2 for x in data]
@epochly.optimize(level=3)
def heavy_computation(matrix):
return matrix_multiply(matrix)

@performance_monitor

Add performance monitoring without optimization.

Signature

@epochly.performance_monitor
def function(args):
...
@epochly.performance_monitor
def function(args):
...

Parameters

This decorator takes no parameters. It is a bare decorator.

Example

import epochly
@epochly.performance_monitor
def tracked_function(data):
return process(data)
result = tracked_function(my_data)
metrics = epochly.get_metrics()

@jit_compile

Force JIT compilation for numerical functions.

Signature

@epochly.jit_compile
def function(args):
...
@epochly.jit_compile
def function(args):
...

Parameters

This decorator takes no parameters. It is a bare decorator.

Example

import epochly
import numpy as np
@epochly.jit_compile
def fast_sum(arr):
total = 0.0
for i in range(len(arr)):
total += arr[i]
return total
result = fast_sum(np.random.rand(1000000))

@full_optimize

Apply maximum optimization (Level 3 or 4).

Signature

@epochly.full_optimize
def function(args):
...
@epochly.full_optimize
def function(args):
...

Parameters

This decorator takes no parameters. It is a bare decorator.

Example

import epochly
@epochly.full_optimize
def matrix_operation(matrix):
return heavy_computation(matrix)

@threading_optimize

Apply Level 1 threading optimization for I/O-bound functions.

Signature

@epochly.threading_optimize
def function(args):
...
@epochly.threading_optimize(max_workers=32)
def function(args):
...

Parameters

ParameterTypeDefaultDescription
max_workersintNoneMaximum thread count

Example

import epochly
@epochly.threading_optimize(max_workers=16)
def fetch_urls(urls):
return [fetch(url) for url in urls]

Decorator Stacking

Decorators can be combined:

import epochly
@epochly.performance_monitor
@epochly.optimize(level=2)
def monitored_optimized(data):
return process(data)

Accessing Original Function

The original unoptimized function is accessible:

import epochly
@epochly.optimize
def my_function(data):
return process(data)
# Call optimized version
result = my_function(data)
# Call original version
original_result = my_function._epochly_original(data)

Decorator Metadata

Decorated functions have metadata attributes:

AttributeDescription
_epochly_enhancedTrue if enhanced
_epochly_levelEnhancement level
_epochly_originalOriginal function