Skip to main content

A Rust CLI packaged for Python project dependency license check and license header formatting.

Project description

licensepy

Python Depedency License Check and License Header Formating.

licensepy is a Python dependency license check and license header check/format library written in Rust. This package has recursive dependency checks that are not offered by many existing license check libraries. By default, the output will group packages by their licenses.

Configure the tool with a pyproject.toml file at the root directory of the project with a list of licenses to avoid. If dependencies of the project are found to use these flagged licenses, licensepy will exit with the count of these projects. Otherwise, it will exit with code 0. For the license header formatter, the exit code will be the count of the source code files with incorrect header.

Installing

Use pip to install licensepy in your project.

$ pip3 install licensepy

Command Line Arguments

Dependency license check

For the dependency license check, the following are the command line arguments.

$ licensepy check
  1. -r, --recursive: Recursively find all the dependencies of the project and their licences.
    • Recursive dependencies will have the color red if they have licenses that have been flagged to avoid and green otherwise.
  2. -by-package: Group output by packages in alphabetical order.
  3. -s, silent: Silence all outputs.
  4. -f, print-fails: Only print the packages whose licenses are flagged to be avoided.
  5. -j, --num-threads: Number of threads to use. Default is 1. Max is 32 [default: 1].

License header checker and formatter

For the license

$ licensepy format
  1. files: Positional arguments are the Python files to run license header checker/formatter.
  2. -l, --licensee: Licensee. Has precedence over value from config.
  3. -y, --license-year: License year. Has precedence over value from config.
  4. -s, --silent: Don't print any outputs. Default if false.
  5. -d, --dry-run: Don't run formatter. Only print outputs. Default if false.
  6. -j, --num-threads: Number of threads to use. Default is 1. Max is 32 [default: 1].

Configuration

Licenses can be flagged to avoid in a pyproject.toml files saved in the root of the project directory. Licenses should be stored in a list.

# In the pyproject.toml file

[tool.licensepy]
# List of licenses to avoid.
avoid = ["MIT"]

# header template: The template for the license header. {year}, {licensee}
# are placeholders that will be populated with values from command line
# or the config. The template can have the # at the beginning or not.
license_header_template = "# Copyright {year} {licensee}"

# license_year: The value to replace the {year} in the license_header_template.
# Default value is the current year.
license_year = 2025

# licensee: The value to replace the {licensee} in the license_header_template.
# If the {licensee} placeholder is found in the template and the licensee field
# or the command line argument are
licensee = "Nati"

This is the output when the above configuration is used for:

$ licensepy check

$ licensepy check --by-package

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

licensepy-1.1.2.tar.gz (397.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

licensepy-1.1.2-py3-none-win_amd64.whl (1.2 MB view details)

Uploaded Python 3Windows x86-64

licensepy-1.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

licensepy-1.1.2-py3-none-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

licensepy-1.1.2-cp312-cp312-manylinux_2_39_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

File details

Details for the file licensepy-1.1.2.tar.gz.

File metadata

  • Download URL: licensepy-1.1.2.tar.gz
  • Upload date:
  • Size: 397.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.3

File hashes

Hashes for licensepy-1.1.2.tar.gz
Algorithm Hash digest
SHA256 dde7f1eeea1544efb25539a3ab9b4d92a7fb5c6172ada906d07f7a00bc88a53e
MD5 18e443c9a0fe890f7ef7d550f88fc6e6
BLAKE2b-256 d37bcf0f548f0f495e821d53352723eebac93055b363102cd2ff62eab7914a28

See more details on using hashes here.

File details

Details for the file licensepy-1.1.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: licensepy-1.1.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.11.4

File hashes

Hashes for licensepy-1.1.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4391e1bf0e2a9cac8687ca03aba3021ac9719957849dbdea8a5c656a3bf8abaf
MD5 bd6df59e582c334ca324b388a827ada7
BLAKE2b-256 3352bfc90125f3773298b56123a351b32bc0c83de8b273bf1c76b0b9270581fd

See more details on using hashes here.

File details

Details for the file licensepy-1.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for licensepy-1.1.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c954b5f25fecb33a15531f9dfdb7b4ded601e293ececf281e17ba7ac6b3c0e20
MD5 d8145cdaf8db4da6a7102ed27f2ece40
BLAKE2b-256 1ca0a323370d2a75e1ca05a03d78b52b812a576a08ad68af3158699fae2f47c4

See more details on using hashes here.

File details

Details for the file licensepy-1.1.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for licensepy-1.1.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e31b936959283d8ab132ba49be5499710480ca645a2a1636b2fc174d54fba81f
MD5 aef097f3f014b1a0580ba337894d962d
BLAKE2b-256 0af7323c14ce8fcd63141fafcdf5385661b5f99cfc379d21b16d040fd8d25c4b

See more details on using hashes here.

File details

Details for the file licensepy-1.1.2-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for licensepy-1.1.2-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 7b3f812eb2598d0f053cdf88edbd8190fbe721cd447ba1ea8dd5564029c99f4d
MD5 509f8cddf0c42124e12936b7de58086c
BLAKE2b-256 0e7222223ccde97b87a16069a18bc9733755e3239473a592e657fabfdd351c03

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page