Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 176 additions & 0 deletions LIBRARY_LIST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
# Complete Library List for Village Repository

This document contains every single library used by the BrainCircuitsBehaviorLab/village repository, extracted from all sources including dependencies, imports, documentation, build tools, and system requirements.

## Summary
- **Total Unique Libraries**: 62
- **Generated**: December 2024
- **Repository**: https://github.com/BrainCircuitsBehaviorLab/village

---

## Complete Alphabetical List

1. **black** - Code formatter
2. **calplot** - Calendar plotting library
3. **check-docstring-first** - Pre-commit hook
4. **check-executables-have-shebangs** - Pre-commit hook
5. **check-manifest** - Package manifest checker
6. **check-merge-conflict** - Pre-commit hook
7. **check-toml** - TOML file validator
8. **code** - Visual Studio Code (system package)
9. **codespell** - Spell checker for code
10. **coverage** - Code coverage measurement
11. **end-of-file-fixer** - Pre-commit hook
12. **fire** - Command line interface generation
13. **i2c-tools** - I2C utilities (system package)
14. **libcamera** - Camera library
15. **libportaudio2** - Audio I/O library (system package)
16. **libqt5multimedia5-plugins** - Qt5 multimedia plugins (system package)
17. **matplotlib** - Plotting library
18. **mixed-line-ending** - Pre-commit hook
19. **mypy** - Static type checker
20. **myst_parser** - MyST markdown parser for Sphinx
21. **nbsphinx** - Sphinx extension for Jupyter notebooks
22. **numpy** - Numerical computing library
23. **opencv-data** - OpenCV data files (system package)
24. **opencv-python** - Computer vision library
25. **pandas** - Data analysis and manipulation library
26. **picamera2** - Raspberry Pi camera library
27. **pre-commit** - Pre-commit framework
28. **pulseaudio** - Audio server (system package)
29. **PyQt5** - Python bindings for Qt5
30. **pyserial** - Serial communication library
31. **pytest** - Testing framework
32. **pytest-cov** - Coverage plugin for pytest
33. **python-dateutil** - Date and time utilities
34. **python-telegram-bot** - Telegram Bot API wrapper
35. **python3-opencv** - OpenCV Python bindings (system package)
36. **python3-pyqt5.qtmultimedia** - PyQt5 multimedia module (system package)
37. **requirements-txt-fixer** - Pre-commit hook
38. **ruff** - Python linter and formatter
39. **scipy** - Scientific computing library
40. **seaborn** - Statistical data visualization
41. **setuptools** - Package building tools
42. **setuptools-scm** - Version management from SCM tags
43. **setuptools_scm** - Version management from SCM tags (underscore variant)
44. **setuptools_scmtoml** - TOML support for setuptools_scm
45. **smbus2** - I2C/SMBus library
46. **sounddevice** - Audio input/output library
47. **sphinx.ext.autodoc** - Automatic documentation from docstrings
48. **sphinx.ext.autosectionlabel** - Automatic section labels
49. **sphinx.ext.autosummary** - Automatic API documentation
50. **sphinx.ext.githubpages** - GitHub Pages integration
51. **sphinx.ext.intersphinx** - Cross-project references
52. **sphinx.ext.napoleon** - NumPy/Google docstring support
53. **sphinx.ext.viewcode** - Source code viewing
54. **sphinx_autodoc_typehints** - Sphinx extension for type hints
55. **sphinx_book_theme** - Sphinx book theme
56. **sphinx_sitemap** - Sphinx sitemap generator
57. **sphinxcontrib.video** - Video embedding for Sphinx
58. **tomli** - TOML parser
59. **tox** - Testing automation
60. **trailing-whitespace** - Pre-commit hook
61. **types-setuptools** - Type stubs for setuptools
62. **wheel** - Python wheel packaging standard

---

## Libraries by Category

### Core Python Dependencies
- fire
- pandas
- pyserial
- python-dateutil
- python-telegram-bot
- scipy
- seaborn
- setuptools_scm
- sounddevice
- sphinx_book_theme

### Development & Testing Tools
- black
- coverage
- mypy
- pre-commit
- pytest
- pytest-cov
- ruff
- tox

### Build System & Packaging
- setuptools
- setuptools-scm
- setuptools_scm
- setuptools_scmtoml
- wheel

### Computer Vision & Hardware
- opencv-python
- numpy
- picamera2
- libcamera
- smbus2

### GUI & Multimedia
- PyQt5
- matplotlib
- sounddevice

### Documentation (Sphinx)
- myst_parser
- nbsphinx
- sphinx.ext.autodoc
- sphinx.ext.autosectionlabel
- sphinx.ext.autosummary
- sphinx.ext.githubpages
- sphinx.ext.intersphinx
- sphinx.ext.napoleon
- sphinx.ext.viewcode
- sphinx_autodoc_typehints
- sphinx_book_theme
- sphinx_sitemap
- sphinxcontrib.video

### System Dependencies (apt packages)
- code (Visual Studio Code)
- i2c-tools
- libportaudio2
- libqt5multimedia5-plugins
- opencv-data
- pulseaudio
- python3-opencv
- python3-pyqt5.qtmultimedia

### Pre-commit Hooks & Code Quality
- check-docstring-first
- check-executables-have-shebangs
- check-manifest
- check-merge-conflict
- check-toml
- codespell
- end-of-file-fixer
- mixed-line-ending
- requirements-txt-fixer
- trailing-whitespace

### Type Checking & Utilities
- types-setuptools
- tomli
- calplot

---

## Sources Analyzed

1. **pyproject.toml** - Main dependencies, dev dependencies, build requirements
2. **Python source code** - All import statements across 117+ Python files
3. **docs/source/conf.py** - Sphinx extensions and mock imports
4. **docs/source/how_to_build/software_installation.md** - System installation requirements
5. **.pre-commit-config.yaml** - Pre-commit hooks and their dependencies

---

*This list includes every library, tool, system package, and dependency used directly or indirectly by the Village repository for development, building, testing, documentation, and runtime operations.*
4 changes: 3 additions & 1 deletion village/plots/corridor_plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ def corridor_plot(
# get the unique days in the plot
unique_days = pd.date_range(start=start_first, end=end, freq="D")
# make them at midnight
unique_days = unique_days.map(lambda x: x.replace(hour=0, minute=0, second=0, microsecond=0))
unique_days = unique_days.map(
lambda x: x.replace(hour=0, minute=0, second=0, microsecond=0)
)
# remove the first
unique_days = unique_days[unique_days >= start_first]
# put the ticks there
Expand Down