Metadata-Version: 2.1
Name: classic-cache
Version: 1.2.0
Summary: Provides decorator for cache
Home-page: https://github.com/variasov/classic-cache
Author: Sergei Variasov, Sergei Mikhaylov
Author-email: variasov@gmail.com
Project-URL: Bug Tracker, https://github.com/variasov/classic-cache/issues
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: classic-components~=1.2
Requires-Dist: orjson==3.10.7
Requires-Dist: fakeredis==2.24.1
Requires-Dist: freezegun==1.5.1
Requires-Dist: msgspec==0.18.6
Provides-Extra: dev
Requires-Dist: pytest~=7.4.4; extra == "dev"
Requires-Dist: pytest-cov~=4.1; extra == "dev"
Requires-Dist: twine~=4.0; extra == "dev"
Requires-Dist: build~=1.0; extra == "dev"
Provides-Extra: redis
Requires-Dist: redis==5.0.8; extra == "redis"

# Classic Cache

Classic Cache - предоставляет функциональность кеширования. Она поддерживает 
кэширование как в памяти, так и на  основе Redis, и позволяет легко 
переключаться между ними. Является частью проекта "Classic".

## Установка

Для установки Classic-Cache вы можете использовать pip:

```bash
pip install classic-cache
```

Для установки Classic-Cache с поддержкой Redis:

```bash
pip install classic-cache[redis]
```

## Использование

Вот несколько примеров использования Classic-Cache.

```python
from classic.cache import cached, InMemoryCache, RedisCache
from classic.components import component

@component
class SomeClass:

    # Кэширование результата метода some_method на 60 секунд
    @cached(ttl=60)
    def some_method(self, arg1: int, arg2: int) -> int:
        return arg1 + arg2

# кеширование в памяти
cache = InMemoryCache()
# кеширование в Redis
cache = RedisCache(connection=Redis())

some_instance = SomeClass(cache=cache)

# ручная инвалидация кэша
some_instance.some_method.invalidate(1, 2)
# ручное обновление кэша
some_instance.some_method.refresh(1, 2)
```
