Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

PURL2NOTICES - Package URL (PURL) to Legal Notices

Generate legal notices (attribution to authors and copyrights) for software packages.

Features

  • Multi-format support: Process PURLs, archives (JAR/WAR/WHL), directories, and cache files
  • 12+ ecosystems: npm, PyPI, Maven, Cargo, Go, NuGet, Conda, and more
  • Smart extraction: Uses multiple engines (purl2src, upmex, oslili) for accurate license detection
  • Flexible output: Text/HTML with customizable Jinja2 templates
  • Cache management: CycloneDX format with merge capabilities
  • Override system: Customize licenses and filter unwanted content

Installation

pip install semantic-copycat-purl2notices

For development:

git clone https://github.com/oscarvalenzuelab/semantic-copycat-purl2notices.git
cd semantic-copycat-purl2notices
pip install -e .[dev]

Quick Start

# Process a single package
purl2notices -i pkg:npm/express@4.0.0

# Process an archive file
purl2notices -i library.jar -o NOTICE.txt

# Scan a directory
purl2notices -i ./src --recursive -o NOTICE.html -f html

# Process multiple packages
echo "pkg:npm/express@4.0.0" > packages.txt
echo "pkg:pypi/django@4.2.0" >> packages.txt
purl2notices -i packages.txt -o NOTICE.txt

Documentation

Common Use Cases

Generate notices for a project

purl2notices -i ./my-project --recursive --cache project.cache.json -o NOTICE.txt

Merge notices from multiple sources

purl2notices -i cache1.json --merge-cache cache2.json -o combined-NOTICE.txt

Customize output with overrides

purl2notices -i packages.txt --overrides custom.json -o NOTICE.txt

API Usage

from purl2notices import Purl2Notices
import asyncio

processor = Purl2Notices()
package = asyncio.run(processor.process_single_purl("pkg:npm/express@4.0.0"))
notices = processor.generate_notices([package])
print(notices)

Release files for semantic-copycat-purl2notices 1.2.0

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

Source distribution (sdist)

Source distribution for semantic-copycat-purl2notices 1.2.0
File Size Uploaded
semantic_copycat_purl2notices-1.2.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for semantic-copycat-purl2notices 1.2.0
File Interpreter ABI Platform
semantic_copycat_purl2notices-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.1 MB

Release files / semantic_copycat_purl2notices-1.2.0.tar.gz

Download URL semantic_copycat_purl2notices-1.2.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
17af1ff38c2d4db904d5e4d55bc806f659b9755a4322554996d01cd3f5dde632
BLAKE2b-256 checksum
How to use checksums
2272b888761bd9540f5334c2bb2f2ad844971ef56d8283c9e858a1f50f058233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2025.

Transparency log

Release files / semantic_copycat_purl2notices-1.2.0-py3-none-any.whl

Download URL semantic_copycat_purl2notices-1.2.0-py3-none-any.whl
Size 2.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
811b6b29884f4e18ee3d13e57fe99b63a42849d4b186118bc9fcadd30c4520a1
BLAKE2b-256 checksum
How to use checksums
d8be22d05567de693651ed3d73a7c100e68668d08167219e01c8b545612ea7ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 17, 2025.

Transparency log
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