Skip to main content

Simple Python library to leverage the SCANOSS APIs

Project description

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 URL endpoint for SCANOSS OSS KB: https://api.osskb.org/scan/direct. 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.7 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.

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

scanoss-1.18.0.tar.gz (111.6 kB view details)

Uploaded Source

Built Distribution

scanoss-1.18.0-py3-none-any.whl (151.1 kB view details)

Uploaded Python 3

File details

Details for the file scanoss-1.18.0.tar.gz.

File metadata

  • Download URL: scanoss-1.18.0.tar.gz
  • Upload date:
  • Size: 111.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for scanoss-1.18.0.tar.gz
Algorithm Hash digest
SHA256 464bc2f0ef9ed296d8c0cf5603c10bb53cbbe6c189e489f61601791adc6a60a4
MD5 da7bc7d3075ffc95b679a69b811b792b
BLAKE2b-256 552ce06e9efd623335d075cd8a9c29b939544ee21ab2035ad4f987b986714ca5

See more details on using hashes here.

File details

Details for the file scanoss-1.18.0-py3-none-any.whl.

File metadata

  • Download URL: scanoss-1.18.0-py3-none-any.whl
  • Upload date:
  • Size: 151.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for scanoss-1.18.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f90fd3a47a660923c76132b0cbc4b96330d7c428afb4d2db7c0c324f3132663c
MD5 c78faa5041a735f2997b69dee8aab749
BLAKE2b-256 772de74b0e34b8a9e5c52e650c274de18fdd3ffe64a469c956392fac000b8221

See more details on using hashes here.

Supported by

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