Skip to content
Open
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
3 changes: 3 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ behavior they verify rather than listed separately.

### Added

- Install the legacy Kwik GUI dependencies with the optional `phy[kwik]`
extra. The supported legacy environment uses Python 3.10 or 3.11 and NumPy
1.23 without constraining regular Template GUI installations.
- Select the first eligible clusters in the Similarity View with
`Control+Space`. The default is 15 clusters; **Select > Select N Similar**
changes the number and remembers it across sessions.
Expand Down
13 changes: 8 additions & 5 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,14 +161,17 @@ phy template-gui /path/to/output/params.py
## Legacy Kwik support

The Template GUI is the recommended workflow for current template-based sorters.
The legacy Kwik GUI needs additional packages. Install them in a separate
uv-managed environment because `klustakwik2` needs NumPy, setuptools, and Cython
available while it builds:
The legacy Kwik GUI requires Python 3.10 or 3.11 because its unmaintained
dependencies are not compatible with current NumPy releases. Install it in a
separate uv-managed environment. The `kwik` extra supplies the tested legacy
dependency versions, while `klustakwik2` still needs NumPy, setuptools, and
Cython available while it builds:

```bash
uv venv --python 3.12 phy-kwik-env
uv pip install --python phy-kwik-env phy klusta cython
uv venv --python 3.11 phy-kwik-env
uv pip install --python phy-kwik-env "numpy>=1.23,<1.24" "setuptools<81" six cython
uv pip install --python phy-kwik-env --no-build-isolation klustakwik2
uv pip install --python phy-kwik-env "phy[kwik]"
```

Activate the environment using the command printed by `uv venv`. It can then be
Expand Down
16 changes: 15 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
requires-python = ">=3.10"

Expand All @@ -34,7 +35,7 @@ dependencies = [
"joblib",
"matplotlib",
"mtscomp",
"numpy",
"numpy>=1.23",
"pillow",
"pip",
"PyQt5>=5.15.11,<5.16",
Expand All @@ -55,6 +56,13 @@ Repository = "https://github.com/cortex-lab/phy"
Documentation = "https://phy.readthedocs.io/en/latest/"

[project.optional-dependencies]
kwik = [
"klusta",
"klustakwik2",
"numpy>=1.23,<1.24",
"setuptools<81",
"six",
]
dev = [
"Cython>=3.0",
"pytest",
Expand Down Expand Up @@ -108,6 +116,12 @@ phy = [

[tool.uv]
required-version = ">=0.11.8,<0.13"
conflicts = [
[
{ extra = "kwik" },
{ group = "dev" },
],
]
required-environments = [
"sys_platform == 'win32' and platform_machine == 'AMD64'",
]
Expand Down
Loading