Skip to content

Commit 60b1e47

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

File tree

3 files changed

+6
-10
lines changed

3 files changed

+6
-10
lines changed

src/opossum_lib/opossum_model.py

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

1514
from pydantic import BaseModel, ConfigDict
@@ -123,7 +122,7 @@ def get_attribution_key(
123122

124123
class Resource(BaseModel):
125124
model_config = ConfigDict(extra="forbid")
126-
path: Path
125+
path: PurePosixPath
127126
type: ResourceType | None = None
128127
attributions: list[OpossumPackage] = []
129128
children: dict[str, Resource] = {}

src/opossum_lib/scancode/resource_tree.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,16 @@
55

66
from __future__ import annotations
77

8-
from pathlib import Path
9-
108
import opossum_lib.opossum_model as opossum_model
119
from opossum_lib.scancode.constants import SCANCODE_SOURCE_NAME
1210
from opossum_lib.scancode.model import File, FileType, ScanCodeData
1311

1412

1513
def scancode_to_file_tree(scancode_data: ScanCodeData) -> opossum_model.Resource:
16-
temp_root = opossum_model.Resource(path=Path(""))
14+
temp_root = opossum_model.Resource(path=PurePosixPath(""))
1715
for file in scancode_data.files:
1816
resource = opossum_model.Resource(
19-
path=Path(file.path),
17+
path=PurePosixPath(file.path.replace("\\", "/")),
2018
attributions=get_attribution_info(file),
2119
type=convert_resource_type(file.type),
2220
)

tests/test_scancode/model_helpers.py

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

5-
from pathlib import Path
65

76
from opossum_lib.scancode.model import (
87
Copyright,
@@ -83,11 +82,11 @@ def _create_file(
8382
if copyrights is None:
8483
copyrights = []
8584
if name is None:
86-
name = Path(path).name
85+
name = PurePosixPath(path).name
8786
if base_name is None:
88-
base_name = Path(Path(path).name).stem
87+
base_name = PurePosixPath(PurePosixPath(path).name).stem
8988
if extension is None:
90-
extension = Path(path).suffix
89+
extension = PurePosixPath(path).suffix
9190
return File(
9291
authors=authors,
9392
base_name=base_name,

0 commit comments

Comments
 (0)