dataprof 0.4.53

A fast, lightweight CLI tool for CSV data profiling and analysis
Documentation
repos:
  # Rust formatting and linting
  - repo: local
    hooks:
      - id: cargo-fmt
        name: cargo fmt
        entry: cargo fmt --all --
        language: system
        types: [rust]
        pass_filenames: false

      - id: cargo-clippy-default
        name: cargo clippy (default features)
        entry: cargo clippy --lib -- -D warnings
        language: system
        types: [rust]
        pass_filenames: false


      - id: cargo-clippy-duckdb
        name: cargo clippy (duckdb)
        entry: bash -c 'if command -v duckdb >/dev/null 2>&1 || [ -f /usr/local/lib/libduckdb.so ]; then cargo clippy --lib --features duckdb -- -D warnings; else echo "⚠️ DuckDB not available, skipping clippy"; fi'
        language: system
        types: [rust]
        pass_filenames: false

      - id: cargo-clippy-arrow
        name: cargo clippy (arrow)
        entry: cargo clippy --lib --features arrow -- -D warnings
        language: system
        types: [rust]
        pass_filenames: false

      - id: cargo-test-default
        name: cargo test (default features)
        entry: cargo test --lib
        language: system
        types: [rust]
        pass_filenames: false

      - id: cargo-test-database-integration
        name: cargo test (database integration)
        entry: cargo test --test database_integration --verbose
        language: system
        types: [rust]
        pass_filenames: false


      - id: cargo-test-duckdb
        name: cargo test (duckdb)
        entry: bash -c 'if command -v duckdb >/dev/null 2>&1 || [ -f /usr/local/lib/libduckdb.so ]; then cargo test --features duckdb --lib; else echo "⚠️ DuckDB not available, skipping tests"; fi'
        language: system
        types: [rust]
        pass_filenames: false

      - id: cargo-test-arrow
        name: cargo test (arrow)
        entry: bash -c 'echo "🚀 Testing Apache Arrow integration..." && cargo test --features arrow --lib && cargo test --features arrow test_arrow_api_integration && echo "✅ Arrow tests passed"'
        language: system
        types: [rust]
        pass_filenames: false

      - id: cargo-test-cli-basic
        name: cargo test (CLI basic tests)
        entry: bash -c 'echo "🔧 Testing CLI basic functionality..." && cargo test --test cli_basic_tests --release && echo "✅ CLI basic tests passed"'
        language: system
        types: [rust]
        pass_filenames: false

  # General file formatting
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.4.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-toml
      - id: check-json
      - id: check-merge-conflict
      - id: check-case-conflict
      - id: mixed-line-ending

  # Markdown formatting (disabled for now due to complex legacy docs)
  # - repo: https://github.com/igorshubovych/markdownlint-cli
  #   rev: v0.37.0
  #   hooks:
  #     - id: markdownlint
  #       args: ['--fix']
  #       files: '\.md$'

# Configuration
default_language_version:
  python: python3
fail_fast: false