diff --git a/.github/workflows/continuous-integration-test.yml b/.github/workflows/continuous-integration-test.yml index b14fe81ca..a1d27b4b1 100644 --- a/.github/workflows/continuous-integration-test.yml +++ b/.github/workflows/continuous-integration-test.yml @@ -21,20 +21,20 @@ jobs: sudo sed -i 's///g' /etc/ImageMagick-6/policy.xml - name: Setup node - uses: actions/setup-node@v1 + uses: actions/setup-node@v2 with: node-version: '12' - name: Docker compose up run: docker-compose up -d - - name: Setup Python 3.6 + - name: Setup Python 3.9 uses: actions/setup-python@v2 with: - python-version: 3.6 + python-version: 3.9 - name: Install Poetry - uses: snok/install-poetry@v1.1.1 + uses: snok/install-poetry@v1 with: version: 1.0.10 diff --git a/Dockerfile.base b/Dockerfile.base index 47ed7233e..8326d24c3 100644 --- a/Dockerfile.base +++ b/Dockerfile.base @@ -22,12 +22,12 @@ # and includes Pip, Pipenv, Node.js, NPM and some few standard libraries # Invenio usually needs. -FROM python:3.6-slim-stretch +FROM python:3.9-slim-buster # require debian packages RUN apt-get upgrade -y && apt-get update -y RUN apt-get install --no-install-recommends -y git vim-tiny curl gcc gnupg libc6-dev libxml2-dev libxmlsec1-dev libxmlsec1-openssl xpdf xpdf-utils ghostscript imagemagick && rm -rf /var/lib/apt/lists/* -RUN pip install --upgrade setuptools wheel pip "poetry<1.1.0" +RUN pip install --upgrade "setuptools<58" wheel pip "poetry<1.1.0" # # Install Node RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - diff --git a/INSTALL.rst b/INSTALL.rst index 23b304465..a76cca6ca 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -30,9 +30,9 @@ among other things. .. code-block:: console - $ pyenv install 3.6.10 + $ pyenv install 3.9.9 $ cd sonar - $ pyenv local 3.6.10 + $ pyenv local 3.9.9 $ pip install poetry Next, ``cd`` into the project directory and bootstrap the instance (this will install diff --git a/docker-services.yml b/docker-services.yml index cfe09f996..9f76d75af 100644 --- a/docker-services.yml +++ b/docker-services.yml @@ -74,7 +74,7 @@ services: - "5672:5672" es: build: ./docker/elasticsearch/ - image: elasticsearch-icu-7.10.1 + image: elasticsearch-icu-7.10.2 restart: "unless-stopped" environment: - bootstrap.memory_lock=true @@ -97,7 +97,7 @@ services: volumes: - /var/tmp kibana: - image: docker.elastic.co/kibana/kibana-oss:7.10.1 + image: docker.elastic.co/kibana/kibana-oss:7.10.2 environment: - "ELASTICSEARCH_HOSTS=http://es:9200" - "ES_JAVA_OPTS=-Xms512m -Xmx512m" diff --git a/docker/elasticsearch/Dockerfile b/docker/elasticsearch/Dockerfile index 2adf1de9d..32fae0b27 100644 --- a/docker/elasticsearch/Dockerfile +++ b/docker/elasticsearch/Dockerfile @@ -1,2 +1,2 @@ -FROM docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.1 +FROM docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2 RUN bin/elasticsearch-plugin install analysis-icu diff --git a/poetry.lock b/poetry.lock index ff63c70f0..86466a92b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -12,7 +12,7 @@ description = "A database migration tool for SQLAlchemy." name = "alembic" optional = false python-versions = ">=3.6" -version = "1.7.5" +version = "1.7.6" [package.dependencies] Mako = "*" @@ -65,7 +65,7 @@ description = "Better dates & times for Python" name = "arrow" optional = false python-versions = ">=3.6" -version = "1.2.1" +version = "1.2.2" [package.dependencies] python-dateutil = ">=2.7.0" @@ -229,7 +229,7 @@ description = "Bootstrap 4 & 5 helper for your Flask projects." name = "bootstrap-flask" optional = false python-versions = "*" -version = "2.0.0" +version = "2.0.1" [package.dependencies] Flask = "*" @@ -262,7 +262,7 @@ virtualenv = ["virtualenv (>=20.0.35)"] [[package]] category = "main" description = "A decorator for caching properties in classes." -marker = "python_version < \"3.8\" or python_version >= \"3.7\" and python_version < \"3.8\"" +marker = "python_version >= \"3.7\" and python_version < \"3.8\" or python_version < \"3.8\"" name = "cached-property" optional = false python-versions = "*" @@ -290,25 +290,26 @@ description = "Distributed Task Queue." name = "celery" optional = false python-versions = ">=3.6," -version = "5.0.5" +version = "5.1.2" [package.dependencies] -billiard = ">=3.6.3.0,<4.0" +billiard = ">=3.6.4.0,<4.0" click = ">=7.0,<8.0" click-didyoumean = ">=0.0.3" click-plugins = ">=1.1.1" click-repl = ">=0.1.6" -kombu = ">=5.0.0,<6.0" +kombu = ">=5.1.0,<6.0" pytz = ">0.0-dev" +setuptools = "*" vine = ">=5.0.0,<6.0" [package.extras] arangodb = ["pyArango (>=1.3.2)"] auth = ["cryptography"] -azureblockblob = ["azure-storage (0.36.0)", "azure-common (1.1.5)", "azure-storage-common (1.1.0)"] +azureblockblob = ["azure-storage-blob (12.6.0)"] brotli = ["brotli (>=1.0.0)", "brotlipy (>=0.7.0)"] cassandra = ["cassandra-driver (<3.21.0)"] -consul = ["python-consul"] +consul = ["python-consul2"] cosmosdbsql = ["pydocumentdb (2.3.2)"] couchbase = ["couchbase (>=3.0.0)"] couchdb = ["pycouchdb"] @@ -318,7 +319,6 @@ elasticsearch = ["elasticsearch"] eventlet = ["eventlet (>=0.26.1)"] gevent = ["gevent (>=1.0.0)"] librabbitmq = ["librabbitmq (>=1.5.0)"] -lzma = ["backports.lzma"] memcache = ["pylibmc"] mongodb = ["pymongo (>=3.3.0)"] msgpack = ["msgpack"] @@ -362,7 +362,7 @@ marker = "python_version >= \"3\"" name = "charset-normalizer" optional = false python-versions = ">=3.5.0" -version = "2.0.10" +version = "2.0.11" [package.extras] unicode_backport = ["unicodedata2"] @@ -402,17 +402,6 @@ version = "1.2.2" [package.dependencies] click = "*" -[[package]] -category = "main" -description = "Enable git-like did-you-mean feature in click." -name = "click-didyoumean" -optional = false -python-versions = "*" -version = "0.0.3" - -[package.dependencies] -click = "*" - [[package]] category = "main" description = "Enables git-like *did-you-mean* feature in click" @@ -708,8 +697,8 @@ category = "main" description = "Discover and load entry points from installed packages." name = "entrypoints" optional = false -python-versions = ">=2.7" -version = "0.3" +python-versions = ">=3.6" +version = "0.4" [[package]] category = "main" @@ -735,8 +724,8 @@ category = "main" description = "Simple and extensible admin interface framework for Flask" name = "flask-admin" optional = false -python-versions = "*" -version = "1.5.8" +python-versions = ">=3.6" +version = "1.6.0" [package.dependencies] Flask = ">=0.7" @@ -831,11 +820,7 @@ version = "0.3.4" [package.dependencies] Flask = ">=0.10" -[[package.dependencies.celery]] -python = "<3.7" -version = ">=3.1" - -[[package.dependencies.celery]] +[package.dependencies.celery] python = ">=3.7" version = ">=4.3" @@ -1135,14 +1120,13 @@ WTForms = "*" reference = "bf5338ec8a8ad6cbca5b6991fced3de978aa3966" type = "git" url = "https://github.com/rero/flask-wiki.git" - [[package]] category = "main" -description = "Form rendering, validation, and CSRF protection for Flask with WTForms." +description = "Simple integration of Flask and WTForms." name = "flask-wtf" optional = false -python-versions = ">=3.6" -version = "1.0.0" +python-versions = ">= 3.6" +version = "0.15.1" [package.dependencies] Flask = "*" @@ -1250,7 +1234,7 @@ description = "Small library for persistent identifiers used in scholarly commun name = "idutils" optional = false python-versions = "*" -version = "1.1.9" +version = "1.1.11" [package.dependencies] isbnid-fork = ">=0.4.4" @@ -1269,27 +1253,6 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" version = "1.3.0" -[[package]] -category = "main" -description = "Read metadata from Python packages" -marker = "python_version < \"3.10\"" -name = "importlib-metadata" -optional = false -python-versions = ">=3.6" -version = "4.8.3" - -[package.dependencies] -zipp = ">=0.5" - -[package.dependencies.typing-extensions] -python = "<3.8" -version = ">=3.6.4" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -perf = ["ipython"] -testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] - [[package]] category = "main" description = "Read metadata from Python packages" @@ -1399,7 +1362,7 @@ optional = true version = ">=1.2.5,<1.3.0" [package.dependencies.invenio-db] -extras = ["postgresql", "versioning"] +extras = ["versioning", "postgresql"] optional = true version = ">=1.0.8,<1.1.0" @@ -1503,7 +1466,7 @@ description = "Invenio user management and authentication." name = "invenio-accounts" optional = false python-versions = "*" -version = "1.4.8" +version = "1.4.9" [package.dependencies] Flask-Breadcrumbs = ">=0.4.0" @@ -1517,9 +1480,9 @@ cryptography = ">=3.0.0" email-validator = ">=1.0.5" future = ">=0.16.0" invenio-base = ">=1.2.5" -invenio-celery = ">=1.1.2" -invenio-i18n = ">=1.2.0" -invenio-rest = ">=1.2.1" +invenio-celery = ">=1.2.3" +invenio-i18n = ">=1.3.1" +invenio-rest = ">=1.2.4" invenio-theme = ">=1.3.4" maxminddb-geolite2 = ">=2017.404" passlib = ">=1.7.1" @@ -1530,8 +1493,8 @@ ua-parser = ">=0.7.3" [package.extras] admin = ["invenio-admin (>=1.2.1)"] -all = ["invenio-admin (>=1.2.1)", "Sphinx (>=3)", "pytest-invenio (>=1.4.2)"] -docs = ["Sphinx (>=3)"] +all = ["invenio-admin (>=1.2.1)", "Sphinx (4.2.0)", "pytest-invenio (>=1.4.2)"] +docs = ["Sphinx (4.2.0)"] mysql = ["invenio-db (>=1.0.9)"] postgresql = ["invenio-db (>=1.0.9)"] sqlite = ["invenio-db (>=1.0.9)"] @@ -1645,18 +1608,18 @@ description = "Celery module for Invenio." name = "invenio-celery" optional = false python-versions = "*" -version = "1.2.2" +version = "1.2.4" [package.dependencies] Flask-CeleryExt = ">=0.3.4" -celery = ">=4.4.0,<5.1" -invenio-base = ">=1.2.3" +celery = ">=5.1.0,<5.3" +invenio-base = ">=1.2.5" msgpack = ">=0.6.2" redis = ">=2.10.0" [package.extras] -all = ["Sphinx (>=3)", "pytest-invenio (>=1.4.0)"] -docs = ["Sphinx (>=3)"] +all = ["Sphinx (4.2.0)", "pytest-invenio (>=1.4.0)"] +docs = ["Sphinx (4.2.0)"] tests = ["pytest-invenio (>=1.4.0)"] [[package]] @@ -1916,7 +1879,6 @@ tests = ["check-manifest (>=0.35)", "coverage (>=4.3.4)", "isort (4.2.2)", "mock reference = "fe55e095a8e78b36cfad875f752f2facc2908bae" type = "git" url = "https://github.com/inveniosoftware/invenio-oaiharvester.git" - [[package]] category = "main" description = "Invenio module that implements OAI-PMH server." @@ -1951,7 +1913,6 @@ tests = ["SQLAlchemy-Continuum (>=1.3.6)", "SQLAlchemy (>=1.2.18,<1.4.0)", "SQLA reference = "447f7f138042a16ae437310ca7f4260ca029f18f" type = "git" url = "https://github.com/rero/invenio-oaiserver.git" - [[package]] category = "main" description = "Invenio module that implements OAuth 2 server." @@ -2166,7 +2127,7 @@ description = "Invenio Resources module to create REST APIs." name = "invenio-records-resources" optional = false python-versions = "*" -version = "0.12.7" +version = "0.12.5" [package.dependencies] flask-resources = ">=0.6.0,<0.7.0" @@ -2323,7 +2284,7 @@ description = "Invenio standard theme." name = "invenio-theme" optional = false python-versions = "*" -version = "1.3.10" +version = "1.3.11" [package.dependencies] Flask-Breadcrumbs = ">=0.4.0" @@ -2365,38 +2326,6 @@ postgresql = ["invenio-db (>=1.0.9)"] sqlite = ["invenio-db (>=1.0.9)"] tests = ["pytest-invenio (>=1.4.2)", "SQLAlchemy-Continuum (>=1.2.1)"] -[[package]] -category = "main" -description = "IPython: Productive Interactive Computing" -name = "ipython" -optional = false -python-versions = ">=3.6" -version = "7.16.3" - -[package.dependencies] -appnope = "*" -backcall = "*" -colorama = "*" -decorator = "*" -jedi = ">=0.10,<=0.17.2" -pexpect = "*" -pickleshare = "*" -prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" -pygments = "*" -setuptools = ">=18.5" -traitlets = ">=4.2" - -[package.extras] -all = ["Sphinx (>=1.3)", "ipykernel", "ipyparallel", "ipywidgets", "nbconvert", "nbformat", "nose (>=0.10.1)", "notebook", "numpy (>=1.14)", "pygments", "qtconsole", "requests", "testpath"] -doc = ["Sphinx (>=1.3)"] -kernel = ["ipykernel"] -nbconvert = ["nbconvert"] -nbformat = ["nbformat"] -notebook = ["notebook", "ipywidgets"] -parallel = ["ipyparallel"] -qtconsole = ["qtconsole"] -test = ["nose (>=0.10.1)", "requests", "testpath", "pygments", "nbformat", "ipykernel", "numpy (>=1.14)"] - [[package]] category = "main" description = "IPython: Productive Interactive Computing" @@ -2463,19 +2392,6 @@ version = "0.6.1" [package.dependencies] six = "*" -[[package]] -category = "main" -description = "A Python utility / library to sort Python imports." -name = "isort" -optional = false -python-versions = ">=3.6,<4.0" -version = "5.8.0" - -[package.extras] -colors = ["colorama (>=0.4.3,<0.5.0)"] -pipfile_deprecated_finder = ["pipreqs", "requirementslib"] -requirements_deprecated_finder = ["pipreqs", "pip-api"] - [[package]] category = "main" description = "A Python utility / library to sort Python imports." @@ -2582,26 +2498,6 @@ jsonref = ["jsonref (>=0.1)"] jsonschema = ["jsonschema (>=2.5.1)"] tests = ["check-manifest (>=0.25)", "coverage (>=4.0)", "isort (>=4.2.2)", "mock (>=1.3.0)", "pydocstyle (>=1.0.0)", "pytest-cache (>=1.0)", "pytest-cov (>=2.8.1)", "pytest-pep8 (>=1.0.6)", "pytest (>=3.6.0)", "requests (>=2.7.0)"] -[[package]] -category = "main" -description = "An implementation of JSON Schema validation for Python" -name = "jsonschema" -optional = false -python-versions = "*" -version = "4.0.0" - -[package.dependencies] -attrs = ">=17.4.0" -pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" - -[package.dependencies.importlib-metadata] -python = "<3.8" -version = "*" - -[package.extras] -format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] -format_nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] - [[package]] category = "main" description = "An implementation of JSON Schema validation for Python" @@ -2630,26 +2526,6 @@ version = "*" format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] format_nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] -[[package]] -category = "main" -description = "Jupyter protocol implementation and client libraries" -name = "jupyter-client" -optional = false -python-versions = ">=3.5" -version = "6.1.13" - -[package.dependencies] -jupyter-core = ">=4.6.0" -nest-asyncio = ">=1.5" -python-dateutil = ">=2.1" -pyzmq = ">=13" -tornado = ">=4.1" -traitlets = "*" - -[package.extras] -doc = ["sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] -test = ["async-generator", "ipykernel", "ipython", "mock", "pytest-asyncio", "pytest-timeout", "pytest", "mypy", "pre-commit", "jedi (<0.18)"] - [[package]] category = "main" description = "Jupyter protocol implementation and client libraries" @@ -2683,42 +2559,6 @@ version = "4.9.1" pywin32 = ">=1.0" traitlets = "*" -[[package]] -category = "main" -description = "Messaging library for Python." -name = "kombu" -optional = false -python-versions = ">=3.6" -version = "5.1.0" - -[package.dependencies] -amqp = ">=5.0.6,<6.0.0" -vine = "*" - -[package.dependencies.cached-property] -python = "<3.8" -version = "*" - -[package.dependencies.importlib-metadata] -python = "<3.8" -version = ">=0.18" - -[package.extras] -azureservicebus = ["azure-servicebus (>=7.0.0)"] -azurestoragequeues = ["azure-storage-queue"] -consul = ["python-consul (>=0.6.0)"] -librabbitmq = ["librabbitmq (>=1.5.2)"] -mongodb = ["pymongo (>=3.3.0)"] -msgpack = ["msgpack"] -pyro = ["pyro4"] -qpid = ["qpid-python (>=0.26)", "qpid-tools (>=0.26)"] -redis = ["redis (>=3.3.11)"] -slmq = ["softlayer-messaging (>=1.0.3)"] -sqlalchemy = ["sqlalchemy"] -sqs = ["boto3 (>=1.4.4)", "pycurl (7.43.0.2)", "urllib3 (<1.26)"] -yaml = ["PyYAML (>=3.10)"] -zookeeper = ["kazoo (>=1.3.1)"] - [[package]] category = "main" description = "Messaging library for Python." @@ -2919,11 +2759,11 @@ maxminddb = "*" [[package]] category = "main" -description = "The fastest markdown parser in pure Python" +description = "A sane Markdown parser with useful plugins and renderers" name = "mistune" optional = false python-versions = "*" -version = "0.8.4" +version = "2.0.2" [[package]] category = "dev" @@ -3012,11 +2852,6 @@ optional = false python-versions = "*" version = "0.8.0" -[package.dependencies] -[package.dependencies.importlib-resources] -python = "<3.7" -version = "*" - [[package]] category = "main" description = "port of node-semver" @@ -3156,21 +2991,13 @@ optional = false python-versions = "*" version = "0.7.5" -[[package]] -category = "main" -description = "Python Imaging Library (Fork)" -name = "pillow" -optional = false -python-versions = ">=3.6" -version = "8.4.0" - [[package]] category = "main" description = "Python Imaging Library (Fork)" name = "pillow" optional = false python-versions = ">=3.7" -version = "9.0.0" +version = "9.0.1" [[package]] category = "main" @@ -3196,24 +3023,13 @@ optional = false python-versions = "*" version = "1.1.1" -[[package]] -category = "main" -description = "Library for building powerful interactive command lines in Python" -name = "prompt-toolkit" -optional = false -python-versions = ">=3.6" -version = "3.0.3" - -[package.dependencies] -wcwidth = "*" - [[package]] category = "main" description = "Library for building powerful interactive command lines in Python" name = "prompt-toolkit" optional = false python-versions = ">=3.6.2" -version = "3.0.24" +version = "3.0.27" [package.dependencies] wcwidth = "*" @@ -3265,6 +3081,7 @@ setuptools = "*" [[package]] category = "main" description = "C parser in Python" +marker = "os_name == \"nt\" and implementation_name != \"pypy\"" name = "pycparser" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -3338,14 +3155,6 @@ version = "3.0.7" [package.extras] diagrams = ["jinja2", "railroad-diagrams"] -[[package]] -category = "main" -description = "Persistent/Functional/Immutable data structures" -name = "pyrsistent" -optional = false -python-versions = ">=3.6" -version = "0.18.0" - [[package]] category = "main" description = "Persistent/Functional/Immutable data structures" @@ -3634,7 +3443,7 @@ description = "Python client for Redis database and key-value store" name = "redis" optional = false python-versions = ">=3.6" -version = "4.1.1" +version = "4.1.3" [package.dependencies] deprecated = ">=1.2.3" @@ -3702,17 +3511,6 @@ packaging = "*" requests = "*" setuptools = "*" -[[package]] -category = "main" -description = "Python bindings for Selenium" -name = "selenium" -optional = false -python-versions = "*" -version = "3.141.0" - -[package.dependencies] -urllib3 = "*" - [[package]] category = "main" description = "" @@ -4042,14 +3840,6 @@ optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" version = "0.10.2" -[[package]] -category = "main" -description = "A lil' TOML parser" -name = "tomli" -optional = false -python-versions = ">=3.6" -version = "1.2.3" - [[package]] category = "main" description = "A lil' TOML parser" @@ -4066,22 +3856,6 @@ optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, != 3.3.*" version = "5.1.1" -[[package]] -category = "main" -description = "Traitlets Python config system" -name = "traitlets" -optional = false -python-versions = "*" -version = "4.3.3" - -[package.dependencies] -decorator = "*" -ipython-genutils = "*" -six = "*" - -[package.extras] -test = ["pytest", "mock"] - [[package]] category = "main" description = "Traitlets Python configuration system" @@ -4126,7 +3900,7 @@ wsproto = ">=0.14" [[package]] category = "main" description = "Backported and Experimental Type Hints for Python 3.6+" -marker = "python_version < \"3.8\" or python_version >= \"3.7\" and python_version < \"3.8\" and (python_version >= \"3.7\" and python_version < \"3.8\" or python_version < \"3.8\") or python_version >= \"3.7\" and python_version < \"3.8\"" +marker = "python_version >= \"3.7\" and python_version < \"3.8\" or python_version < \"3.8\"" name = "typing-extensions" optional = false python-versions = ">=3.6" @@ -4148,14 +3922,6 @@ optional = false python-versions = ">=3.6" version = "4.1.1" -[[package]] -category = "main" -description = "URI parsing, classification and composition" -name = "uritools" -optional = false -python-versions = "~=3.5" -version = "3.0.2" - [[package]] category = "main" description = "URI parsing, classification and composition" @@ -4399,20 +4165,6 @@ version = "0.12.0" [[package]] category = "main" description = "Backport of pathlib-compatible object wrapper for zip files" -marker = "python_version < \"3.9\"" -name = "zipp" -optional = false -python-versions = ">=3.6" -version = "3.6.0" - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] - -[[package]] -category = "main" -description = "Backport of pathlib-compatible object wrapper for zip files" -marker = "python_version >= \"3.7\" and python_version < \"3.8\" and (python_version >= \"3.7\" and python_version < \"3.8\" or python_version < \"3.10\") or python_version >= \"3.7\" and python_version < \"3.8\" or python_version < \"3.10\"" name = "zipp" optional = false python-versions = ">=3.7" @@ -4423,9 +4175,9 @@ docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] [metadata] -content-hash = "1234168b2bf091ca3f4c291407c9c2d39e97aa9c31ea1408b8c9b6996c5fe18a" +content-hash = "2bdfd17339e6c39a2902d307fa03705c40eaa67e80939b228543fe36f230ff61" lock-version = "1.0" -python-versions = ">= 3.6, <3.8" +python-versions = ">= 3.7, <3.10" [metadata.files] alabaster = [ @@ -4433,8 +4185,8 @@ alabaster = [ {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, ] alembic = [ - {file = "alembic-1.7.5-py3-none-any.whl", hash = "sha256:a9dde941534e3d7573d9644e8ea62a2953541e27bc1793e166f60b777ae098b4"}, - {file = "alembic-1.7.5.tar.gz", hash = "sha256:7c328694a2e68f03ee971e63c3bd885846470373a5b532cf2c9f1601c413b153"}, + {file = "alembic-1.7.6-py3-none-any.whl", hash = "sha256:ad842f2c3ab5c5d4861232730779c05e33db4ba880a08b85eb505e87c01095bc"}, + {file = "alembic-1.7.6.tar.gz", hash = "sha256:6c0c05e9768a896d804387e20b299880fe01bc56484246b0dffe8075d6d3d847"}, ] amqp = [ {file = "amqp-5.0.9-py3-none-any.whl", hash = "sha256:9cd81f7b023fc04bbb108718fbac674f06901b77bfcdce85b10e2a5d0ee91be5"}, @@ -4449,8 +4201,8 @@ appnope = [ {file = "appnope-0.1.2.tar.gz", hash = "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a"}, ] arrow = [ - {file = "arrow-1.2.1-py3-none-any.whl", hash = "sha256:6b2914ef3997d1fd7b37a71ce9dd61a6e329d09e1c7b44f4d3099ca4a5c0933e"}, - {file = "arrow-1.2.1.tar.gz", hash = "sha256:c2dde3c382d9f7e6922ce636bf0b318a7a853df40ecb383b29192e6c5cc82840"}, + {file = "arrow-1.2.2-py3-none-any.whl", hash = "sha256:d622c46ca681b5b3e3574fcb60a04e5cc81b9625112d5fb2b44220c36c892177"}, + {file = "arrow-1.2.2.tar.gz", hash = "sha256:05caf1fd3d9a11a1135b2b6f09887421153b94558e5ef4d090b567b47173ac2b"}, ] async-generator = [ {file = "async_generator-1.10-py3-none-any.whl", hash = "sha256:01c7bf666359b4967d2cda0000cc2e4af16a0ae098cbffcb8472fb9e8ad6585b"}, @@ -4502,8 +4254,8 @@ blinker = [ {file = "blinker-1.4.tar.gz", hash = "sha256:471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"}, ] bootstrap-flask = [ - {file = "Bootstrap-Flask-2.0.0.tar.gz", hash = "sha256:d2d18931720f7b4440d99c179c89772ca2f10d54fdff955a22f2925ff44ef133"}, - {file = "Bootstrap_Flask-2.0.0-py2.py3-none-any.whl", hash = "sha256:a097ea7cdb219648253cde95ab36aedcf929459881fff476edc699e2c0f6a654"}, + {file = "Bootstrap-Flask-2.0.1.tar.gz", hash = "sha256:6e5622dc064c3e2d2e3ffd3b5b849a8e84c3599e834aa05e72653f85213bfe9d"}, + {file = "Bootstrap_Flask-2.0.1-py2.py3-none-any.whl", hash = "sha256:e15dc71e4906a2e680cd1fa1048e15a946786665a87a470a029ea9b975cbb6c9"}, ] build = [ {file = "build-0.7.0-py3-none-any.whl", hash = "sha256:21b7ebbd1b22499c4dac536abc7606696ea4d909fd755e00f09f3c0f2c05e3c8"}, @@ -4549,8 +4301,8 @@ cchardet = [ {file = "cchardet-2.1.7.tar.gz", hash = "sha256:c428b6336545053c2589f6caf24ea32276c6664cb86db817e03a94c60afa0eaf"}, ] celery = [ - {file = "celery-5.0.5-py3-none-any.whl", hash = "sha256:5e8d364e058554e83bbb116e8377d90c79be254785f357cb2cec026e79febe13"}, - {file = "celery-5.0.5.tar.gz", hash = "sha256:f4efebe6f8629b0da2b8e529424de376494f5b7a743c321c8a2ddc2b1414921c"}, + {file = "celery-5.1.2-py3-none-any.whl", hash = "sha256:9dab2170b4038f7bf10ef2861dbf486ddf1d20592290a1040f7b7a1259705d42"}, + {file = "celery-5.1.2.tar.gz", hash = "sha256:8d9a3de9162965e97f8e8cc584c67aad83b3f7a267584fa47701ed11c3e0d4b0"}, ] certifi = [ {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, @@ -4609,8 +4361,8 @@ cffi = [ {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"}, ] charset-normalizer = [ - {file = "charset-normalizer-2.0.10.tar.gz", hash = "sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd"}, - {file = "charset_normalizer-2.0.10-py3-none-any.whl", hash = "sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"}, + {file = "charset-normalizer-2.0.11.tar.gz", hash = "sha256:98398a9d69ee80548c762ba991a4728bfc3836768ed226b3945908d1a688371c"}, + {file = "charset_normalizer-2.0.11-py3-none-any.whl", hash = "sha256:2842d8f5e82a1f6aa437380934d5e1cd4fcf2003b06fed6940769c164a480a45"}, ] check-manifest = [ {file = "check-manifest-0.47.tar.gz", hash = "sha256:56dadd260a9c7d550b159796d2894b6d0bcc176a94cbc426d9bb93e5e48d12ce"}, @@ -4624,7 +4376,6 @@ click-default-group = [ {file = "click-default-group-1.2.2.tar.gz", hash = "sha256:d9560e8e8dfa44b3562fbc9425042a0fd6d21956fcc2db0077f63f34253ab904"}, ] click-didyoumean = [ - {file = "click-didyoumean-0.0.3.tar.gz", hash = "sha256:112229485c9704ff51362fe34b2d4f0b12fc71cc20f6d2b3afabed4b8bfa6aeb"}, {file = "click-didyoumean-0.3.0.tar.gz", hash = "sha256:f184f0d851d96b6d29297354ed981b7dd71df7ff500d82fa6d11f0856bee8035"}, {file = "click_didyoumean-0.3.0-py3-none-any.whl", hash = "sha256:a0713dc7a1de3f06bc0df5a9567ad19ead2d3d5689b434768a6145bff77c0667"}, ] @@ -4759,15 +4510,15 @@ email-validator = [ {file = "email_validator-1.1.3.tar.gz", hash = "sha256:aa237a65f6f4da067119b7df3f13e89c25c051327b2b5b66dc075f33d62480d7"}, ] entrypoints = [ - {file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"}, - {file = "entrypoints-0.3.tar.gz", hash = "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"}, + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, ] flask = [ {file = "Flask-1.1.4-py2.py3-none-any.whl", hash = "sha256:c34f04500f2cbbea882b1acb02002ad6fe6b7ffa64a6164577995657f50aed22"}, {file = "Flask-1.1.4.tar.gz", hash = "sha256:0fbeb6180d383a9186d0d6ed954e0042ad9f18e0e8de088b2b419d526927d196"}, ] flask-admin = [ - {file = "Flask-Admin-1.5.8.tar.gz", hash = "sha256:eb06a1f31b98881dee53a55c64faebd1990d6aac38826364b280df0b2679ff74"}, + {file = "Flask-Admin-1.6.0.tar.gz", hash = "sha256:424ffc79b7b0dfff051555686ea12e86e48dffacac14beaa319fb4502ac40988"}, ] flask-alembic = [ {file = "Flask-Alembic-2.0.1.tar.gz", hash = "sha256:05a1e6f4148dbfcc9280a393373bfbd250af6f9f4f0ca9f744ef8f7376a3deec"}, @@ -4864,8 +4615,8 @@ flask-webpackext = [ ] Flask-Wiki = [] flask-wtf = [ - {file = "Flask-WTF-1.0.0.tar.gz", hash = "sha256:872fbb17b5888bfc734edbdcf45bc08fb365ca39f69d25dc752465a455517b28"}, - {file = "Flask_WTF-1.0.0-py3-none-any.whl", hash = "sha256:01feccfc395405cea48a3f36c23f0d766e2cc6fd2a5a065ad50ad3e5827ec797"}, + {file = "Flask-WTF-0.15.1.tar.gz", hash = "sha256:ff177185f891302dc253437fe63081e7a46a4e99aca61dfe086fb23e54fff2dc"}, + {file = "Flask_WTF-0.15.1-py2.py3-none-any.whl", hash = "sha256:6ff7af73458f182180906a37a783e290bdc8a3817fe4ad17227563137ca285bf"}, ] fs = [ {file = "fs-0.5.4.tar.gz", hash = "sha256:ba2cca8773435a7c86059d57cb4b8ea30fda40f8610941f7822d1ce3ffd36197"}, @@ -4897,16 +4648,14 @@ idna = [ {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, ] idutils = [ - {file = "IDUtils-1.1.9-py2.py3-none-any.whl", hash = "sha256:01edcde8394b73dc725958770e6e8d20088790345639982698715749f8213acc"}, - {file = "IDUtils-1.1.9.tar.gz", hash = "sha256:80c10f2ecb5cf020aa788ea860fa1f450a5a6714a0e95ae62334d5d286b395be"}, + {file = "IDUtils-1.1.11-py2.py3-none-any.whl", hash = "sha256:23ac47a026b0c709ffc79efd9fb54e4102913fb1f29a5bae56cd8f8f6cae124a"}, + {file = "IDUtils-1.1.11.tar.gz", hash = "sha256:e9fb8eb0ce933d09fa347e01dc47ff28006b77bea434f4beb8d78bc693b2d01d"}, ] imagesize = [ {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"}, {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.8.3-py3-none-any.whl", hash = "sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e"}, - {file = "importlib_metadata-4.8.3.tar.gz", hash = "sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668"}, {file = "importlib_metadata-4.10.1-py3-none-any.whl", hash = "sha256:899e2a40a8c4a1aec681feef45733de8a6c58f3f6a0dbed2eb6574b4387a77b6"}, {file = "importlib_metadata-4.10.1.tar.gz", hash = "sha256:951f0d8a5b7260e9db5e41d429285b5f451e928479f19d80818878527d36e95e"}, ] @@ -4934,8 +4683,8 @@ invenio-access = [ {file = "invenio_access-1.4.2-py2.py3-none-any.whl", hash = "sha256:463cde5a24edab0c147ec7922372e6f46ac940409320e223334bf5f9e62e9d87"}, ] invenio-accounts = [ - {file = "invenio-accounts-1.4.8.tar.gz", hash = "sha256:cb690e35f9ced8f5971ad08e2fb9a4b33459d11f486878abbb2222e5f06d2b93"}, - {file = "invenio_accounts-1.4.8-py2.py3-none-any.whl", hash = "sha256:8799b251f3d38b8825d95cd6145e2593c09a6f31bfe2b2369c1cfde02e5aef19"}, + {file = "invenio-accounts-1.4.9.tar.gz", hash = "sha256:8528cb075fbdf495f0e7e523f8bb9d4e49af5cd0d301862c1955f7bfa7ff7a29"}, + {file = "invenio_accounts-1.4.9-py2.py3-none-any.whl", hash = "sha256:9ad825282785b8904568a98ed14a42b8dcd9b8e44de9754c4d87fd36ba5db4b1"}, ] invenio-admin = [ {file = "invenio-admin-1.3.1.tar.gz", hash = "sha256:f7fd5821a9a705cf44ff9e15a910c13da4785e212be7d98d5bd1e444a1efd885"}, @@ -4958,8 +4707,8 @@ invenio-cache = [ {file = "invenio_cache-1.1.0-py2.py3-none-any.whl", hash = "sha256:a4562639f2f63cbc9de1302e159ecd9363f17d53d912a8d0773ffe76e2f153fc"}, ] invenio-celery = [ - {file = "invenio-celery-1.2.2.tar.gz", hash = "sha256:ac74076f0656a299ad741d6ec2752f7b06bf3b45d742179952267058c868d93d"}, - {file = "invenio_celery-1.2.2-py2.py3-none-any.whl", hash = "sha256:f03d9d0bb0d5c3b2e1d53ded0dc8839e83d738d00913854de33cefbfa95c4d8d"}, + {file = "invenio-celery-1.2.4.tar.gz", hash = "sha256:ce44aaf4ce03c7388cf25fba384a2e93f161d4b90b71e198d8177cdd3b91909c"}, + {file = "invenio_celery-1.2.4-py2.py3-none-any.whl", hash = "sha256:2db34aafaa867bb42c7f6b5db1fe029e2e203f231f7a91a47fb53678398f1e4f"}, ] invenio-config = [ {file = "invenio-config-1.0.3.tar.gz", hash = "sha256:9d10492b49a46703f0ac028ce8ab78b5ff1c72b180ecb4ffcee5bf49682d1e6c"}, @@ -5036,8 +4785,8 @@ invenio-records-permissions = [ {file = "invenio_records_permissions-0.11.0-py2.py3-none-any.whl", hash = "sha256:0e069f303b8afbbaa96f347fcd2e83989d8678896abcae779ca1f70948b12b8c"}, ] invenio-records-resources = [ - {file = "invenio-records-resources-0.12.7.tar.gz", hash = "sha256:7ff54f1886d3e5e4921809bc8d1dfa8d2517bf7e4ef41095ac86f85a369e8c03"}, - {file = "invenio_records_resources-0.12.7-py2.py3-none-any.whl", hash = "sha256:1e9543e1f3d286bb93851f0c1574d75c5300df9b0fd763b18d7de64c599e5610"}, + {file = "invenio-records-resources-0.12.5.tar.gz", hash = "sha256:5932c9cbb8c4ba94ae50dd40e1c0c34b7df3da19801fcd9a85fa023a8522251f"}, + {file = "invenio_records_resources-0.12.5-py2.py3-none-any.whl", hash = "sha256:d597941a0f55f3ef89139a96d6a114c5846a8dcb667eceb82d45579a6edcfa98"}, ] invenio-records-rest = [ {file = "invenio-records-rest-1.8.0.tar.gz", hash = "sha256:70ba741f19f8c9a1ae14a700d82c632175e881fd786ffdc4692f2718482e8dd1"}, @@ -5060,16 +4809,14 @@ invenio-stats = [ {file = "invenio_stats-1.0.0a18-py2.py3-none-any.whl", hash = "sha256:91a377a1e5db8a43ebf52c15868550f336682beb16337f8052acfccb74a78f10"}, ] invenio-theme = [ - {file = "invenio-theme-1.3.10.tar.gz", hash = "sha256:4310146ba45484e6268d852b03747404952800a23c9053afa05cc1ed5c84ebb6"}, - {file = "invenio_theme-1.3.10-py2.py3-none-any.whl", hash = "sha256:add2f342b64ba7af8756fe7f1b9264a11fff95cf67f324d0737502922ef88e47"}, + {file = "invenio-theme-1.3.11.tar.gz", hash = "sha256:4f63428c09b7148ffbb8b2405f56b46704aaacad81ff19bbbfebdb8bf261dfab"}, + {file = "invenio_theme-1.3.11-py2.py3-none-any.whl", hash = "sha256:9ac5dcde8cc9e4ca90329097d945a9ff2027cc8d1d7c76204f98a5dc790c0248"}, ] invenio-userprofiles = [ {file = "invenio-userprofiles-1.2.4.tar.gz", hash = "sha256:09817499c49a8437b55f2fa7e7d0107dd9c380571c0183e1747b79e6f9519d8d"}, {file = "invenio_userprofiles-1.2.4-py2.py3-none-any.whl", hash = "sha256:224ce798bdbf8820e118684507860bb9a3945d6830e71cc8e5dfc4eef36e8061"}, ] ipython = [ - {file = "ipython-7.16.3-py3-none-any.whl", hash = "sha256:c0427ed8bc33ac481faf9d3acf7e84e0010cdaada945e0badd1e2e74cc075833"}, - {file = "ipython-7.16.3.tar.gz", hash = "sha256:5ac47dc9af66fc2f5530c12069390877ae372ac905edca75a92a6e363b5d7caa"}, {file = "ipython-7.31.1-py3-none-any.whl", hash = "sha256:55df3e0bd0f94e715abd968bedd89d4e8a7bce4bf498fb123fed4f5398fea874"}, {file = "ipython-7.31.1.tar.gz", hash = "sha256:b5548ec5329a4bcf054a5deed5099b0f9622eb9ea51aaa7104d215fece201d8c"}, ] @@ -5085,8 +4832,6 @@ isodate = [ {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, ] isort = [ - {file = "isort-5.8.0-py3-none-any.whl", hash = "sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"}, - {file = "isort-5.8.0.tar.gz", hash = "sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6"}, {file = "isort-5.10.1-py3-none-any.whl", hash = "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7"}, {file = "isort-5.10.1.tar.gz", hash = "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"}, ] @@ -5122,14 +4867,10 @@ jsonresolver = [ {file = "jsonresolver-0.3.1.tar.gz", hash = "sha256:2d8090f6a1fe92e70f2903f05515415bde7ce46402e528279f865bce4ee689ca"}, ] jsonschema = [ - {file = "jsonschema-4.0.0-py3-none-any.whl", hash = "sha256:c773028c649441ab980015b5b622f4cd5134cf563daaf0235ca4b73cc3734f20"}, - {file = "jsonschema-4.0.0.tar.gz", hash = "sha256:bc51325b929171791c42ebc1c70b9713eb134d3bb8ebd5474c8b659b15be6d86"}, {file = "jsonschema-4.4.0-py3-none-any.whl", hash = "sha256:77281a1f71684953ee8b3d488371b162419767973789272434bbc3f29d9c8823"}, {file = "jsonschema-4.4.0.tar.gz", hash = "sha256:636694eb41b3535ed608fe04129f26542b59ed99808b4f688aa32dcf55317a83"}, ] jupyter-client = [ - {file = "jupyter_client-6.1.13-py3-none-any.whl", hash = "sha256:1df17b0525b45cc03645fc9eeab023765882d3c18fb100f82499cf6a353b3941"}, - {file = "jupyter_client-6.1.13.tar.gz", hash = "sha256:d03558bc9b7955d8b4a6df604a8d9d257e00bcea7fb364fe41cdef81d998a966"}, {file = "jupyter_client-7.1.2-py3-none-any.whl", hash = "sha256:d56f1c57bef42ff31e61b1185d3348a5b2bcde7c9a05523ae4dbe5ee0871797c"}, {file = "jupyter_client-7.1.2.tar.gz", hash = "sha256:4ea61033726c8e579edb55626d8ee2e6bf0a83158ddf3751b8dd46b2c5cd1e96"}, ] @@ -5138,8 +4879,6 @@ jupyter-core = [ {file = "jupyter_core-4.9.1.tar.gz", hash = "sha256:dce8a7499da5a53ae3afd5a9f4b02e5df1d57250cf48f3ad79da23b4778cd6fa"}, ] kombu = [ - {file = "kombu-5.1.0-py3-none-any.whl", hash = "sha256:e2dedd8a86c9077c350555153825a31e456a0dc20c15d5751f00137ec9c75f0a"}, - {file = "kombu-5.1.0.tar.gz", hash = "sha256:01481d99f4606f6939cdc9b637264ed353ee9e3e4f62cfb582324142c41a572d"}, {file = "kombu-5.2.3-py3-none-any.whl", hash = "sha256:eeaeb8024f3a5cfc71c9250e45cddb8493f269d74ada2f74909a93c59c4b4179"}, {file = "kombu-5.2.3.tar.gz", hash = "sha256:81a90c1de97e08d3db37dbf163eaaf667445e1068c98bfd89f051a40e9f6dbbd"}, ] @@ -5280,8 +5019,8 @@ maxminddb-geolite2 = [ {file = "maxminddb-geolite2-2018.703.tar.gz", hash = "sha256:2bd118c5567f3a8323d6c5da23a6e6d52cfc09cd9987b54eb712cf6001a96e03"}, ] mistune = [ - {file = "mistune-0.8.4-py2.py3-none-any.whl", hash = "sha256:88a1051873018da288eee8538d476dffe1262495144b33ecb586c4ab266bb8d4"}, - {file = "mistune-0.8.4.tar.gz", hash = "sha256:59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e"}, + {file = "mistune-2.0.2-py2.py3-none-any.whl", hash = "sha256:6bab6c6abd711c4604206c7d8cad5cd48b28f072b4bb75797d74146ba393a049"}, + {file = "mistune-2.0.2.tar.gz", hash = "sha256:6fc88c3cb49dba8b16687b41725e661cf85784c12e8974a29b9d336dd596c3a1"}, ] mock = [ {file = "mock-4.0.3-py3-none-any.whl", hash = "sha256:122fcb64ee37cfad5b3f48d7a7d51875d7031aaf3d8be7c42e2bee25044eee62"}, @@ -5382,79 +5121,38 @@ pickleshare = [ {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, ] pillow = [ - {file = "Pillow-8.4.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:81f8d5c81e483a9442d72d182e1fb6dcb9723f289a57e8030811bac9ea3fef8d"}, - {file = "Pillow-8.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3f97cfb1e5a392d75dd8b9fd274d205404729923840ca94ca45a0af57e13dbe6"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb9fc393f3c61f9054e1ed26e6fe912c7321af2f41ff49d3f83d05bacf22cc78"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82cdb63100ef5eedb8391732375e6d05993b765f72cb34311fab92103314649"}, - {file = "Pillow-8.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cc1afda735a8d109007164714e73771b499768b9bb5afcbbee9d0ff374b43f"}, - {file = "Pillow-8.4.0-cp310-cp310-win32.whl", hash = "sha256:e3dacecfbeec9a33e932f00c6cd7996e62f53ad46fbe677577394aaa90ee419a"}, - {file = "Pillow-8.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:620582db2a85b2df5f8a82ddeb52116560d7e5e6b055095f04ad828d1b0baa39"}, - {file = "Pillow-8.4.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:1bc723b434fbc4ab50bb68e11e93ce5fb69866ad621e3c2c9bdb0cd70e345f55"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72cbcfd54df6caf85cc35264c77ede902452d6df41166010262374155947460c"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70ad9e5c6cb9b8487280a02c0ad8a51581dcbbe8484ce058477692a27c151c0a"}, - {file = "Pillow-8.4.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25a49dc2e2f74e65efaa32b153527fc5ac98508d502fa46e74fa4fd678ed6645"}, - {file = "Pillow-8.4.0-cp36-cp36m-win32.whl", hash = "sha256:93ce9e955cc95959df98505e4608ad98281fff037350d8c2671c9aa86bcf10a9"}, - {file = "Pillow-8.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2e4440b8f00f504ee4b53fe30f4e381aae30b0568193be305256b1462216feff"}, - {file = "Pillow-8.4.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:8c803ac3c28bbc53763e6825746f05cc407b20e4a69d0122e526a582e3b5e153"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8a17b5d948f4ceeceb66384727dde11b240736fddeda54ca740b9b8b1556b29"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1394a6ad5abc838c5cd8a92c5a07535648cdf6d09e8e2d6df916dfa9ea86ead8"}, - {file = "Pillow-8.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792e5c12376594bfcb986ebf3855aa4b7c225754e9a9521298e460e92fb4a488"}, - {file = "Pillow-8.4.0-cp37-cp37m-win32.whl", hash = "sha256:d99ec152570e4196772e7a8e4ba5320d2d27bf22fdf11743dd882936ed64305b"}, - {file = "Pillow-8.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:7b7017b61bbcdd7f6363aeceb881e23c46583739cb69a3ab39cb384f6ec82e5b"}, - {file = "Pillow-8.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:d89363f02658e253dbd171f7c3716a5d340a24ee82d38aab9183f7fdf0cdca49"}, - {file = "Pillow-8.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0a0956fdc5defc34462bb1c765ee88d933239f9a94bc37d132004775241a7585"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7bb9de00197fb4261825c15551adf7605cf14a80badf1761d61e59da347779"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72b9e656e340447f827885b8d7a15fc8c4e68d410dc2297ef6787eec0f0ea409"}, - {file = "Pillow-8.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5a4532a12314149d8b4e4ad8ff09dde7427731fcfa5917ff16d0291f13609df"}, - {file = "Pillow-8.4.0-cp38-cp38-win32.whl", hash = "sha256:82aafa8d5eb68c8463b6e9baeb4f19043bb31fefc03eb7b216b51e6a9981ae09"}, - {file = "Pillow-8.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:066f3999cb3b070a95c3652712cffa1a748cd02d60ad7b4e485c3748a04d9d76"}, - {file = "Pillow-8.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:5503c86916d27c2e101b7f71c2ae2cddba01a2cf55b8395b0255fd33fa4d1f1a"}, - {file = "Pillow-8.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4acc0985ddf39d1bc969a9220b51d94ed51695d455c228d8ac29fcdb25810e6e"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b052a619a8bfcf26bd8b3f48f45283f9e977890263e4571f2393ed8898d331b"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:493cb4e415f44cd601fcec11c99836f707bb714ab03f5ed46ac25713baf0ff20"}, - {file = "Pillow-8.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8831cb7332eda5dc89b21a7bce7ef6ad305548820595033a4b03cf3091235ed"}, - {file = "Pillow-8.4.0-cp39-cp39-win32.whl", hash = "sha256:5e9ac5f66616b87d4da618a20ab0a38324dbe88d8a39b55be8964eb520021e02"}, - {file = "Pillow-8.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:3eb1ce5f65908556c2d8685a8f0a6e989d887ec4057326f6c22b24e8a172c66b"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ddc4d832a0f0b4c52fff973a0d44b6c99839a9d016fe4e6a1cb8f3eea96479c2"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a3e5ddc44c14042f0844b8cf7d2cd455f6cc80fd7f5eefbe657292cf601d9ad"}, - {file = "Pillow-8.4.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70e94281588ef053ae8998039610dbd71bc509e4acbc77ab59d7d2937b10698"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:3862b7256046fcd950618ed22d1d60b842e3a40a48236a5498746f21189afbbc"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4901622493f88b1a29bd30ec1a2f683782e57c3c16a2dbc7f2595ba01f639df"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c471a734240653a0ec91dec0996696eea227eafe72a33bd06c92697728046b"}, - {file = "Pillow-8.4.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:244cf3b97802c34c41905d22810846802a3329ddcb93ccc432870243211c79fc"}, - {file = "Pillow-8.4.0.tar.gz", hash = "sha256:b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed"}, - {file = "Pillow-9.0.0-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:113723312215b25c22df1fdf0e2da7a3b9c357a7d24a93ebbe80bfda4f37a8d4"}, - {file = "Pillow-9.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bb47a548cea95b86494a26c89d153fd31122ed65255db5dcbc421a2d28eb3379"}, - {file = "Pillow-9.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31b265496e603985fad54d52d11970383e317d11e18e856971bdbb86af7242a4"}, - {file = "Pillow-9.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d154ed971a4cc04b93a6d5b47f37948d1f621f25de3e8fa0c26b2d44f24e3e8f"}, - {file = "Pillow-9.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80fe92813d208ce8aa7d76da878bdc84b90809f79ccbad2a288e9bcbeac1d9bd"}, - {file = "Pillow-9.0.0-cp310-cp310-win32.whl", hash = "sha256:d5dcea1387331c905405b09cdbfb34611050cc52c865d71f2362f354faee1e9f"}, - {file = "Pillow-9.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:52abae4c96b5da630a8b4247de5428f593465291e5b239f3f843a911a3cf0105"}, - {file = "Pillow-9.0.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:72c3110228944019e5f27232296c5923398496b28be42535e3b2dc7297b6e8b6"}, - {file = "Pillow-9.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97b6d21771da41497b81652d44191489296555b761684f82b7b544c49989110f"}, - {file = "Pillow-9.0.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:72f649d93d4cc4d8cf79c91ebc25137c358718ad75f99e99e043325ea7d56100"}, - {file = "Pillow-9.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aaf07085c756f6cb1c692ee0d5a86c531703b6e8c9cae581b31b562c16b98ce"}, - {file = "Pillow-9.0.0-cp37-cp37m-win32.whl", hash = "sha256:03b27b197deb4ee400ed57d8d4e572d2d8d80f825b6634daf6e2c18c3c6ccfa6"}, - {file = "Pillow-9.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:a09a9d4ec2b7887f7a088bbaacfd5c07160e746e3d47ec5e8050ae3b2a229e9f"}, - {file = "Pillow-9.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:490e52e99224858f154975db61c060686df8a6b3f0212a678e5d2e2ce24675c9"}, - {file = "Pillow-9.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:500d397ddf4bbf2ca42e198399ac13e7841956c72645513e8ddf243b31ad2128"}, - {file = "Pillow-9.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ebd8b9137630a7bbbff8c4b31e774ff05bbb90f7911d93ea2c9371e41039b52"}, - {file = "Pillow-9.0.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd0e5062f11cb3e730450a7d9f323f4051b532781026395c4323b8ad055523c4"}, - {file = "Pillow-9.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f3b4522148586d35e78313db4db0df4b759ddd7649ef70002b6c3767d0fdeb7"}, - {file = "Pillow-9.0.0-cp38-cp38-win32.whl", hash = "sha256:0b281fcadbb688607ea6ece7649c5d59d4bbd574e90db6cd030e9e85bde9fecc"}, - {file = "Pillow-9.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:b5050d681bcf5c9f2570b93bee5d3ec8ae4cf23158812f91ed57f7126df91762"}, - {file = "Pillow-9.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:c2067b3bb0781f14059b112c9da5a91c80a600a97915b4f48b37f197895dd925"}, - {file = "Pillow-9.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2d16b6196fb7a54aff6b5e3ecd00f7c0bab1b56eee39214b2b223a9d938c50af"}, - {file = "Pillow-9.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98cb63ca63cb61f594511c06218ab4394bf80388b3d66cd61d0b1f63ee0ea69f"}, - {file = "Pillow-9.0.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc462d24500ba707e9cbdef436c16e5c8cbf29908278af053008d9f689f56dee"}, - {file = "Pillow-9.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3586e12d874ce2f1bc875a3ffba98732ebb12e18fb6d97be482bd62b56803281"}, - {file = "Pillow-9.0.0-cp39-cp39-win32.whl", hash = "sha256:68e06f8b2248f6dc8b899c3e7ecf02c9f413aab622f4d6190df53a78b93d97a5"}, - {file = "Pillow-9.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:6579f9ba84a3d4f1807c4aab4be06f373017fc65fff43498885ac50a9b47a553"}, - {file = "Pillow-9.0.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:47f5cf60bcb9fbc46011f75c9b45a8b5ad077ca352a78185bd3e7f1d294b98bb"}, - {file = "Pillow-9.0.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fd8053e1f8ff1844419842fd474fc359676b2e2a2b66b11cc59f4fa0a301315"}, - {file = "Pillow-9.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c5439bfb35a89cac50e81c751317faea647b9a3ec11c039900cd6915831064d"}, - {file = "Pillow-9.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:95545137fc56ce8c10de646074d242001a112a92de169986abd8c88c27566a05"}, - {file = "Pillow-9.0.0.tar.gz", hash = "sha256:ee6e2963e92762923956fe5d3479b1fdc3b76c83f290aad131a2f98c3df0593e"}, + {file = "Pillow-9.0.1-cp310-cp310-macosx_10_10_universal2.whl", hash = "sha256:9bfdb82cdfeccec50aad441afc332faf8606dfa5e8efd18a6692b5d6e79f00fd"}, + {file = "Pillow-9.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5100b45a4638e3c00e4d2320d3193bdabb2d75e79793af7c3eb139e4f569f16f"}, + {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:528a2a692c65dd5cafc130de286030af251d2ee0483a5bf50c9348aefe834e8a"}, + {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f29d831e2151e0b7b39981756d201f7108d3d215896212ffe2e992d06bfe049"}, + {file = "Pillow-9.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:855c583f268edde09474b081e3ddcd5cf3b20c12f26e0d434e1386cc5d318e7a"}, + {file = "Pillow-9.0.1-cp310-cp310-win32.whl", hash = "sha256:d9d7942b624b04b895cb95af03a23407f17646815495ce4547f0e60e0b06f58e"}, + {file = "Pillow-9.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81c4b81611e3a3cb30e59b0cf05b888c675f97e3adb2c8672c3154047980726b"}, + {file = "Pillow-9.0.1-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:413ce0bbf9fc6278b2d63309dfeefe452835e1c78398efb431bab0672fe9274e"}, + {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80fe64a6deb6fcfdf7b8386f2cf216d329be6f2781f7d90304351811fb591360"}, + {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cef9c85ccbe9bee00909758936ea841ef12035296c748aaceee535969e27d31b"}, + {file = "Pillow-9.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d19397351f73a88904ad1aee421e800fe4bbcd1aeee6435fb62d0a05ccd1030"}, + {file = "Pillow-9.0.1-cp37-cp37m-win32.whl", hash = "sha256:d21237d0cd37acded35154e29aec853e945950321dd2ffd1a7d86fe686814669"}, + {file = "Pillow-9.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ede5af4a2702444a832a800b8eb7f0a7a1c0eed55b644642e049c98d589e5092"}, + {file = "Pillow-9.0.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:b5b3f092fe345c03bca1e0b687dfbb39364b21ebb8ba90e3fa707374b7915204"}, + {file = "Pillow-9.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:335ace1a22325395c4ea88e00ba3dc89ca029bd66bd5a3c382d53e44f0ccd77e"}, + {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db6d9fac65bd08cea7f3540b899977c6dee9edad959fa4eaf305940d9cbd861c"}, + {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f154d173286a5d1863637a7dcd8c3437bb557520b01bddb0be0258dcb72696b5"}, + {file = "Pillow-9.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14d4b1341ac07ae07eb2cc682f459bec932a380c3b122f5540432d8977e64eae"}, + {file = "Pillow-9.0.1-cp38-cp38-win32.whl", hash = "sha256:effb7749713d5317478bb3acb3f81d9d7c7f86726d41c1facca068a04cf5bb4c"}, + {file = "Pillow-9.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:7f7609a718b177bf171ac93cea9fd2ddc0e03e84d8fa4e887bdfc39671d46b00"}, + {file = "Pillow-9.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:80ca33961ced9c63358056bd08403ff866512038883e74f3a4bf88ad3eb66838"}, + {file = "Pillow-9.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c3c33ac69cf059bbb9d1a71eeaba76781b450bc307e2291f8a4764d779a6b28"}, + {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:12875d118f21cf35604176872447cdb57b07126750a33748bac15e77f90f1f9c"}, + {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:514ceac913076feefbeaf89771fd6febde78b0c4c1b23aaeab082c41c694e81b"}, + {file = "Pillow-9.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3c5c79ab7dfce6d88f1ba639b77e77a17ea33a01b07b99840d6ed08031cb2a7"}, + {file = "Pillow-9.0.1-cp39-cp39-win32.whl", hash = "sha256:718856856ba31f14f13ba885ff13874be7fefc53984d2832458f12c38205f7f7"}, + {file = "Pillow-9.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:f25ed6e28ddf50de7e7ea99d7a976d6a9c415f03adcaac9c41ff6ff41b6d86ac"}, + {file = "Pillow-9.0.1-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:011233e0c42a4a7836498e98c1acf5e744c96a67dd5032a6f666cc1fb97eab97"}, + {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253e8a302a96df6927310a9d44e6103055e8fb96a6822f8b7f514bb7ef77de56"}, + {file = "Pillow-9.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6295f6763749b89c994fcb6d8a7f7ce03c3992e695f89f00b741b4580b199b7e"}, + {file = "Pillow-9.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:a9f44cd7e162ac6191491d7249cceb02b8116b0f7e847ee33f739d7cb1ea1f70"}, + {file = "Pillow-9.0.1.tar.gz", hash = "sha256:6c8bc8238a7dfdaf7a75f5ec5a663f4173f8c367e5a39f87e720495e1eed75fa"}, ] pluggy = [ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, @@ -5465,10 +5163,8 @@ polib = [ {file = "polib-1.1.1.tar.gz", hash = "sha256:e02c355ae5e054912e3b0d16febc56510eff7e49d60bf22aecb463bd2f2a2dfa"}, ] prompt-toolkit = [ - {file = "prompt_toolkit-3.0.3-py3-none-any.whl", hash = "sha256:c93e53af97f630f12f5f62a3274e79527936ed466f038953dfa379d4941f651a"}, - {file = "prompt_toolkit-3.0.3.tar.gz", hash = "sha256:a402e9bf468b63314e37460b68ba68243d55b2f8c4d0192f85a019af3945050e"}, - {file = "prompt_toolkit-3.0.24-py3-none-any.whl", hash = "sha256:e56f2ff799bacecd3e88165b1e2f5ebf9bcd59e80e06d395fa0cc4b8bd7bb506"}, - {file = "prompt_toolkit-3.0.24.tar.gz", hash = "sha256:1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6"}, + {file = "prompt_toolkit-3.0.27-py3-none-any.whl", hash = "sha256:cb7dae7d2c59188c85a1d6c944fad19aded6a26bd9c8ae115a4e1c20eb90b713"}, + {file = "prompt_toolkit-3.0.27.tar.gz", hash = "sha256:f2b6a8067a4fb959d3677d1ed764cc4e63e0f6f565b9a4fc7edc2b18bf80217b"}, ] psycopg2-binary = [ {file = "psycopg2-binary-2.9.3.tar.gz", hash = "sha256:761df5313dc15da1502b21453642d7599d26be88bff659382f8f9747c7ebea4e"}, @@ -5572,27 +5268,6 @@ pyparsing = [ {file = "pyparsing-3.0.7.tar.gz", hash = "sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea"}, ] pyrsistent = [ - {file = "pyrsistent-0.18.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f4c8cabb46ff8e5d61f56a037974228e978f26bfefce4f61a4b1ac0ba7a2ab72"}, - {file = "pyrsistent-0.18.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:da6e5e818d18459fa46fac0a4a4e543507fe1110e808101277c5a2b5bab0cd2d"}, - {file = "pyrsistent-0.18.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5e4395bbf841693eaebaa5bb5c8f5cdbb1d139e07c975c682ec4e4f8126e03d2"}, - {file = "pyrsistent-0.18.0-cp36-cp36m-win32.whl", hash = "sha256:527be2bfa8dc80f6f8ddd65242ba476a6c4fb4e3aedbf281dfbac1b1ed4165b1"}, - {file = "pyrsistent-0.18.0-cp36-cp36m-win_amd64.whl", hash = "sha256:2aaf19dc8ce517a8653746d98e962ef480ff34b6bc563fc067be6401ffb457c7"}, - {file = "pyrsistent-0.18.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58a70d93fb79dc585b21f9d72487b929a6fe58da0754fa4cb9f279bb92369396"}, - {file = "pyrsistent-0.18.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:4916c10896721e472ee12c95cdc2891ce5890898d2f9907b1b4ae0f53588b710"}, - {file = "pyrsistent-0.18.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:73ff61b1411e3fb0ba144b8f08d6749749775fe89688093e1efef9839d2dcc35"}, - {file = "pyrsistent-0.18.0-cp37-cp37m-win32.whl", hash = "sha256:b29b869cf58412ca5738d23691e96d8aff535e17390128a1a52717c9a109da4f"}, - {file = "pyrsistent-0.18.0-cp37-cp37m-win_amd64.whl", hash = "sha256:097b96f129dd36a8c9e33594e7ebb151b1515eb52cceb08474c10a5479e799f2"}, - {file = "pyrsistent-0.18.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:772e94c2c6864f2cd2ffbe58bb3bdefbe2a32afa0acb1a77e472aac831f83427"}, - {file = "pyrsistent-0.18.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c1a9ff320fa699337e05edcaae79ef8c2880b52720bc031b219e5b5008ebbdef"}, - {file = "pyrsistent-0.18.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:cd3caef37a415fd0dae6148a1b6957a8c5f275a62cca02e18474608cb263640c"}, - {file = "pyrsistent-0.18.0-cp38-cp38-win32.whl", hash = "sha256:e79d94ca58fcafef6395f6352383fa1a76922268fa02caa2272fff501c2fdc78"}, - {file = "pyrsistent-0.18.0-cp38-cp38-win_amd64.whl", hash = "sha256:a0c772d791c38bbc77be659af29bb14c38ced151433592e326361610250c605b"}, - {file = "pyrsistent-0.18.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d5ec194c9c573aafaceebf05fc400656722793dac57f254cd4741f3c27ae57b4"}, - {file = "pyrsistent-0.18.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:6b5eed00e597b5b5773b4ca30bd48a5774ef1e96f2a45d105db5b4ebb4bca680"}, - {file = "pyrsistent-0.18.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:48578680353f41dca1ca3dc48629fb77dfc745128b56fc01096b2530c13fd426"}, - {file = "pyrsistent-0.18.0-cp39-cp39-win32.whl", hash = "sha256:f3ef98d7b76da5eb19c37fda834d50262ff9167c65658d1d8f974d2e4d90676b"}, - {file = "pyrsistent-0.18.0-cp39-cp39-win_amd64.whl", hash = "sha256:404e1f1d254d314d55adb8d87f4f465c8693d6f902f67eb6ef5b4526dc58e6ea"}, - {file = "pyrsistent-0.18.0.tar.gz", hash = "sha256:773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b"}, {file = "pyrsistent-0.18.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:df46c854f490f81210870e509818b729db4488e1f30f2a1ce1698b2295a878d1"}, {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d45866ececf4a5fff8742c25722da6d4c9e180daa7b405dc0a2a2790d668c26"}, {file = "pyrsistent-0.18.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4ed6784ceac462a7d6fcb7e9b663e93b9a6fb373b7f43594f9ff68875788e01e"}, @@ -5776,8 +5451,8 @@ raven = [ {file = "raven-6.10.0.tar.gz", hash = "sha256:3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c8fae54"}, ] redis = [ - {file = "redis-4.1.1-py3-none-any.whl", hash = "sha256:bc97d18938ca18d66737d0ef88584a2073069589e4026813cfba9ad6df9a9f40"}, - {file = "redis-4.1.1.tar.gz", hash = "sha256:07420a3fbedd8e012c31d4fadac943fb81568946da202c5a5bc237774e5280a0"}, + {file = "redis-4.1.3-py3-none-any.whl", hash = "sha256:267e89e476eb684517584e8988f1e5d755f483a368c133020c4c40e8b676bc5d"}, + {file = "redis-4.1.3.tar.gz", hash = "sha256:f2715caad9f0e8c6ff8df46d3c4c9022a3929001f530f66b62747554d3067068"}, ] requests = [ {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, @@ -5793,8 +5468,6 @@ safety = [ {file = "safety-1.10.3.tar.gz", hash = "sha256:30e394d02a20ac49b7f65292d19d38fa927a8f9582cdfd3ad1adbbc66c641ad5"}, ] selenium = [ - {file = "selenium-3.141.0-py2.py3-none-any.whl", hash = "sha256:2d7131d7bc5a5b99a2d9b04aaf2612c411b03b8ca1b1ee8d3de5845a9be2cb3c"}, - {file = "selenium-3.141.0.tar.gz", hash = "sha256:deaf32b60ad91a4611b98d8002757f29e6f2c2d5fcaf202e1c9ad06d6772300d"}, {file = "selenium-4.1.0-py3-none-any.whl", hash = "sha256:27e7b64df961d609f3d57237caa0df123abbbe22d038f2ec9e332fb90ec1a939"}, ] sentry-sdk = [ @@ -5980,8 +5653,6 @@ toml = [ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, ] tomli = [ - {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, - {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, {file = "tomli-2.0.0-py3-none-any.whl", hash = "sha256:b5bde28da1fed24b9bd1d4d2b8cba62300bfb4ec9a6187a957e8ddb9434c5224"}, {file = "tomli-2.0.0.tar.gz", hash = "sha256:c292c34f58502a1eb2bbb9f5bbc9a5ebc37bee10ffb8c2d6bbdfa8eb13cc14e1"}, ] @@ -5995,8 +5666,6 @@ tornado = [ {file = "tornado-5.1.1.tar.gz", hash = "sha256:4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409"}, ] traitlets = [ - {file = "traitlets-4.3.3-py2.py3-none-any.whl", hash = "sha256:70b4c6a1d9019d7b4f6846832288f86998aa3b9207c6821f3578a6a6a467fe44"}, - {file = "traitlets-4.3.3.tar.gz", hash = "sha256:d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7"}, {file = "traitlets-5.1.1-py3-none-any.whl", hash = "sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033"}, {file = "traitlets-5.1.1.tar.gz", hash = "sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7"}, ] @@ -6021,8 +5690,6 @@ uritemplate = [ {file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"}, ] uritools = [ - {file = "uritools-3.0.2-py3-none-any.whl", hash = "sha256:576737664f51f82d5c2a98e25f6c5da73a57cc88326dbb686fd6c5d06ebd6c29"}, - {file = "uritools-3.0.2.tar.gz", hash = "sha256:28ffef82ce3b2793237d36e45aa7cde28dae6502f6a93fdbd05ede401520e279"}, {file = "uritools-4.0.0-py3-none-any.whl", hash = "sha256:9a5a1495c55072093216f79931ca45fd81b59208aa64caae50ab68333514f97e"}, {file = "uritools-4.0.0.tar.gz", hash = "sha256:420d94c1ff4bf90c678fca9c17b8314243bbcaa992c400a95e327f7f622e1edf"}, ] @@ -6158,8 +5825,6 @@ xmltodict = [ {file = "xmltodict-0.12.0.tar.gz", hash = "sha256:50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21"}, ] zipp = [ - {file = "zipp-3.6.0-py3-none-any.whl", hash = "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"}, - {file = "zipp-3.6.0.tar.gz", hash = "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832"}, {file = "zipp-3.7.0-py3-none-any.whl", hash = "sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375"}, {file = "zipp-3.7.0.tar.gz", hash = "sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d"}, ] diff --git a/pyproject.toml b/pyproject.toml index 67fade13b..779236c8a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,8 @@ authors = ["RERO "] license = "GNU Affero General Public License v3.0" [tool.poetry.dependencies] -python = ">= 3.6, <3.8" +python = ">= 3.7, <3.10" + invenio-logging = { version = ">=1.3.0,<1.4.0", extras = ["sentry-sdk", "sentry"] } invenio-oaiharvester = {tag = "v1.0.0a4", git = "https://github.com/inveniosoftware/invenio-oaiharvester.git"} @@ -19,8 +20,11 @@ invenio-pidstore = ">=1.2.1,<1.3.0" invenio-records-rest = ">=1.8.0,<1.9.0" invenio-records-ui= ">=1.2.0,<1.3.0" invenio-records = "<=1.6.0" - +invenio-stats = "^1.0.0-alpha.18" +# TODO: update invenio-records-resources +invenio-records-resources = "==0.12.5" invenio = {version = ">=3.4.0,<3.5.0", extras = ["base", "files", "postgresql", "auth", "elasticsearch7", "docs", "tests"]} + uwsgi = ">=2.0" uwsgitop = ">=0.11" uwsgi-tools = ">=1.1.1" @@ -40,21 +44,19 @@ cryptography = ">=3.2" netaddr = "*" dcxml = "*" lxml = ">=4.6.3,<5.0.0" -webdavclient3 = "^3.14.5" -fuzzywuzzy = "^0.18.0" -python-Levenshtein = "^0.12.0" -invenio-stats = "^1.0.0-alpha.18" -polib = "^1.1.0" -idutils = "^1.1.8" -invenio-records-resources = "^0.12.5" +webdavclient3 = ">=3.14.5" +fuzzywuzzy = ">=0.18.0" +python-Levenshtein = ">=0.12.0" +polib = ">=1.1.0" +idutils = ">=1.1.8" urllib3 = ">=1.26.4" coverage = {version = ">=6.0b1", allow-prereleases = true} -pillow = ">=8.3.2" -# TODO: change back to: celery = ">=5.0.0" after -# `unexpected keyword argument 'ignore_result'` is solved in version 5.0.6 -celery = "5.0.5" +pillow = ">=9.0.0" +celery = ">=5.0.0" jedi = "<0.18.0" -mistune = "<2.0.0" +wtforms = "<3.0.0" +flask-wtf = "<1.0.0" +zipp = "*" [tool.poetry.dev-dependencies] Flask-Debugtoolbar = ">=0.10.1" @@ -63,8 +65,8 @@ mock = ">=2.0.0" pytest-invenio = ">=1.4.1,<1.5.0" safety = ">=1.8" appnope = { version = "*", optional = true } -autoflake = "^1.4" +autoflake = ">=1.4" [build-system] -requires = ["poetry>=0.12"] +requires = ["poetry>=0.12", "setuptools<58"] build-backend = "poetry.core.masonry.api" diff --git a/scripts/bootstrap b/scripts/bootstrap index 5f5254b8f..4b4d48f83 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -52,6 +52,10 @@ title "Bootstrap script" section "Upgrading pip..." "info" poetry run pip install --upgrade pip +# Install setuptools <58 needed to install fs 0.5.4 +section "Install setuptools<58" "info" +poetry run pip install "setuptools<58" + # Installs all packages specified in poetry.lock if [ "$deploy" = false ]; then section "Updating dependencies" "info" diff --git a/scripts/test b/scripts/test index d4291a7f6..7062af19b 100755 --- a/scripts/test +++ b/scripts/test @@ -34,20 +34,14 @@ fi # | package | installed | affected | ID | # +============================+===========+==========================+==========+ # | wtforms | 2.3.3 | <3.0.0a1 | 42852 | -# | sqlalchemy-utils | 0.35.0 | >=0.27.0 | 42194 | -# | flask-caching | 1.10.1 | <=1.10.1 | 40459 | -# | celery | 5.0.5 | <5.2.0 | 42498 | -# | celery | 5.0.5 | <5.2.2 | 43738 | # | werkzeug | 1.0.1 | <2.0.2 | 42050 | -# | kombu | 5.1.0 | <5.2.1 | 42497 | -# | pillow | 8.4.0 | <9.0.0 | 44487 | -# | pillow | 8.4.0 | <9.0.0 | 44485 | -# | pillow | 8.4.0 | <9.0.0 | 44524 | -# | pillow | 8.4.0 | <9.0.0 | 44525 | -# | pillow | 8.4.0 | <9.0.0 | 44486 | +# | sqlalchemy-utils | 0.35.0 | >=0.27.0 | 42194 | # | flask-security | 3.0.0 | >0 | 44501 | +# | flask-caching | 1.10.1 | <=1.10.1 | 40459 | +# | celery | 5.1.2 | <5.2.0 | 42498 | +# | celery | 5.1.2 | <5.2.2 | 43738 | # +============================+===========+==========================+==========+ -safety check -i 42852 -i 42194 -i 40459 -i 42498 -i 43738 -i 42050 -i 42497 -i 44487 -i 44485 -i 44524 -i 44524 -i 44525 -i 44486 -i 44501 +safety check -i 42852 -i 42050 -i 42194 -i 44501 -i 40459 -i 42498 -i 43738 pydocstyle sonar tests docs isort --check-only --diff "${SCRIPT_PATH}/.." autoflake -c -r --remove-all-unused-imports --ignore-init-module-imports . &> /dev/null || { diff --git a/setup.py b/setup.py index 8380c159e..db762fad2 100644 --- a/setup.py +++ b/setup.py @@ -12,9 +12,12 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. -"""SONAR is a future archive of scholarly publications. It intends to collect, -promote and preserve the publications of authors affiliated with Swiss public -research institutions""" +""" +SONAR is a future archive of scholarly publications. + +It intends to collect, promote and preserve the publications of authors +affiliated with Swiss publicresearch institutions +""" import os @@ -175,7 +178,7 @@ "collections = sonar.modules.collections.jsonresolvers", "subdivisions = sonar.modules.subdivisions.jsonresolvers" ], - 'invenio_celery.tasks' : [ + 'invenio_celery.tasks': [ 'documents = sonar.modules.documents.tasks', 'stats = sonar.modules.stats.tasks', ], @@ -194,7 +197,9 @@ 'Programming Language :: Python', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'Development Status :: 3 - Alpha', ] ) diff --git a/sonar/config_sonar.py b/sonar/config_sonar.py index c0a0013ec..9e21952cf 100644 --- a/sonar/config_sonar.py +++ b/sonar/config_sonar.py @@ -22,492 +22,494 @@ SONAR_APP_ANGULAR_URL = 'https://localhost:5000/manage/' """Link to angular integrated app root.""" -SONAR_APP_LANGUAGES_MAP = {'aar':'aa', - 'abk':'ab', - 'ace':None, - 'ach':None, - 'ada':None, - 'ady':None, - 'afa':None, - 'afh':None, - 'afr':'af', - 'ain':None, - 'aka':'ak', - 'akk':None, - 'alb':'sq', - 'ale':None, - 'alg':None, - 'alt':None, - 'ang':None, - 'amh':'am', - 'anp':None, - 'apa':None, - 'ara':'ar', - 'arc':None, - 'arg':'an', - 'arm':'hy', - 'arn':None, - 'arp':None, - 'art':None, - 'arw':None, - 'asm':'as', - 'ast':None, - 'ath':None, - 'aus':None, - 'ava':'av', - 'ave':'ae', - 'awa':None, - 'aym':'ay', - 'aze':'az', - 'bad':None, - 'bai':None, - 'bak':'ba', - 'bal':None, - 'bam':'bm', - 'ban':None, - 'baq':'eu', - 'bas':None, - 'bat':None, - 'bej':None, - 'bel':'be', - 'bem':None, - 'ben':'bn', - 'ber':None, - 'bho':None, - 'bih':'bh', - 'bik':None, - 'bin':None, - 'bis':'bi', - 'bla':None, - 'bnt':None, - 'bos':'bs', - 'bra':None, - 'bre':'br', - 'btk':None, - 'bua':None, - 'bug':None, - 'bul':'bg', - 'bur':'my', - 'byn':None, - 'cad':None, - 'cai':None, - 'car':None, - 'cat':'ca', - 'cau':None, - 'ceb':None, - 'cel':None, - 'cha':'ch', - 'chb':None, - 'che':'ce', - 'chg':None, - 'chi':'zh', - 'chk':None, - 'chm':None, - 'chn':None, - 'cho':None, - 'chp':None, - 'chr':None, - 'chu':'cu', - 'chv':'cv', - 'chy':None, - 'cmc':None, - 'cnr':None, - 'cop':None, - 'cor':'kw', - 'cos':'co', - 'cpe':None, - 'cpf':None, - 'cpp':None, - 'cre':'cr', - 'crh':None, - 'crp':None, - 'csb':None, - 'cus':None, - 'cze':'cs', - 'dak':None, - 'dan':'da', - 'dar':None, - 'day':None, - 'del':None, - 'den':None, - 'dgr':None, - 'din':None, - 'div':'dv', - 'doi':None, - 'dra':None, - 'dsb':None, - 'dua':None, - 'dum':None, - 'dut':'nl', - 'dyu':None, - 'dzo':'dz', - 'efi':None, - 'egy':None, - 'eka':None, - 'elx':None, - 'eng':'en', - 'enm':None, - 'epo':'eo', - 'est':'et', - 'ewe':'ee', - 'ewo':None, - 'fan':None, - 'fao':'fo', - 'fat':None, - 'fij':'fj', - 'fil':None, - 'fin':'fi', - 'fiu':None, - 'fon':None, - 'fre':'fr', - 'frm':None, - 'fro':None, - 'frr':None, - 'frs':None, - 'fry':'fy', - 'ful':'ff', - 'fur':None, - 'gaa':None, - 'gay':None, - 'gba':None, - 'gem':None, - 'geo':'ka', - 'ger':'de', - 'gez':None, - 'gil':None, - 'gla':'gd', - 'gle':'ga', - 'glg':'gl', - 'glv':'gv', - 'gmh':None, - 'goh':None, - 'gon':None, - 'gor':None, - 'got':None, - 'grb':None, - 'grc':None, - 'gre':'el', - 'grn':'gn', - 'gsw':None, - 'guj':'gu', - 'gwi':None, - 'hai':None, - 'hat':'ht', - 'hau':'ha', - 'haw':None, - 'heb':'he', - 'her':'hz', - 'hil':None, - 'him':None, - 'hin':'hi', - 'hit':None, - 'hmn':None, - 'hmo':'ho', - 'hrv':'hr', - 'hsb':None, - 'hun':'hu', - 'hup':None, - 'iba':None, - 'ibo':'ig', - 'ice':'is', - 'ido':'io', - 'iii':'ii', - 'ijo':None, - 'iku':'iu', - 'ile':'ie', - 'ilo':None, - 'ina':'ia', - 'inc':None, - 'ind':'id', - 'ine':None, - 'inh':None, - 'ipk':'ik', - 'ira':None, - 'iro':None, - 'ita':'it', - 'jav':'jv', - 'jbo':None, - 'jpn':'ja', - 'jpr':None, - 'jrb':None, - 'kaa':None, - 'kab':None, - 'kac':None, - 'kal':'kl', - 'kam':None, - 'kan':'kn', - 'kar':None, - 'kas':'ks', - 'kau':'kr', - 'kaw':None, - 'kaz':'kk', - 'kbd':None, - 'kha':None, - 'khi':None, - 'khm':'km', - 'kho':None, - 'kik':'ki', - 'kin':'rw', - 'kir':'ky', - 'kmb':None, - 'kok':None, - 'kom':'kv', - 'kon':'kg', - 'kor':'ko', - 'kos':None, - 'kpe':None, - 'krc':None, - 'krl':None, - 'kro':None, - 'kru':None, - 'kua':'kj', - 'kum':None, - 'kur':'ku', - 'kut':None, - 'lad':None, - 'lah':None, - 'lam':None, - 'lao':'lo', - 'lat':'la', - 'lav':'lv', - 'lez':None, - 'lim':'li', - 'lin':'ln', - 'lit':'lt', - 'lol':None, - 'loz':None, - 'ltz':'lb', - 'lua':None, - 'lub':'lu', - 'lug':'lg', - 'lui':None, - 'lun':None, - 'luo':None, - 'lus':None, - 'mac':'mk', - 'mad':None, - 'mag':None, - 'mah':'mh', - 'mai':None, - 'mak':None, - 'mal':'ml', - 'man':None, - 'mao':'mi', - 'map':None, - 'mar':'mr', - 'mas':None, - 'may':'ms', - 'mdf':None, - 'mdr':None, - 'men':None, - 'mga':None, - 'mic':None, - 'min':None, - 'mis':None, - 'mkh':None, - 'mlg':'mg', - 'mlt':'mt', - 'mnc':None, - 'mni':None, - 'mno':None, - 'moh':None, - 'mon':'mn', - 'mos':None, - 'mul':None, - 'mun':None, - 'mus':None, - 'mwl':None, - 'mwr':None, - 'myn':None, - 'myv':None, - 'nah':None, - 'nai':None, - 'nap':None, - 'nau':'na', - 'nav':'nv', - 'nbl':'nr', - 'nde':'nd', - 'ndo':'ng', - 'nds':None, - 'nep':'ne', - 'new':None, - 'nia':None, - 'nic':None, - 'niu':None, - 'nno':'nn', - 'nob':'nb', - 'nog':None, - 'non':None, - 'nor':'no', - 'nqo':None, - 'nso':None, - 'nub':None, - 'nwc':None, - 'nya':'ny', - 'nym':None, - 'nyn':None, - 'nyo':None, - 'nzi':None, - 'oci':'oc', - 'oji':'oj', - 'ori':'or', - 'orm':'om', - 'osa':None, - 'oss':'os', - 'ota':None, - 'oto':None, - 'paa':None, - 'pag':None, - 'pal':None, - 'pam':None, - 'pan':'pa', - 'pap':None, - 'pau':None, - 'peo':None, - 'per':'fa', - 'phi':None, - 'phn':None, - 'pli':'pi', - 'pol':'pl', - 'pon':None, - 'por':'pt', - 'pra':None, - 'pro':None, - 'pus':'ps', - 'que':'qu', - 'raj':None, - 'rap':None, - 'rar':None, - 'roa':None, - 'roh':'rm', - 'rom':None, - 'rum':'ro', - 'run':'rn', - 'rup':None, - 'rus':'ru', - 'sad':None, - 'sag':'sg', - 'sah':None, - 'sai':None, - 'sal':None, - 'sam':None, - 'san':'sa', - 'sas':None, - 'sat':None, - 'scn':None, - 'sco':None, - 'sel':None, - 'sem':None, - 'sga':None, - 'sgn':None, - 'shn':None, - 'sid':None, - 'sin':'si', - 'sio':None, - 'sit':None, - 'sla':None, - 'slo':'sk', - 'slv':'sl', - 'sma':None, - 'sme':'se', - 'smi':None, - 'smj':None, - 'smn':None, - 'smo':'sm', - 'sms':None, - 'sna':'sn', - 'snd':'sd', - 'snk':None, - 'sog':None, - 'som':'so', - 'son':None, - 'sot':'st', - 'spa':'es', - 'srd':'sc', - 'srn':None, - 'srp':'sr', - 'srr':None, - 'ssa':None, - 'ssw':'ss', - 'suk':None, - 'sun':'su', - 'sus':None, - 'sux':None, - 'swa':'sw', - 'swe':'sv', - 'syc':None, - 'syr':None, - 'tah':'ty', - 'tai':None, - 'tam':'ta', - 'tat':'tt', - 'tel':'te', - 'tem':None, - 'ter':None, - 'tet':None, - 'tgk':'tg', - 'tgl':'tl', - 'tha':'th', - 'tib':'bo', - 'tig':None, - 'tir':'ti', - 'tiv':None, - 'tkl':None, - 'tlh':None, - 'tli':None, - 'tmh':None, - 'tog':None, - 'ton':'to', - 'tpi':None, - 'tsi':None, - 'tsn':'tn', - 'tso':'ts', - 'tuk':'tk', - 'tum':None, - 'tup':None, - 'tur':'tr', - 'tut':None, - 'tvl':None, - 'twi':'tw', - 'tyv':None, - 'udm':None, - 'uga':None, - 'uig':'ug', - 'ukr':'uk', - 'umb':None, - 'und':None, - 'urd':'ur', - 'uzb':'uz', - 'vai':None, - 'ven':'ve', - 'vie':'vi', - 'vol':'vo', - 'vot':None, - 'wak':None, - 'wal':None, - 'war':None, - 'was':None, - 'wel':'cy', - 'wen':None, - 'wln':'wa', - 'wol':'wo', - 'xal':None, - 'xho':'xh', - 'yao':None, - 'yap':None, - 'yid':'yi', - 'yor':'yo', - 'ypk':None, - 'zap':None, - 'zbl':None, - 'zen':None, - 'zgh':None, - 'zha':'za', - 'znd':None, - 'zul':'zu', - 'zun':None, - 'zxx':None, - 'zza':None} +SONAR_APP_LANGUAGES_MAP = { + 'aar': 'aa', + 'abk': 'ab', + 'ace': None, + 'ach': None, + 'ada': None, + 'ady': None, + 'afa': None, + 'afh': None, + 'afr': 'af', + 'ain': None, + 'aka': 'ak', + 'akk': None, + 'alb': 'sq', + 'ale': None, + 'alg': None, + 'alt': None, + 'ang': None, + 'amh': 'am', + 'anp': None, + 'apa': None, + 'ara': 'ar', + 'arc': None, + 'arg': 'an', + 'arm': 'hy', + 'arn': None, + 'arp': None, + 'art': None, + 'arw': None, + 'asm': 'as', + 'ast': None, + 'ath': None, + 'aus': None, + 'ava': 'av', + 'ave': 'ae', + 'awa': None, + 'aym': 'ay', + 'aze': 'az', + 'bad': None, + 'bai': None, + 'bak': 'ba', + 'bal': None, + 'bam': 'bm', + 'ban': None, + 'baq': 'eu', + 'bas': None, + 'bat': None, + 'bej': None, + 'bel': 'be', + 'bem': None, + 'ben': 'bn', + 'ber': None, + 'bho': None, + 'bih': 'bh', + 'bik': None, + 'bin': None, + 'bis': 'bi', + 'bla': None, + 'bnt': None, + 'bos': 'bs', + 'bra': None, + 'bre': 'br', + 'btk': None, + 'bua': None, + 'bug': None, + 'bul': 'bg', + 'bur': 'my', + 'byn': None, + 'cad': None, + 'cai': None, + 'car': None, + 'cat': 'ca', + 'cau': None, + 'ceb': None, + 'cel': None, + 'cha': 'ch', + 'chb': None, + 'che': 'ce', + 'chg': None, + 'chi': 'zh', + 'chk': None, + 'chm': None, + 'chn': None, + 'cho': None, + 'chp': None, + 'chr': None, + 'chu': 'cu', + 'chv': 'cv', + 'chy': None, + 'cmc': None, + 'cnr': None, + 'cop': None, + 'cor': 'kw', + 'cos': 'co', + 'cpe': None, + 'cpf': None, + 'cpp': None, + 'cre': 'cr', + 'crh': None, + 'crp': None, + 'csb': None, + 'cus': None, + 'cze': 'cs', + 'dak': None, + 'dan': 'da', + 'dar': None, + 'day': None, + 'del': None, + 'den': None, + 'dgr': None, + 'din': None, + 'div': 'dv', + 'doi': None, + 'dra': None, + 'dsb': None, + 'dua': None, + 'dum': None, + 'dut': 'nl', + 'dyu': None, + 'dzo': 'dz', + 'efi': None, + 'egy': None, + 'eka': None, + 'elx': None, + 'eng': 'en', + 'enm': None, + 'epo': 'eo', + 'est': 'et', + 'ewe': 'ee', + 'ewo': None, + 'fan': None, + 'fao': 'fo', + 'fat': None, + 'fij': 'fj', + 'fil': None, + 'fin': 'fi', + 'fiu': None, + 'fon': None, + 'fre': 'fr', + 'frm': None, + 'fro': None, + 'frr': None, + 'frs': None, + 'fry': 'fy', + 'ful': 'ff', + 'fur': None, + 'gaa': None, + 'gay': None, + 'gba': None, + 'gem': None, + 'geo': 'ka', + 'ger': 'de', + 'gez': None, + 'gil': None, + 'gla': 'gd', + 'gle': 'ga', + 'glg': 'gl', + 'glv': 'gv', + 'gmh': None, + 'goh': None, + 'gon': None, + 'gor': None, + 'got': None, + 'grb': None, + 'grc': None, + 'gre': 'el', + 'grn': 'gn', + 'gsw': None, + 'guj': 'gu', + 'gwi': None, + 'hai': None, + 'hat': 'ht', + 'hau': 'ha', + 'haw': None, + 'heb': 'he', + 'her': 'hz', + 'hil': None, + 'him': None, + 'hin': 'hi', + 'hit': None, + 'hmn': None, + 'hmo': 'ho', + 'hrv': 'hr', + 'hsb': None, + 'hun': 'hu', + 'hup': None, + 'iba': None, + 'ibo': 'ig', + 'ice': 'is', + 'ido': 'io', + 'iii': 'ii', + 'ijo': None, + 'iku': 'iu', + 'ile': 'ie', + 'ilo': None, + 'ina': 'ia', + 'inc': None, + 'ind': 'id', + 'ine': None, + 'inh': None, + 'ipk': 'ik', + 'ira': None, + 'iro': None, + 'ita': 'it', + 'jav': 'jv', + 'jbo': None, + 'jpn': 'ja', + 'jpr': None, + 'jrb': None, + 'kaa': None, + 'kab': None, + 'kac': None, + 'kal': 'kl', + 'kam': None, + 'kan': 'kn', + 'kar': None, + 'kas': 'ks', + 'kau': 'kr', + 'kaw': None, + 'kaz': 'kk', + 'kbd': None, + 'kha': None, + 'khi': None, + 'khm': 'km', + 'kho': None, + 'kik': 'ki', + 'kin': 'rw', + 'kir': 'ky', + 'kmb': None, + 'kok': None, + 'kom': 'kv', + 'kon': 'kg', + 'kor': 'ko', + 'kos': None, + 'kpe': None, + 'krc': None, + 'krl': None, + 'kro': None, + 'kru': None, + 'kua': 'kj', + 'kum': None, + 'kur': 'ku', + 'kut': None, + 'lad': None, + 'lah': None, + 'lam': None, + 'lao': 'lo', + 'lat': 'la', + 'lav': 'lv', + 'lez': None, + 'lim': 'li', + 'lin': 'ln', + 'lit': 'lt', + 'lol': None, + 'loz': None, + 'ltz': 'lb', + 'lua': None, + 'lub': 'lu', + 'lug': 'lg', + 'lui': None, + 'lun': None, + 'luo': None, + 'lus': None, + 'mac': 'mk', + 'mad': None, + 'mag': None, + 'mah': 'mh', + 'mai': None, + 'mak': None, + 'mal': 'ml', + 'man': None, + 'mao': 'mi', + 'map': None, + 'mar': 'mr', + 'mas': None, + 'may': 'ms', + 'mdf': None, + 'mdr': None, + 'men': None, + 'mga': None, + 'mic': None, + 'min': None, + 'mis': None, + 'mkh': None, + 'mlg': 'mg', + 'mlt': 'mt', + 'mnc': None, + 'mni': None, + 'mno': None, + 'moh': None, + 'mon': 'mn', + 'mos': None, + 'mul': None, + 'mun': None, + 'mus': None, + 'mwl': None, + 'mwr': None, + 'myn': None, + 'myv': None, + 'nah': None, + 'nai': None, + 'nap': None, + 'nau': 'na', + 'nav': 'nv', + 'nbl': 'nr', + 'nde': 'nd', + 'ndo': 'ng', + 'nds': None, + 'nep': 'ne', + 'new': None, + 'nia': None, + 'nic': None, + 'niu': None, + 'nno': 'nn', + 'nob': 'nb', + 'nog': None, + 'non': None, + 'nor': 'no', + 'nqo': None, + 'nso': None, + 'nub': None, + 'nwc': None, + 'nya': 'ny', + 'nym': None, + 'nyn': None, + 'nyo': None, + 'nzi': None, + 'oci': 'oc', + 'oji': 'oj', + 'ori': 'or', + 'orm': 'om', + 'osa': None, + 'oss': 'os', + 'ota': None, + 'oto': None, + 'paa': None, + 'pag': None, + 'pal': None, + 'pam': None, + 'pan': 'pa', + 'pap': None, + 'pau': None, + 'peo': None, + 'per': 'fa', + 'phi': None, + 'phn': None, + 'pli': 'pi', + 'pol': 'pl', + 'pon': None, + 'por': 'pt', + 'pra': None, + 'pro': None, + 'pus': 'ps', + 'que': 'qu', + 'raj': None, + 'rap': None, + 'rar': None, + 'roa': None, + 'roh': 'rm', + 'rom': None, + 'rum': 'ro', + 'run': 'rn', + 'rup': None, + 'rus': 'ru', + 'sad': None, + 'sag': 'sg', + 'sah': None, + 'sai': None, + 'sal': None, + 'sam': None, + 'san': 'sa', + 'sas': None, + 'sat': None, + 'scn': None, + 'sco': None, + 'sel': None, + 'sem': None, + 'sga': None, + 'sgn': None, + 'shn': None, + 'sid': None, + 'sin': 'si', + 'sio': None, + 'sit': None, + 'sla': None, + 'slo': 'sk', + 'slv': 'sl', + 'sma': None, + 'sme': 'se', + 'smi': None, + 'smj': None, + 'smn': None, + 'smo': 'sm', + 'sms': None, + 'sna': 'sn', + 'snd': 'sd', + 'snk': None, + 'sog': None, + 'som': 'so', + 'son': None, + 'sot': 'st', + 'spa': 'es', + 'srd': 'sc', + 'srn': None, + 'srp': 'sr', + 'srr': None, + 'ssa': None, + 'ssw': 'ss', + 'suk': None, + 'sun': 'su', + 'sus': None, + 'sux': None, + 'swa': 'sw', + 'swe': 'sv', + 'syc': None, + 'syr': None, + 'tah': 'ty', + 'tai': None, + 'tam': 'ta', + 'tat': 'tt', + 'tel': 'te', + 'tem': None, + 'ter': None, + 'tet': None, + 'tgk': 'tg', + 'tgl': 'tl', + 'tha': 'th', + 'tib': 'bo', + 'tig': None, + 'tir': 'ti', + 'tiv': None, + 'tkl': None, + 'tlh': None, + 'tli': None, + 'tmh': None, + 'tog': None, + 'ton': 'to', + 'tpi': None, + 'tsi': None, + 'tsn': 'tn', + 'tso': 'ts', + 'tuk': 'tk', + 'tum': None, + 'tup': None, + 'tur': 'tr', + 'tut': None, + 'tvl': None, + 'twi': 'tw', + 'tyv': None, + 'udm': None, + 'uga': None, + 'uig': 'ug', + 'ukr': 'uk', + 'umb': None, + 'und': None, + 'urd': 'ur', + 'uzb': 'uz', + 'vai': None, + 'ven': 've', + 'vie': 'vi', + 'vol': 'vo', + 'vot': None, + 'wak': None, + 'wal': None, + 'war': None, + 'was': None, + 'wel': 'cy', + 'wen': None, + 'wln': 'wa', + 'wol': 'wo', + 'xal': None, + 'xho': 'xh', + 'yao': None, + 'yap': None, + 'yid': 'yi', + 'yor': 'yo', + 'ypk': None, + 'zap': None, + 'zbl': None, + 'zen': None, + 'zgh': None, + 'zha': 'za', + 'znd': None, + 'zul': 'zu', + 'zun': None, + 'zxx': None, + 'zza': None +} SONAR_APP_PREFERRED_LANGUAGES = ['eng', 'fre', 'ger', 'ita']