nopaque/app/contributions/spacy_nlp_pipeline_models/forms.py

49 lines
1.9 KiB
Python
Raw Normal View History

2023-03-14 10:13:35 +00:00
from flask_wtf.file import FileField, FileRequired
from wtforms import StringField, ValidationError
from wtforms.validators import InputRequired, Length
from app.services import SERVICES
2023-03-31 07:14:21 +00:00
from ..forms import ContributionBaseForm, UpdateContributionBaseForm
2023-03-14 10:13:35 +00:00
class CreateSpaCyNLPPipelineModelForm(ContributionBaseForm):
spacy_model_file = FileField(
'File',
validators=[FileRequired()]
)
pipeline_name = StringField(
'Pipeline name',
validators=[InputRequired(), Length(max=64)]
)
def validate_spacy_model_file(self, field):
if not field.data.filename.lower().endswith(('.tar.gz', ('.whl'))):
raise ValidationError('.tar.gz or .whl files only!')
2023-03-14 10:13:35 +00:00
def __init__(self, *args, **kwargs):
2023-03-31 07:14:21 +00:00
if 'prefix' not in kwargs:
kwargs['prefix'] = 'create-spacy-nlp-pipeline-model-form'
2023-03-14 10:13:35 +00:00
super().__init__(*args, **kwargs)
service_manifest = SERVICES['spacy-nlp-pipeline']
self.compatible_service_versions.choices = [('', 'Choose your option')]
self.compatible_service_versions.choices += [
(x, x) for x in service_manifest['versions'].keys()
]
self.compatible_service_versions.default = ''
2023-03-31 07:14:21 +00:00
class UpdateSpaCyNLPPipelineModelForm(UpdateContributionBaseForm):
2023-03-14 10:13:35 +00:00
pipeline_name = StringField(
'Pipeline name',
validators=[InputRequired(), Length(max=64)]
)
def __init__(self, *args, **kwargs):
2023-03-31 07:14:21 +00:00
if 'prefix' not in kwargs:
kwargs['prefix'] = 'edit-spacy-nlp-pipeline-model-form'
2023-03-14 10:13:35 +00:00
super().__init__(*args, **kwargs)
service_manifest = SERVICES['spacy-nlp-pipeline']
self.compatible_service_versions.choices = [('', 'Choose your option')]
self.compatible_service_versions.choices += [
(x, x) for x in service_manifest['versions'].keys()
]
self.compatible_service_versions.default = ''