mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-04-19 22:39:27 +00:00
All task records are now created exclusively via Celery signals (Task 2). Removed PaperlessTask creation/update from train_classifier, sanity_check, llmindex_index, and check_sanity. Removed scheduled= and auto= parameters from all 7 call sites. Updated apply_async callers to use trigger_source headers instead. Exceptions now propagate naturally from task functions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
952 B
Python
32 lines
952 B
Python
from __future__ import annotations
|
|
|
|
import time
|
|
|
|
from documents.management.commands.base import PaperlessCommand
|
|
from documents.tasks import train_classifier
|
|
|
|
|
|
class Command(PaperlessCommand):
|
|
help = (
|
|
"Trains the classifier on your data and saves the resulting models to a "
|
|
"file. The document consumer will then automatically use this new model."
|
|
)
|
|
supports_progress_bar = False
|
|
supports_multiprocessing = False
|
|
|
|
def handle(self, *args, **options) -> None:
|
|
start = time.monotonic()
|
|
|
|
with (
|
|
self.buffered_logging("paperless.tasks"),
|
|
self.buffered_logging("paperless.classifier"),
|
|
):
|
|
train_classifier(
|
|
status_callback=lambda msg: self.console.print(f" {msg}"),
|
|
)
|
|
|
|
elapsed = time.monotonic() - start
|
|
self.console.print(
|
|
f"[green]✓[/green] Classifier training complete ({elapsed:.1f}s)",
|
|
)
|