Skip to content

Restructure and linting - #36

Merged
kpetras merged 18 commits into
mainfrom
RestructureAndLinting
Aug 20, 2026
Merged

kpetras merged 18 commits into
mainfrom
RestructureAndLinting

Conversation

@onwijzebackup

Copy link
Copy Markdown
Collaborator
  • Moved project configuration to pyproject.toml and adopted uv for development, documentation, and CI environments.
  • Added joblib and vtk as declared runtime dependencies.
  • Reworked examples into Sphinx-Gallery tutorials, added accompanying example data, and refreshed API and contributor documentation.
  • Added documentation build workflows and expanded CI coverage for tests, dependency checks, linting, and releases.
  • Added Ruff enforcement for import ordering, common bugs, Python modernization, simplifications, comprehensions, and Ruff-specific checks.
  • Removed development-only modules: ClusterGradient, MEMD_Matlab_translation, and generateFromLog.

richardkoehler and others added 17 commits August 13, 2026 18:00
Major overhaul of  project infrastructure.

Packaging & Dependencies
- Add joblib and vtk to core dependencies
- Add optional extras: [memd] (chaospy, numba) and [cluster] (pycircstat)
- Move docs deps from [project.optional-dependencies] to [dependency-groups] docs
- Add ruff, pytest, deptry to dev dependency group
- Add deptry config with package_module_name_map (sklearn, skimage, gdist)
- Add ruff config: line-length 100, extend-select I, isort first-party
- Remove Development Status classifier

CI/CD
- Add ruff lint job to tests.yml
- Add reusable docs-build.yml workflow (sphinx-gallery, caching, libgl1)
- Add docs.yml workflow for PR/push verification
- Gate release publish on docs-build job
- Add deptry step to tests.yml (Python 3.13)

Documentation
- Switch to Sphinx-Gallery: all 8 examples converted to executable scripts
- Gated slow example sections behind BUILDING_DOCS env var
- Fixed Sphinx-Gallery __file__ issue via WAVEDATA_EXAMPLE_DIR env var
- Fixed literal \\n corruption in EMD.py
- Added plot_gallery=True, Agg backend, ExampleData symlink in conf.py
- Switched RTD to uv sync with docs dependency group
- Added libgl1 to RTD apt packages
- Updated docs/index.rst with toctree for auto_examples
- Removed old RST tutorials (docs/source/tutorials/)

Examples
- Separated ExampleData into inputs (ExampleData/) and outputs (ExampleData/Output/)
- All examples now write generated files (pkl, gifs) to Output/ directory
- Added output_dir + mkdir to Simulations, OpticalFlow, FrequencyDecomposition, CircLinCorr
- Updated .gitignore: removed global *.gif rule, added Output/ ignore
- Added env-var-based data_dir path in all 8 examples

Core Library
- Sorted imports across all WaveSpace modules (isort)
- Added try/except guards for optional deps: EMD.py (memd), ClusterGradient.py (pycircstat)
- Fixed Plotting.py r'$\\mu' escape, mutable default args
- Added SimulationFuns.py np.real() for array outputs
- Prefixed unused variables with underscore across codebase
- Fixed SensorLayout plotting parameter type

Testing
- Added UnitTest/conftest.py for matplotlib Agg backend
- Removed .vscode/settings.json

@kpetras kpetras left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as discussed

@kpetras
kpetras merged commit 6d6767e into main Aug 20, 2026
14 checks passed

This branch was successfully deployed

1 active deployment
pypi — 0bf916d0 Deployed Aug 20, 2026 by kpetras via Publish to PyPI #6
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.

3 participants