Skip to content

Commit 02c3540

Browse files
committed
rename neuropixels ressource file
load json only once on demand remove backwards compativility file because it is not possible anymore to have it.
1 parent 2650ee7 commit 02c3540

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

.github/workflows/copy_probe_features.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Sync probe_features from ProbeTable
1+
name: Sync neuropixels_probe_features from ProbeTable
22

33
on:
44
schedule:
@@ -16,16 +16,16 @@ jobs:
1616
- name: Copy file from external repo
1717
run: |
1818
# Download the file directly
19-
curl -o src/probeinterface/resources/probe_features.json \
19+
curl -o src/probeinterface/resources/neuropixels_probe_features.json \
2020
https://raw.githubusercontent.com/billkarsh/ProbeTable/refs/heads/main/Tables/probe_features.json
2121
2222
- name: Commit changes if any
2323
run: |
2424
git config --local user.email "[email protected]"
2525
git config --local user.name "GitHub Action"
2626
27-
git add src/probeinterface/resources/probe_features.json
27+
git add src/probeinterface/resources/neuropixels_probe_features.json
2828
2929
# Only commit if there are changes
30-
git diff --staged --quiet || git commit -m "Update probe_features from ProbeTable"
30+
git diff --staged --quiet || git commit -m "Update neuropixels_probe_features from ProbeTable"
3131
git push

resources/generate_neuropixels_library.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def generate_all_npx():
2020
# if not base_folder.exists():
2121
base_folder.mkdir(exist_ok=True)
2222

23-
probe_features_filepath = Path(__file__).absolute().parent / Path("../src/probeinterface/resources/probe_features.json")
23+
probe_features_filepath = Path(__file__).absolute().parent / Path("../src/probeinterface/resources/neuropixels_probe_features.json")
2424
probe_features = json.load(open(probe_features_filepath, "r"))
2525
probe_part_numbers = probe_features['neuropixels_probes'].keys()
2626

src/probeinterface/neuropixels_tools.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,18 @@
1818
from .probe import Probe
1919
from .utils import import_safely
2020

21+
22+
global _np_probe_features
23+
_np_probe_features = None
24+
25+
def _load_np_probe_features():
26+
# this avoid loading the json several time
27+
global _np_probe_features
28+
if _np_probe_features is None:
29+
probe_features_filepath = Path(__file__).absolute().parent / Path("resources/neuropixels_probe_features.json")
30+
_np_probe_features = json.load(open(probe_features_filepath, "r"))
31+
return _np_probe_features
32+
2133
# Map imDatPrb_pn (probe number) to imDatPrb_type (probe type) when the latter is missing
2234
# ONLY needed for `read_imro` function
2335
probe_part_number_to_probe_type = {
@@ -346,8 +358,7 @@ def _read_imro_string(imro_str: str, imDatPrb_pn: Optional[str] = None) -> Probe
346358
# probe_type_num_chans looks like f"({probe_type},{num_chans}"
347359
probe_type = probe_type_num_chans.split(",")[0][1:]
348360

349-
probe_features_filepath = Path(__file__).absolute().parent / Path("resources/probe_features.json")
350-
probe_features = json.load(open(probe_features_filepath, "r"))
361+
probe_features = _load_np_probe_features()
351362
pt_metadata, fields, mux_table = get_probe_metadata_from_probe_features(probe_features, imDatPrb_pn)
352363

353364
# fields = probe_description["fields_in_imro_table"]
@@ -409,7 +420,7 @@ def get_probe_metadata_from_probe_features(probe_features: dict, imDatPrb_pn: st
409420
Parameters
410421
----------
411422
probe_features : dict
412-
Dictionary obtained when reading in the `probe_features.json` file.
423+
Dictionary obtained when reading in the `neuropixels_probe_features.json` file.
413424
imDatPrb_pn : str
414425
Probe part number.
415426
@@ -832,8 +843,7 @@ def read_openephys(
832843
)
833844
return None
834845

835-
probe_features_filepath = Path(__file__).absolute().parent / Path("resources/probe_features.json")
836-
probe_features = json.load(open(probe_features_filepath, "r"))
846+
probe_features = _load_np_probe_features()
837847

838848
# now load probe info from NP_PROBE fields
839849
np_probes_info = []

0 commit comments

Comments
 (0)