# PrinterXPL-Forge v3.1.0 - Dependencies
# Python >= 3.8 required
# Updated: 2026-03-24
#
# Install all (including optional):
#   pip install -r requirements.txt
#
# ── Core (always required) ───────────────────────────────────────────────────

# HTTP/HTTPS for capabilities detection and OSINT checks
requests>=2.31.0

# SSL warning suppression helper
urllib3>=2.0.0

# Terminal colors (cross-platform: Windows, Linux, macOS)
colorama>=0.4.6

# ── SNMP (required for network discovery) ───────────────────────────────────
# pysnmp-lextudio is the actively-maintained fork of pysnmp (Python 3.8+).
# v5.x uses the hlapi synchronous API; the discovery module auto-selects the
# best available backend (v5 hlapi → v4 oneliner → snmpget binary fallback).
pysnmp-lextudio>=5.0.31

# pyasn1 must be kept at < 0.6 while pysnmp-lextudio 5.x depends on the old API
pyasn1>=0.4.8,<0.6

# ── SMB Protocol (required for smb.py full implementation) ──────────────────
# pysmb: pure-Python SMB1/SMB2 library used by protocols/smb.py
pysmb>=1.2.9

# impacket: low-level SMB3, Kerberos, and Windows protocol suite
impacket>=0.12.0

# ── OSINT / Online Discovery ─────────────────────────────────────────────────
# Shodan API client (set SHODAN_API_KEY env var to enable)
shodan>=1.28.0

# Censys API client (set CENSYS_API_ID + CENSYS_API_SECRET env vars to enable)
censys>=2.2.0

# ── Testing ──────────────────────────────────────────────────────────────────
pytest>=7.0.0
pytest-timeout>=2.1.0

# ── ML Engine (lightweight, no GPU required) ─────────────────────────────────
# scikit-learn: banner fingerprinting, attack prioritization (~30 MB installed)
scikit-learn>=1.3.0
joblib>=1.3.0

# ── Config ────────────────────────────────────────────────────────────────────
# PyYAML: loads config.yaml (API keys, ML settings, network timeouts)
PyYAML>=6.0

# ── Optional extras ──────────────────────────────────────────────────────────
# Uncomment the lines below to enable the corresponding features.

# Rich terminal output for prettier tables/progress bars (used in discovery)
# rich>=13.0.0

# XlsxWriter for Excel export of discovery results (dependency of shodan)
# XlsxWriter>=3.0.0
