semvec/pypi-packages huggingface dataset:
python-cache-service 0.1.1
Simple namespaced cache service using Redis
Requires Python: >=3.8

# python-cache-service

**A lightweight, namespaced caching service using Redis.**  
Supports fast prototyping and production-ready use, with built-in support for Redis and `fakeredis` for tests.

---

## 🚀 Features

- 🔑 Namespaced keys to avoid collisions
- ⏳ Optional TTL for cache expiration
- 🧪 `fakeredis` support for seamless unit testing
- 🧩 Decorator to cache function results transparently
- 🧼 Cache clearing by namespace

---

## 📦 Installation

```bash
pip install python-cache-service
```
---
## Usage
```python

from cache.domain.factories.cache_service_factory import CacheServiceFactory

cache = CacheServiceFactory.create(namespace="my_app")

# Store a value
cache.set("my_key", {"data": 123}, ttl_seconds=3600)

# Retrieve a value
value = cache.get("my_key")

# Delete a value
cache.delete("my_key")

# Clear all keys in the namespace
cache.clear()
```

## Configuration

#### You can configure the cache service by setting environment variables:

- REDIS_HOST=localhost
- REDIS_PORT=6379
- REDIS_DB=0

## 🧪 Using in tests

```python
from cache.domain.factories.cache_service_factory import CacheServiceFactory

cache = CacheServiceFactory.createTest()

cache.set("test_key", [1, 2, 3])
assert cache.get("test_key") == [1, 2, 3]
```

#### You can also disable caching entirely in test mode:

```python
from cache.domain.factories.cache_service_factory import CacheServiceFactory
cache = CacheServiceFactory.createTest(disabled=True)
```

## 🎯 Using the @cache_result decorator

```python
from cache.decorators.cache_result import cache_result
from cache.domain.factories.cache_service_factory import CacheServiceFactory

cache = CacheServiceFactory.create(namespace="my_app")

@cache_result(cache, ttl_seconds=120, key_prefix="my_func", verbose=True)
def heavy_computation(x, y):
    return x + y

# First call: computed and cached
heavy_computation(2, 3)

# Second call: cache hit
heavy_computation(2, 3)
```

## 🧾 License
This project is licensed under the MIT License - see the LICENSE file for details.
EXACT-Sync 0.0.39
A package to download images and annotations from the EXACT Server https://github.com/DeepMicroscopy/Exact
Requires Python: >=3.6

# EXACT-Sync

[![PyPI version fury.io](https://badge.fury.io/py/EXCAT-Sync.svg)](https://pypi.python.org/pypi/EXCAT-Sync/)
[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)



Rest API sync with the EXACT Server https://github.com/ChristianMarzahl/Exact

[Browsable-API](https://documenter.getpostman.com/view/11308910/TVYF6xZo)

## Example Notebooks

In the folder examples

## Pip

pip install EXCAT-Sync

## Tests

with a lot of implementation examples
/exact_sync/v1/test


### Basic features:

#### Connect to server

```python
configuration = Configuration()
configuration.username = 'exact'
configuration.password = 'exact'
configuration.host = "http://127.0.0.1:8000"

client = ApiClient(configuration)

image_sets_api = ImageSetsApi(client)
annotations_api = AnnotationsApi(client)
annotation_types_api = AnnotationTypesApi(client)
images_api = ImagesApi(client)
product_api = ProductsApi(client)
team_api = TeamsApi(client)
```


#### Get image set information
```python
image_sets = image_sets_api.list_image_sets(name="cluster_asthma_imageset")
image_sets
```

#### Upload image to image set

```python
image_type = int(Image.ImageSourceTypes.DEFAULT)
image = images_api.create_image(file_path=target_file, image_type=image_type, image_set=image_set.id).results[0]
```

##### Donwload image from image set

```python
images_api.download_image(id=image_id, target_path=image_path, original_image=True)
```

#### Download image annotations 

```python
annotations_api.list_annotations(pagination=False, async_req=True, image=image.id)
```