Skip to content

Commit 59f5dc7

Browse files
committed
fix: use PurePaths instead to make it work on windows
1 parent 057727c commit 59f5dc7

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

src/opossum_lib/opossum_model.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from collections.abc import Iterable
1010
from dataclasses import field
1111
from enum import Enum, auto
12-
from pathlib import Path
12+
from pathlib import PurePath
1313
from typing import Literal
1414

1515
from pydantic import BaseModel, ConfigDict
@@ -123,7 +123,7 @@ def get_attribution_key(
123123

124124
class Resource(BaseModel):
125125
model_config = ConfigDict(extra="forbid")
126-
path: Path
126+
path: PurePath
127127
type: ResourceType | None = None
128128
attributions: list[OpossumPackage] = []
129129
children: dict[str, Resource] = {}

src/opossum_lib/scancode/resource_tree.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@
55

66
from __future__ import annotations
77

8-
from pathlib import Path
8+
from pathlib import PurePath
99

1010
import opossum_lib.opossum_model as opossum_model
1111
from opossum_lib.scancode.constants import SCANCODE_SOURCE_NAME
1212
from opossum_lib.scancode.model import File, FileType, ScanCodeData
1313

1414

1515
def scancode_to_file_tree(scancode_data: ScanCodeData) -> opossum_model.Resource:
16-
temp_root = opossum_model.Resource(path=Path(""))
16+
temp_root = opossum_model.Resource(path=PurePath(""))
1717
for file in scancode_data.files:
1818
resource = opossum_model.Resource(
19-
path=Path(file.path),
19+
path=PurePath(file.path.replace("\\", "/")),
2020
attributions=get_attribution_info(file),
2121
type=convert_resource_type(file.type),
2222
)

tests/test_scancode/model_helpers.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44

5-
from pathlib import Path
5+
6+
from pathlib import PurePath
67

78
from opossum_lib.scancode.model import (
89
Copyright,
@@ -83,11 +84,11 @@ def _create_file(
8384
if copyrights is None:
8485
copyrights = []
8586
if name is None:
86-
name = Path(path).name
87+
name = PurePath(path).name
8788
if base_name is None:
88-
base_name = Path(Path(path).name).stem
89+
base_name = PurePath(PurePath(path).name).stem
8990
if extension is None:
90-
extension = Path(path).suffix
91+
extension = PurePath(path).suffix
9192
return File(
9293
authors=authors,
9394
base_name=base_name,

0 commit comments

Comments
 (0)