fleche.state
Attributes
Classes
Context manager for sticky ContextVar state. |
|
Utility class that freezes global state for the cache and metadata config. |
Functions
|
Manages the active cache for Fleche. |
|
Manages the active metadata for Fleche. |
|
A context manager to add arbitrary tags to results. |
|
A context manager to tag results with a project name. |
Module Contents
- fleche.state._CACHE: contextvars.ContextVar[fleche.caches.BaseCache][source]
- class fleche.state._StickyContext(var: contextvars.ContextVar, token: contextvars.Token)[source]
Context manager for sticky ContextVar state.
The value is set immediately on construction; entering the
with-block is a no-op, and exiting restores the previous value via the stored token.In Python 3.14+,
Tokenobjects returned byContextVar.set()support the context manager protocol natively, making this class unnecessary. It serves as a backport for earlier Python versions.
- fleche.state.cache(new_cache: None = None, stack: bool = False) fleche.caches.BaseCache[source]
- fleche.state.cache(new_cache: fleche.caches.BaseCache | str, stack: bool = False) contextlib.AbstractContextManager[None]
Manages the active cache for Fleche.
If
new_cacheisNone, returns the currently active cache.Otherwise, immediately sets
new_cacheas the active cache and returns a context manager. When used in awithstatement the previous cache is restored on exit; when the returned context manager is discarded the new cache remains active (sticky behaviour).- Parameters:
new_cache – Cache object or named cache string to activate, or
Noneto query.stack – If
True, wrapnew_cachein aCacheStackon top of the current cache.
- Returns:
The current
BaseCachewhen called without arguments, otherwise a_StickyContextcontext manager.
- fleche.state._METADATA: contextvars.ContextVar[tuple[fleche.metadata.MetaData, Ellipsis]][source]
- fleche.state.meta(*new_metadata: fleche.metadata.MetaData, stack=False) contextlib.AbstractContextManager[None][source]
Manages the active metadata for Fleche.
Immediately sets
new_metadataas the active metadata and returns a context manager. When used in awithstatement the previous metadata is restored on exit; when the returned context manager is discarded the new metadata remains active (sticky behaviour).- Parameters:
*new_metadata –
MetaDatainstances to activate.stack – If
True, prepend the current metadata tuple before the new entries.
- Returns:
A
_StickyContextcontext manager.
- fleche.state.tags(**kwargs)[source]
A context manager to add arbitrary tags to results.
- Parameters:
**kwargs – The tags to add to the results.
- fleche.state.project(name)[source]
A context manager to tag results with a project name.
- Parameters:
name (str) – The name of the project.
- class fleche.state.BoundWrapper[source]
Utility class that freezes global state for the cache and metadata config.
Essentially acts like an early binding closure.
This is intended to enable passing around fleche-decorated functions in pickled form by baking in the state into the pickle on request.
- meta: tuple[fleche.metadata.MetaData, Ellipsis][source]
- classmethod bind(func)[source]
Bind cache and metadata state.
Returns a new callable that will behave always as if run under the context under which
bind()was originally called.- Parameters:
func (callable) – any callable; plain functions that only call fleche-wrapped ones are explicitly allowed
- Returns:
instance with the bound cache and metadata state
- Return type: