create_TEI_walenty.py 1.17 KB
#-*- 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
from settings import WALENTY_PATH

class Command(BaseCommand):
    args = 'none'
    
    def handle(self, *args, **options):
        try:
            now = datetime.datetime.now().strftime('%Y%m%d')
            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).order_by('entry_obj__name')
            ready_lemmas = lemmas.filter(status__in=ready_statuses)
            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')
            os.chdir(WALENTY_PATH)
            archive.add(os.path.basename(outpath))
        finally:
            archive.close()
            os.remove(outpath)