Loading repository data…
Loading repository data…
FHPythonUtils / repository
Output the licenses used by dependencies and check if these are compatible with the project license
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
NOTICE: I am not a lawyer (IANAL)
Any output provided by this software is for general informational purposes only and should not be construed as legal advice. I am not a lawyer and there is no guarantee that the information provided here is complete or correct. Any reliance on the information provided by this software is at your own risk.
See also: https://en.wikipedia.org/wiki/IANAL, project license (MIT)
Output the licences used by dependencies and check if these are compatible with the project license
See below for the output if you run licensecheck in this directory. More examples are available
here
>> licensecheck
Info
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ Item ┃ Value ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ program │ licensecheck │
│ version │ 2025 │
│ license │ MIT LICENSE │
│ project_license │ MIT LICENSE │
└─────────────────┴──────────────┘
List Of Packages
┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Compatible ┃ Package ┃ License(s) ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ ✔ │ appdirs │ MIT LICENSE │
│ ✔ │ attrs │ MIT LICENSE │
│ ✔ │ boolean-py │ BSD-2-CLAUSE │
│ ✔ │ cattrs │ MIT LICENSE │
│ ✔ │ certifi │ MOZILLA PUBLIC LICENSE 2.0 _MPL 2.0_ │
│ ✔ │ charset-normalizer │ MIT LICENSE │
│ ✔ │ colorama │ BSD LICENSE │
│ ✔ │ fhconfparser │ MIT LICENSE │
│ ✔ │ idna │ BSD LICENSE │
│ ✔ │ license-expression │ APACHE-2.0 │
│ ✔ │ loguru │ MIT LICENSE │
│ ✔ │ markdown │ BSD LICENSE │
│ ✔ │ markdown-it-py │ MIT LICENSE │
│ ✔ │ mdurl │ MIT LICENSE │
│ ✔ │ packaging │ APACHE SOFTWARE LICENSE;; BSD LICENSE │
│ ✔ │ platformdirs │ MIT LICENSE │
│ ✔ │ pygments │ BSD LICENSE │
│ ✔ │ requests │ APACHE SOFTWARE LICENSE │
│ ✔ │ requests-cache │ BSD LICENSE │
│ ✔ │ requirements-parser │ APACHE SOFTWARE LICENSE │
│ ✔ │ rich │ MIT LICENSE │
│ ✔ │ setuptools │ MIT LICENSE │
│ ✔ │ six │ MIT LICENSE │
│ ✔ │ tomli │ MIT LICENSE │
│ ✔ │ types-setuptools │ APACHE SOFTWARE LICENSE │
│ ✔ │ url-normalize │ MIT LICENSE │
│ ✔ │ urllib3 │ MIT LICENSE │
│ ✔ │ uv │ APACHE SOFTWARE LICENSE;; MIT LICENSE │
│ ✔ │ win32-setctime │ MIT LICENSE │
└────────────┴─────────────────────┴───────────────────────────────────────┘
>>> licensecheck --only-licenses mit apache --show-only-failing -f csv
name,version,size,homePage,author,license,licenseCompat,errorCode,namever
Markdown,3.7,361400,UNKNOWN,"Manfred Stienstra, Yuri Takhteyev",BSD LICENSE,False,0,Markdown-3.7
Pygments,2.19.1,4508396,UNKNOWN,UNKNOWN,BSD LICENSE,False,0,Pygments-2.19.1
boolean.py,4.0,109354,https://github.com/bastikr/boolean.py,Sebastian Kraemer,BSD-2-CLAUSE,False,0,boolean.py-4.0
certifi,2025.1.31,305559,https://github.com/certifi/python-certifi,Kenneth Reitz,MOZILLA PUBLIC LICENSE 2.0 _MPL 2.0_,False,0,certifi-2025.1.31
colorama,0.4.6,76299,UNKNOWN,UNKNOWN,BSD LICENSE,False,0,colorama-0.4.6
idna,3.10,349141,UNKNOWN,UNKNOWN,BSD LICENSE,False,0,idna-3.10
requests-cache,1.2.1,174099,https://github.com/requests-cache/requests-cache,Roman Haritonov,BSD LICENSE,False,0,requests-cache-1.2.1
uv run licensecheck --only-licenses mit apache --show-only-failing -g dev
...
List Of Packages
┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Compatible ┃ Package ┃ License(s) ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ ✖ │ authlib │ BSD LICENSE │
│ ✖ │ boolean-py │ BSD-2-CLAUSE │
│ ✖ │ certifi │ MOZILLA PUBLIC LICENSE 2.0 _MPL 2.0_ │
│ ✖ │ click │ BSD LICENSE │
│ ✖ │ colorama │ BSD LICENSE │
│ ✖ │ filelock │ THE UNLICENSE _UNLICENSE_ │
│ ✖ │ idna │ BSD LICENSE │
│ ✖ │ jinja2 │ BSD LICENSE │
│ ✖ │ joblib │ BSD LICENSE │
...
usage: licensecheck [-h] [--license LICENSE] [--format FORMAT] [--requirements-paths REQUIREMENTS_PATHS [REQUIREMENTS_PATHS ...]]
[--groups GROUPS [GROUPS ...]] [--extras EXTRAS [EXTRAS ...]] [--file FILE]
[--ignore-packages IGNORE_PACKAGES [IGNORE_PACKAGES ...]] [--fail-packages FAIL_PACKAGES [FAIL_PACKAGES ...]]
[--ignore-licenses IGNORE_LICENSES [IGNORE_LICENSES ...]] [--fail-licenses FAIL_LICENSES [FAIL_LICENSES ...]]
[--only-licenses ONLY_LICENSES [ONLY_LICENSES ...]]
[--skip-dependencies SKIP_DEPENDENCIES [SKIP_DEPENDENCIES ...]]
[--hide-output-parameters HIDE_OUTPUT_PARAMETERS [HIDE_OUTPUT_PARAMETERS ...]] [--show-only-failing]
[--pypi-api PYPI_API] [--zero]
Output the licenses used by dependencies and check if these are compatible with the project license.
options:
-h, --help show this help message and exit
--license LICENSE, -l LICENSE
Specify the project license explicitly, rather than rely on licensecheck interpreting this from pyproject.toml
--format FORMAT, -f FORMAT
Output format. one of: json, markdown, html, csv, ansi, simple. default=simple
--requirements-paths REQUIREMENTS_PATHS [REQUIREMENTS_PATHS ...], -r REQUIREMENTS_PATHS [REQUIREMENTS_PATHS ...]
Filenames to read from (omit for stdin if piping, else pyproject.toml)
--groups GROUPS [GROUPS ...], -g GROUPS [GROUPS ...]
Select groups from supported files
--extras EXTRAS [EXTRAS ...], -e EXTRAS [EXTRAS ...]
Select extras from supported files
--file FILE, -o FILE Filename to write output to (omit this for stdout)
--ignore-packages IGNORE_PACKAGES [IGNORE_PACKAGES ...]
List of packages/dependencies to ignore (compat=True), globs are supported
--fail-packages FAIL_PACKAGES [FAIL_PACKAGES ...]
List of packages/dependencies to fail (compat=False), globs are supported
--ignore-licenses IGNORE_LICENSES [IGNORE_LICENSES ...]
List of licenses to ignore (skipped, compat may still be False)
--fail-licenses FAIL_LICENSES [FAIL_LICENSES ...]
List of licenses to fail (compat=False)
--only-licenses ONLY_LICENSES [ONLY_LICENSES ...]
List of allowed licenses (packages/dependencies with any other license will fail)
--skip-dependencies SKIP_DEPENDENCIES [SKIP_DEPENDENCIES ...]
List of packages/dependencies to skip (this sets the 'compatability' to True)
--hide-output-parameters HIDE_OUTPUT_PARAMETERS [HIDE_OUTPUT_PARAMETERS ...]
List of parameters to hide from the produced output
--show-only-failing Only output a list of incompatible/ failing packages from this lib
--pypi-api PYPI_API Specify a custom pypi api endpoint, for example if using a custom pypi server
--zero, -0 Return non zero exit code if an incompatible license is found, ideal for CI/CD
More information on using licensecheck from the command line is available here
You can also import this into your own project and use any of the functions in the DOCS
Configuration files are parsed in the following order: pyproject.toml, setup.cfg,
licensecheck.toml, licensecheck.json, ~/licensecheck.toml, ~/licensecheck.json,
[tool.licensecheck]
license = "mit" # Specify the project license explicitly
format = "simple" # Output format (e.g., "json", "csv", etc.)
requirements_paths = [] # List of filenames to read from
groups = [] # List of selected groups
extras = [] # List of selected extras
file = "" # Output file (leave empty for stdout)
ignore_packages = [] # Packages/dependencies to ignore
fail_packages = [] # Packages/dependencies th