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( scheduled=False, 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)", )