Coverage for src/gitlabracadabra/packages/package_file.py: 100%
14 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 dataclasses import KW_ONLY, dataclass, field
22@dataclass
23class PackageFile:
24 url: str
25 package_type: str
26 package_name: str
27 package_version: str = "0"
28 file_name: str = ""
29 _: KW_ONLY
30 metadata: dict[str, str] = field(default_factory=dict)
32 def __post_init__(self) -> None:
33 if not self.file_name:
34 self.file_name = self.url.split("/").pop()