From aaae1a6b0b1b6101a7b3e4cd7b20cf7fb87b4c27 Mon Sep 17 00:00:00 2001 From: Antoine Lambert <anlambert@softwareheritage.org> Date: Fri, 3 May 2024 13:52:02 +0200 Subject: [PATCH] launchpad, npm: Port code to updated swh-scheduler API The oldest part of the scheduler API was updated to use model classes (based on attr package) instead of dictionaries in order to improve typing. --- requirements-swh.txt | 4 +++- requirements-test.txt | 2 +- swh/lister/launchpad/tests/conftest.py | 17 +++++++++-------- swh/lister/npm/__init__.py | 8 +++++--- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/requirements-swh.txt b/requirements-swh.txt index 8edab5aa..51be4cda 100644 --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1,2 +1,4 @@ swh.core[db] >= 2.22.0 -swh.scheduler >= 1.12.0 +swh.scheduler >= 2.3.0 + + diff --git a/requirements-test.txt b/requirements-test.txt index 5bb91bd9..484cb3f7 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -2,7 +2,7 @@ pandas pytest >= 8.1 pytest-mock requests_mock -swh-scheduler[testing] +swh-scheduler[testing] >= 2.3.0 types-beautifulsoup4 types-click types-pyyaml diff --git a/swh/lister/launchpad/tests/conftest.py b/swh/lister/launchpad/tests/conftest.py index 1412de96..38f1ffdf 100644 --- a/swh/lister/launchpad/tests/conftest.py +++ b/swh/lister/launchpad/tests/conftest.py @@ -1,9 +1,9 @@ -# Copyright (C) 2020 The Software Heritage developers +# Copyright (C) 2020-2024 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information -from datetime import datetime +from datetime import datetime, timedelta import json import os from unittest.mock import patch @@ -11,6 +11,7 @@ from unittest.mock import patch import pytest from swh.lister import get_lister +from swh.scheduler.model import TaskType @pytest.fixture @@ -45,12 +46,12 @@ def lister_launchpad(datadir, lister_db_url, engine, swh_scheduler): lister = get_lister("launchpad", db_url=lister_db_url) lister.scheduler.create_task_type( - { - "type": "load-git", - "description": "Load git repository", - "backend_name": "swh.loader.git.tasks.UpdateGitRepository", - "default_interval": "1 day", - } + TaskType( + type="load-git", + description="Load git repository", + backend_name="swh.loader.git.tasks.UpdateGitRepository", + default_interval=timedelta(days=1), + ) ) return lister diff --git a/swh/lister/npm/__init__.py b/swh/lister/npm/__init__.py index 1a5f84b3..e271e6a5 100644 --- a/swh/lister/npm/__init__.py +++ b/swh/lister/npm/__init__.py @@ -4,6 +4,8 @@ def register(): + from datetime import timedelta + from .lister import NpmLister return { @@ -11,9 +13,9 @@ def register(): "task_modules": ["%s.tasks" % __name__], "task_types": { "list-npm-full": { - "default_interval": "7 days", - "min_interval": "7 days", - "max_interval": "7 days", + "default_interval": timedelta(days=7), + "min_interval": timedelta(days=7), + "max_interval": timedelta(days=7), }, }, } -- GitLab