brainrender 2.2.2__tar.gz → 2.2.3__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.
Files changed (44) hide show
  1. {brainrender-2.2.2 → brainrender-2.2.3}/.github/workflows/test_and_deploy.yml +3 -3
  2. {brainrender-2.2.2 → brainrender-2.2.3}/PKG-INFO +3 -3
  3. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/render.py +18 -21
  4. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender.egg-info/PKG-INFO +3 -3
  5. brainrender-2.2.3/brainrender.egg-info/scm_version.json +8 -0
  6. {brainrender-2.2.2 → brainrender-2.2.3}/pyproject.toml +3 -3
  7. brainrender-2.2.2/brainrender.egg-info/scm_version.json +0 -8
  8. {brainrender-2.2.2 → brainrender-2.2.3}/.gitignore +0 -0
  9. {brainrender-2.2.2 → brainrender-2.2.3}/CITATION.cff +0 -0
  10. {brainrender-2.2.2 → brainrender-2.2.3}/LICENSE +0 -0
  11. {brainrender-2.2.2 → brainrender-2.2.3}/MANIFEST.in +0 -0
  12. {brainrender-2.2.2 → brainrender-2.2.3}/README.md +0 -0
  13. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/__init__.py +0 -0
  14. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/_colors.py +0 -0
  15. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/_io.py +0 -0
  16. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/_jupyter.py +0 -0
  17. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/_utils.py +0 -0
  18. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/_video.py +0 -0
  19. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actor.py +0 -0
  20. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/__init__.py +0 -0
  21. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/cylinder.py +0 -0
  22. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/line.py +0 -0
  23. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/neurons.py +0 -0
  24. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/points.py +0 -0
  25. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/ruler.py +0 -0
  26. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/streamlines.py +0 -0
  27. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/actors/volume.py +0 -0
  28. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/atlas.py +0 -0
  29. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/atlas_specific/__init__.py +0 -0
  30. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/atlas_specific/allen_brain_atlas/gene_expression/__init__.py +0 -0
  31. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/atlas_specific/allen_brain_atlas/gene_expression/api.py +0 -0
  32. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/atlas_specific/allen_brain_atlas/gene_expression/ge_utils.py +0 -0
  33. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/atlas_specific/allen_brain_atlas/streamlines.py +0 -0
  34. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/camera.py +0 -0
  35. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/cameras.py +0 -0
  36. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/scene.py +0 -0
  37. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/settings.py +0 -0
  38. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender/video.py +0 -0
  39. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender.egg-info/SOURCES.txt +0 -0
  40. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender.egg-info/dependency_links.txt +0 -0
  41. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender.egg-info/requires.txt +0 -0
  42. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender.egg-info/scm_file_list.json +0 -0
  43. {brainrender-2.2.2 → brainrender-2.2.3}/brainrender.egg-info/top_level.txt +0 -0
  44. {brainrender-2.2.2 → brainrender-2.2.3}/setup.cfg +0 -0
@@ -39,12 +39,12 @@ jobs:
39
39
  matrix:
40
40
  # Run all supported Python versions on linux
41
41
  os: [ubuntu-latest]
42
- python-version: ["3.11", "3.12", "3.13"]
42
+ python-version: ["3.12", "3.13", "3.14"]
43
43
  include:
44
44
  - os: macos-latest
45
- python-version: "3.13"
45
+ python-version: "3.14"
46
46
  - os: windows-latest
47
- python-version: "3.13"
47
+ python-version: "3.14"
48
48
 
49
49
  steps:
50
50
  - name: Cache brainglobe directory
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: brainrender
3
- Version: 2.2.2
3
+ Version: 2.2.3
4
4
  Summary: Visualisation and exploration of brain atlases and other anatomical data
5
5
  Author-email: "Federico Claudi, Adam Tyson, Luigi Petrucco" <hello@brainglobe.info>
6
6
  License: BSD-3-Clause
@@ -12,14 +12,14 @@ Project-URL: User Support, https://forum.image.sc/tag/brainglobe
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.11
16
15
  Classifier: Programming Language :: Python :: 3.12
17
16
  Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
18
18
  Classifier: Operating System :: OS Independent
19
19
  Classifier: License :: OSI Approved :: BSD License
20
20
  Classifier: Intended Audience :: Developers
21
21
  Classifier: Intended Audience :: Science/Research
22
- Requires-Python: >=3.11
22
+ Requires-Python: >=3.12
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
25
  Requires-Dist: brainglobe-atlasapi>=2.0.1
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import weakref
5
6
  from datetime import datetime
6
7
  from pathlib import Path
7
8
  from typing import TYPE_CHECKING, Any
@@ -52,7 +53,8 @@ class Render:
52
53
  self._get_plotter()
53
54
  else:
54
55
  self.plotter = plotter
55
- self.plotter.keyPressFunction = self.keypress
56
+
57
+ self._bind_screenshot_key()
56
58
 
57
59
  def _get_plotter(self) -> None:
58
60
  """
@@ -67,7 +69,21 @@ class Render:
67
69
  size="full" if settings.WHOLE_SCREEN else (1600, 1200),
68
70
  )
69
71
 
70
- self.plotter.keyPressFunction = self.keypress
72
+ def _bind_screenshot_key(self) -> None:
73
+ """
74
+ Save a screenshot when ``s`` is pressed in the render window.
75
+ """
76
+ # Weak reference: holding self here makes Scene <-> plotter a
77
+ # reference cycle, so a dropped Scene is only closed by the cyclic
78
+ # garbage collector, on whichever thread happens to run it.
79
+ scene_ref = weakref.ref(self)
80
+
81
+ def on_keypress(event) -> None:
82
+ scene = scene_ref()
83
+ if scene is not None and event.keypress == "s":
84
+ scene.screenshot()
85
+
86
+ self.plotter.add_callback("KeyPress", on_keypress)
71
87
 
72
88
  def _make_axes(self) -> dict:
73
89
  """
@@ -419,22 +435,3 @@ class Render:
419
435
  logger.debug(f"Saving scene at {savepath}")
420
436
  self.plotter.screenshot(filename=savepath, scale=scale)
421
437
  return savepath
422
-
423
- def keypress(self, key: str) -> None: # pragma: no cover
424
- """
425
- Handle key presses during interactive rendering.
426
-
427
- - ``s``: take a screenshot
428
- - ``q`` / ``Esc``: close the window
429
- - ``c``: print current camera parameters
430
-
431
- Parameters
432
- ----------
433
- key
434
- Key identifier string from vedo.
435
- """
436
- if key == "s":
437
- self.screenshot()
438
-
439
- elif key in ("q", "Esc"):
440
- self.close()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: brainrender
3
- Version: 2.2.2
3
+ Version: 2.2.3
4
4
  Summary: Visualisation and exploration of brain atlases and other anatomical data
5
5
  Author-email: "Federico Claudi, Adam Tyson, Luigi Petrucco" <hello@brainglobe.info>
6
6
  License: BSD-3-Clause
@@ -12,14 +12,14 @@ Project-URL: User Support, https://forum.image.sc/tag/brainglobe
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.11
16
15
  Classifier: Programming Language :: Python :: 3.12
17
16
  Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
18
18
  Classifier: Operating System :: OS Independent
19
19
  Classifier: License :: OSI Approved :: BSD License
20
20
  Classifier: Intended Audience :: Developers
21
21
  Classifier: Intended Audience :: Science/Research
22
- Requires-Python: >=3.11
22
+ Requires-Python: >=3.12
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
25
  Requires-Dist: brainglobe-atlasapi>=2.0.1
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "2.2.3",
3
+ "distance": 0,
4
+ "node": "gb3230767c28d591f58e8b1249c0437633d1b1c1d",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-13"
8
+ }
@@ -5,7 +5,7 @@ authors = [
5
5
  ]
6
6
  description = "Visualisation and exploration of brain atlases and other anatomical data"
7
7
  readme = "README.md"
8
- requires-python = ">=3.11"
8
+ requires-python = ">=3.12"
9
9
  dynamic = ["version"]
10
10
 
11
11
  dependencies = [
@@ -36,9 +36,9 @@ classifiers = [
36
36
  "Development Status :: 3 - Alpha",
37
37
  "Programming Language :: Python",
38
38
  "Programming Language :: Python :: 3",
39
- "Programming Language :: Python :: 3.11",
40
39
  "Programming Language :: Python :: 3.12",
41
40
  "Programming Language :: Python :: 3.13",
41
+ "Programming Language :: Python :: 3.14",
42
42
  "Operating System :: OS Independent",
43
43
  "License :: OSI Approved :: BSD License",
44
44
  "Intended Audience :: Developers",
@@ -84,7 +84,7 @@ markers = [
84
84
  ]
85
85
 
86
86
  [tool.black]
87
- target-version = ['py311','py312', 'py313']
87
+ target-version = ['py312', 'py313', 'py314']
88
88
  skip-string-normalization = false
89
89
  line-length = 79
90
90
 
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "2.2.2",
3
- "distance": 0,
4
- "node": "g60cf6b76b8a5bfca51f843069ffbe0068f9ae0d2",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-09-21"
8
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes