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.1.2.tar.gz (14.8 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.1.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydantic_cwe-0.1.2.tar.gz
  • Upload date:
  • Size: 14.8 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.1.2.tar.gz
Algorithm Hash digest
SHA256 2f0da8850f56af23ab495782df6ba49e2fcb10f1a1f751567a727fbb94d77064
MD5 10cbd78c99f3c9aa8566a3cecc2a5b31
BLAKE2b-256 4369ad18620d98858d0a975eec75887cba1b789cf26af6c82041b5fc12e839c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydantic_cwe-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.2 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.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f8f14141d1b69cd8b6a2e43bb47685a04d50ba9bca61db098dd6fd3bd6e04398
MD5 4b875129f9fb5c003aa2d43779ef147c
BLAKE2b-256 521a50a2a4bc760576073fba9494f2d160da2e4e3e747f6b0d657ccbe3770f24

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