Coverage for src/gitlabracadabra/packages/source.py: 87%
13 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-14 23:10 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-14 23:10 +0200
1#
2# Copyright (C) 2019-2025 Mathieu Parent <math.parent@gmail.com>
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU Lesser General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>.
17from __future__ import annotations
19from typing import TYPE_CHECKING
21from requests import Session
23from gitlabracadabra import __version__ as gitlabracadabra_version
25if TYPE_CHECKING: 25 ↛ 26line 25 didn't jump to line 26 because the condition on line 25 was never true
26 from gitlabracadabra.packages.package_file import PackageFile
29class Source:
30 """Source package repository."""
32 def __init__(self) -> None:
33 """Initialize a Source."""
34 self.session = Session()
35 self.session.headers["User-Agent"] = f"gitlabracadabra/{gitlabracadabra_version}"
37 @property
38 def package_files(self) -> list[PackageFile]:
39 """Return list of package files.
41 Raises:
42 NotImplementedError: This is an abstract method.
43 """
44 raise NotImplementedError