# VelocityCMDB Requirements
# Platform-specific packages use environment markers

# Core Flask and web framework
Flask>=3.1.2
Flask-SocketIO>=5.5.1
Werkzeug>=3.1.3
Jinja2>=3.1.6
MarkupSafe>=3.0.3
itsdangerous>=2.2.0
blinker>=1.9.0

# Socket.IO and real-time communication
python-socketio>=5.14.3
python-engineio>=4.12.3
bidict>=0.23.1
simple-websocket>=1.1.0

# CLI framework
click>=8.3.0

# Networking and device communication
paramiko>=4.0.0
netmiko>=4.6.0
napalm>=5.1.0
napalm-procurve>=0.6.0
ncclient>=0.7.0
pyserial>=3.5
scp>=0.15.0

# Network automation and parsing
textfsm>=2.1.0
ntc_templates>=8.1.0
ttp>=0.10.0
ttp-templates>=0.3.7
netutils>=1.15.1

# Juniper support
junos-eznc>=2.7.5
lxml>=6.0.2

# Cisco support
pyeapi>=1.0.4
pynxos>=0.0.5

# Network visualization and graphing
networkx>=3.4
n2g>=0.3.0
matplotlib>=3.10.7
secure-cartography>=0.9.5

# Python-igraph (network analysis)
python-igraph>=1.0.0
igraph>=1.0.0

# Data handling
PyYAML>=6.0.3
ruamel.yaml>=0.18.16
ruamel.yaml.clib>=0.2.14
yamlordereddictloader>=0.4.2
python-dotenv>=1.2.1

# Excel support
openpyxl>=3.1.5
et_xmlfile>=2.0.0

# Authentication and security
bcrypt>=5.0.0
cryptography>=46.0.3
PyNaCl>=1.6.0

# LDAP support (optional but included)
ldap3>=2.9.1

# HTTP and networking
requests>=2.32.5
requests-toolbelt>=1.0.0
urllib3>=2.5.0
certifi>=2025.10.5
h11>=0.16.0
wsproto>=1.2.0

# Network addressing
netaddr>=1.3.0

# Data visualization
pillow>=12.0.0
cairocffi>=1.7.1
CairoSVG>=2.8.2

# Plotting and charting
contourpy>=1.3.0
cycler>=0.12.1
fonttools>=4.60.1
kiwisolver>=1.4.9
pyparsing>=3.2.5

# Scientific computing
numpy>=2.2.6

# Date/time handling
python-dateutil>=2.9.0.post0

# Utility libraries
six>=1.17.0
future>=1.0.0
func_timeout>=4.3.5
transitions>=0.9.3
texttable>=1.7.0

# Documentation and markup
docutils>=0.22.3
markdown-it-py>=4.0.0
mdurl>=0.1.2
Pygments>=2.19.2
rich>=14.2.0

# HTML/XML processing
bleach>=6.3.0
defusedxml>=0.7.1
nh3>=0.3.2
cssselect2>=0.8.0
tinycss2>=1.4.0
webencodings>=0.5.1

# Cryptography dependencies
cffi>=2.0.0
pycparser>=2.23
pyasn1>=0.6.1

# Packaging and distribution
setuptools>=80.9.0
wheel>=0.45.1
packaging>=25.0
pkginfo>=1.12.1.2
readme_renderer>=44.0
rfc3986>=2.0.0

# Import management
importlib_metadata>=8.7.0
importlib_resources>=6.5.2
zipp>=3.23.0
typing_extensions>=4.15.0

# Utility tools
jaraco.classes>=3.4.0
jaraco.context>=6.0.1
jaraco.functools>=4.3.0
more-itertools>=10.8.0
invoke>=2.2.1

# Keyring (cross-platform)
keyring>=25.6.0

# ============================================================================
# PLATFORM-SPECIFIC DEPENDENCIES
# ============================================================================

# Windows-only packages
pywin32>=311; sys_platform == 'win32'
pywin32-ctypes>=0.2.3; sys_platform == 'win32'
WMI>=1.5.1; sys_platform == 'win32'
colorama>=0.4.6; sys_platform == 'win32'

# Linux-specific (if you need python-pam for auth)
# python-pam>=2.0.2; sys_platform == 'linux'

# ============================================================================
# QT SUPPORT (PyQt6)
# ============================================================================
# Note: These are for GUI components if you have any
# Comment out if you don't need Qt support

PyQt6>=6.10.0
PyQt6-Qt6>=6.10.0
PyQt6-WebEngine>=6.10.0
PyQt6-WebEngine-Qt6>=6.10.0
PyQt6_sip>=13.10.2

# ============================================================================
# PYTHON VERSION COMPATIBILITY
# ============================================================================

# Backports for older Python versions (uncomment if supporting Python < 3.10)
# backports.tarfile>=1.2.0; python_version < '3.10'