from app.models import Corpus, CorpusStatus import os import shutil from app import db from . import bp @bp.cli.command('reset') def reset(): ''' Reset built corpora. ''' status = [ CorpusStatus.QUEUED, CorpusStatus.BUILDING, CorpusStatus.BUILT, CorpusStatus.STARTING_ANALYSIS_SESSION, CorpusStatus.RUNNING_ANALYSIS_SESSION, CorpusStatus.CANCELING_ANALYSIS_SESSION ] for corpus in [x for x in Corpus.query.all() if x.status in status]: print(f'Resetting corpus {corpus}') shutil.rmtree(os.path.join(corpus.path, 'cwb'), ignore_errors=True) os.mkdir(os.path.join(corpus.path, 'cwb')) os.mkdir(os.path.join(corpus.path, 'cwb', 'data')) os.mkdir(os.path.join(corpus.path, 'cwb', 'registry')) corpus.status = CorpusStatus.UNPREPARED corpus.num_analysis_sessions = 0 db.session.commit()