Coverage for src/gitlabracadabra/packages/package_file.py: 100%

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/>.

16

17 from __future__ import annotations

18

19 from dataclasses import KW_ONLY, dataclass, field

20

21

22@dataclass

23 class 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)

31

32 def __post_init__(self) -> None:

33 if not self.file_name:

34 self.file_name = self.url.split("/").pop()