mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 04:12:45 +00:00 
			
		
		
		
	Integrate TranskribusHTRModels
This commit is contained in:
		@@ -3,11 +3,10 @@ import os
 | 
			
		||||
import yaml
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
services_file = os.path.join(
 | 
			
		||||
    os.path.dirname(os.path.abspath(__file__)), 'services.yml')
 | 
			
		||||
services_file = \
 | 
			
		||||
    os.path.join(os.path.dirname(os.path.abspath(__file__)), 'services.yml')
 | 
			
		||||
with open(services_file, 'r') as f:
 | 
			
		||||
    SERVICES = yaml.safe_load(f)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bp = Blueprint('services', __name__)
 | 
			
		||||
from . import routes  # noqa
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
from app.models import TesseractOCRModel
 | 
			
		||||
from app.models import TesseractOCRModel, TranskribusHTRModel
 | 
			
		||||
from flask_login import current_user
 | 
			
		||||
from flask_wtf import FlaskForm
 | 
			
		||||
from flask_wtf.file import FileField, FileRequired
 | 
			
		||||
@@ -115,11 +115,10 @@ class AddTranskribusHTRPipelineJobForm(AddJobForm):
 | 
			
		||||
            if 'binarization' in service_info['methods']:
 | 
			
		||||
                if 'disabled' in self.binarization.render_kw:
 | 
			
		||||
                    del self.binarization.render_kw['disabled']
 | 
			
		||||
        models = TranskribusHTRModel.query.filter_by(shared=True).all()
 | 
			
		||||
        models += TranskribusHTRModel.query.filter_by(shared=False, user=current_user).all()
 | 
			
		||||
        self.model.choices = [('', 'Choose your option')]
 | 
			
		||||
        self.model.choices += [
 | 
			
		||||
            ('37569', 'Tim Model'),
 | 
			
		||||
            ('29539', 'UCL–University of Toronto #7')
 | 
			
		||||
        ]
 | 
			
		||||
        self.model.choices += [(x.hashid, x.transkribus_name) for x in models]
 | 
			
		||||
        self.model.default = ''
 | 
			
		||||
        self.version.choices = [(x, x) for x in service_manifest['versions']]
 | 
			
		||||
        self.version.data = version
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,12 @@
 | 
			
		||||
from app import db, hashids
 | 
			
		||||
from app.models import Job, JobInput, JobStatus
 | 
			
		||||
from app.models import (
 | 
			
		||||
    Job,
 | 
			
		||||
    JobInput,
 | 
			
		||||
    JobStatus,
 | 
			
		||||
    TesseractOCRModel,
 | 
			
		||||
    TRANSKRIBUS_HTR_MODELS,
 | 
			
		||||
    TranskribusHTRModel
 | 
			
		||||
)
 | 
			
		||||
from flask import (
 | 
			
		||||
    abort,
 | 
			
		||||
    current_app,
 | 
			
		||||
@@ -74,7 +81,7 @@ def file_setup_pipeline():
 | 
			
		||||
        flash(f'Job "{job.title}" added', 'job')
 | 
			
		||||
        return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201)  # noqa
 | 
			
		||||
    return render_template(
 | 
			
		||||
        f'services/{service.replace("-", "_")}.html.j2',
 | 
			
		||||
        'services/file_setup_pipeline.html.j2',
 | 
			
		||||
        form=form,
 | 
			
		||||
        title=service_manifest['name']
 | 
			
		||||
    )
 | 
			
		||||
@@ -133,9 +140,11 @@ def tesseract_ocr_pipeline():
 | 
			
		||||
        db.session.commit()
 | 
			
		||||
        flash(f'Job "{job.title}" added', 'job')
 | 
			
		||||
        return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201)  # noqa
 | 
			
		||||
    tesseract_ocr_models = TesseractOCRModel.query.all()
 | 
			
		||||
    return render_template(
 | 
			
		||||
        f'services/{service.replace("-", "_")}.html.j2',
 | 
			
		||||
        'services/tesseract_ocr_pipeline.html.j2',
 | 
			
		||||
        form=form,
 | 
			
		||||
        tesseract_ocr_models=tesseract_ocr_models,
 | 
			
		||||
        title=service_manifest['name']
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
@@ -155,7 +164,7 @@ def transkribus_htr_pipeline():
 | 
			
		||||
        if not form.validate():
 | 
			
		||||
            return make_response(form.errors, 400)
 | 
			
		||||
        service_args = {}
 | 
			
		||||
        service_args['model'] = form.model.data
 | 
			
		||||
        service_args['model'] = hashids.decode(form.model.data)
 | 
			
		||||
        if form.binarization.data:
 | 
			
		||||
            service_args['binarization'] = True
 | 
			
		||||
        job = Job(
 | 
			
		||||
@@ -195,10 +204,14 @@ def transkribus_htr_pipeline():
 | 
			
		||||
        db.session.commit()
 | 
			
		||||
        flash(f'Job "{job.title}" added', 'job')
 | 
			
		||||
        return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201)  # noqa
 | 
			
		||||
    transkribus_htr_models = TranskribusHTRModel.query.filter_by(shared=True).all()
 | 
			
		||||
    transkribus_htr_models += TranskribusHTRModel.query.filter_by(shared=False, user=current_user).all()
 | 
			
		||||
    return render_template(
 | 
			
		||||
        f'services/{service.replace("-", "_")}.html.j2',
 | 
			
		||||
        f'services/transkribus_htr_pipeline.html.j2',
 | 
			
		||||
        form=form,
 | 
			
		||||
        title=service_manifest['name']
 | 
			
		||||
        title=service_manifest['name'],
 | 
			
		||||
        TRANSKRIBUS_HTR_MODELS=TRANSKRIBUS_HTR_MODELS,
 | 
			
		||||
        transkribus_htr_models=transkribus_htr_models
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -256,7 +269,7 @@ def spacy_nlp_pipeline():
 | 
			
		||||
        flash(f'Job "{job.title}" added', 'job')
 | 
			
		||||
        return make_response({'redirect_url': url_for('jobs.job', job_id=job.id)}, 201)  # noqa
 | 
			
		||||
    return render_template(
 | 
			
		||||
        f'services/{service.replace("-", "_")}.html.j2',
 | 
			
		||||
        'services/spacy_nlp_pipeline.html.j2',
 | 
			
		||||
        form=form,
 | 
			
		||||
        title=service_manifest['name']
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user