# CoreUtils-Python - Requirements
# Python version: 3.13.2 or greater

# ============================================================================
# REQUIRED DEPENDENCIES
# ============================================================================

# Core data processing libraries
numpy>=2.3.2          # Array operations, numerical computing (core_types, iterables, serialization)
pandas>=2.2.3         # DataFrame operations, data manipulation (lists, serialization, various utilities)

# Serialization formats
PyYAML>=6.0.2         # YAML serialization support (serialization.py)

# Security and encryption
cryptography>=45.0.7  # Fernet encryption, PBKDF2 key derivation (encrypt.py, signature.py)

# Testing framework
pytest>=8.4.2         # Unit testing framework
pytest-cov>=4.1.0     # Code coverage plugin for pytest

# ============================================================================
# OPTIONAL DEPENDENCIES
# ============================================================================
# These can be installed for additional functionality but are not required

# Enhanced serialization (with fallback to pickle)
# cbor2>=5.7.0        # CBOR binary serialization (optional in serialization.py)

# High-performance data processing
# polars>=1.33.0      # Fast DataFrame library (commented out - future support)
# pyarrow>=21.0.0     # Apache Arrow backend (commented out - future support)

# Development tools
# coverage>=7.0.0     # Coverage reporting (included via pytest-cov)
# black>=24.0.0       # Code formatting
# mypy>=1.8.0         # Static type checking
# flake8>=7.0.0       # Linting
# pylint>=3.0.0       # Advanced linting

# ============================================================================
# INSTALLATION INSTRUCTIONS
# ============================================================================
#
# Install required dependencies:
#   pip install -r requirements.txt
#
# Install with optional cbor2 for enhanced serialization:
#   pip install -r requirements.txt cbor2
#
# Install for development (with optional tools):
#   pip install -r requirements.txt black mypy flake8
#
# Verify installation:
#   python -c "from src.signature import SignedFile; from src.encrypt import Encryptor; print('✓ Installation successful')"
#
# ============================================================================
# DEPENDENCY MATRIX (src/ modules only)
# ============================================================================
#
# Module                | numpy | pandas | PyYAML | cryptography | cbor2 (opt)
# ----------------------+-------+--------+--------+--------------+------------
# core_types.py        |   ✓   |   ✓    |        |              |
# debugging.py         |   ✓   |   ✓    |        |              |
# dictionaries.py      |       |        |        |              |
# encrypt.py           |       |        |        |      ✓       |
# enhanced_logging.py  |       |        |        |              |
# functions.py         |       |        |        |              |
# generics.py          |   ✓   |   ✓    |        |              |
# git.py               |       |        |        |              |
# iterables.py         |   ✓   |        |        |              |
# lists.py             |   ✓   |   ✓    |        |              |
# numbers.py           |       |        |        |              |
# parrallelization.py  |       |        |        |              |
# search.py            |       |        |        |              |
# serialization.py     |   ✓   |   ✓    |   ✓    |              |    ✓
# signature.py         |       |        |        |      ✓       |
# strings.py           |       |        |        |              |
