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.3.tar.gz (13.1 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.3-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydantic_cwe-0.0.3.tar.gz
  • Upload date:
  • Size: 13.1 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.3.tar.gz
Algorithm Hash digest
SHA256 f80b84c1c152a4bf877050828236b7e7dc376d67bc46fe2309fab86784e732b7
MD5 9ef615f4713f5388de38128ca80ad371
BLAKE2b-256 cbe70b3359d5f203cde59170aa9c0d2feb5b8386698966281191584a83f39bc1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pydantic_cwe-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.6 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8efd387fa3490c905ded81b05de209cf11184505a4d2773dc3fa088ca4947363
MD5 098e40d112a27e2f300e228e461f7a9d
BLAKE2b-256 56f2855fb6bc55f64c6b60b8bed8c8331f1771dc8df9ac67bd9c4cb98cc73c34

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