# Core testing and utilities
pytest>=8,<9                 # Test runner and framework (parametrize, fixtures, markers)
pyyaml>=6,<7                 # Parse YAML config files under ./config/
pyserial>=3,<4               # Serial communication for Owon PSU and hardware tests

# BabyLIN SDK wrapper requires 'six' on some platforms
six>=1.16,<2

# Test productivity
pytest-xdist>=3.6,<4         # Parallel test execution (e.g., pytest -n auto)
pytest-html>=4,<5            # Generate HTML test reports for CI and sharing
pytest-cov>=5,<6             # Coverage reports for Python packages

# LDF parsing (LIN description file → frame/signal database for tests)
ldfparser>=0.26,<1           # Pure-Python LDF 1.x/2.x parser; pulls in lark + bitstruct

# Logging and config extras
configparser>=6,<7           # Optional INI-based config support if you add .ini configs later
colorlog>=6,<7               # Colored logging output for readable test logs
typing-extensions>=4.12,<5   # Typing backports for older Python versions

# Transitive PyPI deps of the Melexis stack (pylin / pymumclient / …).
# Installed unconditionally so mock and hw images share one venv layout;
# the size delta in the mock image is a few MB. Version pins come from
# the Requires-Dist metadata of the Melexis packages bundled into
# melexis-bundle/melexis-pkgs.tar.gz — keep them in sync if you upgrade
# the Melexis IDE.
pyparsing>=3.0.9,<3.1        # LDF + MBDF grammar (pyldfparser, pymbdfparser)
natsort>=7.1.0               # Natural-order signal sorting (pymbdfparser)
intelhex>=2.1                # Intel HEX I/O (pymlxchip, pymlxhex)
pygdbmi>=0.9,<0.10           # GDB Machine Interface (pymlxgdb)
crcmod>=1.7                  # CRC for MUM framing (pymumclient)
packaging>=20.3              # Version parsing (pymumclient)
zeroconf>=0.37.0             # mDNS discovery of MUM on the bench (pymumclient)
