Skip to main content

A Pythonic representation of CWE records using Pydantic models.

Project description

pydantic-cwe

pydantic-cwe provides a structured, object-oriented way to work with the Common Weakness Enumeration (CWE) database. By modeling CWE entries as Pydantic objects, this library enables developers and security researchers to programmatically access, validate, and manipulate CWE data with ease. Ideal for static analysis tools, vulnerability scanners, or custom security pipelines.

Installation

pip install pydantic-cwe

Usage

Loading a CWE catalog

from pydantic_cwe import Loader

# Create a loader instance
loader = Loader()

# Load the catalog
catalog = loader.load()

# Print some basic information about the catalog
print(f"Catalog Name: {catalog.name}")
print(f"Catalog Version: {catalog.version}")
print(f"Catalog Date: {catalog.date}")
print(f"Number of weaknesses: {len(catalog.weaknesses.weaknesses)}")

Working with weaknesses

from pydantic_cwe import Loader

loader = Loader()
catalog = loader.load()

# Get weaknesses ordered by ID
for weakness in catalog.get_ordered_weaknesses():
    if weakness.status == 'Deprecated':
        continue

    print(f"ID: {weakness.id}")
    print(f"Name: {weakness.name}")
    print(f"Abstraction: {weakness.abstraction}")
    print(f"Structure: {weakness.structure}")
    print(f"Status: {weakness.status}")
    print(f"Description: {weakness.description}")

Project Structure

The project follows a standard Python library structure:

  • examples/: Example scripts
  • pydantic_cwe/: Main package directory
    • models: Pydantic models for CWE data
    • __init__.py: Package initialization and exports
    • loader.py: XML loading and parsing functionality
  • tests/: Unit tests

Development

Setting up the development environment

# Clone the repository
git clone https://github.com/epicosy/pydantic-cwe.git
cd pydantic-cwe

# Create a virtual environment
python -m venv env
source env/bin/activate  # On Windows: env\Scripts\activate

# Install development dependencies
pip install -e ".[test]"

Running tests

pytest

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

pydantic_cwe-0.0.1.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_cwe-0.0.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_cwe-0.0.1.tar.gz.

File metadata

  • Download URL: pydantic_cwe-0.0.1.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.7

File hashes

Hashes for pydantic_cwe-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b60a430a3e1dda6db651f82ac273863f73275f1b571148a4ccaa2c0dec74dcc9
MD5 89027a10040b079a34d13cf98140d923
BLAKE2b-256 29704e0a147eb01a2f9877de21e8934afae22c6b7141ce0cc4acfe39e2b30a0d

See more details on using hashes here.

File details

Details for the file pydantic_cwe-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pydantic_cwe-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.7

File hashes

Hashes for pydantic_cwe-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5be747d9187d3ce2e4dab01cf4de9382b0a1446c868c8edd0435fd43a36f34d
MD5 025df6485966ef7de51c1c2e38ad271f
BLAKE2b-256 96613abae06a28c512fc1cc69bf1f8da898471092663a93ecfd407d7770a7ece

See more details on using hashes here.

Supported by

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