From 3e063e92d45d66cf565d9bf7203ec4e16faf8cc7 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 18 Sep 2023 13:28:44 +0200 Subject: [PATCH 1/4] CI: Add mypy check --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 397a3d0..0020dd0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,8 +10,11 @@ workflow: before_script: # - python --version ; pip --version # For debugging - pip install flake8 -qq + - pip install mypy -qq + - pip install types-PyYAML types-psycopg2 -qq test: script: # ignore long lines - flake8 --ignore=E501 cleanmedia + - mypy cleanmedia \ No newline at end of file From 7d6dc981e39ec865683a75f153c3c9f6623ee4a5 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 18 Sep 2023 13:35:41 +0200 Subject: [PATCH 2/4] CI: Fix cleanmedia:107: error: Name "psycopg2.extensions.connection" is not defined [name-defined] --- cleanmedia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cleanmedia b/cleanmedia index 37e0ff6..18486d2 100755 --- a/cleanmedia +++ b/cleanmedia @@ -23,7 +23,7 @@ from pathlib import Path from typing import Optional, Union, List, Tuple try: - import psycopg2 + import psycopg2, psycopg2.extensions import yaml except ImportError: raise Exception("Please install psycopg2 and pyyaml") From 9eea97f1e1d3375f38ded58f3dee5e9648e45a37 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 18 Sep 2023 13:39:13 +0200 Subject: [PATCH 3/4] CI: Make mypy happy cleanmedia:133: error: Value of type "tuple[Any, ...] | None" is not indexable [index] So we do sanity check that row is not None now before doing something with row[0]. --- cleanmedia | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cleanmedia b/cleanmedia index 18486d2..59759dc 100755 --- a/cleanmedia +++ b/cleanmedia @@ -130,7 +130,7 @@ class MediaRepository: with self.conn.cursor() as cur: cur.execute("SELECT COUNT(media_id) from mediaapi_thumbnail WHERE media_id NOT IN (SELECT media_id FROM mediaapi_media_repository);") row = cur.fetchone() - if row[0]: + if row is not None and row[0]: logging.error("You have {} thumbnails in your db that do not refer to media. This needs fixing (we don't do that)!".format(row[0])) From b01eb97a475f7e79c5cb242ff5d4ea3e2453d929 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 18 Sep 2023 13:44:09 +0200 Subject: [PATCH 4/4] CI: flake8 the file --- cleanmedia | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cleanmedia b/cleanmedia index 59759dc..485dc83 100755 --- a/cleanmedia +++ b/cleanmedia @@ -12,18 +12,14 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . - -# mediaapi_media_repository: media_id | media_origin | content_type | file_size_bytes | creation_ts | upload_name | base64hash | user_id -# mediaapi_thumbnail: media_id | media_origin | content_type | file_size_bytes | creation_ts | width | height | resize_method import argparse import logging from datetime import datetime, timedelta from functools import cached_property from pathlib import Path from typing import Optional, Union, List, Tuple - try: - import psycopg2, psycopg2.extensions + import psycopg2, psycopg2.extensions # noqa: E401 import yaml except ImportError: raise Exception("Please install psycopg2 and pyyaml")