uf.history#

Call history and presets for uf.

Provides functionality to track function calls, save parameter presets, and reuse previous calls for improved user experience.

Functions

enable_history(func[, max_size])

Decorator to enable call history for a function.

get_global_history_manager()

Get the global history manager.

Classes

CallHistory([max_size])

Manage history of function calls.

FunctionCall(func_name, params[, result, ...])

Record of a single function call.

HistoryManager([max_history])

Combined manager for history and presets.

Preset(name, func_name, params[, description])

A saved parameter preset for a function.

PresetManager()

Manage parameter presets for functions.

class uf.history.CallHistory(max_size=100)[source]#

Bases: object

Manage history of function calls.

Example

>>> history = CallHistory(max_size=100)
>>> history.record('add', {'x': 10, 'y': 20}, result=30)
>>> recent = history.get_recent('add', limit=5)
clear(func_name=None)[source]#

Clear history.

Parameters:

func_name (Optional[str]) – Function to clear, or None for all

Return type:

None

classmethod from_dict(data, max_size=100)[source]#

Create from dictionary.

Parameters:
  • data (dict) – Dictionary with history data

  • max_size (int) – Maximum size per function

Return type:

CallHistory

Returns:

CallHistory instance

get_recent(func_name, limit=10)[source]#

Get recent calls for a function.

Parameters:
  • func_name (str) – Function name

  • limit (int) – Maximum number to return

Return type:

list[FunctionCall]

Returns:

List of recent FunctionCall objects (newest first)

get_successful_calls(func_name, limit=10)[source]#

Get recent successful calls.

Parameters:
  • func_name (str) – Function name

  • limit (int) – Maximum number to return

Return type:

list[FunctionCall]

Returns:

List of successful FunctionCall objects

record(func_name, params, result=None, success=True, error=None)[source]#

Record a function call.

Parameters:
  • func_name (str) – Name of the function

  • params (dict) – Parameters used

  • result (Any) – Result returned

  • success (bool) – Whether call succeeded

  • error (Optional[str]) – Error message if failed

Return type:

None

to_dict()[source]#

Convert history to dictionary.

Return type:

dict

Returns:

Dictionary representation

class uf.history.FunctionCall(func_name, params, result=None, success=True, error=None)[source]#

Bases: object

Record of a single function call.

func_name#

Name of the function

params#

Parameters used

result#

Result returned (if captured)

timestamp#

When the call was made

success#

Whether the call succeeded

error#

Error message if failed

classmethod from_dict(data)[source]#

Create from dictionary.

Parameters:

data (dict) – Dictionary with call data

Return type:

FunctionCall

Returns:

FunctionCall instance

to_dict()[source]#

Convert to dictionary.

Return type:

dict

Returns:

Dictionary representation

class uf.history.HistoryManager(max_history=100)[source]#

Bases: object

Combined manager for history and presets.

Provides a unified interface for tracking calls and managing presets.

Example

>>> manager = HistoryManager()
>>> manager.record_call('add', {'x': 10, 'y': 20}, result=30)
>>> manager.save_preset('quick', 'add', {'x': 10, 'y': 20})
>>> recent = manager.get_recent_calls('add')
>>> presets = manager.get_presets('add')
get_preset(preset_name, func_name)[source]#

Get a preset.

Parameters:
  • preset_name (str) – Name of preset

  • func_name (str) – Function name

Return type:

Optional[Preset]

Returns:

Preset object or None

get_presets(func_name)[source]#

Get all presets for a function.

Parameters:

func_name (str) – Function name

Return type:

list[Preset]

Returns:

List of Preset objects

get_recent_calls(func_name, limit=10)[source]#

Get recent calls.

Parameters:
  • func_name (str) – Function name

  • limit (int) – Maximum number to return

Return type:

list[FunctionCall]

Returns:

List of recent FunctionCall objects

classmethod load_from_file(filepath, max_history=100)[source]#

Load from file.

Parameters:
  • filepath (str) – Path to load from

  • max_history (int) – Maximum history size

Return type:

HistoryManager

Returns:

HistoryManager instance

record_call(func_name, params, result=None, success=True, error=None)[source]#

Record a function call.

Parameters:
  • func_name (str) – Function name

  • params (dict) – Parameters used

  • result (Any) – Result returned

  • success (bool) – Whether call succeeded

  • error (Optional[str]) – Error message if failed

Return type:

None

save_preset(preset_name, func_name, params, description='')[source]#

Save a preset.

Parameters:
  • preset_name (str) – Name for preset

  • func_name (str) – Function name

  • params (dict) – Parameter values

  • description (str) – Optional description

Return type:

Preset

Returns:

Created Preset object

save_to_file(filepath)[source]#

Save history and presets to file.

Parameters:

filepath (str) – Path to save to

Return type:

None

class uf.history.Preset(name, func_name, params, description='')[source]#

Bases: object

A saved parameter preset for a function.

name#

Preset name

func_name#

Function this preset is for

params#

Parameter values

description#

Optional description

created_at#

When preset was created

classmethod from_dict(data)[source]#

Create from dictionary.

Parameters:

data (dict) – Dictionary with preset data

Return type:

Preset

Returns:

Preset instance

to_dict()[source]#

Convert to dictionary.

Return type:

dict

Returns:

Dictionary representation

class uf.history.PresetManager[source]#

Bases: object

Manage parameter presets for functions.

Example

>>> presets = PresetManager()
>>> presets.save('quick_add', 'add', {'x': 10, 'y': 20}, 'Quick test')
>>> preset = presets.get('quick_add', 'add')
>>> result = my_func(**preset.params)
delete(preset_name, func_name)[source]#

Delete a preset.

Parameters:
  • preset_name (str) – Name of preset

  • func_name (str) – Function name

Return type:

bool

Returns:

True if deleted, False if not found

classmethod from_dict(data)[source]#

Create from dictionary.

Parameters:

data (dict) – Dictionary with preset data

Return type:

PresetManager

Returns:

PresetManager instance

get(preset_name, func_name)[source]#

Get a preset.

Parameters:
  • preset_name (str) – Name of preset

  • func_name (str) – Function name

Return type:

Optional[Preset]

Returns:

Preset object or None

list_presets(func_name)[source]#

List all presets for a function.

Parameters:

func_name (str) – Function name

Return type:

list[Preset]

Returns:

List of Preset objects

save(preset_name, func_name, params, description='')[source]#

Save a parameter preset.

Parameters:
  • preset_name (str) – Name for this preset

  • func_name (str) – Function this preset is for

  • params (dict) – Parameter values

  • description (str) – Optional description

Return type:

Preset

Returns:

Created Preset object

to_dict()[source]#

Convert to dictionary.

Return type:

dict

Returns:

Dictionary representation

uf.history.enable_history(func, max_size=100)[source]#

Decorator to enable call history for a function.

Parameters:

max_size (int) – Maximum history size

Return type:

Callable

Returns:

Decorator function

Example

>>> @enable_history
... def my_function(x: int):
...     return x * 2
uf.history.get_global_history_manager()[source]#

Get the global history manager.

Return type:

HistoryManager

Returns:

Global HistoryManager instance