stackholm package#

class stackholm.Context[source]#

Bases: ContextDecorator

Return type

None

classmethod get_current() Optional[Context][source]#
Return type

Optional[Context]

classmethod get_nearest_checkpoint(key: str) Optional[Context][source]#
Parameters

key (str) –

Return type

Optional[Context]

classmethod get_checkpoint_value(key: str) Optional[VALUE_T][source]#
classmethod get_checkpoint_value(key: str, default: VALUE_T) Union[VALUE_T, T]
classmethod set_checkpoint_value(key: str, value: Any) None[source]#
Parameters
  • key (str) –

  • value (Any) –

Return type

None

classmethod pop_checkpoint_value(key: str) Optional[VALUE_T][source]#
classmethod pop_checkpoint_value(key: str, default: VALUE_T) Union[VALUE_T, T]
classmethod reset_checkpoint_value(key: str) None[source]#
Parameters

key (str) –

Return type

None

__init__() None[source]#
Return type

None

property storage: Storage#
property index: int#
property is_active: bool#
property block_data: Dict[str, Any]#
get_block_value(key: str) Optional[VALUE_T][source]#
get_block_value(key: str, default: VALUE_T) Union[VALUE_T, T]
set_block_value(key: str, value: Any) None[source]#
Parameters
  • key (str) –

  • value (Any) –

Return type

None

pop_block_value(key: str) Optional[VALUE_T][source]#
pop_block_value(key: str, default: VALUE_T) Union[VALUE_T, T]
property checkpoint_data: Dict[str, Any]#
activate() Context[source]#
Return type

Context

deactivate() None[source]#
Return type

None

exception stackholm.NoContextIsActive(message: str = 'No context is active.')[source]#

Bases: Exception

Parameters

message (str) –

Return type

None

__init__(message: str = 'No context is active.') None[source]#
Parameters

message (str) –

Return type

None

exception stackholm.ContextIsNotActive(context: Context, message: str = 'Context is not active.')[source]#

Bases: Exception

Parameters
Return type

None

__init__(context: Context, message: str = 'Context is not active.') None[source]#
Parameters
Return type

None

class stackholm.State[source]#

Bases: object

abstract push_context(context: Context) int[source]#
Parameters

context (Context) –

Return type

int

abstract pop_context(index: int = - 1) Optional[Context][source]#
Parameters

index (int) –

Return type

Optional[Context]

abstract get_last_context() Optional[Context][source]#
Return type

Optional[Context]

abstract add_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

abstract remove_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

abstract get_nearest_checkpoint(key: str) Optional[Context][source]#
Parameters

key (str) –

Return type

Optional[Context]

class stackholm.Storage[source]#

Bases: object

classmethod get_base_context_class() Type[Context][source]#
Return type

Type[Context]

classmethod get_state_class() Type[State][source]#
Return type

Type[State]

create_context_class(name: Optional[str] = None, bases: Optional[Tuple[Type, ...]] = None, namespace: Optional[Dict[str, Any]] = None) Type[Context][source]#
create_context_class(name: Optional[str] = None, base: Type[CONTEXT_T_co] = None, bases: Optional[Tuple[Type, ...]] = None, namespace: Optional[Dict[str, Any]] = None) Type[CONTEXT_T_co]
abstract get_state() State[source]#
Return type

State

abstract set_state(state: State) None[source]#
Parameters

state (State) –

Return type

None

property state: stackholm.state.State#
push_context(context: Context) int[source]#
Parameters

context (Context) –

Return type

int

pop_context(index: int = - 1) Optional[Context][source]#
Parameters

index (int) –

Return type

Optional[Context]

get_last_context() Optional[Context][source]#
Return type

Optional[Context]

add_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

remove_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

get_nearest_checkpoint(key: str) Optional[Context][source]#
Parameters

key (str) –

Return type

Optional[Context]

class stackholm.ContextVarStorage(context_var: ContextVar[State], *args: Any, **kwargs: Any)[source]#

Bases: OptimizedListStorage

Parameters
  • context_var (ContextVar[State]) –

  • args (Any) –

  • kwargs (Any) –

Return type

None

__init__(context_var: ContextVar[State], *args: Any, **kwargs: Any) None[source]#
Parameters
  • context_var (ContextVar[State]) –

  • args (Any) –

  • kwargs (Any) –

Return type

None

get_state() State[source]#
Return type

State

set_state(state: State) None[source]#
Parameters

state (State) –

Return type

None

class stackholm.OptimizedListState[source]#

Bases: State

Return type

None

__init__() None[source]#
Return type

None

context_sequence: int#
contexts: List[stackholm.context.Context]#
checkpoint_sequences: Dict[str, int]#
checkpoint_indexes: Dict[str, List[int]]#
checkpoint_optimization_mapping: Dict[str, Dict[int, int]]#
push_context(context: Context) int[source]#
Parameters

context (Context) –

Return type

int

pop_context(index: int = - 1) Optional[Context][source]#
Parameters

index (int) –

Return type

Optional[Context]

get_last_context() Optional[Context][source]#
Return type

Optional[Context]

add_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

remove_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

get_nearest_checkpoint(key: str) Optional[Context][source]#
Parameters

key (str) –

Return type

Optional[Context]

class stackholm.OptimizedListStorage(*args: Any, **kwargs: Any)[source]#

Bases: Storage

Parameters
  • args (Any) –

  • kwargs (Any) –

Return type

None

__init__(*args: Any, **kwargs: Any) None[source]#
Parameters
  • args (Any) –

  • kwargs (Any) –

Return type

None

get_state() State[source]#
Return type

State

set_state(state: State) None[source]#
Parameters

state (State) –

Return type

None

class stackholm.ThreadLocal(*args: Any, **kwargs: Any)[source]#

Bases: _local

Parameters
  • args (Any) –

  • kwargs (Any) –

Return type

None

state: stackholm.state.State#
__init__(*args: Any, **kwargs: Any) None[source]#
Parameters
  • args (Any) –

  • kwargs (Any) –

Return type

None

class stackholm.ThreadLocalStorage(*args: Any, local: Optional[ThreadLocal] = None, **kwargs: Any)[source]#

Bases: OptimizedListStorage

Parameters
Return type

None

__init__(*args: Any, local: Optional[ThreadLocal] = None, **kwargs: Any) None[source]#
Parameters
Return type

None

get_state() State[source]#
Return type

State

set_state(state: State) None[source]#
Parameters

state (State) –

Return type

None

class stackholm.ASGIRefLocal(*args: Any, **kwargs: Any)[source]#

Bases: Local

Parameters
  • args (Any) –

  • kwargs (Any) –

Return type

None

state: stackholm.state.State#
__init__(*args: Any, **kwargs: Any) None[source]#
Parameters
  • args (Any) –

  • kwargs (Any) –

Return type

None

class stackholm.ASGIRefLocalStorage(*args: Any, local: Optional[ASGIRefLocal] = None, thread_critical: bool = False, **kwargs: Any)[source]#

Bases: OptimizedListStorage

Parameters
Return type

None

__init__(*args: Any, local: Optional[ASGIRefLocal] = None, thread_critical: bool = False, **kwargs: Any) None[source]#
Parameters
Return type

None

get_state() State[source]#
Return type

State

set_state(state: State) None[source]#
Parameters

state (State) –

Return type

None

Subpackages#

Submodules#

stackholm.context module#

class stackholm.context.Context[source]#

Bases: ContextDecorator

Return type

None

classmethod get_current() Optional[Context][source]#
Return type

Optional[Context]

classmethod get_nearest_checkpoint(key: str) Optional[Context][source]#
Parameters

key (str) –

Return type

Optional[Context]

classmethod get_checkpoint_value(key: str) Optional[VALUE_T][source]#
classmethod get_checkpoint_value(key: str, default: VALUE_T) Union[VALUE_T, T]
classmethod set_checkpoint_value(key: str, value: Any) None[source]#
Parameters
  • key (str) –

  • value (Any) –

Return type

None

classmethod pop_checkpoint_value(key: str) Optional[VALUE_T][source]#
classmethod pop_checkpoint_value(key: str, default: VALUE_T) Union[VALUE_T, T]
classmethod reset_checkpoint_value(key: str) None[source]#
Parameters

key (str) –

Return type

None

__init__() None[source]#
Return type

None

property storage: Storage#
property index: int#
property is_active: bool#
property block_data: Dict[str, Any]#
get_block_value(key: str) Optional[VALUE_T][source]#
get_block_value(key: str, default: VALUE_T) Union[VALUE_T, T]
set_block_value(key: str, value: Any) None[source]#
Parameters
  • key (str) –

  • value (Any) –

Return type

None

pop_block_value(key: str) Optional[VALUE_T][source]#
pop_block_value(key: str, default: VALUE_T) Union[VALUE_T, T]
property checkpoint_data: Dict[str, Any]#
activate() Context[source]#
Return type

Context

deactivate() None[source]#
Return type

None

stackholm.exceptions module#

exception stackholm.exceptions.ContextIsNotActive(context: Context, message: str = 'Context is not active.')[source]#

Bases: Exception

Parameters
Return type

None

__init__(context: Context, message: str = 'Context is not active.') None[source]#
Parameters
Return type

None

exception stackholm.exceptions.NoContextIsActive(message: str = 'No context is active.')[source]#

Bases: Exception

Parameters

message (str) –

Return type

None

__init__(message: str = 'No context is active.') None[source]#
Parameters

message (str) –

Return type

None

stackholm.state module#

class stackholm.state.State[source]#

Bases: object

abstract push_context(context: Context) int[source]#
Parameters

context (Context) –

Return type

int

abstract pop_context(index: int = - 1) Optional[Context][source]#
Parameters

index (int) –

Return type

Optional[Context]

abstract get_last_context() Optional[Context][source]#
Return type

Optional[Context]

abstract add_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

abstract remove_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

abstract get_nearest_checkpoint(key: str) Optional[Context][source]#
Parameters

key (str) –

Return type

Optional[Context]

stackholm.storage module#

class stackholm.storage.Storage[source]#

Bases: object

classmethod get_base_context_class() Type[Context][source]#
Return type

Type[Context]

classmethod get_state_class() Type[State][source]#
Return type

Type[State]

create_context_class(name: Optional[str] = None, bases: Optional[Tuple[Type, ...]] = None, namespace: Optional[Dict[str, Any]] = None) Type[Context][source]#
create_context_class(name: Optional[str] = None, base: Type[CONTEXT_T_co] = None, bases: Optional[Tuple[Type, ...]] = None, namespace: Optional[Dict[str, Any]] = None) Type[CONTEXT_T_co]
abstract get_state() State[source]#
Return type

State

abstract set_state(state: State) None[source]#
Parameters

state (State) –

Return type

None

property state: stackholm.state.State#
push_context(context: Context) int[source]#
Parameters

context (Context) –

Return type

int

pop_context(index: int = - 1) Optional[Context][source]#
Parameters

index (int) –

Return type

Optional[Context]

get_last_context() Optional[Context][source]#
Return type

Optional[Context]

add_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

remove_checkpoint(key: str, context_index: int) None[source]#
Parameters
  • key (str) –

  • context_index (int) –

Return type

None

get_nearest_checkpoint(key: str) Optional[Context][source]#
Parameters

key (str) –

Return type

Optional[Context]