semantic-copycat-purl2notices


Namesemantic-copycat-purl2notices JSON
Version 1.1.3 PyPI version JSON
download
home_pageNone
SummaryGenerate legal notices (attribution to authors and copyrights) for software packages
upload_time2025-09-06 08:54:03
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache-2.0
keywords sbom license copyright attribution purl package-url legal-notices compliance
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```bash
pip install semantic-copycat-purl2notices
```

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

## Quick Start

```bash
# 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

- **[User Guide](docs/user-guide.md)** - Complete usage documentation
- **[Examples](docs/examples.md)** - Detailed examples and use cases
- **[Configuration](docs/configuration.md)** - Configuration options and customization

## Common Use Cases

### Generate notices for a project

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

### Merge notices from multiple sources

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

### Customize output with overrides

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

## API Usage

```python
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)
```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "semantic-copycat-purl2notices",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "sbom, license, copyright, attribution, purl, package-url, legal-notices, compliance",
    "author": null,
    "author_email": "Oscar Valenzuela B <oscar.valenzuela.b@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/50/e5/63a9ef059b0f445ccac782b32a1736f8e6e95a755f644e0f961f4d6c399b/semantic_copycat_purl2notices-1.1.3.tar.gz",
    "platform": null,
    "description": "# PURL2NOTICES - Package URL (PURL) to Legal Notices\n\nGenerate legal notices (attribution to authors and copyrights) for software packages.\n\n## Features\n\n- **Multi-format support**: Process PURLs, archives (JAR/WAR/WHL), directories, and cache files\n- **12+ ecosystems**: npm, PyPI, Maven, Cargo, Go, NuGet, Conda, and more\n- **Smart extraction**: Uses multiple engines (purl2src, upmex, oslili) for accurate license detection\n- **Flexible output**: Text/HTML with customizable Jinja2 templates\n- **Cache management**: CycloneDX format with merge capabilities\n- **Override system**: Customize licenses and filter unwanted content\n\n## Installation\n\n```bash\npip install semantic-copycat-purl2notices\n```\n\nFor development:\n```bash\ngit clone https://github.com/oscarvalenzuelab/semantic-copycat-purl2notices.git\ncd semantic-copycat-purl2notices\npip install -e .[dev]\n```\n\n## Quick Start\n\n```bash\n# Process a single package\npurl2notices -i pkg:npm/express@4.0.0\n\n# Process an archive file\npurl2notices -i library.jar -o NOTICE.txt\n\n# Scan a directory\npurl2notices -i ./src --recursive -o NOTICE.html -f html\n\n# Process multiple packages\necho \"pkg:npm/express@4.0.0\" > packages.txt\necho \"pkg:pypi/django@4.2.0\" >> packages.txt\npurl2notices -i packages.txt -o NOTICE.txt\n```\n\n## Documentation\n\n- **[User Guide](docs/user-guide.md)** - Complete usage documentation\n- **[Examples](docs/examples.md)** - Detailed examples and use cases\n- **[Configuration](docs/configuration.md)** - Configuration options and customization\n\n## Common Use Cases\n\n### Generate notices for a project\n\n```bash\npurl2notices -i ./my-project --recursive --cache project.cache.json -o NOTICE.txt\n```\n\n### Merge notices from multiple sources\n\n```bash\npurl2notices -i cache1.json --merge-cache cache2.json -o combined-NOTICE.txt\n```\n\n### Customize output with overrides\n\n```bash\npurl2notices -i packages.txt --overrides custom.json -o NOTICE.txt\n```\n\n## API Usage\n\n```python\nfrom purl2notices import Purl2Notices\nimport asyncio\n\nprocessor = Purl2Notices()\npackage = asyncio.run(processor.process_single_purl(\"pkg:npm/express@4.0.0\"))\nnotices = processor.generate_notices([package])\nprint(notices)\n```\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Generate legal notices (attribution to authors and copyrights) for software packages",
    "version": "1.1.3",
    "project_urls": {
        "Homepage": "https://github.com/oscarvalenzuelab/semantic-copycat-purl2notices",
        "Issues": "https://github.com/oscarvalenzuelab/semantic-copycat-purl2notices/issues",
        "Repository": "https://github.com/oscarvalenzuelab/semantic-copycat-purl2notices"
    },
    "split_keywords": [
        "sbom",
        " license",
        " copyright",
        " attribution",
        " purl",
        " package-url",
        " legal-notices",
        " compliance"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eebc26acd751901885191868f8ff9298864a0c5d75e8d44848d6800f7f174cf5",
                "md5": "32406719c01fdec0e27c7f6ee98862ce",
                "sha256": "7fa623062cda0dc9bf6649eb9fe84085cdb9a9ff8a3838648fc13878aebc0741"
            },
            "downloads": -1,
            "filename": "semantic_copycat_purl2notices-1.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "32406719c01fdec0e27c7f6ee98862ce",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 2004162,
            "upload_time": "2025-09-06T08:54:01",
            "upload_time_iso_8601": "2025-09-06T08:54:01.742225Z",
            "url": "https://files.pythonhosted.org/packages/ee/bc/26acd751901885191868f8ff9298864a0c5d75e8d44848d6800f7f174cf5/semantic_copycat_purl2notices-1.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "50e563a9ef059b0f445ccac782b32a1736f8e6e95a755f644e0f961f4d6c399b",
                "md5": "675e056d142474bea7c29c29e4531ad6",
                "sha256": "2c835597607fd7272ac6eb06885ee79cf4697f45aa54976b7fac6551a607f270"
            },
            "downloads": -1,
            "filename": "semantic_copycat_purl2notices-1.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "675e056d142474bea7c29c29e4531ad6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 1125514,
            "upload_time": "2025-09-06T08:54:03",
            "upload_time_iso_8601": "2025-09-06T08:54:03.286226Z",
            "url": "https://files.pythonhosted.org/packages/50/e5/63a9ef059b0f445ccac782b32a1736f8e6e95a755f644e0f961f4d6c399b/semantic_copycat_purl2notices-1.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-06 08:54:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "oscarvalenzuelab",
    "github_project": "semantic-copycat-purl2notices",
    "github_not_found": true,
    "lcname": "semantic-copycat-purl2notices"
}
        
Elapsed time: 0.81690s