diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000000000000000000000000000000000000..54ca8ae31bdf9613765ae83d72a39cff4ecf4e69 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,11 @@ +[settings] +# Compatible with black +multi_line_output = 3 +include_trailing_comma = True +force_grid_wrap = 0 +use_parentheses = True +line_length = 120 + +default_section=FIRSTPARTY +known_first_party = arkindex_common,ponos,transkribus +known_third_party = asgiref,boto3,botocore,channels,corsheaders,django,django_admin_hstore_widget,elasticsearch,elasticsearch_dsl,enumfields,gitlab,mock,psycopg2,requests,responses,rest_framework,sentry_sdk,setuptools,tenacity,tripoli,yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b99ec0aed3e205824c175d66ae8edef1917ff388..091bc1705824abe02af7363881e8f92d533a4db5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,12 @@ repos: + - repo: https://github.com/asottile/seed-isort-config + rev: v2.2.0 + hooks: + - id: seed-isort-config + - repo: https://github.com/pre-commit/mirrors-isort + rev: v4.3.21 + hooks: + - id: isort - repo: https://gitlab.com/pycqa/flake8 rev: 3.8.3 hooks: diff --git a/arkindex/dataimport/admin.py b/arkindex/dataimport/admin.py index 8e4261791396de38695d1ab81e507e2dfbb59146..dd3089cc2ec54a4cd1759a89286a1d77d049fcd0 100644 --- a/arkindex/dataimport/admin.py +++ b/arkindex/dataimport/admin.py @@ -1,7 +1,8 @@ from django.contrib import admin from django.db.models import Max from enumfields.admin import EnumFieldListFilter -from arkindex.dataimport.models import DataImport, DataFile, Repository, Revision, Worker, WorkerVersion + +from arkindex.dataimport.models import DataFile, DataImport, Repository, Revision, Worker, WorkerVersion class DataFileInline(admin.StackedInline): diff --git a/arkindex/dataimport/api.py b/arkindex/dataimport/api.py index cf0dc554d03c862eb898cc74ff64f20d2586f110..bff4120c4d99459802453153997a3dae703827e6 100644 --- a/arkindex/dataimport/api.py +++ b/arkindex/dataimport/api.py @@ -1,41 +1,61 @@ +import logging +from uuid import UUID + +from django.conf import settings +from django.core.exceptions import PermissionDenied from django.db import transaction -from django.db.models import Max, Q, F +from django.db.models import F, Max, Q from django.http.response import Http404 from django.shortcuts import get_object_or_404 -from django.core.exceptions import PermissionDenied -from django.conf import settings +from rest_framework import status +from rest_framework.exceptions import ValidationError from rest_framework.generics import ( - GenericAPIView, ListAPIView, CreateAPIView, RetrieveAPIView, - ListCreateAPIView, RetrieveUpdateDestroyAPIView, RetrieveDestroyAPIView, - RetrieveUpdateAPIView + CreateAPIView, + GenericAPIView, + ListAPIView, + ListCreateAPIView, + RetrieveAPIView, + RetrieveDestroyAPIView, + RetrieveUpdateAPIView, + RetrieveUpdateDestroyAPIView, ) -from rest_framework.views import APIView from rest_framework.response import Response -from rest_framework import status -from rest_framework.exceptions import ValidationError -from arkindex.project.mixins import CorpusACLMixin, SelectionMixin, DeprecatedMixin, CustomPaginationViewMixin -from arkindex.project.permissions import IsVerified -from arkindex.project.openapi import AutoSchema -from arkindex.documents.models import Corpus, ElementType, Element, ClassificationState -from arkindex.documents.api.elements import ElementsListMixin -from arkindex.dataimport.models import \ - DataImport, DataFile, Repository, RepositoryType, Revision, Worker, WorkerVersion, WorkerRun -from arkindex.dataimport.serializers.files import DataFileSerializer, DataFileCreateSerializer -from arkindex.dataimport.serializers.git import \ - ExternalRepositorySerializer, RevisionSerializer +from rest_framework.views import APIView + +from arkindex.dataimport.models import ( + DataFile, + DataImport, + Repository, + RepositoryType, + Revision, + Worker, + WorkerRun, + WorkerVersion, +) +from arkindex.dataimport.serializers.files import DataFileCreateSerializer, DataFileSerializer +from arkindex.dataimport.serializers.git import ExternalRepositorySerializer, RevisionSerializer from arkindex.dataimport.serializers.imports import ( - DataImportLightSerializer, DataImportSerializer, - DataImportFromFilesSerializer, ElementsWorkflowSerializer, WorkerRunLightSerializer, WorkerRunSerializer, - ImportTranskribusSerializer, StartProcessSerializer, ElementLightSerializer + DataImportFromFilesSerializer, + DataImportLightSerializer, + DataImportSerializer, + ElementLightSerializer, + ElementsWorkflowSerializer, + ImportTranskribusSerializer, + StartProcessSerializer, + WorkerRunLightSerializer, + WorkerRunSerializer, ) -from arkindex.dataimport.serializers.workers import WorkerSerializer, WorkerVersionSerializer, RepositorySerializer -from arkindex.users.models import OAuthCredentials, User +from arkindex.dataimport.serializers.workers import RepositorySerializer, WorkerSerializer, WorkerVersionSerializer +from arkindex.documents.api.elements import ElementsListMixin +from arkindex.documents.models import ClassificationState, Corpus, Element, ElementType from arkindex.project.fields import ArrayRemove -from arkindex_common.ml_tool import MLToolType +from arkindex.project.mixins import CorpusACLMixin, CustomPaginationViewMixin, DeprecatedMixin, SelectionMixin +from arkindex.project.openapi import AutoSchema +from arkindex.project.permissions import IsVerified +from arkindex.users.models import OAuthCredentials, User from arkindex_common.enums import DataImportMode -from ponos.models import State, STATES_ORDERING -from uuid import UUID -import logging +from arkindex_common.ml_tool import MLToolType +from ponos.models import STATES_ORDERING, State logger = logging.getLogger(__name__) diff --git a/arkindex/dataimport/apps.py b/arkindex/dataimport/apps.py index aea7c4df742961cd3113787f6140978aded61942..477837c0cd27af176598fd38f8c144281e6bc5ff 100644 --- a/arkindex/dataimport/apps.py +++ b/arkindex/dataimport/apps.py @@ -5,4 +5,4 @@ class DataImportConfig(AppConfig): name = 'arkindex.dataimport' def ready(self): - from arkindex.dataimport import signals # noqa \ No newline at end of file + from arkindex.dataimport import signals # noqa diff --git a/arkindex/dataimport/management/commands/import_s3.py b/arkindex/dataimport/management/commands/import_s3.py index d3b8e18ecebb29d92de2560a903a68443c18c9ab..7f6731b5e786cdeafcb02e2770e3a169837d9a6c 100644 --- a/arkindex/dataimport/management/commands/import_s3.py +++ b/arkindex/dataimport/management/commands/import_s3.py @@ -1,13 +1,15 @@ #!/usr/bin/env python3 +import logging + +import yaml from django.conf import settings from django.core.management.base import BaseCommand, CommandError -from arkindex_common.enums import DataImportMode + from arkindex.dataimport.models import DataImport -from arkindex.users.models import User from arkindex.project.argparse import CorpusArgument +from arkindex.users.models import User +from arkindex_common.enums import DataImportMode from ponos.models import Workflow -import logging -import yaml logging.basicConfig( level=logging.INFO, diff --git a/arkindex/dataimport/management/commands/update_repositories_hooks.py b/arkindex/dataimport/management/commands/update_repositories_hooks.py index f48ca97a44e3a10a436df3c8a4a3e3090eb1dbbe..0907f8db7c796a36ff49a754b235dadc8f92da2c 100644 --- a/arkindex/dataimport/management/commands/update_repositories_hooks.py +++ b/arkindex/dataimport/management/commands/update_repositories_hooks.py @@ -1,8 +1,8 @@ -from arkindex.dataimport.models import Repository +import logging from django.core.management.base import BaseCommand -import logging +from arkindex.dataimport.models import Repository logging.basicConfig( level=logging.INFO, diff --git a/arkindex/dataimport/migrations/0001_initial.py b/arkindex/dataimport/migrations/0001_initial.py index e89683990c0afa1859ff2f1f86171ac3d9af4499..d07191e9686c0c7036cf206d2ba57c5b6ea9bc59 100644 --- a/arkindex/dataimport/migrations/0001_initial.py +++ b/arkindex/dataimport/migrations/0001_initial.py @@ -1,14 +1,17 @@ # Generated by Django 2.2.9 on 2020-01-17 15:39 +import uuid + +import django.contrib.postgres.fields.jsonb +import enumfields.fields +from django.db import migrations, models +from enumfields import Enum + import arkindex.dataimport.models import arkindex.project.aws import arkindex.project.fields import arkindex_common.enums -import django.contrib.postgres.fields.jsonb -from django.db import migrations, models -import enumfields.fields -from enumfields import Enum -import uuid + class EventType(Enum): Addition = 'A' diff --git a/arkindex/dataimport/migrations/0002_initial.py b/arkindex/dataimport/migrations/0002_initial.py index 610d1580352aff717f4fda74d1844a5645629e46..0d5e072952b84560bb7703541b9aefc96a60c545 100644 --- a/arkindex/dataimport/migrations/0002_initial.py +++ b/arkindex/dataimport/migrations/0002_initial.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.9 on 2020-01-17 15:39 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0003_initial.py b/arkindex/dataimport/migrations/0003_initial.py index 5f52398b83539fe8f36a78a476559beb771bf995..fa63754d93174eec77890f4c5ab549e29e1eb056 100644 --- a/arkindex/dataimport/migrations/0003_initial.py +++ b/arkindex/dataimport/migrations/0003_initial.py @@ -1,8 +1,8 @@ # Generated by Django 2.2.9 on 2020-01-17 15:39 +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0006_revision_state.py b/arkindex/dataimport/migrations/0006_revision_state.py index e4ecf456c7ed888488782c55139debd7609ff52a..091e7bd4909ea4ba085c115be7b9f65ae49c6020 100644 --- a/arkindex/dataimport/migrations/0006_revision_state.py +++ b/arkindex/dataimport/migrations/0006_revision_state.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.11 on 2020-04-30 11:00 -from django.db import migrations import enumfields.fields +from django.db import migrations class RevisionState(enumfields.fields.Enum): diff --git a/arkindex/dataimport/migrations/0007_worker_workerversion.py b/arkindex/dataimport/migrations/0007_worker_workerversion.py index 66c9a2231b46a71c22800e9069f9e5588d4c00fd..0f7d0fc81d823be5224e1b3fe4ce4ff29a59336a 100644 --- a/arkindex/dataimport/migrations/0007_worker_workerversion.py +++ b/arkindex/dataimport/migrations/0007_worker_workerversion.py @@ -1,11 +1,13 @@ # Generated by Django 2.2.11 on 2020-05-19 14:55 -import arkindex_common.ml_tool +import uuid + import django.contrib.postgres.fields.jsonb -from django.db import migrations, models import django.db.models.deletion import enumfields.fields -import uuid +from django.db import migrations, models + +import arkindex_common.ml_tool class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0008_add_gitref.py b/arkindex/dataimport/migrations/0008_add_gitref.py index 1ab9b71b2ffa0da13a4d2bb00c7c575d9eb687f3..1db18f4026294e911a6f23109019b28d4e1170f9 100644 --- a/arkindex/dataimport/migrations/0008_add_gitref.py +++ b/arkindex/dataimport/migrations/0008_add_gitref.py @@ -1,10 +1,12 @@ # Generated by Django 2.2.11 on 2020-05-21 15:34 -import arkindex.dataimport.models -from django.db import migrations, models +import uuid + import django.db.models.deletion import enumfields.fields -import uuid +from django.db import migrations, models + +import arkindex.dataimport.models def migrate_git_refs(apps, schema_editor): diff --git a/arkindex/dataimport/migrations/0010_workerversion_docker_image.py b/arkindex/dataimport/migrations/0010_workerversion_docker_image.py index 152e2ac3de4fabecbcf70bc4aaff7b4c8cf646bd..0ab7dd3c2b33f003822347fd45dd98f48a3fdbd0 100644 --- a/arkindex/dataimport/migrations/0010_workerversion_docker_image.py +++ b/arkindex/dataimport/migrations/0010_workerversion_docker_image.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.13 on 2020-06-18 12:52 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0011_refactor_payload_dataimport.py b/arkindex/dataimport/migrations/0011_refactor_payload_dataimport.py index 886879af08639c4feaae5dc6799b92f6a9640102..f81b77aeeb07afe1fa366081bf5276b66a102893 100644 --- a/arkindex/dataimport/migrations/0011_refactor_payload_dataimport.py +++ b/arkindex/dataimport/migrations/0011_refactor_payload_dataimport.py @@ -1,7 +1,8 @@ # Generated by Django 2.2.13 on 2020-06-24 09:39 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models + import arkindex_common diff --git a/arkindex/dataimport/migrations/0012_move_revision_state.py b/arkindex/dataimport/migrations/0012_move_revision_state.py index 38e6e22d0317eaeabc70192b04849d0aa54671fc..2318d0dddcc10ddd8eebc452efde28f7134fdab8 100644 --- a/arkindex/dataimport/migrations/0012_move_revision_state.py +++ b/arkindex/dataimport/migrations/0012_move_revision_state.py @@ -1,9 +1,10 @@ # Generated by Django 2.2.13 on 2020-06-25 09:40 -import arkindex.dataimport.models -from django.db import migrations, models import django.db.models.deletion import enumfields.fields +from django.db import migrations, models + +import arkindex.dataimport.models class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0013_create_model_workerrun.py b/arkindex/dataimport/migrations/0013_create_model_workerrun.py index a35b628db08041b76a3d3f1ab86bb15906eca57f..fde2aab95639ff2a1653fa90ba3eaf15324379c2 100644 --- a/arkindex/dataimport/migrations/0013_create_model_workerrun.py +++ b/arkindex/dataimport/migrations/0013_create_model_workerrun.py @@ -1,10 +1,12 @@ # Generated by Django 2.2.13 on 2020-06-29 13:18 -import arkindex.project.fields -from django.db import migrations, models -import django.db.models.deletion import uuid +import django.db.models.deletion +from django.db import migrations, models + +import arkindex.project.fields + class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0014_dataimport_selection.py b/arkindex/dataimport/migrations/0014_dataimport_selection.py index 7f50aa3e6e4216a9f56c351ad2cd6e5dd281ca0b..49d2ca100eff5774e4d1efe01a273a39bab4633c 100644 --- a/arkindex/dataimport/migrations/0014_dataimport_selection.py +++ b/arkindex/dataimport/migrations/0014_dataimport_selection.py @@ -1,9 +1,10 @@ # Generated by Django 2.2.13 on 2020-07-03 13:16 -from django.db import migrations, models -import django.db.models.deletion import uuid +import django.db.models.deletion +from django.db import migrations, models + class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0015_clear_payload.py b/arkindex/dataimport/migrations/0015_clear_payload.py index 477d48b6c872d965340107304f93043bd2766300..7a55e51d445cdb78959692e11bf848e80e2a766d 100644 --- a/arkindex/dataimport/migrations/0015_clear_payload.py +++ b/arkindex/dataimport/migrations/0015_clear_payload.py @@ -1,8 +1,7 @@ # Generated by Django 2.2.13 on 2020-07-07 13:49 -from django.db import migrations, models import django.db.models.deletion - +from django.db import migrations, models # Converts DataImport payloads to fields, from all the keys found in existing payloads: # element_type → dataimport.element_type diff --git a/arkindex/dataimport/migrations/0019_repository_type.py b/arkindex/dataimport/migrations/0019_repository_type.py index a8583bbede435a0c6bb3d27cefc461b6c17399e1..f7a5dba012441ba2f44ccba6ae03664d3c770c13 100644 --- a/arkindex/dataimport/migrations/0019_repository_type.py +++ b/arkindex/dataimport/migrations/0019_repository_type.py @@ -1,8 +1,9 @@ # Generated by Django 3.1 on 2020-09-09 15:26 -import arkindex.dataimport.models -from django.db import migrations import enumfields.fields +from django.db import migrations + +import arkindex.dataimport.models WORKER_REPO_PREFIX = 'https://gitlab.com/teklia/workers/' diff --git a/arkindex/dataimport/migrations/0020_null_corpus_repo_dataimport.py b/arkindex/dataimport/migrations/0020_null_corpus_repo_dataimport.py index d7ef690ed193dd04e5359804336d708cffb43aa3..a6360f51aae46500ee5830ca60e3a52bbafa767e 100644 --- a/arkindex/dataimport/migrations/0020_null_corpus_repo_dataimport.py +++ b/arkindex/dataimport/migrations/0020_null_corpus_repo_dataimport.py @@ -1,7 +1,7 @@ # Generated by Django 3.1.1 on 2020-09-11 14:19 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/dataimport/migrations/0023_workerversion_constraint.py b/arkindex/dataimport/migrations/0023_workerversion_constraint.py index 374008d29585f49553918bcd303675e2f8d9e009..77c5077d080858e5c7e8e9f47a8b38d2300ca366 100644 --- a/arkindex/dataimport/migrations/0023_workerversion_constraint.py +++ b/arkindex/dataimport/migrations/0023_workerversion_constraint.py @@ -1,6 +1,7 @@ # Generated by Django 3.1.1 on 2020-09-24 10:57 from django.db import migrations, models + from arkindex.dataimport.models import WorkerVersionState diff --git a/arkindex/dataimport/models.py b/arkindex/dataimport/models.py index 19f703e1c3393d920dfc09a4bc7120aa4d3f71c8..21449e3f3aafde23ed75261289bcb77e81d8a0bb 100644 --- a/arkindex/dataimport/models.py +++ b/arkindex/dataimport/models.py @@ -1,21 +1,22 @@ -from django.db import models +import shlex +import urllib.parse +import uuid +from os import path + +import yaml from django.conf import settings +from django.db import models from django.utils.functional import cached_property +from enumfields import Enum, EnumField from rest_framework.exceptions import ValidationError -from enumfields import EnumField, Enum -from ponos.models import Artifact -from arkindex_common.enums import DataImportMode -from arkindex_common.ml_tool import MLToolType + +from arkindex.dataimport.providers import get_provider, git_providers from arkindex.project.aws import S3FileMixin, S3FileStatus -from arkindex.project.models import IndexableModel from arkindex.project.fields import ArrayField -from arkindex.dataimport.providers import git_providers, get_provider -from ponos.models import Workflow, State -from os import path -import shlex -import yaml -import uuid -import urllib.parse +from arkindex.project.models import IndexableModel +from arkindex_common.enums import DataImportMode +from arkindex_common.ml_tool import MLToolType +from ponos.models import Artifact, State, Workflow class DataImport(IndexableModel): diff --git a/arkindex/dataimport/providers.py b/arkindex/dataimport/providers.py index dfe6de1ecc6f441a049d93466267a9980116b752..b5e4e8f89f7b042fc7a6d5bdb30c70877d1495d2 100644 --- a/arkindex/dataimport/providers.py +++ b/arkindex/dataimport/providers.py @@ -1,13 +1,14 @@ -from abc import ABC, abstractmethod -from django.urls import reverse -from django.conf import settings -from rest_framework.exceptions import NotAuthenticated, AuthenticationFailed, APIException, ValidationError -from gitlab import Gitlab, GitlabGetError, GitlabCreateError -import urllib.parse import base64 -import uuid import logging +import urllib.parse +import uuid +from abc import ABC, abstractmethod + import yaml +from django.conf import settings +from django.urls import reverse +from gitlab import Gitlab, GitlabCreateError, GitlabGetError +from rest_framework.exceptions import APIException, AuthenticationFailed, NotAuthenticated, ValidationError from yaml.parser import ParserError logger = logging.getLogger(__name__) diff --git a/arkindex/dataimport/serializers/files.py b/arkindex/dataimport/serializers/files.py index 90b68538cd725768d28dc7ed40b0f36f66896a6f..e353854a0e3c6477dc4d0d41a5d327ea8bc667df 100644 --- a/arkindex/dataimport/serializers/files.py +++ b/arkindex/dataimport/serializers/files.py @@ -1,8 +1,9 @@ from rest_framework import serializers -from arkindex.project.serializer_fields import EnumField -from arkindex.project.aws import S3FileStatus + from arkindex.dataimport.models import DataFile from arkindex.documents.models import Corpus +from arkindex.project.aws import S3FileStatus +from arkindex.project.serializer_fields import EnumField class DataFileSerializer(serializers.ModelSerializer): diff --git a/arkindex/dataimport/serializers/git.py b/arkindex/dataimport/serializers/git.py index e93ad96265ac840c8a4be436e285f309852c97c3..c232c37979341ea64bbd8f69b7f47be62125cfbd 100644 --- a/arkindex/dataimport/serializers/git.py +++ b/arkindex/dataimport/serializers/git.py @@ -1,6 +1,7 @@ from rest_framework import serializers + +from arkindex.dataimport.models import GitRef, GitRefType, Revision, WorkerVersionState from arkindex.project.serializer_fields import EnumField -from arkindex.dataimport.models import Revision, GitRef, GitRefType, WorkerVersionState class GitRefSerializer(serializers.ModelSerializer): diff --git a/arkindex/dataimport/serializers/imports.py b/arkindex/dataimport/serializers/imports.py index 2b9d070e97b850d199042229c579701bf02a73dd..ffa1425acf30d9497c3073819f6aa575c2d6b7b8 100644 --- a/arkindex/dataimport/serializers/imports.py +++ b/arkindex/dataimport/serializers/imports.py @@ -1,14 +1,16 @@ from uuid import UUID -from rest_framework import serializers + from django.conf import settings from django.db.models import Q -from ponos.models import State -from arkindex_common.enums import DataImportMode -from arkindex.project.serializer_fields import EnumField, BestClassField -from arkindex.documents.models import Corpus, Element, ElementType, Classification, ClassificationState -from arkindex.documents.serializers.elements import ElementSlimSerializer -from arkindex.dataimport.models import DataImport, DataFile, WorkerRun, WorkerVersion +from rest_framework import serializers + +from arkindex.dataimport.models import DataFile, DataImport, WorkerRun, WorkerVersion from arkindex.dataimport.serializers.git import RevisionSerializer +from arkindex.documents.models import Classification, ClassificationState, Corpus, Element, ElementType +from arkindex.documents.serializers.elements import ElementSlimSerializer +from arkindex.project.serializer_fields import BestClassField, EnumField +from arkindex_common.enums import DataImportMode +from ponos.models import State from transkribus import TranskribusAPI diff --git a/arkindex/dataimport/serializers/workers.py b/arkindex/dataimport/serializers/workers.py index 71d4405fb0dfe70dc1046dd5618838e7acca9cfe..8033ca88c237ccd94d3019ed759e8f4e3e1ffd30 100644 --- a/arkindex/dataimport/serializers/workers.py +++ b/arkindex/dataimport/serializers/workers.py @@ -1,10 +1,12 @@ +import urllib + from rest_framework import serializers from rest_framework.exceptions import ValidationError -from arkindex.dataimport.models import Worker, WorkerVersion, WorkerVersionState, Repository, RepositoryType + +from arkindex.dataimport.models import Repository, RepositoryType, Worker, WorkerVersion, WorkerVersionState +from arkindex.dataimport.serializers.git import RevisionWithRefsSerializer from arkindex.project.serializer_fields import EnumField from arkindex_common.ml_tool import MLToolType -from arkindex.dataimport.serializers.git import RevisionWithRefsSerializer -import urllib class WorkerSerializer(serializers.ModelSerializer): diff --git a/arkindex/dataimport/signals.py b/arkindex/dataimport/signals.py index e5b50ca26683a1b894d05986f2df0a6fc21b26c3..0c4ebad5ff924ff5640f19e4b588f3be17099ce0 100644 --- a/arkindex/dataimport/signals.py +++ b/arkindex/dataimport/signals.py @@ -1,8 +1,9 @@ from django.db.models.signals import pre_save from django.dispatch import receiver -from arkindex.dataimport.models import WorkerRun from rest_framework.exceptions import ValidationError +from arkindex.dataimport.models import WorkerRun + def _list_ancestors(graph, parents): results = [] diff --git a/arkindex/dataimport/tests/test_datafile_api.py b/arkindex/dataimport/tests/test_datafile_api.py index 3b38fa9059342d8dfb93ab6af35344055a049ec7..9c459904ba5ada766fbb5f4f9e03ebf3a8f7c019 100644 --- a/arkindex/dataimport/tests/test_datafile_api.py +++ b/arkindex/dataimport/tests/test_datafile_api.py @@ -1,10 +1,12 @@ from unittest.mock import patch + from django.urls import reverse from rest_framework import status -from arkindex.project.tests import FixtureAPITestCase -from arkindex.project.aws import S3FileStatus + from arkindex.dataimport.models import DataFile from arkindex.documents.models import Corpus +from arkindex.project.aws import S3FileStatus +from arkindex.project.tests import FixtureAPITestCase class TestDataFileApi(FixtureAPITestCase): diff --git a/arkindex/dataimport/tests/test_files.py b/arkindex/dataimport/tests/test_files.py index 9eb24581634e30eef68cfd7bd66da99c9d864d9f..f2f708375c204954e64de50a29a8b7b34f48b657 100644 --- a/arkindex/dataimport/tests/test_files.py +++ b/arkindex/dataimport/tests/test_files.py @@ -1,8 +1,10 @@ from unittest.mock import patch -from rest_framework import status -from django.urls import reverse -from django.test import override_settings + from botocore.exceptions import ClientError +from django.test import override_settings +from django.urls import reverse +from rest_framework import status + from arkindex.dataimport.models import DataFile from arkindex.project.tests import FixtureAPITestCase diff --git a/arkindex/dataimport/tests/test_gitlab_provider.py b/arkindex/dataimport/tests/test_gitlab_provider.py index 0ce7da9fb8a0d7d3ce8675563b0a94215a4ff86a..779ac9ce89a5346587e7b82555908ebd18be6d26 100644 --- a/arkindex/dataimport/tests/test_gitlab_provider.py +++ b/arkindex/dataimport/tests/test_gitlab_provider.py @@ -1,12 +1,20 @@ -from unittest.mock import patch, MagicMock -from rest_framework.exceptions import APIException, NotAuthenticated, AuthenticationFailed, ValidationError -from gitlab.exceptions import GitlabGetError, GitlabCreateError -from arkindex.project.tests import FixtureTestCase -from arkindex.dataimport.providers import GitLabProvider -from arkindex.dataimport.models import \ - DataImport, DataImportMode, Revision, WorkerVersionState, GitRefType, RepositoryType -from django.conf import settings from pathlib import Path +from unittest.mock import MagicMock, patch + +from django.conf import settings +from gitlab.exceptions import GitlabCreateError, GitlabGetError +from rest_framework.exceptions import APIException, AuthenticationFailed, NotAuthenticated, ValidationError + +from arkindex.dataimport.models import ( + DataImport, + DataImportMode, + GitRefType, + RepositoryType, + Revision, + WorkerVersionState, +) +from arkindex.dataimport.providers import GitLabProvider +from arkindex.project.tests import FixtureTestCase SAMPLES = Path(__file__).absolute().parent / 'repository_conf_samples' diff --git a/arkindex/dataimport/tests/test_import_s3.py b/arkindex/dataimport/tests/test_import_s3.py index 3608bf4935c8883d507922c02847cb2e1eb6f6dd..4e618aee22d0a52bddf1194ca97b973b140ae276 100644 --- a/arkindex/dataimport/tests/test_import_s3.py +++ b/arkindex/dataimport/tests/test_import_s3.py @@ -1,10 +1,11 @@ +import yaml from django.core.management import call_command from django.core.management.base import CommandError from django.test import override_settings + +from arkindex.dataimport.models import DataImport from arkindex.project.tests import FixtureTestCase from arkindex_common.enums import DataImportMode -from arkindex.dataimport.models import DataImport -import yaml class TestImportS3(FixtureTestCase): diff --git a/arkindex/dataimport/tests/test_imports.py b/arkindex/dataimport/tests/test_imports.py index a4327feeea50f17f427ec82c54f9e6a4ef494a2c..33fe9ab54311ffa73e14260be07fe079190ec941 100644 --- a/arkindex/dataimport/tests/test_imports.py +++ b/arkindex/dataimport/tests/test_imports.py @@ -1,14 +1,16 @@ +import uuid +from unittest.mock import MagicMock, patch + +import yaml from django.urls import reverse from rest_framework import status -from arkindex_common.enums import DataImportMode -from arkindex.dataimport.models import DataImport, DataFile, RepositoryType + +from arkindex.dataimport.models import DataFile, DataImport, RepositoryType from arkindex.documents.models import Corpus, ElementType from arkindex.project.tests import FixtureAPITestCase from arkindex.users.models import User +from arkindex_common.enums import DataImportMode from ponos.models import State, Task, Workflow -from unittest.mock import patch, MagicMock -import yaml -import uuid RECIPE = ''' tasks: diff --git a/arkindex/dataimport/tests/test_process_elements.py b/arkindex/dataimport/tests/test_process_elements.py index f0ad9808c2c85b169dd4317fe3d9e70b009a57d8..c0bc419ebe8cb06a4a0ed510643be142f394bc7c 100644 --- a/arkindex/dataimport/tests/test_process_elements.py +++ b/arkindex/dataimport/tests/test_process_elements.py @@ -1,10 +1,11 @@ +import uuid + from django.urls import reverse from rest_framework import status -from arkindex.project.tests import FixtureAPITestCase -from arkindex.documents.models import Element, Classification, DataSource, MLClass, ClassificationState, Corpus from arkindex.dataimport.models import DataImport, DataImportMode -import uuid +from arkindex.documents.models import Classification, ClassificationState, Corpus, DataSource, Element, MLClass +from arkindex.project.tests import FixtureAPITestCase class TestProcessElements(FixtureAPITestCase): diff --git a/arkindex/dataimport/tests/test_providers.py b/arkindex/dataimport/tests/test_providers.py index e67d56fbffefae2502325f65a2642bb3c35ad4fa..e93467fa3676886c64bbbc22d1d99201f6c22fe7 100644 --- a/arkindex/dataimport/tests/test_providers.py +++ b/arkindex/dataimport/tests/test_providers.py @@ -1,8 +1,10 @@ from unittest.mock import patch + from django.urls import reverse from rest_framework import status -from arkindex.dataimport.providers import GitProvider, GitLabProvider + from arkindex.dataimport.models import RepositoryType +from arkindex.dataimport.providers import GitLabProvider, GitProvider from arkindex.project.tests import FixtureAPITestCase diff --git a/arkindex/dataimport/tests/test_repos.py b/arkindex/dataimport/tests/test_repos.py index 282d4c55112da2c2432fe4cee717cb15a81ca7b6..60b79b4426385441c11491ae2dc2e590aa3169dc 100644 --- a/arkindex/dataimport/tests/test_repos.py +++ b/arkindex/dataimport/tests/test_repos.py @@ -1,13 +1,14 @@ from django.urls import reverse +from mock import MagicMock, patch from rest_framework import status from rest_framework.exceptions import ValidationError from rest_framework.serializers import DateTimeField -from ponos.models import Workflow, State -from arkindex_common.enums import DataImportMode + +from arkindex.dataimport.models import DataImport, Repository, RepositoryType, WorkerVersion, WorkerVersionState from arkindex.project.tests import FixtureTestCase -from arkindex.dataimport.models import Repository, RepositoryType, DataImport, WorkerVersion, WorkerVersionState from arkindex.users.models import User -from mock import patch, MagicMock +from arkindex_common.enums import DataImportMode +from ponos.models import State, Workflow RECIPE = ''' tasks: diff --git a/arkindex/dataimport/tests/test_signals.py b/arkindex/dataimport/tests/test_signals.py index 783bc27d88b00f7bf4f23e840fa2bcbae766767f..821c646a80a54662a162e870da00b614b3372d77 100644 --- a/arkindex/dataimport/tests/test_signals.py +++ b/arkindex/dataimport/tests/test_signals.py @@ -1,9 +1,10 @@ -from arkindex_common.ml_tool import MLToolType -from arkindex_common.enums import DataImportMode -from arkindex.dataimport.models import Worker, WorkerVersion, WorkerRun, RepositoryType +from rest_framework.exceptions import ValidationError + +from arkindex.dataimport.models import RepositoryType, Worker, WorkerRun, WorkerVersion from arkindex.dataimport.signals import _list_ancestors from arkindex.project.tests import FixtureAPITestCase -from rest_framework.exceptions import ValidationError +from arkindex_common.enums import DataImportMode +from arkindex_common.ml_tool import MLToolType class TestSignals(FixtureAPITestCase): diff --git a/arkindex/dataimport/tests/test_transkribus_import.py b/arkindex/dataimport/tests/test_transkribus_import.py index 80cd348f103c3930df4073b6f8d4a327ca790b32..ea8f869f6dcaca39c64bd86a5fb0ad35d0391023 100644 --- a/arkindex/dataimport/tests/test_transkribus_import.py +++ b/arkindex/dataimport/tests/test_transkribus_import.py @@ -1,15 +1,17 @@ from unittest.mock import patch -from django.urls import reverse -from django.test import override_settings + +import yaml from django.conf import settings +from django.test import override_settings +from django.urls import reverse from rest_framework import status -from arkindex_common.enums import DataImportMode + from arkindex.dataimport.models import DataImport -from arkindex.project.tests import FixtureAPITestCase from arkindex.project.default_corpus import DEFAULT_TRANSKRIBUS_TYPES -from ponos.models import State +from arkindex.project.tests import FixtureAPITestCase from arkindex.users.models import User -import yaml +from arkindex_common.enums import DataImportMode +from ponos.models import State @override_settings(TRANSKRIBUS_EMAIL="arkindex@teklia.com", TRANSKRIBUS_PASSWORD=None) diff --git a/arkindex/dataimport/tests/test_workerruns.py b/arkindex/dataimport/tests/test_workerruns.py index 347e0eb84c5675268e23cbccf21f4405a78e0c8b..1528ca7309e763fd2ef09c175a388aa7068ef008 100644 --- a/arkindex/dataimport/tests/test_workerruns.py +++ b/arkindex/dataimport/tests/test_workerruns.py @@ -1,11 +1,13 @@ +import uuid from unittest.mock import patch + from django.urls import reverse from rest_framework import status + +from arkindex.dataimport.models import WorkerRun, WorkerVersion +from arkindex.project.tests import FixtureAPITestCase from arkindex_common.enums import DataImportMode -from arkindex.dataimport.models import WorkerVersion, WorkerRun from ponos.models import Workflow -from arkindex.project.tests import FixtureAPITestCase -import uuid RECIPE = ''' tasks: diff --git a/arkindex/dataimport/tests/test_workers.py b/arkindex/dataimport/tests/test_workers.py index 0fe294824d3ca54b0e29cc7779881bb816997aa5..47754685d4cbe019e3824bf96f1ed0e6b86170a7 100644 --- a/arkindex/dataimport/tests/test_workers.py +++ b/arkindex/dataimport/tests/test_workers.py @@ -1,8 +1,9 @@ from django.urls import reverse from rest_framework import status -from arkindex_common.ml_tool import MLToolType -from arkindex.dataimport.models import Repository, Revision, Worker, WorkerVersion, WorkerVersionState, RepositoryType + +from arkindex.dataimport.models import Repository, RepositoryType, Revision, Worker, WorkerVersion, WorkerVersionState from arkindex.project.tests import FixtureAPITestCase +from arkindex_common.ml_tool import MLToolType from ponos.models import Workflow RECIPE = ''' diff --git a/arkindex/dataimport/tests/test_workflows_api.py b/arkindex/dataimport/tests/test_workflows_api.py index b43afb03ba8ec56e83183d20faa39e8e9492e772..575f3364e51bc5f41fd72517090224af2a9b7625 100644 --- a/arkindex/dataimport/tests/test_workflows_api.py +++ b/arkindex/dataimport/tests/test_workflows_api.py @@ -1,12 +1,13 @@ +import yaml from django.test import override_settings -from rest_framework.reverse import reverse from rest_framework import status +from rest_framework.reverse import reverse + +from arkindex.dataimport.models import DataImport, RepositoryType, WorkerVersion +from arkindex.documents.models import Corpus, Element +from arkindex.project.tests import FixtureAPITestCase from arkindex_common.enums import DataImportMode from ponos.models import State, Workflow -from arkindex.dataimport.models import DataImport, WorkerVersion, RepositoryType -from arkindex.documents.models import Element, Corpus -from arkindex.project.tests import FixtureAPITestCase -import yaml RECIPE = ''' tasks: diff --git a/arkindex/documents/admin.py b/arkindex/documents/admin.py index 7a42a6b9f39ad17c4c081f95a2276f2049144295..17a0074e123272d6ba388a4d8f884affd261f3ba 100644 --- a/arkindex/documents/admin.py +++ b/arkindex/documents/admin.py @@ -1,11 +1,23 @@ -from django.contrib import admin from django import forms +from django.contrib import admin from django_admin_hstore_widget.forms import HStoreFormField -from arkindex.documents.models import \ - Corpus, Element, ElementType, Transcription, MetaData, AllowedMetaData, MLClass, \ - Classification, DataSource, Entity, EntityRole, EntityLink from enumfields.admin import EnumFieldListFilter +from arkindex.documents.models import ( + AllowedMetaData, + Classification, + Corpus, + DataSource, + Element, + ElementType, + Entity, + EntityLink, + EntityRole, + MetaData, + MLClass, + Transcription, +) + class ElementTypeInline(admin.TabularInline): model = ElementType diff --git a/arkindex/documents/api/admin.py b/arkindex/documents/api/admin.py index d951e8047738cd49df8c718d42ef6575f99c4297..b08091dbfb545f3efa2043c23bca3c2a0f6c5aa4 100644 --- a/arkindex/documents/api/admin.py +++ b/arkindex/documents/api/admin.py @@ -1,8 +1,9 @@ from django.conf import settings -from rest_framework.generics import CreateAPIView from rest_framework.exceptions import ValidationError -from arkindex.project.permissions import IsAdminUser +from rest_framework.generics import CreateAPIView + from arkindex.documents.serializers.admin import ReindexConfigSerializer +from arkindex.project.permissions import IsAdminUser class ReindexStart(CreateAPIView): diff --git a/arkindex/documents/api/elements.py b/arkindex/documents/api/elements.py index 9a8bab749e0b766863ae55102336f43a8818fe56..1d4993c36bfe1f1df79b118b824e844ede2f1033 100644 --- a/arkindex/documents/api/elements.py +++ b/arkindex/documents/api/elements.py @@ -1,43 +1,63 @@ +import email.utils +import uuid from collections import defaultdict from datetime import datetime, timezone -from psycopg2.extras import execute_values + from django.conf import settings -from django.db import transaction, connection -from django.db.models import Q, Prefetch, Max, QuerySet, CharField +from django.db import connection, transaction +from django.db.models import CharField, Max, Prefetch, Q, QuerySet from django.db.models.functions import Cast from django.shortcuts import get_object_or_404 from django.utils.functional import cached_property -from rest_framework.exceptions import ValidationError, NotFound +from psycopg2.extras import execute_values +from rest_framework import serializers, status +from rest_framework.exceptions import NotFound, ValidationError from rest_framework.generics import ( - ListAPIView, CreateAPIView, RetrieveAPIView, UpdateAPIView, DestroyAPIView, - ListCreateAPIView, RetrieveUpdateDestroyAPIView, + CreateAPIView, + DestroyAPIView, + ListAPIView, + ListCreateAPIView, + RetrieveAPIView, + RetrieveUpdateDestroyAPIView, + UpdateAPIView, ) -from rest_framework import status, serializers from rest_framework.response import Response -from arkindex_common.enums import TranscriptionType + +from arkindex.dataimport.models import WorkerVersion from arkindex.documents.models import ( - Corpus, Element, ElementPath, Right, MetaData, AllowedMetaData, - Classification, ClassificationState, Transcription, ElementType + AllowedMetaData, + Classification, + ClassificationState, + Corpus, + Element, + ElementPath, + ElementType, + MetaData, + Right, + Transcription, ) from arkindex.documents.serializers.elements import ( - CorpusSerializer, ElementSerializer, ElementSlimSerializer, ElementListSerializer, - ElementCreateSerializer, ElementNeighborsSerializer, ElementParentSerializer, - MetaDataUpdateSerializer, ElementTypeSerializer, ElementBulkSerializer, + CorpusSerializer, + ElementBulkSerializer, + ElementCreateSerializer, + ElementListSerializer, + ElementNeighborsSerializer, + ElementParentSerializer, + ElementSerializer, + ElementSlimSerializer, + ElementTypeSerializer, + MetaDataUpdateSerializer, ) from arkindex.documents.serializers.light import CorpusAllowedMetaDataSerializer, ElementTypeLightSerializer from arkindex.documents.serializers.ml import ElementTranscriptionSerializer -from arkindex.dataimport.models import WorkerVersion from arkindex.images.models import Zone +from arkindex.project.mixins import CorpusACLMixin, DeprecatedMixin, SelectionMixin from arkindex.project.openapi import AutoSchema -from arkindex.project.mixins import CorpusACLMixin, SelectionMixin, DeprecatedMixin from arkindex.project.pagination import PageNumberPagination -from arkindex.project.permissions import IsVerified, IsVerifiedOrReadOnly, IsAuthenticated -from arkindex.project.triggers import corpus_delete +from arkindex.project.permissions import IsAuthenticated, IsVerified, IsVerifiedOrReadOnly from arkindex.project.tools import BulkMap - -import email.utils -import uuid - +from arkindex.project.triggers import corpus_delete +from arkindex_common.enums import TranscriptionType classifications_queryset = Classification.objects.select_related('ml_class', 'source').order_by('-confidence') diff --git a/arkindex/documents/api/entities.py b/arkindex/documents/api/entities.py index 8a5f54a13563fd210fe352683508988ccb2a7b67..a4bd581e6afaa8b9895fbe84168347471ec27668 100644 --- a/arkindex/documents/api/entities.py +++ b/arkindex/documents/api/entities.py @@ -1,25 +1,45 @@ from uuid import UUID -from django.core.exceptions import ValidationError + from django.conf import settings +from django.core.exceptions import ValidationError from django.db.models import Q from elasticsearch.exceptions import NotFoundError from rest_framework import serializers, status -from rest_framework.generics import \ - ListAPIView, ListCreateAPIView, RetrieveAPIView, CreateAPIView, RetrieveUpdateDestroyAPIView from rest_framework.exceptions import NotFound +from rest_framework.generics import ( + CreateAPIView, + ListAPIView, + ListCreateAPIView, + RetrieveAPIView, + RetrieveUpdateDestroyAPIView, +) from rest_framework.response import Response -from arkindex.documents.models import \ - Corpus, Right, Element, Transcription, TranscriptionEntity, Entity, EntityLink, EntityRole + +from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import ( + Corpus, + Element, + Entity, + EntityLink, + EntityRole, + Right, + Transcription, + TranscriptionEntity, +) +from arkindex.documents.serializers.elements import ElementEntitiesSerializer, ElementSlimSerializer from arkindex.documents.serializers.entities import ( - EntityRoleSerializer, EntitySerializer, EntityCreateSerializer, EntityLinkCreateSerializer, - TranscriptionEntitySerializer, TranscriptionEntityDetailsSerializer, EntityLinkSerializer, + EntityCreateSerializer, + EntityLinkCreateSerializer, + EntityLinkSerializer, + EntityRoleSerializer, + EntitySerializer, + TranscriptionEntityDetailsSerializer, + TranscriptionEntitySerializer, ) -from arkindex.documents.serializers.elements import ElementSlimSerializer, ElementEntitiesSerializer -from arkindex.dataimport.models import WorkerVersion +from arkindex.project.elastic import ESEntity from arkindex.project.mixins import CorpusACLMixin from arkindex.project.permissions import IsVerified from arkindex.project.triggers import reindex_start -from arkindex.project.elastic import ESEntity class CorpusRoles(CorpusACLMixin, ListCreateAPIView): diff --git a/arkindex/documents/api/iiif.py b/arkindex/documents/api/iiif.py index 230a5e6cae17d4de5a9d638f51844ffa6f9c2370..5989b2a4e77b204b15141a1a766f973b80a470b9 100644 --- a/arkindex/documents/api/iiif.py +++ b/arkindex/documents/api/iiif.py @@ -1,18 +1,19 @@ from django.utils.decorators import method_decorator from django.views.decorators.cache import cache_page -from rest_framework.generics import RetrieveAPIView from rest_framework.exceptions import PermissionDenied -from arkindex_common.enums import TranscriptionType -from arkindex.documents.models import Element, Corpus -from arkindex.documents.serializers.search import IIIFSearchQuerySerializer +from rest_framework.generics import RetrieveAPIView + +from arkindex.documents.models import Corpus, Element +from arkindex.documents.search import search_transcriptions_filter_post from arkindex.documents.serializers.iiif import ( - FolderManifestSerializer, ElementAnnotationListSerializer, + FolderManifestSerializer, TranscriptionSearchAnnotationListSerializer, ) -from arkindex.documents.search import search_transcriptions_filter_post +from arkindex.documents.serializers.search import IIIFSearchQuerySerializer from arkindex.project.elastic import ESTranscription from arkindex.project.mixins import SearchAPIMixin +from arkindex_common.enums import TranscriptionType class FolderManifest(RetrieveAPIView): diff --git a/arkindex/documents/api/ml.py b/arkindex/documents/api/ml.py index fd3820662c7628a825f2c85591808c2715d593e2..5af95a01ff1ac827c7a2eb5ea786a7d615584344 100644 --- a/arkindex/documents/api/ml.py +++ b/arkindex/documents/api/ml.py @@ -1,30 +1,53 @@ +import logging +import uuid from collections import defaultdict + from django.db import transaction -from django.db.models import Q, Count +from django.db.models import Count, Q from rest_framework import status +from rest_framework.exceptions import PermissionDenied, ValidationError from rest_framework.generics import ( - GenericAPIView, ListAPIView, ListCreateAPIView, CreateAPIView, - RetrieveDestroyAPIView, RetrieveUpdateDestroyAPIView + CreateAPIView, + GenericAPIView, + ListAPIView, + ListCreateAPIView, + RetrieveDestroyAPIView, + RetrieveUpdateDestroyAPIView, ) -from rest_framework.exceptions import PermissionDenied, ValidationError from rest_framework.response import Response -from arkindex.documents.models import \ - Corpus, Element, ElementPath, DataSource, Classification, ClassificationState, Transcription, Entity, Right, MLClass -from arkindex_common.ml_tool import MLToolType + +from arkindex.documents.models import ( + Classification, + ClassificationState, + Corpus, + DataSource, + Element, + ElementPath, + Entity, + MLClass, + Right, + Transcription, +) from arkindex.documents.serializers.ml import ( - ClassificationsSerializer, ClassificationCreateSerializer, ClassificationSerializer, - ClassificationsSelectionSerializer, ClassificationMode, - TranscriptionSerializer, TranscriptionCreateSerializer, TranscriptionBulkSerializer, - ElementTranscriptionsBulkSerializer, AnnotatedElementSerializer, - DataSourceStatsSerializer, CountMLClassSerializer + AnnotatedElementSerializer, + ClassificationCreateSerializer, + ClassificationMode, + ClassificationSerializer, + ClassificationsSelectionSerializer, + ClassificationsSerializer, + CountMLClassSerializer, + DataSourceStatsSerializer, + ElementTranscriptionsBulkSerializer, + TranscriptionBulkSerializer, + TranscriptionCreateSerializer, + TranscriptionSerializer, ) from arkindex.images.models import Zone from arkindex.project.filters import SafeSearchFilter -from arkindex.project.mixins import SelectionMixin, CorpusACLMixin, DeprecatedMixin -from arkindex.project.permissions import IsVerified, IsVerifiedOrReadOnly, IsAdminUser -from arkindex.project.triggers import reindex_start, ml_results_delete -import uuid -import logging +from arkindex.project.mixins import CorpusACLMixin, DeprecatedMixin, SelectionMixin +from arkindex.project.permissions import IsAdminUser, IsVerified, IsVerifiedOrReadOnly +from arkindex.project.triggers import ml_results_delete, reindex_start +from arkindex_common.ml_tool import MLToolType logger = logging.getLogger(__name__) diff --git a/arkindex/documents/api/search.py b/arkindex/documents/api/search.py index 436536e2a9c300ef145e3c1abf60666b3ffe6e6d..a5e36b77f874a04db4dbf370d92ca53e56880177 100644 --- a/arkindex/documents/api/search.py +++ b/arkindex/documents/api/search.py @@ -1,12 +1,16 @@ from django.conf import settings +from elasticsearch_dsl.function import FieldValueFactor +from elasticsearch_dsl.query import FunctionScore, Nested, Q from rest_framework.generics import ListAPIView -from arkindex.documents.serializers.search import \ - ElementSearchResultSerializer, EntitySearchResultSerializer, EntitySearchQuerySerializer + from arkindex.documents.search import search_elements_post, search_entities_post -from arkindex.project.mixins import SearchAPIMixin +from arkindex.documents.serializers.search import ( + ElementSearchResultSerializer, + EntitySearchQuerySerializer, + EntitySearchResultSerializer, +) from arkindex.project.elastic import ESElement, ESEntity -from elasticsearch_dsl.query import Q, Nested, FunctionScore -from elasticsearch_dsl.function import FieldValueFactor +from arkindex.project.mixins import SearchAPIMixin class SearchAPIView(SearchAPIMixin, ListAPIView): diff --git a/arkindex/documents/consumers.py b/arkindex/documents/consumers.py index d41888420276a0d66417b25707f324f7992bc492..a29b81e4ea09d50099f6d02a8e4990e222622c61 100644 --- a/arkindex/documents/consumers.py +++ b/arkindex/documents/consumers.py @@ -1,18 +1,28 @@ +import logging from math import ceil + from channels.consumer import SyncConsumer from django.db.models import Q from django.db.models.deletion import Collector from django.db.models.signals import pre_delete -from arkindex.project.tools import disconnect_signal -from arkindex.project.triggers import reindex_start + from arkindex.dataimport.models import DataImportElement from arkindex.documents.indexer import Indexer from arkindex.documents.models import ( - Corpus, Element, ElementPath, MetaData, Transcription, TranscriptionEntity, Entity, - EntityLink, Classification, Selection + Classification, + Corpus, + Element, + ElementPath, + Entity, + EntityLink, + MetaData, + Selection, + Transcription, + TranscriptionEntity, ) from arkindex.documents.signals import pre_delete_handler -import logging +from arkindex.project.tools import disconnect_signal +from arkindex.project.triggers import reindex_start logger = logging.getLogger(__name__) diff --git a/arkindex/documents/date_parser.py b/arkindex/documents/date_parser.py index 4c300ba464f48c9c1193613f12bb53b9cbd5e4b0..2f5635eca1c59df24317ead46df61e0f54563f82 100644 --- a/arkindex/documents/date_parser.py +++ b/arkindex/documents/date_parser.py @@ -1,7 +1,8 @@ -from arkindex.documents.dates import InterpretedDate, DateType -import unicodedata -import re import logging +import re +import unicodedata + +from arkindex.documents.dates import DateType, InterpretedDate logger = logging.getLogger(__name__) diff --git a/arkindex/documents/dates.py b/arkindex/documents/dates.py index cc115abf5317a403f2be090d5f995380fb309efc..18eb0244a96ed4c391a926f68eae222f14918d1c 100644 --- a/arkindex/documents/dates.py +++ b/arkindex/documents/dates.py @@ -1,6 +1,7 @@ -from enumfields import Enum from datetime import datetime +from enumfields import Enum + class DateType(Enum): Exact = 'exact' diff --git a/arkindex/documents/indexer.py b/arkindex/documents/indexer.py index ccc158a5afda9b24b30ab448ede83680caff9e4f..e015bf1bc3684fbf0cedce5e2df7f550d2029608 100644 --- a/arkindex/documents/indexer.py +++ b/arkindex/documents/indexer.py @@ -1,12 +1,14 @@ +import datetime +import logging +import time + from django.conf import settings from django.db.models import QuerySet from elasticsearch import Elasticsearch -from elasticsearch.helpers import bulk as es_bulk from elasticsearch.exceptions import NotFoundError -from arkindex.project.elastic import ESTranscription, ESElement, ESEntity -import logging -import time -import datetime +from elasticsearch.helpers import bulk as es_bulk + +from arkindex.project.elastic import ESElement, ESEntity, ESTranscription logger = logging.getLogger(__name__) diff --git a/arkindex/documents/management/commands/build_fixtures.py b/arkindex/documents/management/commands/build_fixtures.py index 24bd321d0c783f18c968b3643fd6f507547ae292..8873d20619e2c133ab22704d9365e3005fbfa462 100644 --- a/arkindex/documents/management/commands/build_fixtures.py +++ b/arkindex/documents/management/commands/build_fixtures.py @@ -1,16 +1,18 @@ #!/usr/bin/env python3 +from datetime import datetime, timezone +from unittest.mock import patch + +from django.contrib.gis.geos import LinearRing from django.core.management.base import BaseCommand -from arkindex_common.ml_tool import MLToolType -from arkindex_common.enums import TranscriptionType, MetaType -from arkindex.documents.models import Corpus, Element, DataSource, MetaData +from django.utils import timezone as DjangoTimeZone + from arkindex.dataimport.models import RepositoryType, WorkerVersion, WorkerVersionState, Workflow -from arkindex.images.models import ImageServer, Image, Zone -from arkindex.users.models import User, CorpusRight +from arkindex.documents.models import Corpus, DataSource, Element, MetaData +from arkindex.images.models import Image, ImageServer, Zone +from arkindex.users.models import CorpusRight, User +from arkindex_common.enums import MetaType, TranscriptionType +from arkindex_common.ml_tool import MLToolType from ponos.models import State -from django.contrib.gis.geos import LinearRing -from django.utils import timezone as DjangoTimeZone -from unittest.mock import patch -from datetime import datetime, timezone def fake_now(): diff --git a/arkindex/documents/management/commands/delete.py b/arkindex/documents/management/commands/delete.py index 60091e292bf59aa74e4d158ec02709b9099c019a..44c22f0d6b823fafe18bb714995cac653557ca9d 100644 --- a/arkindex/documents/management/commands/delete.py +++ b/arkindex/documents/management/commands/delete.py @@ -1,9 +1,11 @@ #!/usr/bin/env python3 -from django.core.management.base import BaseCommand -from arkindex.documents.models import Element import logging import uuid +from django.core.management.base import BaseCommand + +from arkindex.documents.models import Element + logging.basicConfig( level=logging.INFO, format='[%(levelname)s] %(message)s', diff --git a/arkindex/documents/management/commands/gunicorn.py b/arkindex/documents/management/commands/gunicorn.py index 1d3f4f638856973de6db1631f897d9294b4f9dfe..f7b94dbfa24bc3469aef3448d873033e8e2814f1 100644 --- a/arkindex/documents/management/commands/gunicorn.py +++ b/arkindex/documents/management/commands/gunicorn.py @@ -1,10 +1,10 @@ -from django.core.management.base import BaseCommand, CommandError -import sys -import os +import logging import multiprocessing -from django.core.wsgi import get_wsgi_application +import os +import sys -import logging +from django.core.management.base import BaseCommand, CommandError +from django.core.wsgi import get_wsgi_application logging.basicConfig( level=logging.INFO, diff --git a/arkindex/documents/management/commands/merge_types.py b/arkindex/documents/management/commands/merge_types.py index 94ee533d24a287d9999ff1cd77f37898455cb2d4..3ec934d00689167aa01888305d6705cf4d2e9dfc 100644 --- a/arkindex/documents/management/commands/merge_types.py +++ b/arkindex/documents/management/commands/merge_types.py @@ -1,8 +1,9 @@ #!/usr/bin/env python3 from django.core.management.base import BaseCommand, CommandError from django.db import transaction -from arkindex.project.argparse import CorpusArgument + from arkindex.documents.models import ElementType +from arkindex.project.argparse import CorpusArgument class Command(BaseCommand): diff --git a/arkindex/documents/management/commands/reindex.py b/arkindex/documents/management/commands/reindex.py index 3632b44ac042bef105467e2efd6eba012e944d88..1b515b2f74b3e4ce88d9127e13a29c1988c1fc64 100644 --- a/arkindex/documents/management/commands/reindex.py +++ b/arkindex/documents/management/commands/reindex.py @@ -1,10 +1,12 @@ #!/usr/bin/env python3 -from django.core.management.base import BaseCommand, CommandError +import logging + from django.conf import settings -from arkindex.project.argparse import CorpusArgument, ElementArgument +from django.core.management.base import BaseCommand, CommandError + from arkindex.documents.indexer import Indexer -from arkindex.documents.models import Element, Transcription, Entity -import logging +from arkindex.documents.models import Element, Entity, Transcription +from arkindex.project.argparse import CorpusArgument, ElementArgument logging.basicConfig( level=logging.INFO, diff --git a/arkindex/documents/management/commands/telegraf.py b/arkindex/documents/management/commands/telegraf.py index ebe490dbdc245e452de09b6e5eca507c193765a7..53907b9f126109bfa8f8061e410d18e2c8c3068e 100644 --- a/arkindex/documents/management/commands/telegraf.py +++ b/arkindex/documents/management/commands/telegraf.py @@ -1,12 +1,14 @@ #!/usr/bin/env python3 -from django.core.management.base import BaseCommand +import time +from urllib.parse import urljoin + +import requests from django.conf import settings +from django.core.management.base import BaseCommand from django.db.models import Count -from arkindex.images.models import ImageServer, Image + +from arkindex.images.models import Image, ImageServer from arkindex.project.aws import S3FileStatus -from urllib.parse import urljoin -import time -import requests class Command(BaseCommand): diff --git a/arkindex/documents/managers.py b/arkindex/documents/managers.py index 4888f5a8f2578e2e73883bd5cea00c7d123a443a..6cae09fb32d6b8c1659bfce2698921418e0d6759 100644 --- a/arkindex/documents/managers.py +++ b/arkindex/documents/managers.py @@ -1,7 +1,9 @@ +import uuid +from itertools import chain, groupby + from django.db import models -from itertools import groupby, chain + from arkindex.project.fields import Unnest -import uuid class ElementManager(models.Manager): diff --git a/arkindex/documents/migrations/0001_initial.py b/arkindex/documents/migrations/0001_initial.py index 914968e4ff6ff510425502fc2fb3126d2ef30479..dcfbbe07822fe30461df520f7553bc00a3e67f2d 100644 --- a/arkindex/documents/migrations/0001_initial.py +++ b/arkindex/documents/migrations/0001_initial.py @@ -1,15 +1,17 @@ # Generated by Django 2.2.9 on 2020-01-17 15:39 +import uuid + +import django.contrib.postgres.fields.hstore +import django.db.models.deletion +import enumfields.fields +from django.db import migrations, models + import arkindex.documents.dates import arkindex.documents.models import arkindex.project.fields import arkindex_common.enums import arkindex_common.ml_tool -import django.contrib.postgres.fields.hstore -from django.db import migrations, models -import django.db.models.deletion -import enumfields.fields -import uuid class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0002_initial.py b/arkindex/documents/migrations/0002_initial.py index 6158dd2a58e8f095c14342a2f78ccb786c9c94ad..fdafe7182bb8b496cb121a736ecc629c22c995a7 100644 --- a/arkindex/documents/migrations/0002_initial.py +++ b/arkindex/documents/migrations/0002_initial.py @@ -1,9 +1,9 @@ # Generated by Django 2.2.9 on 2020-01-17 15:39 -from django.conf import settings import django.contrib.postgres.indexes -from django.db import migrations, models import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0005_element_source.py b/arkindex/documents/migrations/0005_element_source.py index 06ca9da976307a3fb9c8864340e41ef2120bc70c..f29467f574da7d6a80a557cadb2cb12bdc917a7b 100644 --- a/arkindex/documents/migrations/0005_element_source.py +++ b/arkindex/documents/migrations/0005_element_source.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.10 on 2020-03-10 10:17 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0011_auto_20200403_1456.py b/arkindex/documents/migrations/0011_auto_20200403_1456.py index 7795aef534845cfbd49f7e6711bcfe150e19fc35..de7be88dc8759b64e9a1b714fc81c14c47fd6481 100644 --- a/arkindex/documents/migrations/0011_auto_20200403_1456.py +++ b/arkindex/documents/migrations/0011_auto_20200403_1456.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.10 on 2020-04-03 14:56 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0012_add_created_updated_corpus.py b/arkindex/documents/migrations/0012_add_created_updated_corpus.py index 3f04474928d8b89d9ff1cb13e44a056676be64c4..45ba4088ab9b6e03fbf81a127b2e3b75f31131d5 100644 --- a/arkindex/documents/migrations/0012_add_created_updated_corpus.py +++ b/arkindex/documents/migrations/0012_add_created_updated_corpus.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.11 on 2020-05-08 07:51 -from django.db import migrations, models import django.utils.timezone +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0013_datasource_type_length.py b/arkindex/documents/migrations/0013_datasource_type_length.py index ea7be044146fbab3625e1f1c1001694543e115a2..93ff7fdd966d3062dcb1e8f9c6cd04a4b233cd72 100644 --- a/arkindex/documents/migrations/0013_datasource_type_length.py +++ b/arkindex/documents/migrations/0013_datasource_type_length.py @@ -1,8 +1,9 @@ # Generated by Django 2.2.10 on 2020-05-19 14:59 -import arkindex_common.ml_tool -from django.db import migrations import enumfields.fields +from django.db import migrations + +import arkindex_common.ml_tool class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0014_nullable_transcription_zone.py b/arkindex/documents/migrations/0014_nullable_transcription_zone.py index cf5fd62adde42830f15b4822482faab45cc5305a..b85d8fd846fbdfe76eb052af3cb1c5800d784430 100644 --- a/arkindex/documents/migrations/0014_nullable_transcription_zone.py +++ b/arkindex/documents/migrations/0014_nullable_transcription_zone.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.9 on 2020-05-27 09:03 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0015_elementtype_allowed_transcription.py b/arkindex/documents/migrations/0015_elementtype_allowed_transcription.py index afd2a9bb5cc2614f8f4da106eca4e30e00e86094..f29d0e89d66f0e6172f9da3b8b1fd2b6f6a13a67 100644 --- a/arkindex/documents/migrations/0015_elementtype_allowed_transcription.py +++ b/arkindex/documents/migrations/0015_elementtype_allowed_transcription.py @@ -1,8 +1,9 @@ # Generated by Django 2.2.9 on 2020-06-03 13:26 -import arkindex_common.enums -from django.db import migrations import enumfields.fields +from django.db import migrations + +import arkindex_common.enums class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0016_selection.py b/arkindex/documents/migrations/0016_selection.py index 74d14ab7034b31534da0b44649385a729a1922d5..8f90a4ef6a37de4ce75c7c3d43921b2222f85f64 100644 --- a/arkindex/documents/migrations/0016_selection.py +++ b/arkindex/documents/migrations/0016_selection.py @@ -1,9 +1,10 @@ # Generated by Django 2.2.13 on 2020-06-23 14:07 +import uuid + +import django.db.models.deletion from django.conf import settings from django.db import migrations, models -import django.db.models.deletion -import uuid class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0018_worker_version_attributes.py b/arkindex/documents/migrations/0018_worker_version_attributes.py index 9d1973bb339c142585309c13852f6c188caf5ce8..40cc88e89fed997f59308474ecd90b7515b1b254 100644 --- a/arkindex/documents/migrations/0018_worker_version_attributes.py +++ b/arkindex/documents/migrations/0018_worker_version_attributes.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.13 on 2020-08-10 10:00 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): diff --git a/arkindex/documents/migrations/0019_corpus_repository.py b/arkindex/documents/migrations/0019_corpus_repository.py index d4d393217f037cc008a9b12154386ec58a264481..fb14e5b85c6ded6bf1310e9ec790b86bfcee88a6 100644 --- a/arkindex/documents/migrations/0019_corpus_repository.py +++ b/arkindex/documents/migrations/0019_corpus_repository.py @@ -1,8 +1,9 @@ # Generated by Django 3.1 on 2020-09-11 07:26 -import arkindex.dataimport.models -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models + +import arkindex.dataimport.models def copy_repository_corpus(apps, schema_editor): diff --git a/arkindex/documents/migrations/0021_move_transcriptions.py b/arkindex/documents/migrations/0021_move_transcriptions.py index 728be9aa5f17ccaa1c2a1ec864d7b02660c3925e..848eaeb99d36354ee1408cebb6af642c167fc3ee 100644 --- a/arkindex/documents/migrations/0021_move_transcriptions.py +++ b/arkindex/documents/migrations/0021_move_transcriptions.py @@ -1,6 +1,7 @@ # Generated by Django 3.1 on 2020-09-01 07:48 from django.db import migrations, models + from arkindex_common.enums import TranscriptionType diff --git a/arkindex/documents/models.py b/arkindex/documents/models.py index 9f4386df43feb4289c556b49773abf7684f1c12a..2e454de3da023b1fb1d41b0451c15d6a7b271839 100644 --- a/arkindex/documents/models.py +++ b/arkindex/documents/models.py @@ -1,21 +1,23 @@ -from django.db import models, transaction +import logging +import uuid + from django.conf import settings -from django.contrib.postgres.indexes import GinIndex from django.contrib.postgres.fields import HStoreField +from django.contrib.postgres.indexes import GinIndex +from django.core.exceptions import ValidationError +from django.db import models, transaction from django.db.models import Q from django.utils.functional import cached_property -from django.core.exceptions import ValidationError -from enumfields import EnumField, Enum -from arkindex_common.enums import TranscriptionType, MetaType, EntityType -from arkindex_common.ml_tool import MLToolType +from enumfields import Enum, EnumField + +from arkindex.documents.dates import InterpretedDateMixin +from arkindex.documents.managers import CorpusManager, ElementManager from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES, DEFAULT_TRANSKRIBUS_TYPES -from arkindex.project.models import IndexableModel +from arkindex.project.elastic import ESElement, ESEntity, ESTranscription from arkindex.project.fields import ArrayField -from arkindex.project.elastic import ESTranscription, ESElement, ESEntity -from arkindex.documents.managers import ElementManager, CorpusManager -from arkindex.documents.dates import InterpretedDateMixin -import uuid -import logging +from arkindex.project.models import IndexableModel +from arkindex_common.enums import EntityType, MetaType, TranscriptionType +from arkindex_common.ml_tool import MLToolType logger = logging.getLogger(__name__) diff --git a/arkindex/documents/search.py b/arkindex/documents/search.py index 6c69a9713cd353ed392abc38e152b6ecbd0432d1..b96cb85edc327fab13e537bbce93453de867e1c7 100644 --- a/arkindex/documents/search.py +++ b/arkindex/documents/search.py @@ -1,7 +1,9 @@ +import uuid from itertools import chain + from django.db.models import prefetch_related_objects -from arkindex.documents.models import Transcription, Element, Entity -import uuid + +from arkindex.documents.models import Element, Entity, Transcription def search_transcriptions_post(data): diff --git a/arkindex/documents/serializers/admin.py b/arkindex/documents/serializers/admin.py index 0377d233a19d6c2c61b650f416d79839aca77e55..42a605b8d442f1be0e8648048f153739afc333de 100644 --- a/arkindex/documents/serializers/admin.py +++ b/arkindex/documents/serializers/admin.py @@ -1,6 +1,7 @@ from rest_framework import serializers -from arkindex.project.triggers import reindex_start + from arkindex.documents.models import Corpus, Element +from arkindex.project.triggers import reindex_start class ReindexConfigSerializer(serializers.Serializer): diff --git a/arkindex/documents/serializers/elements.py b/arkindex/documents/serializers/elements.py index b73d48845d47bc76bc987d7c04183aa567250e0d..4afac14db2e5b777ea0ceafef1a869c63297ee43 100644 --- a/arkindex/documents/serializers/elements.py +++ b/arkindex/documents/serializers/elements.py @@ -1,23 +1,34 @@ from collections import defaultdict from uuid import UUID + from django.contrib.gis.geos import LinearRing from django.utils.functional import cached_property from rest_framework import serializers from rest_framework.exceptions import ValidationError -from arkindex_common.enums import MetaType + from arkindex.dataimport.models import WorkerVersion -from arkindex.images.serializers import ZoneSerializer -from arkindex.images.models import Image, Zone from arkindex.documents.models import ( - Corpus, Element, ElementPath, ElementType, MetaData, - Entity, Transcription, TranscriptionEntity, + Corpus, + Element, + ElementPath, + ElementType, + Entity, + MetaData, + Transcription, + TranscriptionEntity, ) +from arkindex.documents.serializers.entities import BaseEntitySerializer, TranscriptionEntityDetailsSerializer from arkindex.documents.serializers.light import ( - CorpusLightSerializer, ElementLightSerializer, ElementTypeLightSerializer, MetaDataLightSerializer + CorpusLightSerializer, + ElementLightSerializer, + ElementTypeLightSerializer, + MetaDataLightSerializer, ) -from arkindex.documents.serializers.entities import BaseEntitySerializer, TranscriptionEntityDetailsSerializer from arkindex.documents.serializers.ml import ClassificationSerializer, DataSourceSerializer +from arkindex.images.models import Image, Zone +from arkindex.images.serializers import ZoneSerializer from arkindex.project.serializer_fields import LinearRingField +from arkindex_common.enums import MetaType class MetaDataSerializer(MetaDataLightSerializer): diff --git a/arkindex/documents/serializers/entities.py b/arkindex/documents/serializers/entities.py index 21a0c6034b35921a8fd887f3598bd6eaadcd01da..8deca6f31a77e086a55011faa5bc15ebeb6223e5 100644 --- a/arkindex/documents/serializers/entities.py +++ b/arkindex/documents/serializers/entities.py @@ -1,12 +1,12 @@ from rest_framework import serializers + from arkindex.dataimport.models import WorkerVersion -from arkindex.documents.models import \ - Corpus, Entity, EntityLink, EntityRole, TranscriptionEntity -from arkindex_common.enums import EntityType +from arkindex.documents.models import Corpus, Entity, EntityLink, EntityRole, TranscriptionEntity from arkindex.documents.serializers.light import CorpusLightSerializer, InterpretedDateSerializer from arkindex.documents.serializers.ml import DataSourceSerializer from arkindex.project.serializer_fields import EnumField from arkindex.project.triggers import reindex_start +from arkindex_common.enums import EntityType class BaseEntitySerializer(serializers.ModelSerializer): diff --git a/arkindex/documents/serializers/iiif/__init__.py b/arkindex/documents/serializers/iiif/__init__.py index 3ed47c337bfec5240e5d51287102666599d41043..0e9a7c7c35775493724ee12ea9e96c3ebf40e9eb 100644 --- a/arkindex/documents/serializers/iiif/__init__.py +++ b/arkindex/documents/serializers/iiif/__init__.py @@ -1,5 +1,5 @@ -from arkindex.documents.serializers.iiif.manifests import FolderManifestSerializer # noqa: F401 from arkindex.documents.serializers.iiif.annotations import ( # noqa: F401 ElementAnnotationListSerializer, TranscriptionSearchAnnotationListSerializer, ) +from arkindex.documents.serializers.iiif.manifests import FolderManifestSerializer # noqa: F401 diff --git a/arkindex/documents/serializers/iiif/annotations.py b/arkindex/documents/serializers/iiif/annotations.py index 0fdbb9fa99bf3dbfbc2efc970caddb1e421e2d51..a32a9129e91dd3b9c336e80bc2eb405486f70043 100644 --- a/arkindex/documents/serializers/iiif/annotations.py +++ b/arkindex/documents/serializers/iiif/annotations.py @@ -1,9 +1,11 @@ from abc import ABC, abstractmethod + from django.conf import settings from django.db.models import Q from rest_framework import serializers + from arkindex.documents.models import Element, Transcription -from arkindex.project.tools import build_absolute_url, bounding_box +from arkindex.project.tools import bounding_box, build_absolute_url class AnnotationSerializer(ABC, serializers.BaseSerializer): diff --git a/arkindex/documents/serializers/iiif/manifests.py b/arkindex/documents/serializers/iiif/manifests.py index a08f43f87f63021638ca4af108e9ee5e31ddbee0..094185915b70f0d2a2c669626e76c2e8136e7a08 100644 --- a/arkindex/documents/serializers/iiif/manifests.py +++ b/arkindex/documents/serializers/iiif/manifests.py @@ -1,11 +1,12 @@ from django.conf import settings -from django.db.models import Prefetch, Subquery, OuterRef, Value, F, CharField -from django.db.models.functions import Concat, Ceil +from django.db.models import CharField, F, OuterRef, Prefetch, Subquery, Value +from django.db.models.functions import Ceil, Concat from rest_framework import serializers -from arkindex_common.enums import MetaType -from arkindex.documents.models import Element, MetaData, Classification + +from arkindex.documents.models import Classification, Element, MetaData from arkindex.images.models import Image, Zone -from arkindex.project.tools import build_absolute_url, bounding_box +from arkindex.project.tools import bounding_box, build_absolute_url +from arkindex_common.enums import MetaType class ImageResourceManifestSerializer(serializers.BaseSerializer): diff --git a/arkindex/documents/serializers/light.py b/arkindex/documents/serializers/light.py index e2eda15d7378d1e746575f4007fb5bb9082f41ff..49f446ae6f895e3615d4aff6f7c8d99045bd0527 100644 --- a/arkindex/documents/serializers/light.py +++ b/arkindex/documents/serializers/light.py @@ -1,13 +1,14 @@ -from rest_framework import serializers -from rest_framework.exceptions import ValidationError, APIException from django.db.models import Max -from arkindex.documents.models import Element, ElementType, Corpus, MetaData, AllowedMetaData -from arkindex_common.enums import MetaType, TranscriptionType +from rest_framework import serializers +from rest_framework.exceptions import APIException, ValidationError + +from arkindex.dataimport.serializers.git import RevisionSerializer from arkindex.documents.dates import DateType +from arkindex.documents.models import AllowedMetaData, Corpus, Element, ElementType, MetaData from arkindex.images.serializers import ZoneLightSerializer -from arkindex.dataimport.serializers.git import RevisionSerializer from arkindex.project.serializer_fields import EnumField from arkindex.project.triggers import reindex_start +from arkindex_common.enums import MetaType, TranscriptionType class InterpretedDateSerializer(serializers.Serializer): diff --git a/arkindex/documents/serializers/ml.py b/arkindex/documents/serializers/ml.py index 7fa83582f15925d1019ed82bf5b321362eaf925d..d172eea291fc5490f780de4f6d19657b89aaae0f 100644 --- a/arkindex/documents/serializers/ml.py +++ b/arkindex/documents/serializers/ml.py @@ -1,17 +1,26 @@ +import uuid from enum import Enum + from django.conf import settings from rest_framework import serializers -from rest_framework.validators import UniqueTogetherValidator from rest_framework.exceptions import ValidationError -from arkindex_common.ml_tool import MLToolType -from arkindex_common.enums import TranscriptionType +from rest_framework.validators import UniqueTogetherValidator + from arkindex.dataimport.models import WorkerVersion from arkindex.documents.models import ( - Corpus, Element, ElementType, Transcription, DataSource, MLClass, Classification, ClassificationState + Classification, + ClassificationState, + Corpus, + DataSource, + Element, + ElementType, + MLClass, + Transcription, ) -from arkindex.project.serializer_fields import EnumField, LinearRingField from arkindex.documents.serializers.light import ElementZoneSerializer -import uuid +from arkindex.project.serializer_fields import EnumField, LinearRingField +from arkindex_common.enums import TranscriptionType +from arkindex_common.ml_tool import MLToolType class ClassificationMode(Enum): diff --git a/arkindex/documents/serializers/search.py b/arkindex/documents/serializers/search.py index 3b6a6dfce020d6f07a9e5a34ab92a170b1a486a2..ef15692f1f437e358b7bec55a7dacac69278da72 100644 --- a/arkindex/documents/serializers/search.py +++ b/arkindex/documents/serializers/search.py @@ -1,13 +1,15 @@ +import math + from django.conf import settings from rest_framework import serializers -from arkindex_common.enums import EntityType, TranscriptionType -from arkindex.project.serializer_fields import EnumField -from arkindex.images.serializers import ZoneSerializer + from arkindex.documents.date_parser import parse_date from arkindex.documents.models import Element, ElementType, Entity from arkindex.documents.serializers.light import CorpusLightSerializer, ElementLightSerializer from arkindex.documents.serializers.ml import TranscriptionSerializer -import math +from arkindex.images.serializers import ZoneSerializer +from arkindex.project.serializer_fields import EnumField +from arkindex_common.enums import EntityType, TranscriptionType class SearchQuerySerializer(serializers.Serializer): diff --git a/arkindex/documents/signals.py b/arkindex/documents/signals.py index 61d8498454f14d7ba303aff8ef09ac919f8c722a..446c6f9c13456f4d5c92e181cf7d1a4398261577 100644 --- a/arkindex/documents/signals.py +++ b/arkindex/documents/signals.py @@ -1,9 +1,19 @@ +import logging + +from django.db.models import Q from django.db.models.signals import pre_delete from django.dispatch import receiver -from django.db.models import Q -from arkindex.documents.models import Element, ElementPath, Transcription, Classification, MetaData, Selection, TranscriptionEntity -from arkindex.dataimport.models import DataImportElement, DataImport -import logging + +from arkindex.dataimport.models import DataImport, DataImportElement +from arkindex.documents.models import ( + Classification, + Element, + ElementPath, + MetaData, + Selection, + Transcription, + TranscriptionEntity, +) logger = logging.getLogger(__name__) diff --git a/arkindex/documents/tests/commands/test_merge_types.py b/arkindex/documents/tests/commands/test_merge_types.py index 2486524d1180ae4cee02a30487baba710a780772..67d8eaf8e03e5c38df3e292b6e2cb063f92b8193 100644 --- a/arkindex/documents/tests/commands/test_merge_types.py +++ b/arkindex/documents/tests/commands/test_merge_types.py @@ -1,6 +1,7 @@ -from django.core.management import call_command, CommandError -from arkindex.project.tests import FixtureTestCase +from django.core.management import CommandError, call_command + from arkindex.documents.models import ElementType +from arkindex.project.tests import FixtureTestCase class TestMergeTypesCommand(FixtureTestCase): diff --git a/arkindex/documents/tests/commands/test_reindex.py b/arkindex/documents/tests/commands/test_reindex.py index dfa0b730233e09acd6bfd00af53365c02f057f82..0531056f530328711ffc2904d8ae94c9a07ec4de 100644 --- a/arkindex/documents/tests/commands/test_reindex.py +++ b/arkindex/documents/tests/commands/test_reindex.py @@ -1,10 +1,12 @@ -from unittest.mock import patch, call -from django.core.management import call_command, CommandError +from unittest.mock import call, patch + +from django.core.management import CommandError, call_command from django.test import override_settings -from arkindex_common.enums import MetaType + +from arkindex.documents.models import DataSource, Element, Entity, EntityType, MLToolType, Transcription +from arkindex.project.elastic import ESElement, ESEntity, ESTranscription from arkindex.project.tests import FixtureTestCase -from arkindex.project.elastic import ESTranscription, ESElement, ESEntity -from arkindex.documents.models import Element, Transcription, Entity, EntityType, DataSource, MLToolType +from arkindex_common.enums import MetaType class TestReindexCommand(FixtureTestCase): diff --git a/arkindex/documents/tests/commands/test_telegraf.py b/arkindex/documents/tests/commands/test_telegraf.py index a9b4f9c2cd1c6b2585cf4a00d88cb61a799b3e61..f5ea443597aae02b94e695ee221a6d5b252f7a09 100644 --- a/arkindex/documents/tests/commands/test_telegraf.py +++ b/arkindex/documents/tests/commands/test_telegraf.py @@ -1,8 +1,10 @@ -from django.core.management import call_command -from arkindex.project.tests import FixtureTestCase -from unittest.mock import patch import io import re +from unittest.mock import patch + +from django.core.management import call_command + +from arkindex.project.tests import FixtureTestCase class TestTelegraf(FixtureTestCase): diff --git a/arkindex/documents/tests/consumers/test_corpus_consumer.py b/arkindex/documents/tests/consumers/test_corpus_consumer.py index e677e2c4f2e0159452c97502bf2adf9674592f7e..af38dcf620bc3f7c2f112d1134aa8fd2db67f9fd 100644 --- a/arkindex/documents/tests/consumers/test_corpus_consumer.py +++ b/arkindex/documents/tests/consumers/test_corpus_consumer.py @@ -1,10 +1,11 @@ from django.db.models.signals import pre_delete -from arkindex_common.enums import TranscriptionType, MetaType, DataImportMode -from arkindex_common.ml_tool import MLToolType -from arkindex.project.tests import FixtureTestCase + +from arkindex.dataimport.models import Repository, RepositoryType from arkindex.documents.consumers import CorpusConsumer -from arkindex.documents.models import Corpus, Element, DataSource, MLClass -from arkindex.dataimport.models import RepositoryType, Repository +from arkindex.documents.models import Corpus, DataSource, Element, MLClass +from arkindex.project.tests import FixtureTestCase +from arkindex_common.enums import DataImportMode, MetaType, TranscriptionType +from arkindex_common.ml_tool import MLToolType class TestDeleteCorpus(FixtureTestCase): diff --git a/arkindex/documents/tests/consumers/test_ml_results_consumer.py b/arkindex/documents/tests/consumers/test_ml_results_consumer.py index 1612370bffddb3ab3ec5ffcfe28271acef3ed7fe..9d2af789418714cb054d932e586b8f9e9ea2f030 100644 --- a/arkindex/documents/tests/consumers/test_ml_results_consumer.py +++ b/arkindex/documents/tests/consumers/test_ml_results_consumer.py @@ -1,11 +1,13 @@ -from arkindex_common.ml_tool import MLToolType from unittest.mock import patch -from mock import AsyncMock + from django.test import override_settings -from arkindex_common.enums import TranscriptionType, MetaType, EntityType -from arkindex.project.tests import FixtureTestCase +from mock import AsyncMock + from arkindex.documents.consumers import MLResultsConsumer -from arkindex.documents.models import Element, Transcription, Entity, Classification, DataSource +from arkindex.documents.models import Classification, DataSource, Element, Entity, Transcription +from arkindex.project.tests import FixtureTestCase +from arkindex_common.enums import EntityType, MetaType, TranscriptionType +from arkindex_common.ml_tool import MLToolType class TestMLResultsConsumer(FixtureTestCase): diff --git a/arkindex/documents/tests/consumers/test_reindex_consumer.py b/arkindex/documents/tests/consumers/test_reindex_consumer.py index bd5acb84965ae98a8863ccf9d870e9c0dcbab796..c91253ffb668177c0cf640523f333e1ec744e1b5 100644 --- a/arkindex/documents/tests/consumers/test_reindex_consumer.py +++ b/arkindex/documents/tests/consumers/test_reindex_consumer.py @@ -1,11 +1,13 @@ -from arkindex_common.ml_tool import MLToolType from unittest.mock import patch -from django.db.models import Q -from arkindex_common.enums import TranscriptionType, MetaType, EntityType -from arkindex.project.tests import FixtureTestCase + from django.contrib.gis.geos import LinearRing +from django.db.models import Q + from arkindex.documents.consumers import ReindexConsumer -from arkindex.documents.models import Corpus, Element, Transcription, Entity, DataSource +from arkindex.documents.models import Corpus, DataSource, Element, Entity, Transcription +from arkindex.project.tests import FixtureTestCase +from arkindex_common.enums import EntityType, MetaType, TranscriptionType +from arkindex_common.ml_tool import MLToolType @patch('arkindex.documents.consumers.Indexer') diff --git a/arkindex/documents/tests/test_admin_api.py b/arkindex/documents/tests/test_admin_api.py index 63a1ec2c160194839e4371b93a41bcbde96f9bfd..aa8c3f2ab64089ac86ac2edeb0fd7be8294ff4c5 100644 --- a/arkindex/documents/tests/test_admin_api.py +++ b/arkindex/documents/tests/test_admin_api.py @@ -1,10 +1,12 @@ from unittest.mock import patch -from mock import AsyncMock -from django.urls import reverse + from django.test import override_settings +from django.urls import reverse +from mock import AsyncMock from rest_framework import status -from arkindex.project.tests import FixtureTestCase + from arkindex.documents.models import Corpus +from arkindex.project.tests import FixtureTestCase class TestAdminAPI(FixtureTestCase): diff --git a/arkindex/documents/tests/test_annotation_list.py b/arkindex/documents/tests/test_annotation_list.py index d29f75add3b178f6651c7b175cf28a213c84977e..ac11c3bb92934b785047fa6e69bb6997bc782eb6 100644 --- a/arkindex/documents/tests/test_annotation_list.py +++ b/arkindex/documents/tests/test_annotation_list.py @@ -1,5 +1,6 @@ from django.urls import reverse from rest_framework import status + from arkindex.project.tests import FixtureAPITestCase diff --git a/arkindex/documents/tests/test_bulk_classification.py b/arkindex/documents/tests/test_bulk_classification.py index 9f6faa953d97197a02ee84343d05f5309c5eba2e..1ab1261240e0640884bf469c3fea29b11c3439f0 100644 --- a/arkindex/documents/tests/test_bulk_classification.py +++ b/arkindex/documents/tests/test_bulk_classification.py @@ -1,9 +1,10 @@ from django.urls import reverse -from arkindex_common.ml_tool import MLToolType from rest_framework import status -from arkindex.project.tests import FixtureAPITestCase -from arkindex.documents.models import Corpus, DataSource, MLClass + from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Corpus, DataSource, MLClass +from arkindex.project.tests import FixtureAPITestCase +from arkindex_common.ml_tool import MLToolType class TestBulkClassification(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_bulk_element_transcriptions.py b/arkindex/documents/tests/test_bulk_element_transcriptions.py index 94f66aad33c783b9dc76f58881729142098f0df5..a7b94ec6404bb72ece4849e0989679cb5c7dd41c 100644 --- a/arkindex/documents/tests/test_bulk_element_transcriptions.py +++ b/arkindex/documents/tests/test_bulk_element_transcriptions.py @@ -1,14 +1,16 @@ -from django.urls import reverse -from django.test import override_settings -from django.db.models import Count +import uuid from unittest.mock import patch + +from django.db.models import Count +from django.test import override_settings +from django.urls import reverse from mock import AsyncMock from rest_framework import status + +from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Corpus, Element from arkindex.project.tests import FixtureAPITestCase from arkindex_common.enums import TranscriptionType -from arkindex.dataimport.models import WorkerVersion -from arkindex.documents.models import Element, Corpus -import uuid class TestBulkElementTranscriptions(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_bulk_elements.py b/arkindex/documents/tests/test_bulk_elements.py index 935e6b375957ad117e5eb9e25b4f2a3580a34334..9d552e2f7ec1ac4521232b211425982e9d8aaf9b 100644 --- a/arkindex/documents/tests/test_bulk_elements.py +++ b/arkindex/documents/tests/test_bulk_elements.py @@ -1,8 +1,9 @@ from django.urls import reverse from rest_framework import status -from arkindex.project.tests import FixtureAPITestCase -from arkindex.documents.models import Element, ElementPath + from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Element, ElementPath +from arkindex.project.tests import FixtureAPITestCase class TestBulkElements(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_bulk_transcriptions.py b/arkindex/documents/tests/test_bulk_transcriptions.py index 12cb09e2b5175e8d211731c22621be6a7e0c95e0..6d371961127acdca386369e53cce217145749096 100644 --- a/arkindex/documents/tests/test_bulk_transcriptions.py +++ b/arkindex/documents/tests/test_bulk_transcriptions.py @@ -1,8 +1,9 @@ from django.urls import reverse from rest_framework import status -from arkindex_common.enums import TranscriptionType -from arkindex.project.tests import FixtureAPITestCase + from arkindex.dataimport.models import WorkerVersion +from arkindex.project.tests import FixtureAPITestCase +from arkindex_common.enums import TranscriptionType class TestBulkTranscriptions(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_children_elements.py b/arkindex/documents/tests/test_children_elements.py index f46f6faeec64a92bb7c80c43317a931156937814..e78f7a002885642f939cebd711c2b15ca3b6045e 100644 --- a/arkindex/documents/tests/test_children_elements.py +++ b/arkindex/documents/tests/test_children_elements.py @@ -1,9 +1,11 @@ +import uuid + from django.urls import reverse from rest_framework import status -from arkindex.documents.models import Element + from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Element from arkindex.project.tests import FixtureAPITestCase -import uuid class TestChildrenElements(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_classes.py b/arkindex/documents/tests/test_classes.py index a6c2dfa5ea5ab0bade5a8a1be100598bb0a12545..6136b229d95de1e481cfca84914113ea2492a671 100644 --- a/arkindex/documents/tests/test_classes.py +++ b/arkindex/documents/tests/test_classes.py @@ -1,10 +1,10 @@ -from django.urls import reverse from django.test import override_settings +from django.urls import reverse from rest_framework import status -from arkindex.documents.models import \ - Corpus, Element, Classification, ClassificationState, DataSource, MLClass -from arkindex_common.ml_tool import MLToolType + +from arkindex.documents.models import Classification, ClassificationState, Corpus, DataSource, Element, MLClass from arkindex.project.tests import FixtureAPITestCase +from arkindex_common.ml_tool import MLToolType class TestClasses(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_corpus.py b/arkindex/documents/tests/test_corpus.py index f46df8feb0d0725726e25ae427be00902775a4fb..b816b02bd7c55a42a4b49d6869b8986dceb660e9 100644 --- a/arkindex/documents/tests/test_corpus.py +++ b/arkindex/documents/tests/test_corpus.py @@ -1,15 +1,16 @@ -from mock import AsyncMock +import datetime from unittest.mock import patch + +import mock from django.contrib.auth.models import AnonymousUser from django.db.models import Model, ProtectedError from django.urls import reverse +from mock import AsyncMock from rest_framework import status from arkindex.documents.models import Corpus, Element, Right from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES from arkindex.project.tests import FixtureAPITestCase -import datetime -import mock FAKE_NOW = datetime.datetime.now() # Fake DB fixtures creation date diff --git a/arkindex/documents/tests/test_corpus_authorized_users.py b/arkindex/documents/tests/test_corpus_authorized_users.py index 6d7ae7e261e63f40f1497d7a848678256aafa0a6..a0efc0799d1ab96997d5856656025e584af55114 100644 --- a/arkindex/documents/tests/test_corpus_authorized_users.py +++ b/arkindex/documents/tests/test_corpus_authorized_users.py @@ -2,8 +2,8 @@ from django.urls import reverse from rest_framework import status from arkindex.documents.models import Corpus -from arkindex.users.models import User from arkindex.project.tests import FixtureAPITestCase +from arkindex.users.models import User class TestCorpusAuthorizedUsers(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_corpus_elements.py b/arkindex/documents/tests/test_corpus_elements.py index 2a348376fff5294d6d1ad2e78919a92107b63a4a..36b44551a865d0e2130462ef83c86405673289ca 100644 --- a/arkindex/documents/tests/test_corpus_elements.py +++ b/arkindex/documents/tests/test_corpus_elements.py @@ -1,10 +1,12 @@ -from django.urls import reverse +import uuid + from django.db.models.sql.constants import LOUTER +from django.urls import reverse from rest_framework import status -from arkindex.documents.models import Corpus + from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Corpus from arkindex.project.tests import FixtureAPITestCase -import uuid class TestListElements(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_create_elements.py b/arkindex/documents/tests/test_create_elements.py index 232ce91875cb9852b4d2f10cd6274b2278aa97f3..607bbfbcb5409084bf54fdce845a251593a5c904 100644 --- a/arkindex/documents/tests/test_create_elements.py +++ b/arkindex/documents/tests/test_create_elements.py @@ -1,7 +1,8 @@ from django.urls import reverse from rest_framework import status + from arkindex.dataimport.models import WorkerVersion -from arkindex.documents.models import Element, Corpus +from arkindex.documents.models import Corpus, Element from arkindex.images.models import ImageServer from arkindex.project.aws import S3FileStatus from arkindex.project.tests import FixtureAPITestCase diff --git a/arkindex/documents/tests/test_create_transcriptions.py b/arkindex/documents/tests/test_create_transcriptions.py index f3415b7063d5b0b72646971a64def664ae180b57..80570f247072ee817616772f0a9ce359384e90c5 100644 --- a/arkindex/documents/tests/test_create_transcriptions.py +++ b/arkindex/documents/tests/test_create_transcriptions.py @@ -1,15 +1,17 @@ -from django.urls import reverse -from django.test import override_settings from unittest.mock import patch +from uuid import uuid4 + +from django.test import override_settings +from django.urls import reverse from mock import AsyncMock from rest_framework import status + +from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Corpus, DataSource, Transcription from arkindex.project.tests import FixtureAPITestCase +from arkindex.users.models import User from arkindex_common.enums import TranscriptionType from arkindex_common.ml_tool import MLToolType -from arkindex.dataimport.models import WorkerVersion -from arkindex.documents.models import Corpus, Transcription, DataSource -from arkindex.users.models import User -from uuid import uuid4 class TestTranscriptionCreate(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_datasource.py b/arkindex/documents/tests/test_datasource.py index b82c315706d6cb53491ec096462c45c24a06af33..2730d7ccaac076e894e3dd093f832b5fd61cf3c9 100644 --- a/arkindex/documents/tests/test_datasource.py +++ b/arkindex/documents/tests/test_datasource.py @@ -1,6 +1,7 @@ from django.test import TestCase -from arkindex_common.ml_tool import MLToolType + from arkindex.documents.models import DataSource +from arkindex_common.ml_tool import MLToolType class TestDataSource(TestCase): diff --git a/arkindex/documents/tests/test_date_parser.py b/arkindex/documents/tests/test_date_parser.py index e4f2fdd5b628a20d7cf7ea751146c1c029908aed..cf148a8b3dbe2e6856c7a6e4b4713033961a5009 100644 --- a/arkindex/documents/tests/test_date_parser.py +++ b/arkindex/documents/tests/test_date_parser.py @@ -1,10 +1,18 @@ from unittest.mock import patch + +from django.test import TestCase + from arkindex.documents.date_parser import ( - parse_date, instanciate_date, year, year_month, year_month_day, - year_month_str, year_year, DATE_FUNCTIONS_TABLE, + DATE_FUNCTIONS_TABLE, + instanciate_date, + parse_date, + year, + year_month, + year_month_day, + year_month_str, + year_year, ) from arkindex.documents.dates import DateType, InterpretedDate -from django.test import TestCase class TestDateParser(TestCase): diff --git a/arkindex/documents/tests/test_destroy_elements.py b/arkindex/documents/tests/test_destroy_elements.py index 4ead708b083b25d1cc482e2ccc4acd196939ab1a..a4e43612a333dc5913c37b2d426419b1b30828da 100644 --- a/arkindex/documents/tests/test_destroy_elements.py +++ b/arkindex/documents/tests/test_destroy_elements.py @@ -1,5 +1,6 @@ from django.urls import reverse from rest_framework import status + from arkindex.documents.models import Corpus from arkindex.project.tests import FixtureAPITestCase diff --git a/arkindex/documents/tests/test_edit_elementpath.py b/arkindex/documents/tests/test_edit_elementpath.py index ae344749efe803f5b88974f03eed6671a37d2781..1c1ea24019fe3ca94f8538bb61916f4539c3e9ba 100644 --- a/arkindex/documents/tests/test_edit_elementpath.py +++ b/arkindex/documents/tests/test_edit_elementpath.py @@ -1,7 +1,8 @@ +import itertools + +from arkindex.documents.models import Element, ElementPath from arkindex.project.tests import FixtureTestCase from arkindex.project.tools import build_tree -from arkindex.documents.models import ElementPath, Element -import itertools class TestEditElementPath(FixtureTestCase): diff --git a/arkindex/documents/tests/test_edit_transcriptions.py b/arkindex/documents/tests/test_edit_transcriptions.py index d2f0678a06712a10a25de1f7f20d3799d868fee2..acd17b370b8fc3213450f28804de9c38ec7a9ecd 100644 --- a/arkindex/documents/tests/test_edit_transcriptions.py +++ b/arkindex/documents/tests/test_edit_transcriptions.py @@ -1,11 +1,13 @@ +from uuid import uuid4 + from django.urls import reverse from rest_framework import status + +from arkindex.documents.models import Corpus, DataSource, Element, Transcription from arkindex.project.tests import FixtureAPITestCase -from arkindex_common.enums import TranscriptionType -from arkindex.documents.models import Corpus, Element, Transcription, DataSource from arkindex.users.models import User +from arkindex_common.enums import TranscriptionType from arkindex_common.ml_tool import MLToolType -from uuid import uuid4 class TestEditTranscription(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_element_manager.py b/arkindex/documents/tests/test_element_manager.py index 85ef5adfebed50864d8a0a9ee0fac9f2cb8ea344..4c2908c6a7cf20a7cd8008a49c683551dab49969 100644 --- a/arkindex/documents/tests/test_element_manager.py +++ b/arkindex/documents/tests/test_element_manager.py @@ -1,5 +1,5 @@ -from arkindex.project.tests import FixtureTestCase from arkindex.documents.models import Element +from arkindex.project.tests import FixtureTestCase class TestElementManager(FixtureTestCase): diff --git a/arkindex/documents/tests/test_element_paths_api.py b/arkindex/documents/tests/test_element_paths_api.py index 6957cb0a3f871647d6a949017115019099ce5be6..3df661dc6d6477417133e8923a3945df6ad2db3b 100644 --- a/arkindex/documents/tests/test_element_paths_api.py +++ b/arkindex/documents/tests/test_element_paths_api.py @@ -1,6 +1,7 @@ from django.urls import reverse from rest_framework import status -from arkindex.documents.models import Corpus, ElementPath, Element + +from arkindex.documents.models import Corpus, Element, ElementPath from arkindex.project.aws import S3FileStatus from arkindex.project.tests import FixtureAPITestCase diff --git a/arkindex/documents/tests/test_element_type.py b/arkindex/documents/tests/test_element_type.py index 08e1c4acde92415bbcef0bf99d4b1ef1ce2d81de..e756e189e25315334c3a7830d260967d93bb4804 100644 --- a/arkindex/documents/tests/test_element_type.py +++ b/arkindex/documents/tests/test_element_type.py @@ -1,7 +1,8 @@ from django.urls import reverse from rest_framework import status + +from arkindex.documents.models import Corpus, ElementType from arkindex.project.tests import FixtureAPITestCase -from arkindex.documents.models import ElementType, Corpus from arkindex.users.models import User diff --git a/arkindex/documents/tests/test_entities.py b/arkindex/documents/tests/test_entities.py index bd8d6ab61230131cf32476d1c77280a9dd4993c9..ba6efbf003e9a86aac35d59d6a2b57f4a7e7e53a 100644 --- a/arkindex/documents/tests/test_entities.py +++ b/arkindex/documents/tests/test_entities.py @@ -1,8 +1,8 @@ from django.core.exceptions import ValidationError -from arkindex_common.enums import MetaType, EntityType -from arkindex.documents.models import \ - Corpus, Entity, EntityRole, EntityLink, MetaData, DataSource, MLToolType + +from arkindex.documents.models import Corpus, DataSource, Entity, EntityLink, EntityRole, MetaData, MLToolType from arkindex.project.tests import FixtureTestCase +from arkindex_common.enums import EntityType, MetaType class TestSaveEntities(FixtureTestCase): diff --git a/arkindex/documents/tests/test_entities_api.py b/arkindex/documents/tests/test_entities_api.py index b6e201e63a416ad39efeff54091ba853f4d29a8d..e081c5ce3c9f382597c2225915e4815a04784fd7 100644 --- a/arkindex/documents/tests/test_entities_api.py +++ b/arkindex/documents/tests/test_entities_api.py @@ -1,17 +1,27 @@ -from django.urls import reverse +import uuid +from unittest.mock import Mock, call, patch + +from django.contrib.gis.geos import LinearRing from django.test import override_settings -from unittest.mock import Mock, patch, call +from django.urls import reverse +from elasticsearch.exceptions import NotFoundError from rest_framework import status -from arkindex_common.enums import MetaType -from arkindex.project.tests import FixtureAPITestCase + from arkindex.dataimport.models import WorkerVersion -from django.contrib.gis.geos import LinearRing from arkindex.documents.models import ( - Corpus, Element, TranscriptionType, DataSource, MLToolType, - Entity, EntityType, EntityRole, EntityLink, TranscriptionEntity, + Corpus, + DataSource, + Element, + Entity, + EntityLink, + EntityRole, + EntityType, + MLToolType, + TranscriptionEntity, + TranscriptionType, ) -from elasticsearch.exceptions import NotFoundError -import uuid +from arkindex.project.tests import FixtureAPITestCase +from arkindex_common.enums import MetaType # Mock channels asynchronous triggered tasks diff --git a/arkindex/documents/tests/test_indexer.py b/arkindex/documents/tests/test_indexer.py index 1697c269327a7e41c6a1cdc06420650060bc3296..52a7d9a9a25be7670b7650d94ad30673814b2920 100644 --- a/arkindex/documents/tests/test_indexer.py +++ b/arkindex/documents/tests/test_indexer.py @@ -1,10 +1,12 @@ -from unittest.mock import patch, call, MagicMock +from unittest.mock import MagicMock, call, patch + from elasticsearch import Elasticsearch from elasticsearch.exceptions import NotFoundError -from arkindex_common.enums import EntityType -from arkindex.project.tests import FixtureTestCase + from arkindex.documents.indexer import Indexer from arkindex.documents.models import DataSource, MLToolType +from arkindex.project.tests import FixtureTestCase +from arkindex_common.enums import EntityType class TestIndexer(FixtureTestCase): diff --git a/arkindex/documents/tests/test_interpreted_date.py b/arkindex/documents/tests/test_interpreted_date.py index 8314bb385166abdbcc87e958a16b751dde7b97c5..df3b490095ea741b1d0dc6f79236b659e4bb4174 100644 --- a/arkindex/documents/tests/test_interpreted_date.py +++ b/arkindex/documents/tests/test_interpreted_date.py @@ -1,6 +1,7 @@ from django.test import TestCase -from arkindex.documents.dates import DateType, InterpretedDate + from arkindex.documents.date_parser import parse_date +from arkindex.documents.dates import DateType, InterpretedDate class TestInterpretedDate(TestCase): diff --git a/arkindex/documents/tests/test_manifest.py b/arkindex/documents/tests/test_manifest.py index ca6133ccac592ada4fb26a8fbbc8a92d1f530db8..659e5d351767a4fa2ad29ada75a8baa61a7316a6 100644 --- a/arkindex/documents/tests/test_manifest.py +++ b/arkindex/documents/tests/test_manifest.py @@ -1,12 +1,13 @@ -from django.urls import reverse from django.core.cache import cache from django.test import override_settings +from django.urls import reverse from rest_framework import status from tripoli import IIIFValidator -from arkindex_common.ml_tool import MLToolType -from arkindex_common.enums import MetaType + +from arkindex.documents.models import DataSource, Element from arkindex.project.tests import FixtureAPITestCase -from arkindex.documents.models import Element, DataSource +from arkindex_common.enums import MetaType +from arkindex_common.ml_tool import MLToolType class TestFolderManifestSerializer(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_metadata.py b/arkindex/documents/tests/test_metadata.py index 57d4d05e64c3107fcf17981301a867bf28f182dc..9212a3bbe2b1429c790f8a3dfc18450d661d1938 100644 --- a/arkindex/documents/tests/test_metadata.py +++ b/arkindex/documents/tests/test_metadata.py @@ -1,12 +1,14 @@ -from arkindex.documents.models import Corpus, MetaData, AllowedMetaData, DataSource +from unittest.mock import call, patch + +from django.test import override_settings +from django.urls import reverse +from rest_framework import status + +from arkindex.documents.models import AllowedMetaData, Corpus, DataSource, MetaData from arkindex.project.tests import FixtureAPITestCase -from arkindex_common.enums import MetaType, EntityType -from arkindex_common.ml_tool import MLToolType from arkindex.users.models import User -from rest_framework import status -from django.urls import reverse -from django.test import override_settings -from unittest.mock import patch, call +from arkindex_common.enums import EntityType, MetaType +from arkindex_common.ml_tool import MLToolType class TestMetaData(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_ml_results.py b/arkindex/documents/tests/test_ml_results.py index fa8ddd48c8c181407c65653e0179c291339f4ca0..d16776edf1058b170573ae569108a6ec17ff534f 100644 --- a/arkindex/documents/tests/test_ml_results.py +++ b/arkindex/documents/tests/test_ml_results.py @@ -1,10 +1,12 @@ -from mock import AsyncMock from unittest.mock import patch + from django.urls import reverse +from mock import AsyncMock from rest_framework import status -from arkindex_common.enums import MetaType, EntityType + +from arkindex.documents.models import DataSource, Entity, Transcription from arkindex.project.tests import FixtureTestCase -from arkindex.documents.models import DataSource, Transcription, Entity +from arkindex_common.enums import EntityType, MetaType class TestMLResults(FixtureTestCase): diff --git a/arkindex/documents/tests/test_moderation.py b/arkindex/documents/tests/test_moderation.py index e991bc80135822935b04a3f4fe9f0ccd4415e1b8..ead4c224667cd96c632bc050fb662f9b5d7e6cea 100644 --- a/arkindex/documents/tests/test_moderation.py +++ b/arkindex/documents/tests/test_moderation.py @@ -3,8 +3,15 @@ from django.urls import reverse from rest_framework import status from arkindex.dataimport.models import WorkerVersion -from arkindex.documents.models import \ - ClassificationState, DataSource, MLClass, Element, Corpus, Classification, MLToolType +from arkindex.documents.models import ( + Classification, + ClassificationState, + Corpus, + DataSource, + Element, + MLClass, + MLToolType, +) from arkindex.project.tests import FixtureAPITestCase from arkindex.users.models import User diff --git a/arkindex/documents/tests/test_neighbors.py b/arkindex/documents/tests/test_neighbors.py index 1949e1ccafaa7ba405a6d506d27fd6a231ebd666..59cd2322cdc674ca15ff6022e5bbbe0b81171b38 100644 --- a/arkindex/documents/tests/test_neighbors.py +++ b/arkindex/documents/tests/test_neighbors.py @@ -1,9 +1,10 @@ -from django.urls import reverse from django.db.models import F +from django.urls import reverse from rest_framework import status + +from arkindex.documents.models import Element, ElementPath from arkindex.project.tests import FixtureAPITestCase from arkindex.project.tools import build_tree -from arkindex.documents.models import Element, ElementPath class TestElementNeighbors(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_parents_elements.py b/arkindex/documents/tests/test_parents_elements.py index b3f3a5e5b521960ee25f68cd417a85ce4e223317..6ad84a8a1861ca99e505cedc2ff0cfdd8c989f88 100644 --- a/arkindex/documents/tests/test_parents_elements.py +++ b/arkindex/documents/tests/test_parents_elements.py @@ -1,10 +1,12 @@ +import uuid + from django.urls import reverse from rest_framework import status -from arkindex_common.ml_tool import MLToolType -from arkindex.documents.models import Element, DataSource, Corpus + from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Corpus, DataSource, Element from arkindex.project.tests import FixtureAPITestCase -import uuid +from arkindex_common.ml_tool import MLToolType class TestParentsElements(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_patch_elements.py b/arkindex/documents/tests/test_patch_elements.py index 5ad5ea1f7d1823dffa98cbc4700f1626b5a71726..0f89d059c3736cccc011b716a69c31f50d9e5f1d 100644 --- a/arkindex/documents/tests/test_patch_elements.py +++ b/arkindex/documents/tests/test_patch_elements.py @@ -1,13 +1,13 @@ from django.urls import reverse from rest_framework import status -from arkindex_common.ml_tool import MLToolType -from arkindex_common.enums import TranscriptionType -from arkindex.documents.models import \ - Element, DataSource, Corpus + +from arkindex.documents.models import Corpus, DataSource, Element from arkindex.images.models import ImageServer from arkindex.project.aws import S3FileStatus from arkindex.project.tests import FixtureAPITestCase from arkindex.users.models import User +from arkindex_common.enums import TranscriptionType +from arkindex_common.ml_tool import MLToolType class TestPatchElements(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_retrieve_elements.py b/arkindex/documents/tests/test_retrieve_elements.py index 3d7baaef445c7a8e637a120e3f4e0bc524ebcf3e..aae92d1a9945d9f0e75e22eda8995ff8f3658c28 100644 --- a/arkindex/documents/tests/test_retrieve_elements.py +++ b/arkindex/documents/tests/test_retrieve_elements.py @@ -1,10 +1,10 @@ from django.urls import reverse from rest_framework import status -from arkindex_common.enums import MetaType, EntityType -from arkindex_common.ml_tool import MLToolType -from arkindex.documents.models import \ - DataSource, Corpus, Entity, MLClass, Classification, Element + +from arkindex.documents.models import Classification, Corpus, DataSource, Element, Entity, MLClass from arkindex.project.tests import FixtureAPITestCase +from arkindex_common.enums import EntityType, MetaType +from arkindex_common.ml_tool import MLToolType class TestRetrieveElements(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_search.py b/arkindex/documents/tests/test_search.py index 26839b442a56988da09828f9745555876d87f860..dd001a2ef4398a43b9755dd4555a0dffe1c2b52a 100644 --- a/arkindex/documents/tests/test_search.py +++ b/arkindex/documents/tests/test_search.py @@ -1,13 +1,15 @@ +import uuid from unittest.mock import MagicMock + from django.contrib.auth.models import AnonymousUser from django.urls import reverse -from rest_framework import status from elasticsearch_dsl.connections import connections -from arkindex_common.enums import EntityType, MetaType -from arkindex.project.tests import FixtureAPITestCase +from rest_framework import status + +from arkindex.documents.models import Corpus, DataSource, Element, MLToolType, Transcription from arkindex.project.elastic import ESTranscription -from arkindex.documents.models import Transcription, Element, Corpus, DataSource, MLToolType -import uuid +from arkindex.project.tests import FixtureAPITestCase +from arkindex_common.enums import EntityType, MetaType class TestSearchAPI(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_search_api.py b/arkindex/documents/tests/test_search_api.py index 6345304c03294e5df671c7fd316ad663a611083b..a0dab458ea2835169fcbbd98cc65b3ebb7bd7336 100644 --- a/arkindex/documents/tests/test_search_api.py +++ b/arkindex/documents/tests/test_search_api.py @@ -1,10 +1,12 @@ from unittest.mock import patch -from django.urls import reverse + from django.contrib.auth.models import AnonymousUser from django.test import override_settings +from django.urls import reverse from rest_framework import status -from arkindex.project.tests import FixtureAPITestCase + from arkindex.documents.models import Corpus, Element +from arkindex.project.tests import FixtureAPITestCase class TestSearchApi(FixtureAPITestCase): diff --git a/arkindex/documents/tests/test_selection_api.py b/arkindex/documents/tests/test_selection_api.py index a3c18a0fbe492896ad8d634f360b2481e528a259..eadc93f9c20a87048cce8471bb1628cda65b98bf 100644 --- a/arkindex/documents/tests/test_selection_api.py +++ b/arkindex/documents/tests/test_selection_api.py @@ -1,6 +1,7 @@ from django.test import override_settings from django.urls import reverse from rest_framework import status + from arkindex.documents.models import Corpus, Element from arkindex.project.tests import FixtureAPITestCase from arkindex.users.models import User diff --git a/arkindex/documents/tests/test_transcriptions.py b/arkindex/documents/tests/test_transcriptions.py index e1d08bc7e2a6801ca55e0b7a2f7d94e4535438c2..45ab00b5b441a4b95939c695bf8d23c1fcfe3be2 100644 --- a/arkindex/documents/tests/test_transcriptions.py +++ b/arkindex/documents/tests/test_transcriptions.py @@ -1,11 +1,12 @@ from django.urls import reverse from rest_framework import status + +from arkindex.dataimport.models import WorkerVersion +from arkindex.documents.models import Corpus, DataSource from arkindex.project.tests import FixtureAPITestCase +from arkindex.users.models import User from arkindex_common.enums import TranscriptionType from arkindex_common.ml_tool import MLToolType -from arkindex.documents.models import Corpus, DataSource -from arkindex.dataimport.models import WorkerVersion -from arkindex.users.models import User class TestTranscriptions(FixtureAPITestCase): diff --git a/arkindex/images/admin.py b/arkindex/images/admin.py index 69d491dfe6195d4525887e0cd8886153d5d610d4..213d09ed4a59500f48c8a29dff66312f0409f595 100644 --- a/arkindex/images/admin.py +++ b/arkindex/images/admin.py @@ -1,9 +1,10 @@ from django.contrib import admin from django.urls import path -from arkindex.images.models import ImageServer, Image -from arkindex.images.views import ImageServerMergeView, ImageServerSplitView from enumfields.admin import EnumFieldListFilter +from arkindex.images.models import Image, ImageServer +from arkindex.images.views import ImageServerMergeView, ImageServerSplitView + class ImageServerAdmin(admin.ModelAdmin): list_display = ('display_name', 'url', 'validated') diff --git a/arkindex/images/api.py b/arkindex/images/api.py index 89ee53ab19f6515b1d7e99f7cce7837ae40e94b6..38ccf38a65154cf730b8b02afe21e58d79b74224 100644 --- a/arkindex/images/api.py +++ b/arkindex/images/api.py @@ -1,15 +1,20 @@ from django.db.models import Q from rest_framework import status -from rest_framework.generics import ListAPIView, CreateAPIView, RetrieveUpdateAPIView +from rest_framework.generics import CreateAPIView, ListAPIView, RetrieveUpdateAPIView from rest_framework.response import Response from rest_framework.serializers import ValidationError -from arkindex.project.aws import S3FileStatus -from arkindex.project.permissions import IsVerified + +from arkindex.documents.models import Corpus, Element from arkindex.documents.serializers.elements import ElementSlimSerializer -from arkindex.documents.models import Element, Corpus from arkindex.images.models import Image -from arkindex.images.serializers import \ - ImageSerializer, IIIFImageSerializer, ImageInformationSerializer, ImageUploadSerializer +from arkindex.images.serializers import ( + IIIFImageSerializer, + ImageInformationSerializer, + ImageSerializer, + ImageUploadSerializer, +) +from arkindex.project.aws import S3FileStatus +from arkindex.project.permissions import IsVerified from arkindex.users.models import Scope diff --git a/arkindex/images/management/commands/check_images.py b/arkindex/images/management/commands/check_images.py index f0f13aa459d75e2b77ee579998a433830c81ff54..a2be73a1cf45e49124fed89be79ce0f7ef041b97 100644 --- a/arkindex/images/management/commands/check_images.py +++ b/arkindex/images/management/commands/check_images.py @@ -1,9 +1,11 @@ -from django.core.management.base import BaseCommand, CommandError +import logging + from django.conf import settings +from django.core.management.base import BaseCommand, CommandError + +from arkindex.images.models import Image, ImageServer from arkindex.project.argparse import CorpusArgument, ElementArgument from arkindex.project.aws import S3FileStatus -from arkindex.images.models import ImageServer, Image -import logging logging.basicConfig( level=logging.INFO, diff --git a/arkindex/images/management/commands/deduplicate_zones.py b/arkindex/images/management/commands/deduplicate_zones.py index ede6c2aa16223968eae522f680b7a245090ac60b..b260534834f56ae7627e452df07cd9b06e11f1a1 100644 --- a/arkindex/images/management/commands/deduplicate_zones.py +++ b/arkindex/images/management/commands/deduplicate_zones.py @@ -1,5 +1,6 @@ from django.core.management.base import BaseCommand from django.db import connections, transaction + from arkindex_common.tools import Timer diff --git a/arkindex/images/migrations/0001_initial.py b/arkindex/images/migrations/0001_initial.py index 26965253d5556f3b1a093dc5907d6dd8a8440c40..383cecc5ad9d789d8417aab689fcb9731cd3c12f 100644 --- a/arkindex/images/migrations/0001_initial.py +++ b/arkindex/images/migrations/0001_initial.py @@ -1,11 +1,13 @@ # Generated by Django 2.2.9 on 2020-01-17 15:39 -import arkindex.project.aws -import arkindex.project.fields -from django.db import migrations, models +import uuid + import django.db.models.deletion import enumfields.fields -import uuid +from django.db import migrations, models + +import arkindex.project.aws +import arkindex.project.fields POLYGON_HASH_FORWARD_SQL = """ ALTER TABLE images_zone diff --git a/arkindex/images/migrations/0002_checked_dimensions.py b/arkindex/images/migrations/0002_checked_dimensions.py index 2c5633b0755ecb260535e9f5f21bc4597b2872b1..cca62ee91a3346028ecaa9ebcec1c5ae301bbfed 100644 --- a/arkindex/images/migrations/0002_checked_dimensions.py +++ b/arkindex/images/migrations/0002_checked_dimensions.py @@ -1,8 +1,9 @@ # Generated by Django 2.2.10 on 2020-05-13 15:17 -import arkindex.project.aws from django.db import migrations, models +import arkindex.project.aws + class Migration(migrations.Migration): diff --git a/arkindex/images/migrations/0004_polygon_postgis.py b/arkindex/images/migrations/0004_polygon_postgis.py index e2f38c687c8476ec45dce62d6292caac46188415..611952623cd1405d2052362e490b18624702c53a 100644 --- a/arkindex/images/migrations/0004_polygon_postgis.py +++ b/arkindex/images/migrations/0004_polygon_postgis.py @@ -1,10 +1,11 @@ # Generated by Django 2.2.13 on 2020-07-29 12:24 -from django.db import migrations from django.contrib.postgres.operations import CreateExtension +from django.db import migrations + +from arkindex.images.models import POLYGON_MAX_MEM_SIZE from arkindex.project.fields import LinearRingField from arkindex.project.gis import SimplifyPreserveTopology -from arkindex.images.models import POLYGON_MAX_MEM_SIZE POLYGON_HASH_FORWARD_SQL = """ DROP INDEX IF EXISTS zone_unique_image_polygon; diff --git a/arkindex/images/migrations/0005_polygon_index.py b/arkindex/images/migrations/0005_polygon_index.py index 9cd2b46f703c88aae14433e80b69747862e162a7..d1bbd3bd709799973bdfd33ddc687bf6f3494d7f 100644 --- a/arkindex/images/migrations/0005_polygon_index.py +++ b/arkindex/images/migrations/0005_polygon_index.py @@ -1,7 +1,8 @@ # Generated by Django 2.2.13 on 2020-07-30 13:54 -from django.db import migrations, models from django.contrib.gis.db.models.functions import SnapToGrid +from django.db import migrations, models + from arkindex.images.models import POLYGON_MAX_MEM_SIZE diff --git a/arkindex/images/models.py b/arkindex/images/models.py index 84661d312bdc65c38f312aad4911342e2a2dd9a1..b66f923aac51c907c22b21c2138ee309f9095e0b 100644 --- a/arkindex/images/models.py +++ b/arkindex/images/models.py @@ -1,22 +1,24 @@ +import logging +import os +import urllib.parse +from json import JSONDecodeError + +import requests from django.conf import settings -from django.core.validators import URLValidator -from django.core.exceptions import ValidationError from django.contrib.gis.db.models.functions import Scale, SnapToGrid +from django.core.exceptions import ValidationError +from django.core.validators import URLValidator from django.db import models from django.db.models.functions import Concat, Substr from django.utils.functional import cached_property from django.utils.text import slugify from enumfields import EnumField -from json import JSONDecodeError + from arkindex.images.managers import ImageServerManager from arkindex.project.aws import S3FileMixin, S3FileStatus -from arkindex.project.fields import StripSlashURLField, LStripTextField, MD5HashField, LinearRingField +from arkindex.project.fields import LinearRingField, LStripTextField, MD5HashField, StripSlashURLField from arkindex.project.models import IndexableModel from arkindex.project.tools import bounding_box -import logging -import os -import requests -import urllib.parse # Maximum allowed memory size of a polygon. # This restriction is caused by B-Tree indexes: they are stored in "database pages" of 8192KB each. diff --git a/arkindex/images/serializers.py b/arkindex/images/serializers.py index 60cf04785a731920b81c58a0741108b37f713dd3..326e86e6e305dc8d11a81dbdbcf2a5f45171d1fe 100644 --- a/arkindex/images/serializers.py +++ b/arkindex/images/serializers.py @@ -1,12 +1,14 @@ -from arkindex.project.serializer_fields import LinearRingField, EnumField, IIIFPathField -from arkindex.images.models import ImageServer, Image, Zone -from arkindex.project.aws import S3FileStatus -from requests.exceptions import RequestException -from rest_framework.exceptions import ValidationError, APIException -from rest_framework import serializers import re import uuid +from requests.exceptions import RequestException +from rest_framework import serializers +from rest_framework.exceptions import APIException, ValidationError + +from arkindex.images.models import Image, ImageServer, Zone +from arkindex.project.aws import S3FileStatus +from arkindex.project.serializer_fields import EnumField, IIIFPathField, LinearRingField + class ImageServerSerializer(serializers.ModelSerializer): class Meta: diff --git a/arkindex/images/tests/test_admin.py b/arkindex/images/tests/test_admin.py index f33313eb31e96cc1bb93e80e300cfd65cc38156c..c522cefa11c9892c966baa1c311e67d1cd645cc1 100644 --- a/arkindex/images/tests/test_admin.py +++ b/arkindex/images/tests/test_admin.py @@ -1,7 +1,8 @@ from django.urls import reverse from rest_framework import status -from arkindex.project.tests import FixtureTestCase + from arkindex.images.models import ImageServer +from arkindex.project.tests import FixtureTestCase class TestCustomAdminViews(FixtureTestCase): diff --git a/arkindex/images/tests/test_check_images.py b/arkindex/images/tests/test_check_images.py index 84c2f33ae53817fdcfc718829e85d7389f6186b0..f6a4a20d402dcc1f3a9246b89cdc1291603b60f9 100644 --- a/arkindex/images/tests/test_check_images.py +++ b/arkindex/images/tests/test_check_images.py @@ -1,8 +1,10 @@ -from arkindex.project.tests import FixtureTestCase -from arkindex.project.aws import S3FileStatus +from unittest.mock import patch + from django.core.management import call_command from django.core.management.base import CommandError -from unittest.mock import patch + +from arkindex.project.aws import S3FileStatus +from arkindex.project.tests import FixtureTestCase class TestCheckImages(FixtureTestCase): diff --git a/arkindex/images/tests/test_image.py b/arkindex/images/tests/test_image.py index 669997c6e82c179e4ec99c65fce6b0359455abf1..2f6b8b7fb17fb692fe597ee6cd083cdfff604328 100644 --- a/arkindex/images/tests/test_image.py +++ b/arkindex/images/tests/test_image.py @@ -1,9 +1,11 @@ -from unittest.mock import patch, call, MagicMock -from django.test import override_settings +from unittest.mock import MagicMock, call, patch + from botocore.exceptions import ClientError -from arkindex.project.tests import FixtureTestCase -from arkindex.project.aws import S3FileStatus +from django.test import override_settings + from arkindex.images.models import ImageServer +from arkindex.project.aws import S3FileStatus +from arkindex.project.tests import FixtureTestCase @override_settings(LOCAL_IMAGESERVER_ID=1, AWS_REGION=None) diff --git a/arkindex/images/tests/test_image_api.py b/arkindex/images/tests/test_image_api.py index 2cace6d16acb06cdae3fa93602afb7414ea3a6fd..e3321c0c0af45ca936090d36dd2f15ca95aa8233 100644 --- a/arkindex/images/tests/test_image_api.py +++ b/arkindex/images/tests/test_image_api.py @@ -1,13 +1,15 @@ +import random +from unittest.mock import call, patch + +import responses +from django.test import override_settings +from django.urls import reverse +from rest_framework import status + +from arkindex.images.models import Image, ImageServer from arkindex.project.aws import S3FileStatus from arkindex.project.tests import FixtureAPITestCase -from arkindex.images.models import Image, ImageServer from arkindex.users.models import Scope -from rest_framework import status -from django.test import override_settings -from django.urls import reverse -from unittest.mock import patch, call -import random -import responses class ImageMethods: diff --git a/arkindex/images/tests/test_image_elements.py b/arkindex/images/tests/test_image_elements.py index 1aeb63f8276a26a93dbf2c96ab50a1d707aa8987..94de6dbb1a7e464cb78eefed606631227f5bd7dc 100644 --- a/arkindex/images/tests/test_image_elements.py +++ b/arkindex/images/tests/test_image_elements.py @@ -1,5 +1,6 @@ from django.urls import reverse from rest_framework import status + from arkindex.project.tests import FixtureTestCase diff --git a/arkindex/images/tests/test_imageserver.py b/arkindex/images/tests/test_imageserver.py index f2f1addd9a3b32f31f257e5a99a4dc9fc96f672e..83aa6afa1f2508ebebc57cf24eefd29994243951 100644 --- a/arkindex/images/tests/test_imageserver.py +++ b/arkindex/images/tests/test_imageserver.py @@ -1,7 +1,8 @@ -from django.test import TestCase from django.db import IntegrityError -from arkindex.images.models import ImageServer +from django.test import TestCase + from arkindex.images.managers import ImageServerManager +from arkindex.images.models import ImageServer class TestImageServer(TestCase): diff --git a/arkindex/images/tests/test_perform_check.py b/arkindex/images/tests/test_perform_check.py index 5a933aaa9465fa555234f86a2b79fc755b36dec5..27beab081c70ad05d1fd83cb84c1ac6ba3483dbc 100644 --- a/arkindex/images/tests/test_perform_check.py +++ b/arkindex/images/tests/test_perform_check.py @@ -1,9 +1,11 @@ -from unittest.mock import patch, call +from unittest.mock import call, patch + +import requests +import responses from django.contrib.gis.geos import LinearRing + from arkindex.project.aws import S3FileStatus from arkindex.project.tests import FixtureTestCase -import requests -import responses class TestImagePerformCheck(FixtureTestCase): diff --git a/arkindex/images/tests/test_thumbnail.py b/arkindex/images/tests/test_thumbnail.py index 1ba75758c30c3f0339b81533f93a7dffd4f42676..98547348676c85f78d9764b6e5b5de44f230e91e 100644 --- a/arkindex/images/tests/test_thumbnail.py +++ b/arkindex/images/tests/test_thumbnail.py @@ -1,7 +1,9 @@ -from arkindex.project.tests import FixtureTestCase -from unittest.mock import patch, call +from unittest.mock import call, patch + from django.test import override_settings +from arkindex.project.tests import FixtureTestCase + @override_settings(LOCAL_IMAGESERVER_ID=999, IIIF_DOWNLOAD_TIMEOUT=(13, 37)) class TestThumbnail(FixtureTestCase): diff --git a/arkindex/images/tests/test_zone.py b/arkindex/images/tests/test_zone.py index da3e8a9b428d8327ce1dbb33553d16e47fa40e3c..822cf2a36a22a918b520e1ad78e5ca55aed1d032 100644 --- a/arkindex/images/tests/test_zone.py +++ b/arkindex/images/tests/test_zone.py @@ -1,4 +1,5 @@ from django.db import IntegrityError + from arkindex.project.tests import FixtureTestCase diff --git a/arkindex/images/views.py b/arkindex/images/views.py index ecbda126d7f74defc7edbb318a6c6a645cc18cf2..6715f4e82c3c6a5f02e21207567c9394aae0c13f 100644 --- a/arkindex/images/views.py +++ b/arkindex/images/views.py @@ -1,8 +1,9 @@ -from django.views.generic import FormView from django.contrib import messages from django.urls import reverse -from arkindex.images.models import ImageServer +from django.views.generic import FormView + from arkindex.images.forms import ImageServerMergeForm, ImageServerSplitForm +from arkindex.images.models import ImageServer class ImageServerAdminView(FormView): diff --git a/arkindex/project/api_v1.py b/arkindex/project/api_v1.py index 25a7b3cfa9738c6115ca7dfefb400f77313fba9b..9ad8c723eefed23c5587799366de786b4a733b6d 100644 --- a/arkindex/project/api_v1.py +++ b/arkindex/project/api_v1.py @@ -1,40 +1,101 @@ +from django.conf import settings from django.urls import path -from django.views.generic.base import RedirectView from django.views.decorators.cache import cache_page -from django.conf import settings +from django.views.generic.base import RedirectView from rest_framework.schemas import get_schema_view -from arkindex.project.openapi import SchemaGenerator -from arkindex.documents.api.elements import ( - CorpusElements, ElementsCreate, ElementBulkCreate, ElementRetrieve, ElementTranscriptions, ElementNeighbors, - ElementParent, ElementParents, ElementChildren, ElementMetadata, MetadataEdit, ManageSelection, - CorpusList, CorpusRetrieve, CorpusAllowedMetaData, ElementTypeCreate, ElementTypeUpdate, DeprecatedElementsList +from arkindex.dataimport.api import ( + AvailableRepositoriesList, + CorpusWorkflow, + DataFileCreate, + DataFileList, + DataFileRetrieve, + DataFileUpload, + DataImportDetails, + DataImportElements, + DataImportFromFiles, + DataImportRetry, + DataImportsList, + GitRepositoryImportHook, + ImportTranskribus, + ListProcessElements, + MLToolList, + RepositoryList, + RepositoryRetrieve, + RevisionRetrieve, + StartProcess, + WorkerList, + WorkerRetrieve, + WorkerRunDetails, + WorkerRunList, + WorkerVersionList, + WorkerVersionRetrieve, ) -from arkindex.documents.api.search import ElementSearch, EntitySearch -from arkindex.documents.api.ml import ( - ClassificationCreate, ClassificationValidate, ClassificationReject, ClassificationBulk, ElementTranscriptionsBulk, - TranscriptionCreate, TranscriptionBulk, ElementMLStats, CorpusMLStats, - ManageClassificationsSelection, MLClassList, CorpusMLClassList, TranscriptionEdit +from arkindex.documents.api.admin import ReindexStart +from arkindex.documents.api.elements import ( + CorpusAllowedMetaData, + CorpusElements, + CorpusList, + CorpusRetrieve, + DeprecatedElementsList, + ElementBulkCreate, + ElementChildren, + ElementMetadata, + ElementNeighbors, + ElementParent, + ElementParents, + ElementRetrieve, + ElementsCreate, + ElementTranscriptions, + ElementTypeCreate, + ElementTypeUpdate, + ManageSelection, + MetadataEdit, ) from arkindex.documents.api.entities import ( - CorpusRoles, EntityDetails, EntityCreate, EntityLinkCreate, EntityElements, - TranscriptionEntityCreate, TranscriptionEntities, ElementEntities, ElementLinks + CorpusRoles, + ElementEntities, + ElementLinks, + EntityCreate, + EntityDetails, + EntityElements, + EntityLinkCreate, + TranscriptionEntities, + TranscriptionEntityCreate, ) -from arkindex.documents.api.iiif import FolderManifest, ElementAnnotationList, TranscriptionSearchAnnotationList -from arkindex.documents.api.admin import ReindexStart -from arkindex.dataimport.api import ( - DataImportsList, DataImportDetails, DataImportRetry, StartProcess, DataImportElements, - DataFileList, DataFileRetrieve, DataFileUpload, DataImportFromFiles, - RepositoryList, RepositoryRetrieve, DataFileCreate, - GitRepositoryImportHook, AvailableRepositoriesList, RevisionRetrieve, - MLToolList, CorpusWorkflow, WorkerList, WorkerVersionList, WorkerVersionRetrieve, - WorkerRunList, WorkerRunDetails, ImportTranskribus, WorkerRetrieve, ListProcessElements +from arkindex.documents.api.iiif import ElementAnnotationList, FolderManifest, TranscriptionSearchAnnotationList +from arkindex.documents.api.ml import ( + ClassificationBulk, + ClassificationCreate, + ClassificationReject, + ClassificationValidate, + CorpusMLClassList, + CorpusMLStats, + ElementMLStats, + ElementTranscriptionsBulk, + ManageClassificationsSelection, + MLClassList, + TranscriptionBulk, + TranscriptionCreate, + TranscriptionEdit, ) -from arkindex.images.api import ImageCreate, IIIFURLCreate, IIIFInformationCreate, ImageRetrieve, ImageElements +from arkindex.documents.api.search import ElementSearch, EntitySearch +from arkindex.images.api import IIIFInformationCreate, IIIFURLCreate, ImageCreate, ImageElements, ImageRetrieve +from arkindex.project.openapi import SchemaGenerator from arkindex.users.api import ( - ProvidersList, CredentialsList, CredentialsRetrieve, OAuthSignIn, OAuthRetry, OAuthCallback, - UserRetrieve, UserCreate, UserEmailLogin, UserEmailVerification, PasswordReset, PasswordResetConfirm, - UpdateUserTranskribus + CredentialsList, + CredentialsRetrieve, + OAuthCallback, + OAuthRetry, + OAuthSignIn, + PasswordReset, + PasswordResetConfirm, + ProvidersList, + UpdateUserTranskribus, + UserCreate, + UserEmailLogin, + UserEmailVerification, + UserRetrieve, ) # Cache the OpenAPI schema view for a day diff --git a/arkindex/project/argparse.py b/arkindex/project/argparse.py index 8c096cb3220f6fa320f818821d5a7c5af72b760f..a05f27f255589a5d9ef26bec02775257cc6eb470 100644 --- a/arkindex/project/argparse.py +++ b/arkindex/project/argparse.py @@ -1,8 +1,9 @@ -from django.db.models import Model from django.core.exceptions import ValidationError from django.core.management.base import CommandError -from arkindex.documents.models import Corpus, Element +from django.db.models import Model + from arkindex.dataimport.models import DataImport, Repository +from arkindex.documents.models import Corpus, Element class ModelArgument(object): diff --git a/arkindex/project/asgi.py b/arkindex/project/asgi.py index 1935930d65662d5050d88f19fd9ea1532ddb6daa..a188f2de8559daea020d4060d5d78d783489c860 100644 --- a/arkindex/project/asgi.py +++ b/arkindex/project/asgi.py @@ -4,6 +4,7 @@ defined in the ASGI_APPLICATION setting. """ import os + import django from channels.routing import get_default_application from sentry_sdk.integrations.asgi import SentryAsgiMiddleware diff --git a/arkindex/project/aws.py b/arkindex/project/aws.py index 2e293084d0cb1919e40ac91f7ef9c0f9f434b304..245d8fb18d4ba5da4f73025c41735f284373e53b 100644 --- a/arkindex/project/aws.py +++ b/arkindex/project/aws.py @@ -1,12 +1,13 @@ -from django.conf import settings +import logging +from io import BytesIO + +import boto3.session from botocore.config import Config from botocore.exceptions import BotoCoreError, ClientError +from django.conf import settings from django.utils.functional import cached_property from enumfields import Enum from tenacity import retry, retry_if_exception, stop_after_delay -from io import BytesIO -import boto3.session -import logging logger = logging.getLogger(__name__) diff --git a/arkindex/project/checks.py b/arkindex/project/checks.py index 805c1eb05b4892cab69f329effcd076dd159f08f..c45297d03f94aa7874583d2ec199659e0171af3e 100644 --- a/arkindex/project/checks.py +++ b/arkindex/project/checks.py @@ -1,8 +1,10 @@ -from django.core.checks import register, Warning, Error -from ponos.recipe import parse_recipe import os.path import subprocess + import yaml +from django.core.checks import Error, Warning, register + +from ponos.recipe import parse_recipe def only_runserver(func): diff --git a/arkindex/project/config.py b/arkindex/project/config.py index 741710eaadb14823a6d5c77828060fdc12035eb5..ef5c64863107a57d232ae05860a3fbff034f8660 100644 --- a/arkindex/project/config.py +++ b/arkindex/project/config.py @@ -1,7 +1,8 @@ -from arkindex_common.config_parser import dir_path, ConfigParser, ConfigurationError from enum import Enum from pathlib import Path +from arkindex_common.config_parser import ConfigParser, ConfigurationError, dir_path + class CacheType(Enum): Redis = 'redis' diff --git a/arkindex/project/default_corpus.py b/arkindex/project/default_corpus.py index 0f47677f99a4504406e4f837eb426addc5397b39..fa0cc889d2b638717bbb2ae8362040b8f2e9ff2f 100644 --- a/arkindex/project/default_corpus.py +++ b/arkindex/project/default_corpus.py @@ -1,7 +1,6 @@ # Default corpus attributes from arkindex_common.enums import TranscriptionType - # If you edit default types, please update 'DEFAULT_CORPUS_ATTRS' config value in the frontend (at js/config.js) DEFAULT_CORPUS_TYPES = [ { diff --git a/arkindex/project/elastic.py b/arkindex/project/elastic.py index b92db343c83548843061d91ca4c15936936069d9..f5bb37c2f3b07cab74fd1e440c9130362ab25626 100644 --- a/arkindex/project/elastic.py +++ b/arkindex/project/elastic.py @@ -1,10 +1,12 @@ -from arkindex_common.enums import MetaType from collections.abc import Sequence from itertools import chain + from django.conf import settings -from elasticsearch_dsl import Document, InnerDoc, Mapping, Text, Float, Keyword, Nested, Date, DateRange, Search +from elasticsearch_dsl import Date, DateRange, Document, Float, InnerDoc, Keyword, Mapping, Nested, Search, Text from elasticsearch_dsl.connections import connections +from arkindex_common.enums import MetaType + connections.create_connection(hosts=settings.ELASTIC_SEARCH_HOSTS) diff --git a/arkindex/project/fields.py b/arkindex/project/fields.py index e4065e4ad595cd26ba7e8a5a7471b3e995727762..1303a10dea324d66f2fad879f4c40505137768e4 100644 --- a/arkindex/project/fields.py +++ b/arkindex/project/fields.py @@ -1,11 +1,13 @@ -from django.contrib.postgres import fields -from django.contrib.gis.geos import GEOSGeometry, LinearRing +import re + from django.contrib.gis.db.models import LineStringField from django.contrib.gis.db.models.proxy import SpatialProxy -from django.db.models import Transform, URLField, TextField, CharField, Func +from django.contrib.gis.geos import GEOSGeometry, LinearRing +from django.contrib.postgres import fields from django.core.validators import RegexValidator +from django.db.models import CharField, Func, TextField, Transform, URLField + from arkindex.project.gis import ensure_linear_ring -import re class MD5HashField(CharField): diff --git a/arkindex/project/filters.py b/arkindex/project/filters.py index 3a3f7245f16a21fed7b3174fcd1477c68b023171..c3c8e69f969ec325985e9effc29d510fe9467853 100644 --- a/arkindex/project/filters.py +++ b/arkindex/project/filters.py @@ -1,6 +1,6 @@ from django.conf import settings -from rest_framework.filters import SearchFilter from rest_framework.exceptions import ValidationError +from rest_framework.filters import SearchFilter class SafeSearchFilter(SearchFilter): diff --git a/arkindex/project/gis.py b/arkindex/project/gis.py index 5e5de4e0732fcf5990981ea885391baf2da6dcca..ce8f872f60018bb4f97e047420021a6f45ce8605 100644 --- a/arkindex/project/gis.py +++ b/arkindex/project/gis.py @@ -1,10 +1,12 @@ from collections.abc import Iterable from itertools import groupby -from django.contrib.gis.geos import GEOSGeometry, LineString, Polygon + from django.contrib.gis.db.models.fields import BaseSpatialField, LineStringField -from django.contrib.gis.db.models.functions import GeoFuncMixin, GeomOutputGeoFunc, MemSize as MemSizeFunc +from django.contrib.gis.db.models.functions import GeoFuncMixin, GeomOutputGeoFunc +from django.contrib.gis.db.models.functions import MemSize as MemSizeFunc from django.contrib.gis.db.models.lookups import EqualsLookup -from django.db.models import Transform, BooleanField +from django.contrib.gis.geos import GEOSGeometry, LineString, Polygon +from django.db.models import BooleanField, Transform def ensure_linear_ring(value): diff --git a/arkindex/project/mixins.py b/arkindex/project/mixins.py index 94c5d0b982285a4338402bba2ce1aa0179ba5815..9cdd5994f48f8683ead73650d5bfa16854c1814f 100644 --- a/arkindex/project/mixins.py +++ b/arkindex/project/mixins.py @@ -1,9 +1,10 @@ -from django.shortcuts import get_object_or_404 from django.conf import settings from django.core.exceptions import PermissionDenied +from django.shortcuts import get_object_or_404 from django.views.decorators.cache import cache_page from rest_framework.exceptions import APIException, ValidationError from rest_framework.serializers import Serializer + from arkindex.documents.models import Corpus, Right from arkindex.documents.serializers.search import SearchQuerySerializer from arkindex.project.elastic import ESQuerySet diff --git a/arkindex/project/models.py b/arkindex/project/models.py index f02672ba3ffde1e78bde19c23fb6f1876e6cd7e4..4d3709b24b854f58b709e20d9c2f47ca884e775c 100644 --- a/arkindex/project/models.py +++ b/arkindex/project/models.py @@ -1,6 +1,7 @@ -from django.db import models import uuid +from django.db import models + class IndexableModel(models.Model): id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False) diff --git a/arkindex/project/openapi/__init__.py b/arkindex/project/openapi/__init__.py index 389596710e549ffbec362b7c541ad3e78b10801a..594bca8ae0d2853f4a7071c49e3ad666a0a5a19d 100644 --- a/arkindex/project/openapi/__init__.py +++ b/arkindex/project/openapi/__init__.py @@ -1,2 +1,2 @@ -from arkindex.project.openapi.schemas import AutoSchema, SearchAutoSchema # noqa: F401 from arkindex.project.openapi.generators import SchemaGenerator # noqa: F401 +from arkindex.project.openapi.schemas import AutoSchema, SearchAutoSchema # noqa: F401 diff --git a/arkindex/project/openapi/generators.py b/arkindex/project/openapi/generators.py index fa4f1ed7be22ddf31816488f2d3e385274a97bfc..1b0402280729410164c1d2d547412d4b43c439ed 100644 --- a/arkindex/project/openapi/generators.py +++ b/arkindex/project/openapi/generators.py @@ -1,7 +1,8 @@ from pathlib import Path -from rest_framework.schemas.openapi import SchemaGenerator as BaseSchemaGenerator + import yaml from django.conf import settings +from rest_framework.schemas.openapi import SchemaGenerator as BaseSchemaGenerator PATCH_FILE = Path(__file__).absolute().parent / 'patch.yml' diff --git a/arkindex/project/openapi/schemas.py b/arkindex/project/openapi/schemas.py index 0c5b04720eb9338c3a03300ad8f04896dec76634..ae8c9c3e0c5d816fa4a92da39f49f8d10d007def 100644 --- a/arkindex/project/openapi/schemas.py +++ b/arkindex/project/openapi/schemas.py @@ -1,6 +1,7 @@ +import warnings from enum import Enum + from rest_framework.schemas.openapi import AutoSchema as BaseAutoSchema -import warnings class AutoSchema(BaseAutoSchema): diff --git a/arkindex/project/pagination.py b/arkindex/project/pagination.py index 14929b2baeb0cf4d265e46e0b7d9325cded3e3cd..68c696a5988ccadfc48d138f968873225a126684 100644 --- a/arkindex/project/pagination.py +++ b/arkindex/project/pagination.py @@ -1,4 +1,5 @@ from collections import OrderedDict + from rest_framework import pagination from rest_framework.response import Response diff --git a/arkindex/project/routing.py b/arkindex/project/routing.py index 4fd1c1d76bf9242b6f227e49017b7923442461fd..841bcbba29ae83860273de3c29dec91a73bbed70 100644 --- a/arkindex/project/routing.py +++ b/arkindex/project/routing.py @@ -1,8 +1,9 @@ from channels.auth import AuthMiddlewareStack -from channels.routing import ProtocolTypeRouter, URLRouter, ChannelNameRouter +from channels.routing import ChannelNameRouter, ProtocolTypeRouter, URLRouter from channels.security.websocket import AllowedHostsOriginValidator -from arkindex.project.triggers import REINDEX_CHANNEL, ML_RESULTS_CHANNEL, CORPUS_CHANNEL -from arkindex.documents.consumers import ReindexConsumer, MLResultsConsumer, CorpusConsumer + +from arkindex.documents.consumers import CorpusConsumer, MLResultsConsumer, ReindexConsumer +from arkindex.project.triggers import CORPUS_CHANNEL, ML_RESULTS_CHANNEL, REINDEX_CHANNEL application = ProtocolTypeRouter({ 'websocket': AllowedHostsOriginValidator( diff --git a/arkindex/project/serializer_fields.py b/arkindex/project/serializer_fields.py index 4199a71d5a0a83b810e13dad92cf5ac12f6c2892..c2409d620cab90d23be5d3f774bcb394bf386faa 100644 --- a/arkindex/project/serializer_fields.py +++ b/arkindex/project/serializer_fields.py @@ -1,8 +1,10 @@ -from django.contrib.gis.geos import Point -from rest_framework import serializers from enum import Enum -from uuid import UUID from urllib.parse import quote, unquote +from uuid import UUID + +from django.contrib.gis.geos import Point +from rest_framework import serializers + from arkindex.project.gis import ensure_linear_ring diff --git a/arkindex/project/settings.py b/arkindex/project/settings.py index 70d60dd8a2333138a71b6792513031c303258041..17898cf5dfe657b38cf1323bc1b45ec400ed7157 100644 --- a/arkindex/project/settings.py +++ b/arkindex/project/settings.py @@ -13,10 +13,12 @@ https://docs.djangoproject.com/en/1.11/ref/settings/ import os import sys import warnings -from corsheaders.defaults import default_headers from datetime import timedelta from pathlib import Path -from arkindex.project.config import get_settings_parser, CacheType + +from corsheaders.defaults import default_headers + +from arkindex.project.config import CacheType, get_settings_parser # Build paths inside the project like this: BASE_DIR / ... _base_dir = os.environ.get('BASE_DIR') diff --git a/arkindex/project/tests/__init__.py b/arkindex/project/tests/__init__.py index 26beee4bfd08817c03fcec5409b6ee4b31d1fab3..4f676e1da83c1e9c19c5626f5787b3847289fb23 100644 --- a/arkindex/project/tests/__init__.py +++ b/arkindex/project/tests/__init__.py @@ -1,6 +1,7 @@ from django.test import TestCase from django.utils.functional import cached_property from rest_framework.test import APITestCase + from arkindex.documents.models import Corpus from arkindex.images.models import ImageServer from arkindex.users.models import User diff --git a/arkindex/project/tests/openapi/test_generators.py b/arkindex/project/tests/openapi/test_generators.py index 873220084fa14ae9ea624dc36f075a44a783939b..46b40f9be4ca03836f9d7469c83fdcade8dacfc7 100644 --- a/arkindex/project/tests/openapi/test_generators.py +++ b/arkindex/project/tests/openapi/test_generators.py @@ -1,8 +1,10 @@ from unittest import TestCase from unittest.mock import patch -from arkindex.project.openapi import SchemaGenerator + from django.test import override_settings +from arkindex.project.openapi import SchemaGenerator + class TestSchemaGenerator(TestCase): diff --git a/arkindex/project/tests/openapi/test_schemas.py b/arkindex/project/tests/openapi/test_schemas.py index bd682401b283074892928a1b3d7a56a3436b7e51..dc34385c80e49ac577e62072ecac45cba885ed9a 100644 --- a/arkindex/project/tests/openapi/test_schemas.py +++ b/arkindex/project/tests/openapi/test_schemas.py @@ -1,13 +1,15 @@ +import warnings from unittest import TestCase + from django.test import RequestFactory from rest_framework import serializers from rest_framework.request import Request from rest_framework.views import APIView -from arkindex.project.serializer_fields import EnumField -from arkindex.project.openapi import AutoSchema, SchemaGenerator + from arkindex.project.mixins import DeprecatedAutoSchema +from arkindex.project.openapi import AutoSchema, SchemaGenerator +from arkindex.project.serializer_fields import EnumField from arkindex_common.enums import DataImportMode -import warnings # Helper methods taken straight from the DRF test suite diff --git a/arkindex/project/tests/openapi/test_view.py b/arkindex/project/tests/openapi/test_view.py index 8060fd626383d1ae536d1ab879341770b6fdbe46..cc26bf2ba749721192a205c406fdef733bfa6443 100644 --- a/arkindex/project/tests/openapi/test_view.py +++ b/arkindex/project/tests/openapi/test_view.py @@ -1,9 +1,11 @@ -from arkindex.project.tests import FixtureAPITestCase from io import StringIO + from django.core.management import call_command from django.urls import reverse from rest_framework import status +from arkindex.project.tests import FixtureAPITestCase + class TestSchemaView(FixtureAPITestCase): diff --git a/arkindex/project/tests/test_argparse.py b/arkindex/project/tests/test_argparse.py index 56ec4bc71ec2b2948869be7beeaf4f61d9b0782f..20fefbec77bba5539434fe5b3d86fe1384ec4fbc 100644 --- a/arkindex/project/tests/test_argparse.py +++ b/arkindex/project/tests/test_argparse.py @@ -1,7 +1,8 @@ from django.core.management.base import CommandError -from arkindex.project.tests import FixtureTestCase -from arkindex.project.argparse import CorpusArgument, ElementArgument + from arkindex.documents.models import Element +from arkindex.project.argparse import CorpusArgument, ElementArgument +from arkindex.project.tests import FixtureTestCase class TestArgparseHelpers(FixtureTestCase): diff --git a/arkindex/project/tests/test_aws_mixin.py b/arkindex/project/tests/test_aws_mixin.py index e8c8afa95e66354310f358783c0f3833a70da292..a357fc7be101ec6c75b3cae03eb3be57ee2fa078 100644 --- a/arkindex/project/tests/test_aws_mixin.py +++ b/arkindex/project/tests/test_aws_mixin.py @@ -1,8 +1,10 @@ +import importlib from unittest import TestCase +from unittest.mock import MagicMock, patch + from django.test import override_settings -from unittest.mock import patch, MagicMock + from arkindex.project import aws -import importlib AWS_SETTINGS = { 'AWS_ACCESS_KEY': 'golden_key', diff --git a/arkindex/project/tests/test_checks.py b/arkindex/project/tests/test_checks.py index 78dc4690bc6f1a7b02ff396a47017b5bc6d79497..c1a249e2977a7152fd850bf8d7ac00a437aae2d4 100644 --- a/arkindex/project/tests/test_checks.py +++ b/arkindex/project/tests/test_checks.py @@ -1,11 +1,12 @@ -from unittest.mock import patch, call -from django.test import TestCase, override_settings -from django.conf import settings -from django.urls import path -from django.core.checks import Error, Warning +import subprocess from pathlib import Path from subprocess import CalledProcessError -import subprocess +from unittest.mock import call, patch + +from django.conf import settings +from django.core.checks import Error, Warning +from django.test import TestCase, override_settings +from django.urls import path @override_settings(ALL_CHECKS=True) diff --git a/arkindex/project/tests/test_config.py b/arkindex/project/tests/test_config.py index 355f507446c50c7916b3e00ab8c10fec4d511013..cf5030d106d96e32314faac80029befb9593c491 100644 --- a/arkindex/project/tests/test_config.py +++ b/arkindex/project/tests/test_config.py @@ -1,12 +1,14 @@ -from unittest import TestCase -from unittest.mock import patch from enum import Enum from io import StringIO from pathlib import Path -from arkindex_common.config_parser import ConfigurationError, ConfigParser -from arkindex.project.config import get_settings_parser +from unittest import TestCase +from unittest.mock import patch + import yaml +from arkindex.project.config import get_settings_parser +from arkindex_common.config_parser import ConfigParser, ConfigurationError + SAMPLES = Path(__file__).resolve().parent / 'config_samples' diff --git a/arkindex/project/tests/test_drf_linear_ring_field.py b/arkindex/project/tests/test_drf_linear_ring_field.py index 3a33b5a6b9c5db753ca5775c17c53017170f30e8..91c1dbe65055e40b2a484818bf1ec0945b88d41f 100644 --- a/arkindex/project/tests/test_drf_linear_ring_field.py +++ b/arkindex/project/tests/test_drf_linear_ring_field.py @@ -1,8 +1,10 @@ from unittest import TestCase -from django.contrib.gis.geos import Point, LinearRing -from arkindex.project.serializer_fields import PointField, LinearRingField + +from django.contrib.gis.geos import LinearRing, Point from rest_framework.serializers import ValidationError +from arkindex.project.serializer_fields import LinearRingField, PointField + class TestLinearRingSerializerField(TestCase): diff --git a/arkindex/project/tests/test_elastic.py b/arkindex/project/tests/test_elastic.py index 9f38e1d749192e63b1ad9727f6676f05111c23ff..4407d5866ef687126f6eb1c45796e928c399c070 100644 --- a/arkindex/project/tests/test_elastic.py +++ b/arkindex/project/tests/test_elastic.py @@ -1,10 +1,11 @@ from unittest.mock import patch + +from arkindex.documents.dates import DateType, InterpretedDate +from arkindex.documents.models import DataSource +from arkindex.project.elastic import ESElement +from arkindex.project.tests import FixtureAPITestCase from arkindex_common.enums import MetaType, TranscriptionType from arkindex_common.ml_tool import MLToolType -from arkindex.project.tests import FixtureAPITestCase -from arkindex.project.elastic import ESElement -from arkindex.documents.models import DataSource -from arkindex.documents.dates import DateType, InterpretedDate class TestESDocuments(FixtureAPITestCase): diff --git a/arkindex/project/tests/test_gis.py b/arkindex/project/tests/test_gis.py index 1d3a1962d5704d243cc1245c88646462278f51cf..04f9486aec3b89bddeb6f64f563a3f9e25cd9088 100644 --- a/arkindex/project/tests/test_gis.py +++ b/arkindex/project/tests/test_gis.py @@ -1,8 +1,9 @@ +from django.contrib.gis.geos import LinearRing, LineString, Point from psycopg2 import Binary -from django.contrib.gis.geos import Point, LineString, LinearRing -from arkindex.project.tests import FixtureTestCase -from arkindex.project.gis import ensure_linear_ring + from arkindex.images.models import Zone +from arkindex.project.gis import ensure_linear_ring +from arkindex.project.tests import FixtureTestCase class TestGis(FixtureTestCase): diff --git a/arkindex/project/tests/test_ponos_view.py b/arkindex/project/tests/test_ponos_view.py index 7205e7427f9f6f3baf97b6af0eada6bbef16d542..28e66f133fc5728fa69c7888b300325ffb4eb978 100644 --- a/arkindex/project/tests/test_ponos_view.py +++ b/arkindex/project/tests/test_ponos_view.py @@ -1,10 +1,12 @@ +import tempfile +from unittest.mock import patch + from django.test import TestCase, override_settings from django.urls import reverse from rest_framework import status + from arkindex.users.models import User from ponos.models import Secret, encrypt -from unittest.mock import patch -import tempfile @override_settings(PONOS_PRIVATE_KEY='staging') diff --git a/arkindex/project/tools.py b/arkindex/project/tools.py index 144153e5041e1023b7a02240ba90fecebfcad003..cefd52d86fe410c0e6186bc4a6cf9fad1587347f 100644 --- a/arkindex/project/tools.py +++ b/arkindex/project/tools.py @@ -1,5 +1,7 @@ -from collections.abc import Sized, Iterable +from collections.abc import Iterable, Sized + from django.urls import reverse + from arkindex.documents.models import Element diff --git a/arkindex/project/triggers.py b/arkindex/project/triggers.py index b326db6a7ed6ccd6e3bbc118d5e8c81a8a40c62b..2b69e9a92137665cdec9eaca5995c3635c46b47f 100644 --- a/arkindex/project/triggers.py +++ b/arkindex/project/triggers.py @@ -3,10 +3,12 @@ Helper methods to trigger tasks in asynchronous workers """ from typing import Union from uuid import UUID + from asgiref.sync import async_to_sync from channels.layers import get_channel_layer from django.conf import settings -from arkindex.documents.models import Element, Corpus, Entity + +from arkindex.documents.models import Corpus, Element, Entity REINDEX_CHANNEL = 'reindex' ML_RESULTS_CHANNEL = 'ml_results' diff --git a/arkindex/project/urls.py b/arkindex/project/urls.py index 323122cfecf0fc9c103ba477d677035667e822d9..3bae5bdfff655dbb457d738262091ed5d54c8c3f 100644 --- a/arkindex/project/urls.py +++ b/arkindex/project/urls.py @@ -1,9 +1,10 @@ -from django.urls import path, include, re_path from django.conf import settings from django.contrib import admin from django.contrib.staticfiles.urls import staticfiles_urlpatterns +from django.urls import include, path, re_path + from arkindex.project.api_v1 import api -from arkindex.project.views import FrontendView, CdnHome, OpenAPIDocsView, PonosSecretDetails +from arkindex.project.views import CdnHome, FrontendView, OpenAPIDocsView, PonosSecretDetails # Fallback to the dummy frontend view when CDN_ASSETS_URL is not set frontend_view = FrontendView if settings.CDN_ASSETS_URL is None else CdnHome diff --git a/arkindex/project/views.py b/arkindex/project/views.py index 12bd2baff75f0769e1f388e04f7c3467239291fe..384c5596b5a8c49220cbe14431eb481bede9b94c 100644 --- a/arkindex/project/views.py +++ b/arkindex/project/views.py @@ -1,7 +1,8 @@ -from django.views.generic import View, TemplateView from django.conf import settings -from arkindex.project.mixins import CachedViewMixin +from django.views.generic import TemplateView, View from rest_framework import permissions + +from arkindex.project.mixins import CachedViewMixin from ponos.api import SecretDetails diff --git a/arkindex/users/admin.py b/arkindex/users/admin.py index d01704db6feca473ffe3b98946c86c7c3edcf4ae..0b240e09f57f794fb960ce29dd2f947860bfa1af 100644 --- a/arkindex/users/admin.py +++ b/arkindex/users/admin.py @@ -1,11 +1,11 @@ from django import forms from django.contrib import admin -from django.contrib.auth.models import Group from django.contrib.auth.admin import UserAdmin as BaseUserAdmin from django.contrib.auth.forms import ReadOnlyPasswordHashField +from django.contrib.auth.models import Group from enumfields.admin import EnumFieldListFilter -from arkindex.users.models import User, CorpusRight, UserScope +from arkindex.users.models import CorpusRight, User, UserScope class UserCreationForm(forms.ModelForm): diff --git a/arkindex/users/api.py b/arkindex/users/api.py index 252b1a6d4eb9ff1dcab967957a57e01f0e9d061d..516d6f4eb7a493e1844472f1f3544136bcf67ac6 100644 --- a/arkindex/users/api.py +++ b/arkindex/users/api.py @@ -1,31 +1,44 @@ -from django.urls import reverse -from django.core.mail import send_mail +import logging +import urllib.parse + from django.conf import settings from django.contrib.auth import login, logout -from django.contrib.auth.tokens import default_token_generator -from django.contrib.auth.mixins import UserPassesTestMixin from django.contrib.auth.forms import PasswordResetForm -from django.views.generic import RedirectView +from django.contrib.auth.mixins import UserPassesTestMixin +from django.contrib.auth.tokens import default_token_generator +from django.core.mail import send_mail from django.template.loader import render_to_string +from django.urls import reverse from django.utils.http import urlsafe_base64_encode +from django.views.generic import RedirectView from rest_framework import status -from rest_framework.views import APIView -from rest_framework.generics import \ - ListAPIView, RetrieveAPIView, RetrieveDestroyAPIView, RetrieveUpdateDestroyAPIView, CreateAPIView, UpdateAPIView +from rest_framework.exceptions import AuthenticationFailed, PermissionDenied, ValidationError +from rest_framework.generics import ( + CreateAPIView, + ListAPIView, + RetrieveAPIView, + RetrieveDestroyAPIView, + RetrieveUpdateDestroyAPIView, + UpdateAPIView, +) from rest_framework.response import Response -from rest_framework.exceptions import AuthenticationFailed, ValidationError, PermissionDenied -from arkindex.project.permissions import IsAuthenticatedOrReadOnly, IsVerified +from rest_framework.views import APIView + from arkindex.documents.models import Corpus -from arkindex.users.providers import oauth_providers, get_provider -from arkindex.users.models import User, OAuthStatus, UserScope, Scope +from arkindex.project.permissions import IsAuthenticatedOrReadOnly, IsVerified +from arkindex.users.models import OAuthStatus, Scope, User, UserScope +from arkindex.users.providers import get_provider, oauth_providers from arkindex.users.serializers import ( - OAuthCredentialsSerializer, OAuthProviderClassSerializer, OAuthRetrySerializer, - UserSerializer, NewUserSerializer, EmailLoginSerializer, - PasswordResetSerializer, PasswordResetConfirmSerializer, - UpdateUserTranskribusSerializer + EmailLoginSerializer, + NewUserSerializer, + OAuthCredentialsSerializer, + OAuthProviderClassSerializer, + OAuthRetrySerializer, + PasswordResetConfirmSerializer, + PasswordResetSerializer, + UpdateUserTranskribusSerializer, + UserSerializer, ) -import urllib.parse -import logging logger = logging.getLogger(__name__) diff --git a/arkindex/users/migrations/0001_initial.py b/arkindex/users/migrations/0001_initial.py index 12b91880531661c9e93b54972515a77002fe3d6e..f376013b9cc186767d0a97539de9f9e3414fb111 100644 --- a/arkindex/users/migrations/0001_initial.py +++ b/arkindex/users/migrations/0001_initial.py @@ -1,11 +1,13 @@ # Generated by Django 2.2.9 on 2020-01-17 15:39 -import arkindex.users.models -from django.conf import settings -from django.db import migrations, models +import uuid + import django.db.models.deletion import enumfields.fields -import uuid +from django.conf import settings +from django.db import migrations, models + +import arkindex.users.models def create_internal_group(apps, schema_editor): diff --git a/arkindex/users/migrations/0002_userscope.py b/arkindex/users/migrations/0002_userscope.py index 09e37d18b2984c143d4fee21cf3dea1a556d3652..d5cd0afdfa2b4ae7b875357954d920503ca50c36 100644 --- a/arkindex/users/migrations/0002_userscope.py +++ b/arkindex/users/migrations/0002_userscope.py @@ -1,10 +1,11 @@ # Generated by Django 2.2.10 on 2020-04-30 10:56 -from arkindex.users.models import Scope -from django.conf import settings -from django.db import migrations, models import django.db.models.deletion import enumfields.fields +from django.conf import settings +from django.db import migrations, models + +from arkindex.users.models import Scope def add_scopes(apps, schema_editor): diff --git a/arkindex/users/migrations/0004_internal_bool.py b/arkindex/users/migrations/0004_internal_bool.py index 05d297e04123c2b27aaafadf8328021b26c90208..d9b9495ee72537bf14f3053c06eca65ccef4b552 100644 --- a/arkindex/users/migrations/0004_internal_bool.py +++ b/arkindex/users/migrations/0004_internal_bool.py @@ -1,7 +1,7 @@ # Generated by Django 2.2.13 on 2020-07-21 08:00 -from django.db import migrations, models from django.conf import settings +from django.db import migrations, models def group_to_bool(apps, schema_editor): diff --git a/arkindex/users/models.py b/arkindex/users/models.py index f4b1f7409c4b774f460280294582c078b62da1e1..dd01d6d03c35ddd3584bc881a6f934985fbd16d9 100644 --- a/arkindex/users/models.py +++ b/arkindex/users/models.py @@ -1,9 +1,11 @@ -from django.db import models +import uuid + from django.contrib.auth.models import AbstractBaseUser, Group +from django.db import models +from enumfields import Enum, EnumField + from arkindex.users.managers import UserManager -from arkindex.users.providers import oauth_providers, get_provider -from enumfields import EnumField, Enum -import uuid +from arkindex.users.providers import get_provider, oauth_providers class User(AbstractBaseUser): diff --git a/arkindex/users/providers.py b/arkindex/users/providers.py index 2929f21297c5c9f6d105d41a2a0ca5f478244d94..6bfbfc895abc8c66732d4c8435a8d91474b95059 100644 --- a/arkindex/users/providers.py +++ b/arkindex/users/providers.py @@ -1,11 +1,12 @@ +import datetime +import urllib.parse from abc import ABC, abstractmethod + +import requests from django.conf import settings from django.urls import reverse -from rest_framework.exceptions import NotAuthenticated from gitlab import Gitlab, GitlabError -import urllib.parse -import datetime -import requests +from rest_framework.exceptions import NotAuthenticated class OAuthProvider(ABC): diff --git a/arkindex/users/serializers.py b/arkindex/users/serializers.py index 860616e07ed0ff7c0ed62ec632935c354035e8fa..1eaf15817cd3062fb3b544786ad57178e1b15c38 100644 --- a/arkindex/users/serializers.py +++ b/arkindex/users/serializers.py @@ -1,13 +1,15 @@ -from rest_framework import serializers +import logging + from django.conf import settings +from django.contrib.auth.password_validation import validate_password +from django.contrib.auth.tokens import default_token_generator from django.core.exceptions import ValidationError from django.utils.http import urlsafe_base64_decode -from django.contrib.auth.tokens import default_token_generator -from django.contrib.auth.password_validation import validate_password -from arkindex.users.models import OAuthCredentials, OAuthStatus, User +from rest_framework import serializers + from arkindex.project.serializer_fields import EnumField +from arkindex.users.models import OAuthCredentials, OAuthStatus, User from transkribus import TranskribusAPI -import logging logging.basicConfig( level=logging.INFO, diff --git a/arkindex/users/tests/test_acl.py b/arkindex/users/tests/test_acl.py index 11a0a3de0f9719b7d6fe58f64f07381e67b597ce..3ca5d2473698f20a3ddf992c6f3c91458509f55d 100644 --- a/arkindex/users/tests/test_acl.py +++ b/arkindex/users/tests/test_acl.py @@ -1,5 +1,6 @@ -from django.test import TestCase from django.contrib.auth.models import AnonymousUser +from django.test import TestCase + from arkindex.documents.models import Corpus from arkindex.users.models import User diff --git a/arkindex/users/tests/test_credentials.py b/arkindex/users/tests/test_credentials.py index 320a72b994cf768af1c37d789fa46279aa7c62d7..ea59b03f9de18a6bdecf00b86b1e91e1607697c4 100644 --- a/arkindex/users/tests/test_credentials.py +++ b/arkindex/users/tests/test_credentials.py @@ -1,5 +1,6 @@ from django.urls import reverse from rest_framework import status + from arkindex.project.tests import FixtureTestCase from arkindex.users.models import OAuthStatus diff --git a/arkindex/users/tests/test_gitlab_oauth.py b/arkindex/users/tests/test_gitlab_oauth.py index 04805eb8beb9f5789590dec46021180fd231cebd..5a85cfd4b79caae6a042297b61fca2a202b36bd6 100644 --- a/arkindex/users/tests/test_gitlab_oauth.py +++ b/arkindex/users/tests/test_gitlab_oauth.py @@ -1,10 +1,12 @@ +import urllib.parse +from unittest.mock import MagicMock, patch + +from django.http.request import HttpRequest +from django.urls import reverse + from arkindex.project.tests import FixtureTestCase from arkindex.users.models import OAuthStatus from arkindex.users.providers import GitLabOAuthProvider -from django.http.request import HttpRequest -from django.urls import reverse -from unittest.mock import patch, MagicMock -import urllib.parse class TestGitLabOAuthProvider(FixtureTestCase): diff --git a/arkindex/users/tests/test_password_reset.py b/arkindex/users/tests/test_password_reset.py index a5e1ad9ac3f0b86c69fd3d3d3ccdc9e9537a5685..10d4a9ae7617d70ce8cb5c36bd5df15a70f8037f 100644 --- a/arkindex/users/tests/test_password_reset.py +++ b/arkindex/users/tests/test_password_reset.py @@ -1,8 +1,10 @@ +from unittest.mock import call, patch + from django.core import mail from django.urls import reverse from django.utils.http import urlsafe_base64_encode from rest_framework import status -from unittest.mock import patch, call + from arkindex.project.tests import FixtureAPITestCase diff --git a/arkindex/users/tests/test_providers.py b/arkindex/users/tests/test_providers.py index 82d47d48a748e1d4c5661f1d9bfe5d4693b84b46..7aad0e540637567873c312c48aab2e1d6e959624 100644 --- a/arkindex/users/tests/test_providers.py +++ b/arkindex/users/tests/test_providers.py @@ -1,9 +1,11 @@ +from unittest.mock import MagicMock + from django.urls import reverse + from arkindex.project.tests import FixtureTestCase from arkindex.users import providers from arkindex.users.models import OAuthStatus from arkindex.users.providers import get_provider -from unittest.mock import MagicMock class TestProviders(FixtureTestCase): diff --git a/arkindex/users/tests/test_registration.py b/arkindex/users/tests/test_registration.py index e689aeca776151cc7a6848d5852fa1bae24a07e0..cb804ec43b23aafbbd37b8561758837cf150dea6 100644 --- a/arkindex/users/tests/test_registration.py +++ b/arkindex/users/tests/test_registration.py @@ -1,14 +1,16 @@ -from rest_framework import status -from django.urls import reverse -from django.core import mail +import urllib.parse + from django.contrib import auth from django.contrib.auth.tokens import default_token_generator +from django.core import mail from django.test import override_settings -from arkindex.project.tests import FixtureAPITestCase -from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES +from django.urls import reverse +from rest_framework import status + from arkindex.documents.models import Corpus -from arkindex.users.models import User, Scope -import urllib.parse +from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES +from arkindex.project.tests import FixtureAPITestCase +from arkindex.users.models import Scope, User class TestRegistration(FixtureAPITestCase): diff --git a/arkindex/users/tests/test_update_transkribus_email.py b/arkindex/users/tests/test_update_transkribus_email.py index be59af9771d20c597e6f9bf90a840b6b0c216293..8bb9d2c61805d6a18aec1dac690fc8402cdad163 100644 --- a/arkindex/users/tests/test_update_transkribus_email.py +++ b/arkindex/users/tests/test_update_transkribus_email.py @@ -1,7 +1,9 @@ from unittest.mock import patch -from rest_framework import status -from django.urls import reverse + from django.test import override_settings +from django.urls import reverse +from rest_framework import status + from arkindex.project.tests import FixtureAPITestCase diff --git a/setup.py b/setup.py index c1700ef178c54d08775431d7dd26438d5a9c79f6..fbb3eb848fae6ca81af452df48de9de134f51593 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,7 @@ #!/usr/bin/env python import os.path -from setuptools import setup, find_packages + +from setuptools import find_packages, setup def _parse_requirement(line):