Skip to content

Commit d5bbc76

Browse files
added licence links
1 parent c01488c commit d5bbc76

File tree

2 files changed

+53
-34
lines changed

2 files changed

+53
-34
lines changed

exasol/toolbox/nox/_dependencies.py

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ def select_most_restrictive(l: str) -> str:
8080
"Mozilla Public License 2.0 (MPL 2.0)": "MPLv2",
8181
"GNU Lesser General Public License v2 (LGPLv2)": "LGPLv2",
8282
"GNU General Public License v2 (GPLv2)": "GPLv2",
83+
"GNU General Public License v2 or later(GPLv2+)": "GPLv2+",
8384
"GNU General Public License v3 (GPLv3)": "GPLv3",
85+
"Apache Software License": "Apache",
8486
}
8587

8688
if is_multi_license(_license):
@@ -95,34 +97,48 @@ def select_most_restrictive(l: str) -> str:
9597
def _packages_from_json(json: str) -> list[Package]:
9698
packages = loads(json)
9799
packages_list = []
100+
mapping = {
101+
"GPLv1": "https://www.gnu.org/licenses/old-licenses/gpl-1.0.html",
102+
"GPLv2": "https://www.gnu.org/licenses/old-licenses/gpl-2.0.html",
103+
"LGPLv2": "https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html",
104+
"GPLv3": "https://www.gnu.org/licenses/gpl-3.0.html",
105+
"LGPLv3": "https://www.gnu.org/licenses/lgpl-3.0.html",
106+
"Apache": "https://www.apache.org/licenses/LICENSE-2.0",
107+
"MIT": "https://mit-license.org/",
108+
"BSD": "https://opensource.org/license/bsd-3-clause",
109+
}
98110
for package in packages:
111+
package_license = _normalize(package["License"])
99112
packages_list.append(
100113
Package(
101114
name=package["Name"],
102-
package_link=package["URL"],
115+
package_link="" if package["URL"] == "UNKNOWN" else package["URL"],
103116
version=package["Version"],
104-
license=_normalize(package["License"]),
105-
license_link="",
117+
license=package_license,
118+
license_link=(
119+
"" if package_license not in mapping else mapping[package_license]
120+
),
106121
)
107122
)
108123
return packages_list
109124

110125

111126
def _licenses() -> list[Package]:
112-
file = tempfile.NamedTemporaryFile()
113-
subprocess.run(
114-
[
115-
"poetry",
116-
"run",
117-
"pip-licenses",
118-
"--format=json",
119-
"--output-file=" + file.name,
120-
"--with-system",
121-
"--with-urls",
122-
],
123-
capture_output=True,
124-
)
125-
return _packages_from_json(file.read().decode())
127+
with tempfile.NamedTemporaryFile() as file:
128+
subprocess.run(
129+
[
130+
"poetry",
131+
"run",
132+
"pip-licenses",
133+
"--format=json",
134+
"--output-file=" + file.name,
135+
"--with-system",
136+
"--with-urls",
137+
],
138+
capture_output=True,
139+
)
140+
result = _packages_from_json(file.read().decode())
141+
return result
126142

127143

128144
def _packages_to_markdown(
@@ -154,7 +170,10 @@ def _normalize_package_name(name: str) -> str:
154170
_packages,
155171
)
156172
for content in consistent:
157-
text += f"|[{content.name}]({content.package_link})"
173+
if content.package_link:
174+
text += f"|[{content.name}]({content.package_link})"
175+
else:
176+
text += f"|{content.name}"
158177
text += f"|{content.version}"
159178
if content.license_link:
160179
text += f"|[{content.license}]({content.license_link})|\n"

test/unit/dependencies_test.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -73,32 +73,32 @@ def test_normalize(licenses, expected):
7373
"""
7474
[
7575
{
76-
"License": "MIT License",
77-
"Name": "pip",
78-
"URL": "https://pip.pypa.io/",
79-
"Version": "24.3.1"
76+
"License": "license1",
77+
"Name": "name1",
78+
"URL": "link1",
79+
"Version": "version1"
8080
},
8181
{
82-
"License": "MIT License",
83-
"Name": "pip-licenses",
84-
"URL": "https://github.com/raimon49/pip-licenses",
85-
"Version": "5.0.0"
82+
"License": "license2",
83+
"Name": "name2",
84+
"URL": "UNKNOWN",
85+
"Version": "version2"
8686
}
8787
]
8888
""",
8989
[
9090
Package(
91-
name="pip",
92-
version="24.3.1",
93-
package_link="https://pip.pypa.io/",
94-
license="MIT",
91+
name="name1",
92+
version="version1",
93+
package_link="link1",
94+
license="license1",
9595
license_link="",
9696
),
9797
Package(
98-
name="pip-licenses",
99-
version="5.0.0",
100-
package_link="https://github.com/raimon49/pip-licenses",
101-
license="MIT",
98+
name="name2",
99+
version="version2",
100+
package_link="",
101+
license="license2",
102102
license_link="",
103103
),
104104
],

0 commit comments

Comments
 (0)