Skip to content

bovine_propan.actor

bovine_actor(bovine_name, session) async

Yields the BovineStoreActor corresponding to the bovine_name. Usage:

async with bovine_actor(bovine_name, session) as actor:
    ...
Source code in bovine_process/bovine_propan/actor.py
@asynccontextmanager
async def bovine_actor(bovine_name: str, session: aiohttp.ClientSession):
    """Yields the BovineStoreActor corresponding to the `bovine_name`.
    Usage:

    ```python
    async with bovine_actor(bovine_name, session) as actor:
        ...
    ```
    """
    if bovine_name not in cache:
        store = BovineStore(session=session)
        actor = await store.actor_for_name(bovine_name)
        cache[bovine_name] = actor

    try:
        yield cache[bovine_name]
    except Exception as e:
        logger.exception(e)