mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-07-03 11:13:17 +00:00
Use pathlib where possible
This commit is contained in:
app
converters
corpora
jobs
main
models
__init__.pyavatar.pycorpus.pycorpus_file.pyjob.pyjob_input.pyjob_result.pyspacy_nlp_pipeline_model.pytesseract_ocr_pipeline_model.pyuser.py
services
users
@ -4,14 +4,14 @@ from flask import current_app, url_for
|
||||
from flask_hashids import HashidMixin
|
||||
from flask_login import UserMixin
|
||||
from sqlalchemy.ext.associationproxy import association_proxy
|
||||
from pathlib import Path
|
||||
from typing import Union
|
||||
from werkzeug.security import generate_password_hash, check_password_hash
|
||||
import jwt
|
||||
import os
|
||||
import re
|
||||
import secrets
|
||||
import shutil
|
||||
from app import db, hashids, login
|
||||
from app import db, hashids
|
||||
from app.ext.flask_sqlalchemy import IntEnumColumn
|
||||
from .corpus import Corpus
|
||||
from .corpus_follower_association import CorpusFollowerAssociation
|
||||
@ -145,9 +145,8 @@ class User(HashidMixin, UserMixin, db.Model):
|
||||
self.password_hash = generate_password_hash(password)
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
return os.path.join(
|
||||
current_app.config.get('NOPAQUE_DATA_DIR'), 'users', str(self.id))
|
||||
def path(self) -> Path:
|
||||
return current_app.config.get('NOPAQUE_DATA_DIR') / 'users' / f'{self.id}'
|
||||
|
||||
@staticmethod
|
||||
def create(**kwargs):
|
||||
@ -155,16 +154,21 @@ class User(HashidMixin, UserMixin, db.Model):
|
||||
db.session.add(user)
|
||||
db.session.flush(objects=[user])
|
||||
db.session.refresh(user)
|
||||
user_spacy_nlp_pipeline_models_dir = user.path / 'spacy_nlp_pipeline_models'
|
||||
user_tesseract_ocr_pipeline_models_dir = user.path / 'tesseract_ocr_pipeline_models'
|
||||
user_corpora_dir = user.path / 'corpora'
|
||||
user_jobs_dir = user.path / 'jobs'
|
||||
try:
|
||||
os.mkdir(user.path)
|
||||
os.mkdir(os.path.join(user.path, 'spacy_nlp_pipeline_models'))
|
||||
os.mkdir(os.path.join(user.path, 'tesseract_ocr_pipeline_models'))
|
||||
os.mkdir(os.path.join(user.path, 'corpora'))
|
||||
os.mkdir(os.path.join(user.path, 'jobs'))
|
||||
user.path.mkdir()
|
||||
user_spacy_nlp_pipeline_models_dir.mkdir()
|
||||
user_tesseract_ocr_pipeline_models_dir.mkdir()
|
||||
user_corpora_dir.mkdir()
|
||||
user_jobs_dir.mkdir()
|
||||
except OSError as e:
|
||||
# TODO: Potential leftover cleanup
|
||||
current_app.logger.error(e)
|
||||
db.session.rollback()
|
||||
raise e
|
||||
raise
|
||||
return user
|
||||
|
||||
@staticmethod
|
||||
|
Reference in New Issue
Block a user