ephys-link 2.0.0b10__tar.gz → 2.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/PKG-INFO +19 -21
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/README.md +13 -12
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/mkdocs.yml +4 -4
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/pyproject.toml +15 -16
- ephys_link-2.0.1/src/ephys_link/__about__.py +1 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/bindings/mpm_binding.py +2 -2
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/bindings/ump_4_binding.py +1 -1
- ephys_link-2.0.0b10/src/ephys_link/__about__.py +0 -1
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/.gitignore +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/LICENSE +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/ephys_link.spec +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/scripts/__init__.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/scripts/gen_ref_pages.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/scripts/logger_test.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/scripts/move_tester.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/scripts/server_tester.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/__init__.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/__main__.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/back_end/__init__.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/back_end/platform_handler.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/back_end/server.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/bindings/__init__.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/bindings/fake_binding.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/front_end/__init__.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/front_end/cli.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/front_end/gui.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/resources/libum.dll +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/utils/__init__.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/utils/base_binding.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/utils/console.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/utils/constants.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/utils/converters.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/src/ephys_link/utils/startup.py +0 -0
- {ephys_link-2.0.0b10 → ephys_link-2.0.1}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ephys-link
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: A Python Socket.IO server that allows any Socket.IO-compliant application to communicate with manipulators used in electrophysiology experiments.
|
|
5
5
|
Project-URL: Documentation, https://virtualbrainlab.org/ephys_link/installation_and_use.html
|
|
6
6
|
Project-URL: Issues, https://github.com/VirtualBrainLab/ephys-link/issues
|
|
@@ -17,34 +17,31 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
|
17
17
|
Classifier: Operating System :: Microsoft :: Windows
|
|
18
18
|
Classifier: Programming Language :: Python
|
|
19
19
|
Classifier: Programming Language :: Python :: 3
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
23
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
21
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
25
22
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
26
23
|
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
27
|
-
Requires-Python:
|
|
28
|
-
Requires-Dist: aiohttp==3.11.
|
|
24
|
+
Requires-Python: >=3.13
|
|
25
|
+
Requires-Dist: aiohttp==3.11.16
|
|
29
26
|
Requires-Dist: colorama==0.4.6
|
|
30
27
|
Requires-Dist: keyboard==0.13.5
|
|
31
28
|
Requires-Dist: packaging==24.2
|
|
32
|
-
Requires-Dist: platformdirs==4.3.
|
|
29
|
+
Requires-Dist: platformdirs==4.3.7
|
|
33
30
|
Requires-Dist: pyserial==3.5
|
|
34
31
|
Requires-Dist: python-socketio[asyncio-client]==5.12.1
|
|
35
32
|
Requires-Dist: requests==2.32.3
|
|
36
|
-
Requires-Dist: rich==
|
|
33
|
+
Requires-Dist: rich==14.0.0
|
|
37
34
|
Requires-Dist: sensapex==1.400.3
|
|
38
|
-
Requires-Dist: vbl-aquarium==1.0.
|
|
35
|
+
Requires-Dist: vbl-aquarium==1.0.0
|
|
39
36
|
Description-Content-Type: text/markdown
|
|
40
37
|
|
|
41
38
|
# Electrophysiology Manipulator Link
|
|
42
39
|
|
|
43
40
|
[](https://badge.fury.io/py/ephys-link)
|
|
44
|
-
[](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/deploy-docs.yml)
|
|
45
|
-
[](https://pydantic.dev)
|
|
46
41
|
[](https://github.com/pypa/hatch)
|
|
42
|
+
[](https://github.com/astral-sh/uv)
|
|
47
43
|
[](https://github.com/astral-sh/ruff)
|
|
44
|
+
[](https://pydantic.dev)
|
|
48
45
|
[](https://microsoft.github.io/pyright/)
|
|
49
46
|
|
|
50
47
|
<!-- [](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/build.yml) -->
|
|
@@ -59,22 +56,23 @@ to communicate with manipulators used in electrophysiology experiments.
|
|
|
59
56
|
|
|
60
57
|
# Installation
|
|
61
58
|
|
|
62
|
-
##
|
|
59
|
+
## Pinpoint (Recommended)
|
|
63
60
|
|
|
64
61
|
Pinpoint comes bundled with the correct version of Ephys Link. If you are using Pinpoint on the same computer your
|
|
65
|
-
manipulators are connected to, you can launch the server from within Pinpoint.
|
|
66
|
-
|
|
62
|
+
manipulators are connected to, you can launch the server from within Pinpoint. See the documentation
|
|
63
|
+
on [connecting from Pinpoint](../usage/using_ephys_link.md#connecting-to-pinpoint).
|
|
64
|
+
|
|
65
|
+
## Install as a Standalone Executable
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
Download the latest standalone executable or zip from
|
|
68
|
+
the [releases page](https://github.com/VirtualBrainLab/ephys-link/releases/latest).
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
the [releases page](https://github.com/VirtualBrainLab/ephys-link/releases/latest).
|
|
72
|
-
2. Double-click the executable file to start.
|
|
70
|
+
Then see the [usage documentation](../usage/starting_ephys_link.md) for how to run the server.
|
|
73
71
|
|
|
74
72
|
# Documentation and More Information
|
|
75
73
|
|
|
76
|
-
Complete documentation including
|
|
77
|
-
found on
|
|
74
|
+
Complete documentation including how to add manipulators and API usage can be
|
|
75
|
+
found on [Ephys Link's Documentation Website][docs].
|
|
78
76
|
|
|
79
77
|
# Citing
|
|
80
78
|
|
|
@@ -88,4 +86,4 @@ through the issues tab.
|
|
|
88
86
|
|
|
89
87
|
[Pinpoint]: https://github.com/VirtualBrainLab/Pinpoint
|
|
90
88
|
|
|
91
|
-
[docs]: https://
|
|
89
|
+
[docs]: https://ephys-link.virtualbrainlab.org
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Electrophysiology Manipulator Link
|
|
2
2
|
|
|
3
3
|
[](https://badge.fury.io/py/ephys-link)
|
|
4
|
-
[](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/deploy-docs.yml)
|
|
5
|
-
[](https://pydantic.dev)
|
|
6
4
|
[](https://github.com/pypa/hatch)
|
|
5
|
+
[](https://github.com/astral-sh/uv)
|
|
7
6
|
[](https://github.com/astral-sh/ruff)
|
|
7
|
+
[](https://pydantic.dev)
|
|
8
8
|
[](https://microsoft.github.io/pyright/)
|
|
9
9
|
|
|
10
10
|
<!-- [](https://github.com/VirtualBrainLab/ephys-link/actions/workflows/build.yml) -->
|
|
@@ -19,22 +19,23 @@ to communicate with manipulators used in electrophysiology experiments.
|
|
|
19
19
|
|
|
20
20
|
# Installation
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## Pinpoint (Recommended)
|
|
23
23
|
|
|
24
24
|
Pinpoint comes bundled with the correct version of Ephys Link. If you are using Pinpoint on the same computer your
|
|
25
|
-
manipulators are connected to, you can launch the server from within Pinpoint.
|
|
26
|
-
|
|
25
|
+
manipulators are connected to, you can launch the server from within Pinpoint. See the documentation
|
|
26
|
+
on [connecting from Pinpoint](../usage/using_ephys_link.md#connecting-to-pinpoint).
|
|
27
|
+
|
|
28
|
+
## Install as a Standalone Executable
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
Download the latest standalone executable or zip from
|
|
31
|
+
the [releases page](https://github.com/VirtualBrainLab/ephys-link/releases/latest).
|
|
29
32
|
|
|
30
|
-
|
|
31
|
-
the [releases page](https://github.com/VirtualBrainLab/ephys-link/releases/latest).
|
|
32
|
-
2. Double-click the executable file to start.
|
|
33
|
+
Then see the [usage documentation](../usage/starting_ephys_link.md) for how to run the server.
|
|
33
34
|
|
|
34
35
|
# Documentation and More Information
|
|
35
36
|
|
|
36
|
-
Complete documentation including
|
|
37
|
-
found on
|
|
37
|
+
Complete documentation including how to add manipulators and API usage can be
|
|
38
|
+
found on [Ephys Link's Documentation Website][docs].
|
|
38
39
|
|
|
39
40
|
# Citing
|
|
40
41
|
|
|
@@ -48,4 +49,4 @@ through the issues tab.
|
|
|
48
49
|
|
|
49
50
|
[Pinpoint]: https://github.com/VirtualBrainLab/Pinpoint
|
|
50
51
|
|
|
51
|
-
[docs]: https://
|
|
52
|
+
[docs]: https://ephys-link.virtualbrainlab.org
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# yaml-language-server: $schema=https://squidfunk.github.io/mkdocs-material/schema.json
|
|
2
2
|
|
|
3
3
|
site_name: Ephys Link
|
|
4
|
-
site_url: https://
|
|
4
|
+
site_url: https://ephys-link.virtualbrainlab.org
|
|
5
5
|
repo_url: https://github.com/VirtualBrainLab/ephys-link
|
|
6
|
-
repo_name:
|
|
6
|
+
repo_name: VirtualBrainLab/ephys-link
|
|
7
7
|
copyright: Copyright © 2024 Virtual Brain Lab
|
|
8
8
|
extra:
|
|
9
9
|
social:
|
|
@@ -86,9 +86,9 @@ plugins:
|
|
|
86
86
|
docstring_style: google
|
|
87
87
|
show_symbol_type_heading: true
|
|
88
88
|
show_symbol_type_toc: true
|
|
89
|
-
|
|
89
|
+
inventories:
|
|
90
90
|
- https://docs.python.org/3/objects.inv
|
|
91
|
-
- https://virtualbrainlab.
|
|
91
|
+
- https://aquarium.virtualbrainlab.org/objects.inv
|
|
92
92
|
nav:
|
|
93
93
|
- Home:
|
|
94
94
|
- About: index.md
|
|
@@ -7,16 +7,13 @@ name = "ephys-link"
|
|
|
7
7
|
dynamic = ["version"]
|
|
8
8
|
description = "A Python Socket.IO server that allows any Socket.IO-compliant application to communicate with manipulators used in electrophysiology experiments."
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.13"
|
|
11
11
|
license = "GPL-3.0-only"
|
|
12
12
|
keywords = ["socket-io", "manipulator", "electrophysiology", "ephys", "sensapex", "neuroscience", "neurotech", "virtualbrainlab", "new-scale"]
|
|
13
13
|
authors = [{ name = "Kenneth Yang", email = "kjy5@uw.edu" }]
|
|
14
14
|
maintainers = [{ name = "Kenneth Yang", email = "kjy5@uw.edu" }]
|
|
15
15
|
classifiers = [
|
|
16
16
|
"Programming Language :: Python",
|
|
17
|
-
"Programming Language :: Python :: 3.10",
|
|
18
|
-
"Programming Language :: Python :: 3.11",
|
|
19
|
-
"Programming Language :: Python :: 3.12",
|
|
20
17
|
"Programming Language :: Python :: 3.13",
|
|
21
18
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
22
19
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
@@ -29,17 +26,17 @@ classifiers = [
|
|
|
29
26
|
"Topic :: Scientific/Engineering :: Medical Science Apps.",
|
|
30
27
|
]
|
|
31
28
|
dependencies = [
|
|
32
|
-
"aiohttp==3.11.
|
|
29
|
+
"aiohttp==3.11.16",
|
|
33
30
|
"colorama==0.4.6",
|
|
34
31
|
"keyboard==0.13.5",
|
|
35
32
|
"packaging==24.2",
|
|
36
|
-
"platformdirs==4.3.
|
|
33
|
+
"platformdirs==4.3.7",
|
|
37
34
|
"pyserial==3.5",
|
|
38
35
|
"python-socketio[asyncio_client]==5.12.1",
|
|
39
36
|
"requests==2.32.3",
|
|
40
37
|
"sensapex==1.400.3",
|
|
41
|
-
"rich==
|
|
42
|
-
"vbl-aquarium==1.0.
|
|
38
|
+
"rich==14.0.0",
|
|
39
|
+
"vbl-aquarium==1.0.0"
|
|
43
40
|
]
|
|
44
41
|
|
|
45
42
|
[project.urls]
|
|
@@ -59,10 +56,11 @@ path = "src/ephys_link/__about__.py"
|
|
|
59
56
|
exclude = ["/.github", "/.idea", "/docs"]
|
|
60
57
|
|
|
61
58
|
[tool.hatch.envs.default]
|
|
62
|
-
|
|
59
|
+
installer = "uv"
|
|
60
|
+
python = "3.13"
|
|
63
61
|
dependencies = [
|
|
64
|
-
"pyinstaller==6.
|
|
65
|
-
"basedpyright==1.
|
|
62
|
+
"pyinstaller==6.12.0",
|
|
63
|
+
"basedpyright==1.28.5",
|
|
66
64
|
]
|
|
67
65
|
[tool.hatch.envs.default.scripts]
|
|
68
66
|
exe = "pyinstaller.exe ephys_link.spec -y -- -d && pyinstaller.exe ephys_link.spec -y"
|
|
@@ -71,14 +69,15 @@ check = "basedpyright"
|
|
|
71
69
|
check-watched = "basedpyright --watch"
|
|
72
70
|
|
|
73
71
|
[tool.hatch.envs.docs]
|
|
74
|
-
|
|
72
|
+
installer = "uv"
|
|
73
|
+
python = "3.13"
|
|
75
74
|
skip-install = true
|
|
76
75
|
dependencies = [
|
|
77
|
-
"mkdocs-material==9.
|
|
78
|
-
"mkdocstrings-python==1.
|
|
76
|
+
"mkdocs-material==9.6.11",
|
|
77
|
+
"mkdocstrings-python==1.16.10",
|
|
79
78
|
"mkdocs-gen-files==0.5.0",
|
|
80
|
-
"mkdocs-literate-nav==0.6.
|
|
81
|
-
"mkdocs-section-index==0.3.
|
|
79
|
+
"mkdocs-literate-nav==0.6.2",
|
|
80
|
+
"mkdocs-section-index==0.3.10"
|
|
82
81
|
]
|
|
83
82
|
[tool.hatch.envs.docs.scripts]
|
|
84
83
|
serve = "mkdocs serve"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.0.1"
|
|
@@ -127,7 +127,7 @@ class MPMBinding(BaseBinding):
|
|
|
127
127
|
manipulator_data: dict[str, float] = await self._manipulator_data(manipulator_id)
|
|
128
128
|
|
|
129
129
|
# Apply PosteriorAngle to Polar to get the correct angle.
|
|
130
|
-
adjusted_polar: int = manipulator_data["Polar"] - (await self._query_data())["PosteriorAngle"]
|
|
130
|
+
adjusted_polar: int = manipulator_data["Polar"] - (await self._query_data())["PosteriorAngle"] # pyright: ignore [reportAny]
|
|
131
131
|
|
|
132
132
|
return Vector3(
|
|
133
133
|
x=adjusted_polar if adjusted_polar > 0 else 360 + adjusted_polar,
|
|
@@ -299,7 +299,7 @@ class MPMBinding(BaseBinding):
|
|
|
299
299
|
return self.cache
|
|
300
300
|
|
|
301
301
|
async def _manipulator_data(self, manipulator_id: str) -> dict[str, Any]: # pyright: ignore [reportExplicitAny]
|
|
302
|
-
probe_data: list[dict[str, Any]] = (await self._query_data())["ProbeArray"] # pyright: ignore [reportExplicitAny]
|
|
302
|
+
probe_data: list[dict[str, Any]] = (await self._query_data())["ProbeArray"] # pyright: ignore [reportExplicitAny, reportAny]
|
|
303
303
|
for probe in probe_data:
|
|
304
304
|
if probe["Id"] == manipulator_id:
|
|
305
305
|
return probe
|
|
@@ -100,7 +100,7 @@ class Ump4Binding(BaseBinding):
|
|
|
100
100
|
raise RuntimeError(error_message)
|
|
101
101
|
|
|
102
102
|
# Handle empty end position.
|
|
103
|
-
if
|
|
103
|
+
if movement.last_pos is None or len(movement.last_pos) == 0: # pyright: ignore [reportUnknownMemberType, reportUnknownArgumentType]
|
|
104
104
|
error_message = f"Manipulator {manipulator_id} did not reach target position"
|
|
105
105
|
raise RuntimeError(error_message)
|
|
106
106
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.0.0b10"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|