Package and package stack license-solver for the Thoth project
Project description
Welcome to Thoth’s license-solver repository!
This tool handles license and classifier detection from metadata provided by PyPI. Determines the type of license and its version. It also indicates a discrepancy in the license and in the classifier.
What license-solver does
Detects licenses and classifier from metadata provided by:
PyPI
JSON files
folders with JSON files
dictionary (with function detect_license())
The output is printed by default on STDOUT (you can choose the file where to save the output more in –help).
Good to know
unidentified license/version/classifier are named UNDETECTED
non-versioned licenses have an identifier in license_version LICENSE-WITHOUT-VERSION
Run solver locally
Often, it is useful to run license-solver locally to experiment or verify your changes in implementation. You can do so easily by running:
$ PYTHONPATH=. python3 ./thoth-license-solver <arguments>
Examples
sample with 1 file:
$ thoth-license-solver --file tests/examples/request_example.json -pp 4
Output 1.:
{
"requests": {
"2.27.1": {
"license": [
"Apache License 2.0",
"Apache-2.0",
"Apache 2.0"
],
"license_version": "2.0",
"classifier": [
[
"License :: OSI Approved :: Apache Software License",
"Apache Software License"
]
],
"warning": false
}
}
}
sample with 2 files with the same package but with different versions:
$ thoth-license-solver --file tests/examples/request_example.json tests/examples/request_example_2.json -pp 4
Output 2.
{
"requests": {
"2.27.1": {
"license": [
"Apache License 2.0",
"Apache-2.0",
"Apache 2.0"
],
"license_version": "2.0",
"classifier": [
[
"License :: OSI Approved :: Apache Software License",
"Apache Software License"
]
],
"warning": false
},
"2.24.0": {
"license": [
"Apache License 2.0",
"Apache-2.0",
"Apache 2.0"
],
"license_version": "2.0",
"classifier": [
[
"License :: OSI Approved :: Apache Software License",
"Apache Software License"
]
],
"warning": false
}
}
}
sample with 2 files with the same package but with different versions and with 1 different PyPI package:
$ thoth-license-solver --file tests/examples/request_example.json tests/examples/request_example_2.json --package-name numpy -pp 4
Output 3.
{
"numpy": {
"1.22.1": {
"license": [
"BSD 4-Clause \"Original\" or \"Old\" License",
"BSD-4-Clause",
"BSD 4 Clause"
],
"license_version": "4",
"classifier": [
[
"License :: OSI Approved :: BSD License",
"BSD License"
]
],
"warning": false
}
},
"requests": {
"2.27.1": {
"license": [
"Apache License 2.0",
"Apache-2.0",
"Apache 2.0"
],
"license_version": "2.0",
"classifier": [
[
"License :: OSI Approved :: Apache Software License",
"Apache Software License"
]
],
"warning": false
},
"2.24.0": {
"license": [
"Apache License 2.0",
"Apache-2.0",
"Apache 2.0"
],
"license_version": "2.0",
"classifier": [
[
"License :: OSI Approved :: Apache Software License",
"Apache Software License"
]
],
"warning": false
}
}
}
Installation
Install license-solver:
$ pip install thoth-license-solver
Run tests
It is a good habit for the program to be tested after the implementation of new features. You can run:
$ pytest tests/
# or
$ pytest --cov-report term-missing --cov=thoth tests/ # coverage test
Special aliases
default BSD naming is 4th clause ([source](https://en.wikipedia.org/wiki/BSD_licenses#Terms))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file thoth-license-solver-0.1.5.tar.gz
.
File metadata
- Download URL: thoth-license-solver-0.1.5.tar.gz
- Upload date:
- Size: 80.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f96220618b11041c46ac5420e7bfdf62907dedd181a00cacd5e13614399b41b |
|
MD5 | 703d8d76fef9151984a04b9dc0c3d27c |
|
BLAKE2b-256 | 84239ead8efefdeeb83abde36963db7062c9b196eceb16204907d5850dbde8f5 |
File details
Details for the file thoth_license_solver-0.1.5-py3-none-any.whl
.
File metadata
- Download URL: thoth_license_solver-0.1.5-py3-none-any.whl
- Upload date:
- Size: 75.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c5fe5ad5a6290517074a542cc9a76e8098f5d592fdee57f354f4ecd8a1da56f |
|
MD5 | 8581c7d17680b2aa34e2852252884c32 |
|
BLAKE2b-256 | bdbc3de20fbefa922d3c572fbb785030e6aa88c5709200c8da397121ccb419aa |