Skip to main content

SCANOSS Python Package

The SCANOSS python package provides a simple easy to consume library for interacting with SCANOSS APIs/Engine.

Installation

To install (from pypi.org), please run:

pip3 install scanoss

To upgrade an existing installation please run:

pip3 install --upgrade scanoss

Fast Winnowing

To take advantage of faster fingerprinting, please install the optional scanoss_winnowing package:

pip3 install scanoss_winnowing

Or directly using:

pip3 install scanoss[fast_winnowing]

Docker

Alternatively, there is a docker image of the compiled package. It can be found here. Details of how to run it can be found here.

Externally Managed Environments on Linux

If installing on Ubuntu 2023.04, Fedora 38, Debian 11, etc. a few additional steps are required before installing scanoss-py. More details can be found here.

The recommended method is to install pipx and use it to install scanoss-py:

sudo apt install pipx
pipx ensurepath

This will install the pipx package manager, which can then be used to install scanoss-py:

pipx install scanoss[fast_winnowing]

This will install the scanoss-py app in a separate virtual environment and create a link to the local path for execution.

Usage

The package can be run from the command line, or consumed from another Python script.

CLI Usage

The Python package manager (pip), will register the following command during installation:

scanoss-py

It is also possible to launch it using:

python3 -m scanoss.cli

Running the bare command will list the available sub-commands:

> scanoss-py

usage: scanoss-py [-h] [--version]
                  {version,ver,scan,sc,fingerprint,fp,wfp,dependencies,dp,dep,file_count,fc,convert,cv,cnv,cvrt,component,comp,utils,ut}
                  ...

SCANOSS Python CLI. Ver: 1.6.1, License: MIT, Fast Winnowing: True

options:
  -h, --help            show this help message and exit
  --version, -v         Display version details

Sub Commands:
  valid subcommands

  {version,ver,scan,sc,fingerprint,fp,wfp,dependencies,dp,dep,file_count,fc,convert,cv,cnv,cvrt,component,comp,utils,ut}
                        sub-command help
    version (ver)       SCANOSS version
    scan (sc)           Scan source code
    fingerprint (fp, wfp)
                        Fingerprint source code
    dependencies (dp, dep)
                        Scan source code for dependencies, but do not decorate them
    file_count (fc)     Search the source tree and produce a file type summary
    convert (cv, cnv, cvrt)
                        Convert file format
    component (comp)    Component support commands
    utils (ut)          General utility support commands

From there it is possible to scan a source code folder:

> scanoss-py scan -o scan-output.json <source-folder>

Scanning for Dependencies

The SCANOSS CLI supports dependency decoration. In order for this to work, it requires the installation of scancode:

pip install scancode-toolkit

Dependencies can then be decorated by adding the --dependencies option to the scanner:

> scanoss-py scan --dependencies -o scan-output.json <source-folder>

Package Usage

The scanoss package can also be used in other Python projects/scripts. A good example of how to consume it can be found here.

In general the easiest way to consume it is to import the required module as follows:

from scanoss.scanner import Scanner

def main():
    scanner = Scanner()
    scanner.scan_folder( '.' )
    
if __name__ == "__main__":
    main()

Scanning URL and API Key

By Default, scanoss uses the API base URL for SCANOSS OSS KB: https://api.osskb.org. The /scan/direct endpoint is automatically appended. This API does not require an API key.

These values can be changed from the command line using:

> scanoss-py scan --apiurl <URL> --key <KEY>

From code, it would look like this:

from scanoss.scanner import Scanner

def main():
    scanner = Scanner(url='new-url', api_key='key')
    scanner.scan_folder( '.' )
    
if __name__ == "__main__":
    main()

Requirements

Python 3.9 or higher.

Source code

The source for this package can be found here.

Documentation

For client usage help please look here.

Changelog

Details of each release can be found here.

Metadata

Release files for scanoss 1.54.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scanoss 1.54.3
File Size Uploaded Provenance
scanoss-1.54.3.tar.gz 261.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for scanoss 1.54.3
File Interpreter ABI Platform
scanoss-1.54.3-py3-none-any.whl Python 3 none any Details

Total release size: 562.7 kB

Release files / scanoss-1.54.3.tar.gz

Download URL scanoss-1.54.3.tar.gz
Size 261.8 kB
Tags Source
SHA-256 checksum
How to use checksums
713ca50e4b25280cd500bdf8d69af5c4e392a799ac213aff4cedf97807bb624b
BLAKE2b-256 checksum
How to use checksums
75661cd56a0f461fd4ccab153a4cc0b4a9a0e27668dac27cbd70bcee7a110aaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / scanoss-1.54.3-py3-none-any.whl

Download URL scanoss-1.54.3-py3-none-any.whl
Size 300.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0adfb9273f23e8f96271fa7304d15f8b6412e2966a1981336f25069c7e9a5add
BLAKE2b-256 checksum
How to use checksums
68f19d8951b9c1efb31ca8161d8ec704fcd68f58cb1b8eecad0a96d18de12f47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for scanoss 1.54.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

1.54.3 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page