semvec/pypi-packages huggingface dataset:
pytest-logikal 6.1.1
Common testing environment
Requires Python: ~=3.12
Keywords: pytest

pytest-logikal
==============
Common tools for Python testing implemented as a `pytest <https://docs.pytest.org/>`_ plugin.

Getting Started
---------------
You can find the project documentation under `docs.logikal.io/pytest-logikal/
<https://docs.logikal.io/pytest-logikal/>`_.
sysstra 0.1.4.3.6
Official Python Library for Sysstra Algo Trading
Requires Python: >=3.9

## SYSSTRA a Python library supporting algorithmic trading workflows
✨SYSSTRA a scalable Python library supporting end-to-end algorithmic trading workflows across Equity & Derivative, Commodities, CRYPTOS  markets and exchanges across the Globe.✨
<!--
**sysstra/sysstra** is a ✨ Trading Multi Asset Library ✨ repository because its `README.md` (this file) appears on your GitHub profile.

Here are some ideas to get you started:

- 🔭 I’m currently working on ...
- 🌱 I’m currently learning ...
- 👯 I’m looking to collaborate on ...
- 🤔 I’m looking for help with ...
- 💬 Ask me about ...
- 📫 How to reach me: ...
- 😄 Pronouns: ...
- ⚡ Fun fact: ...
-->
t87s 0.2.0
Declarative cache invalidation for Python
Requires Python: >=3.10
Keywords: cache, invalidation, redis, tags

# t87s

Declarative cache invalidation for Python.

## Install

```bash
pip install t87s              # Core + MemoryAdapter
pip install t87s[redis]       # + Redis support
pip install t87s[all]         # Everything
```

## Quickstart

```python
from t87s import QueryCache, TagSchema, Wild, AsyncMemoryAdapter, cached

class MyTags(TagSchema):
    users: Wild[TagSchema]

class MyCache(QueryCache[MyTags]):
    @cached(MyTags.users())
    async def get_user(self, id: str) -> dict:
        return await db.users.find_by_id(id)

cache = MyCache(adapter=AsyncMemoryAdapter())

# Cache miss, fetches from DB
user = await cache.get_user("123")

# Cache hit, instant
again = await cache.get_user("123")

# Invalidate when data changes
await cache.invalidate(cache.t.users("123"))

# Cache miss again, refetches
fresh = await cache.get_user("123")

# Access cache metadata via .entries
result = await cache.get_user("123").entries
print(result.before)  # CacheEntry | None (None on miss)
print(result.after)   # CacheEntry (always present)
```

## Docs

Full documentation: https://docs.t87s.dev