#-*- coding:utf-8 -*- import datetime import os import tarfile from django.core.management.base import BaseCommand from dictionary.models import Lemma, Frame_Opinion_Value, \ get_ready_statuses from dictionary.teixml import createteixml, write_phrase_types_expansions_in_TEI from settings import WALENTY_PATH class Command(BaseCommand): args = '<dict dict ...>' help = 'Get Walenty in TEI format.' def handle(self, *args, **options): try: now = datetime.datetime.now().strftime('%Y%m%d') vocab_names = list(args) vocab_names.sort() if vocab_names: filename_base = '%s_%s_%s' % ('walenty', '+'.join(vocab_names), now) else: filename_base = '%s_%s' % ('walenty', now) base_path = os.path.join(WALENTY_PATH, filename_base) outpath = base_path + '.xml' ready_statuses = get_ready_statuses() lemmas = Lemma.objects.filter(old=False) if vocab_names: lemmas = lemmas.filter(vocabulary__name__in=vocab_names) ready_lemmas = lemmas.filter(status__in=ready_statuses).order_by('entry_obj__name') frame_opinion_values = Frame_Opinion_Value.objects.all() createteixml(outpath, ready_lemmas, frame_opinion_values) archive = tarfile.open(base_path + '-TEI.tar.gz', 'w:gz') phrase_types_expand_path = os.path.join(WALENTY_PATH, '%s_%s.xml' % ('phrase_types_expand', now)) write_phrase_types_expansions_in_TEI(phrase_types_expand_path) os.chdir(WALENTY_PATH) archive.add(os.path.basename(outpath)) archive.add(os.path.basename(phrase_types_expand_path)) finally: archive.close() os.remove(outpath) os.remove(phrase_types_expand_path)