A Python license checker
Project description
pylic - Python license checker
Reads the pyproject.toml file and checks all installed licenses recursively.
Principles:
- Every license has to be allowed explicitly (case-insensitive comparison).
- All packages without license are considered unsafe and have to be listed as such.
Installation
pip install pylic
Configuration
pylic
needs be run in the directory where your pyproject.toml
file is located. You can configure
safe_licenses
: All licenses you concider safe for usage. The string comparison is case-insensitive.unsafe_packages
: If you rely on a package that does not come with a license you have to explicitly list it as such.
[tool.pylic]
safe_licenses = [
"Apache Software License",
"Apache License 2.0",
"MIT License",
"Python Software Foundation License",
"Mozilla Public License 2.0 (MPL 2.0)",
]
unsafe_packages = [
"unlicensedPackage",
]
Usage Example
Create a venv to start with a clean ground and activate it
python -m venv .venv
source .venv/bin/activate
Activate the venv and install pylic
and create an empty pyproject.toml
pip install pylic
touch pyproject.toml
Run pylic
pylic
The output will be similar to
Found unsafe packages:
pkg_resources
Found unsafe licenses:
pip: MIT License
zipp: MIT License
toml: MIT License
setuptools: MIT License
importlib-metadata: Apache Software License
typing-extensions: Python Software Foundation License
pylic: MIT License
The return code of pylic
is in this case non-zero
echo $? # prints 1
As these licenses and packages are all ok we can configure pylic
accordingly
cat <<EOT >> pyproject.toml
[tool.pylic]
safe_licenses = ["Apache Software License", "MIT License", "Python Software Foundation License"]
unsafe_packages = ["pkg_resources"]
EOT
The output now reveals a successful validation
All licenses ok
Also the return code now signals that all is good
echo $? # prints 0
Development
Required tools:
- Poetry (https://python-poetry.org/)
- GitHub cli (https://github.com/cli/cli)
Creating a new release is as simple as:
- Update
version
in the pyproject.toml file. poetry run task release vx.x.x
.
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.