Skip to content

Conversation

@jeremymanning
Copy link
Member

Summary

  • Performance: Optimized clustering analysis with vectorized operations and numpy-based calculations
  • Speech decoding: Migrated from Google Cloud Speech to OpenAI Whisper
  • CI/CD: Added GitHub Actions workflow for automated testing across Python 3.9-3.12
  • Maintenance: Fixed plotting regressions, updated documentation, removed deprecated dependencies

Changes

Performance Optimizations

  • Vectorized lag-CRP and temporal clustering calculations
  • Pre-computed index mappings to avoid repeated list lookups
  • Optimized rank calculations using numpy operations

Speech Decoding

  • Replaced Google Cloud Speech API with OpenAI Whisper
  • Removed google-cloud-speech dependency
  • Added openai-whisper to requirements

CI/CD

  • Added GitHub Actions workflow (tests.yml)
  • Runs pytest on Python 3.9, 3.10, 3.11, 3.12
  • Includes coverage reporting and flake8 linting

Other

  • Fixed plot_type default to ensure legend suppression works
  • Updated setup.py to read requirements from requirements.txt
  • Changed clustering to return NaN (not 0.5) when insufficient data
  • Fixed typos in fingerprint logic
  • Rebuilt documentation with corrected plots

Test plan

  • All 133 existing tests pass
  • New synthetic tests verify temporal clustering scores
  • GitHub Actions CI should pass on this PR

🤖 Generated with Claude Code

jeremymanning and others added 7 commits December 9, 2025 21:43
…s.txt

- Add openai-whisper to requirements.txt for speech decoding
- Refactor setup.py to read install_requires from requirements.txt
- Update clustering.py to return NaN (not 0.5) when insufficient data
- Remove debug print statements from clustering.py
- Remove benchmark_cluster.py (temporary file)
- Add CLAUDE.md to .gitignore

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Run tests on Python 3.9, 3.10, 3.11, 3.12
- Include coverage reporting
- Add flake8 linting for syntax errors
- Trigger on push to master/main/optimize-quail and PRs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add .readthedocs.yaml for RTD v2 config
- Update docs/doc_requirements.txt with modern package versions
- Configure Python 3.11 build environment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Remove unused compute_stimulus_stick function with undefined variables
- Fix typo: experimeter_filter -> experimenter_filter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Add GitHub Actions test status badge
- Add ReadTheDocs documentation badge
- Update speech decoding mention from Google Cloud to OpenAI Whisper

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Install ffmpeg via apt-get for audio processing
- Install CPU-only torch for Whisper model inference
- Install openai-whisper explicitly before package

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
The wordpool groups are numbered 1-16, not 0-15. Using range(16)
would select group 0 which doesn't exist, causing sample() to fail.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@jeremymanning jeremymanning merged commit ebe73af into master Dec 10, 2025
10 checks passed
@jeremymanning jeremymanning deleted the optimize-quail branch December 10, 2025 04:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants