cpe
CPE: Common Platform Enumeration for Python
What it is and what it does
CPE is a Python implementation of the Common Platform Enumeration standard developed by MITRE and maintained by NIST. It provides tools to parse, compare, and evaluate CPE identifiers—standardized names for applications, operating systems, and hardware devices used in enterprise asset management and vulnerability tracking. The package handles three CPE formats (WFN, URI, and FS) and supports rich comparison operations and cross-version conversion between CPE versions 1.1, 2.2, and 2.3.
The package has no runtime dependencies, making it lightweight for integration into security tools, asset inventory systems, and vulnerability scanners. However, it requires installation from source (high friction), and its maintenance status is aging. The LGPLv3 license is copyleft, meaning any derivative work must also be open-source and GPL-compatible.
Use it for:
- Parse and normalize CPE identifiers in vulnerability databases or asset management systems.
- Compare CPE strings to match software and hardware across different naming conventions.
- Evaluate CPE matching logic in security scanning tools that need to identify affected assets.
- Convert between CPE format versions (1.1, 2.2, 2.3) when integrating legacy and modern systems.
- Build asset classification and inventory tools that rely on standardized platform enumeration.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Parses, compares, and evaluates Common Platform Enumeration (CPE) identifiers in WFN, URI, and FS formats according to MITRE/NIST standards.
Yes, with conditions. Install if you need CPE parsing and matching for security or asset management workflows and can accept the LGPLv3 copyleft constraint. The package is stable and dependency-free, but verify Python version compatibility before use—classifiers suggest Python 2.7 only, which is unmaintained. The high install friction and aging maintenance status mean you should confirm the package still works with your target Python version and CPE specification version before committing to it.
Install
cpe on PyPI
pip
pip install cpeuv
uv add cpepoetry
poetry add cpeInstalling cpe
Before you install
High install friction due to source distribution. Package is aging but repository remains active with recent commits; classifiers indicate Python 2.7 support, suggesting limited modern Python version coverage.
License in practice
LGPLv3 copyleft license requires derivative works to be licensed under compatible terms and source code to be made available; suitable for internal tools and open-source projects but restrictive for proprietary software.
Quickstart
pip install cpe
from cpe.cpe import CPE
cpe_obj = CPE('cpe:/a:vendor:product:1.0')
print(cpe_obj)
Classifiers indicate Python 2.7 support; modern Python version compatibility is unspecified and may require verification.
Verify before relying
- Whether the package supports Python 3.x versions beyond what classifiers suggest (2.7 listed, but 3.4 mentioned in description).
- Current state of Python 2.7 support given its end-of-life status and the package's aging maintenance window.
- Whether WFN, URI, and FS format support is complete and tested against current CPE 2.3 specification.
Package facts
| License | LGPLv3 (copyleft) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | aging — 681 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 232,645/month — #9,060 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cpe-1.3.1.tar.gz
Keywords: cpe, identification, naming, matching, standard, specification, mitre, nist
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
nvdlibWrapper library for the NIST National…
permissive · top 15,000 on PyPI
cwe2cwe2 provides programmatic access to the Common…
permissive · top 15,000 on PyPI
ff3Implements NIST FF3 and FF3-1 format-preserving…
permissive · top 15,000 on PyPI
threatwirethreatwire provides real-time network packet…
permissive · top 15,000 on PyPI
parse-typeExtends the parse module with type converters…
permissive · top 5,000 on PyPI
pylspciParses the output of the lspci command to…
copyleft · top 15,000 on PyPI
python-stdnumParses, validates, and reformats standard…
copyleft · top 5,000 on PyPI
uritoolsParses, validates, and composes URIs and URI…
permissive · top 5,000 on PyPI
lazr.uriParse, manipulate, and generate URIs with a…
copyleft · top 15,000 on PyPI
prowlerProwler automates security and compliance…
permissive · top 15,000 on PyPI