diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml
index ae539537..842ba6bd 100644
--- a/.github/workflows/dependabot-auto-merge.yml
+++ b/.github/workflows/dependabot-auto-merge.yml
@@ -12,7 +12,7 @@ jobs:
steps:
- name: Dependabot metadata
id: metadata
- uses: dependabot/fetch-metadata@v1.3.5
+ uses: dependabot/fetch-metadata@v1.5.1
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Wait other jobs are passed or failed
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 6925a9c3..913f6970 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- - uses: rojopolis/spellcheck-github-actions@0.29.0
+ - uses: rojopolis/spellcheck-github-actions@0.33.0
name: Spellcheck
code_docs:
@@ -21,7 +21,7 @@ jobs:
max-parallel: 4
matrix:
os: [ubuntu-latest]
- python-version: [3.8]
+ python-version: ["3.10"]
runs-on: ${{ matrix.os }}
diff --git a/.github/workflows/int.yml b/.github/workflows/int.yml
index d8da464c..de5dc79a 100644
--- a/.github/workflows/int.yml
+++ b/.github/workflows/int.yml
@@ -9,7 +9,7 @@ jobs:
max-parallel: 4
matrix:
os: [ubuntu-latest]
- python-version: [3.8]
+ python-version: ["3.10"]
runs-on: ${{ matrix.os }}
@@ -39,7 +39,7 @@ jobs:
driver-opts: network=host
- name: Build
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v4
with:
context: .
push: true
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 64a62ef2..7dd68814 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -37,7 +37,7 @@ jobs:
type=ref,event=tag
- name: Build and push
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
@@ -51,7 +51,7 @@ jobs:
org.opencontainers.image.revision=${{ github.sha }}
- name: Build and push dataloader
- uses: docker/build-push-action@v3
+ uses: docker/build-push-action@v4
with:
run: |
pushd deploy/dataloader
diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml
index 78942b73..3b2095f3 100644
--- a/.github/workflows/style.yml
+++ b/.github/workflows/style.yml
@@ -8,7 +8,7 @@ jobs:
max-parallel: 4
matrix:
os: [ubuntu-latest]
- python-version: [3.8]
+ python-version: ["3.10"]
runs-on: ${{ matrix.os }}
diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml
index 5ff1cb57..a691ae58 100644
--- a/.github/workflows/unit.yml
+++ b/.github/workflows/unit.yml
@@ -11,7 +11,7 @@ jobs:
max-parallel: 4
matrix:
os: [ubuntu-latest]
- python-version: [3.8]
+ python-version: ["3.10"]
runs-on: ${{ matrix.os }}
@@ -29,7 +29,7 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install tox tox-gh-actions coverage
- - name: Run unit tests for python 3.8
+ - name: Run unit tests for python 3.10
run: |
tox -e unit_tests
coverage lcov -o lcov.info
diff --git a/Dockerfile b/Dockerfile
index 0e4f4057..e54d10aa 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.8-alpine3.15 as BUILD
+FROM python:3.10.12-alpine3.18 as BUILD
RUN apk add --update \
&& apk add --no-cache build-base curl-dev linux-headers bash git musl-dev\
@@ -18,7 +18,7 @@ COPY setup.py /root/beacon/setup.py
COPY beacon_api /root/beacon/beacon_api
RUN pip install /root/beacon
-FROM python:3.8-alpine3.15
+FROM python:3.10.12-alpine3.18
RUN apk add --no-cache --update bash
@@ -29,7 +29,7 @@ LABEL org.label-schema.vcs-url="https://github.com/CSCFI/beacon-python"
RUN apk add --update \
&& apk add --no-cache curl bzip2 xz
-COPY --from=BUILD usr/local/lib/python3.8/ usr/local/lib/python3.8/
+COPY --from=BUILD usr/local/lib/python3.10/ usr/local/lib/python3.10/
COPY --from=BUILD /usr/local/bin/gunicorn /usr/local/bin/
diff --git a/README.md b/README.md
index 2f86b872..6130dd38 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Documentation: https://beacon-python.readthedocs.io
### Quick start
`beacon-python` Web Server requires:
-* Python 3.8+;
+* Python 3.10+;
* running DB [PostgreSQL Server](https://www.postgresql.org/) 9.6+ (recommended 13).
```shell
diff --git a/beacon_api/app.py b/beacon_api/app.py
index 357e5179..977448b1 100644
--- a/beacon_api/app.py
+++ b/beacon_api/app.py
@@ -135,7 +135,7 @@ def main():
if __name__ == "__main__":
- if sys.version_info < (3, 8):
- LOG.error("beacon-python requires python 3.8")
+ if sys.version_info < (3, 10):
+ LOG.error("beacon-python requires python 3.10")
sys.exit(1)
main()
diff --git a/beacon_api/extensions/mate_name.py b/beacon_api/extensions/mate_name.py
index 149a4d81..83fceb62 100644
--- a/beacon_api/extensions/mate_name.py
+++ b/beacon_api/extensions/mate_name.py
@@ -45,7 +45,6 @@ async def fetch_fusion_dataset(db_pool, assembly_id, position, chromosome, refer
db_response = await statement.fetch(datasets_query, access_query, assembly_id, chromosome)
else:
-
# UBER QUERY - TBD if it is what we need
# referenceBases, alternateBases and variantType fields are NOT part of beacon's specification response
query = """SELECT a.datasetId as "datasetId", b.accessType as "accessType", a.chromosome as "referenceName",
diff --git a/docs/instructions.rst b/docs/instructions.rst
index 54e5f8fa..7e829c65 100644
--- a/docs/instructions.rst
+++ b/docs/instructions.rst
@@ -3,7 +3,7 @@ Instructions
.. note:: In order to run ``beacon-python`` Web Server requirements are as specified below:
- * Python 3.8+;
+ * Python 3.10+;
* running DB `PostgreSQL Server `_ 9.6+ (recommended 13).
.. _env-setup:
diff --git a/docs/optionals.rst b/docs/optionals.rst
index 6bb8e927..011d407e 100644
--- a/docs/optionals.rst
+++ b/docs/optionals.rst
@@ -10,7 +10,7 @@ Handover Protocol
The handover protocol is a feature comparable to `HATEOAS and HAL `_. It can be used to convey
extra information regarding the Beacon service, or the dataset response.
-More information about the handover protocol can be read from the `Beacon Project page `_ and
+More information about the handover protocol can be read from the `Beacon Project page `_ and
Beacon Specification's `handover issue `_ at Github.
The handover protocol can be configured in ``config.ini`` as follows:
diff --git a/readthedocs.yml b/readthedocs.yml
index 1773a400..0413e75c 100644
--- a/readthedocs.yml
+++ b/readthedocs.yml
@@ -4,7 +4,7 @@ build:
image: latest
requirements_file: docs/docs.txt
python:
- version: 3.8
+ version: 3.10
use_system_site_packages: true
setup_py_install: true
extra_requirements:
diff --git a/requirements.txt b/requirements.txt
index 4b8e87eb..9e375527 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,11 +1,11 @@
-aiohttp==3.8.3
+aiohttp==3.8.4
aiohttp-cors==0.7.0
asyncpg==0.27.0
jsonschema==4.17.3
-Cython==0.29.33
+Cython==0.29.35
cyvcf2==0.30.18
uvloop==0.17.0
aiocache==0.11.1
-ujson==5.7.0
+ujson==5.8.0
Authlib==1.2.0
gunicorn==20.1.0
diff --git a/setup.py b/setup.py
index 297700ee..2dea20f9 100644
--- a/setup.py
+++ b/setup.py
@@ -33,12 +33,11 @@
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"License :: OSI Approved :: Apache Software License",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.10",
],
install_requires=[
"asyncpg==0.27.0",
- "aiohttp==3.8.3",
+ "aiohttp==3.8.4",
"Authlib==1.2.0",
"aiohttp-cors==0.7.0",
"jsonschema==4.17.3",
@@ -46,25 +45,25 @@
"uvloop==0.17.0",
"cyvcf2==0.30.18",
"aiocache==0.11.1",
- "ujson==5.7.0",
+ "ujson==5.8.0",
],
extras_require={
"vcf": [
- "numpy==1.24.1",
+ "numpy==1.25.0",
"cyvcf2==0.30.18",
- "Cython==0.29.33",
+ "Cython==0.29.35",
],
"test": [
- "coverage==7.0.4",
- "pytest<7.3",
- "pytest-cov==4.0.0",
- "testfixtures==7.0.4",
- "tox==4.2.6",
+ "coverage==7.2.7",
+ "pytest<7.4",
+ "pytest-cov==4.1.0",
+ "testfixtures==7.1.0",
+ "tox==4.6.2",
"flake8==6.0.0",
- "flake8-docstrings==1.6.0",
+ "flake8-docstrings==1.7.0",
"aioresponses==0.7.4",
- "black==22.12.0",
+ "black==23.3.0",
],
- "docs": ["sphinx >= 1.4", "sphinx_rtd_theme==1.1.1"],
+ "docs": ["sphinx >= 1.4", "sphinx_rtd_theme==1.2.2"],
},
)
diff --git a/tests/test_app.py b/tests/test_app.py
index 8a1f0d7d..575c51bc 100644
--- a/tests/test_app.py
+++ b/tests/test_app.py
@@ -5,7 +5,7 @@
import json
from authlib.jose import jwt
import os
-from test.support import EnvironmentVarGuard
+from test.support.os_helper import EnvironmentVarGuard
from aiocache import caches
diff --git a/tests/test_basic.py b/tests/test_basic.py
index 575e9e9f..ce100aa4 100644
--- a/tests/test_basic.py
+++ b/tests/test_basic.py
@@ -8,7 +8,7 @@
from beacon_api.permissions.ga4gh import check_ga4gh_token, decode_passport, get_ga4gh_permissions
from .test_app import PARAMS, generate_token
from testfixtures import TempDirectory
-from test.support import EnvironmentVarGuard
+from test.support.os_helper import EnvironmentVarGuard
def mock_token(bona_fide, permissions, auth):
diff --git a/tox.ini b/tox.ini
index 2abdedb1..e3f0069d 100644
--- a/tox.ini
+++ b/tox.ini
@@ -56,4 +56,4 @@ commands = py.test -x --cov=beacon_api tests/ --cov-fail-under=80
[gh-actions]
python =
- 3.8: flake8, unit_tests, docs, bandit, mypy
+ 3.10: flake8, unit_tests, docs, bandit, mypy