This commit is contained in:
28
docs/snippets/python/plugins/stateful_plugin.md
Normal file
28
docs/snippets/python/plugins/stateful_plugin.md
Normal file
@@ -0,0 +1,28 @@
|
||||
```python title="Python"
|
||||
import threading
|
||||
from kreuzberg import ExtractionResult
|
||||
|
||||
class StatefulPlugin:
|
||||
def __init__(self):
|
||||
self.lock: threading.Lock = threading.Lock()
|
||||
self.call_count: int = 0
|
||||
self.cache: dict = {}
|
||||
|
||||
def name(self) -> str:
|
||||
return "stateful-plugin"
|
||||
|
||||
def version(self) -> str:
|
||||
return "1.0.0"
|
||||
|
||||
def process(self, result: ExtractionResult) -> ExtractionResult:
|
||||
with self.lock:
|
||||
self.call_count += 1
|
||||
self.cache["last_mime"] = result.mime_type
|
||||
return result
|
||||
|
||||
def initialize(self) -> None:
|
||||
pass
|
||||
|
||||
def shutdown(self) -> None:
|
||||
pass
|
||||
```
|
||||
Reference in New Issue
Block a user