From c201953c59a8c28f2d1b3e2cf4486d437454070d Mon Sep 17 00:00:00 2001 From: AlgoFoe Date: Mon, 8 Jun 2026 16:36:50 +0530 Subject: [PATCH 1/5] docs: improve numpy-style docstrings in camera modules --- brainrender/camera.py | 100 ++++++++++++++++++++++++++++++----------- brainrender/cameras.py | 6 +++ 2 files changed, 81 insertions(+), 25 deletions(-) diff --git a/brainrender/camera.py b/brainrender/camera.py index 88a857e0..f94b550b 100644 --- a/brainrender/camera.py +++ b/brainrender/camera.py @@ -1,25 +1,48 @@ +"""Camera utilities for brainrender scenes.""" + from loguru import logger from vtkmodules.vtkRenderingCore import vtkCamera from brainrender.cameras import cameras -def get_camera(camera): +def get_camera(camera: str) -> dict: """ - Returns the parameters for a pre-defined camera + Return the parameters for a pre-defined camera. + + Parameters + ---------- + camera : str + Name of the pre-defined camera. - :param camera: str + Returns + ------- + dict + Camera parameters dictionary. """ return cameras[camera] -def check_camera_param(camera): +def check_camera_param(camera: str | dict) -> dict: """ - Check that a dictionary of camera parameters - is complete. Must have entries: - ["pos", "viewup", "clipping_range"] + Check that a dictionary of camera parameters is complete. + + Must have entries: ``["pos", "viewup", "clipping_range"]``. + + Parameters + ---------- + camera : str or dict + Camera name or parameters dictionary. - :param camera: str, dict + Returns + ------- + dict + Validated camera parameters dictionary. + + Raises + ------ + ValueError + If a required key is missing from the camera dictionary. """ if isinstance(camera, str): return get_camera(camera) @@ -35,11 +58,17 @@ def check_camera_param(camera): return camera -def set_camera_params(camera, params): +def set_camera_params(camera: vtkCamera, params: dict) -> None: """ - Set camera parameters - :param camera: camera obj - :param params: dictionary of camera parameters + Set camera parameters. + + Parameters + ---------- + camera : vtkCamera + Camera object to configure. + params : dict + Dictionary of camera parameters with keys ``pos``, ``viewup``, + ``clipping_range``, and optionally ``focal_point`` and ``distance``. """ logger.debug(f"Setting camera parameters: {params}") # Apply camera parameters @@ -53,13 +82,25 @@ def set_camera_params(camera, params): camera.SetDistance(params["distance"]) -def set_camera(scene, camera): +def set_camera( + scene, + camera: str | dict | vtkCamera | None, +) -> dict | vtkCamera | None: """ - Sets the position of the camera of a brainrender scene. - - :param scene: instance of Scene - :param camera: either a string with the name of one of the pre-defined cameras, or - a dictionary of camera parameters. + Set the position of the camera of a brainrender scene. + + Parameters + ---------- + scene : Scene + Instance of brainrender Scene. + camera : str, dict, vtkCamera, or None + Pre-defined camera name, a dictionary of camera parameters, + or a ``vtkCamera`` object. If None, returns immediately. + + Returns + ------- + dict, vtkCamera, or None + The applied camera parameters or object, or None if not applied. """ if camera is None: return None @@ -78,16 +119,25 @@ def set_camera(scene, camera): return camera -def get_camera_params(scene=None, camera=None): +def get_camera_params(scene=None, camera: vtkCamera | None = None) -> dict: """ - Given an active brainrender scene or a camera, it return - the camera parameters. - - :param scene: instance of Scene whose camera is to be used - :param camera: camera obj + Return the camera parameters from an active scene or camera object. + + Parameters + ---------- + scene : Scene, optional + Instance of brainrender Scene whose camera is to be used. + camera : vtkCamera, optional + Camera object to read parameters from. + + Returns + ------- + dict + Camera parameters with keys ``pos``, ``focal_point``, ``viewup``, + ``distance``, and ``clipping_range``. """ - def clean(val): + def clean(val: tuple | float) -> tuple | int: if isinstance(val, tuple): return tuple((round(v) for v in val)) else: diff --git a/brainrender/cameras.py b/brainrender/cameras.py index 983feb2d..52c83199 100644 --- a/brainrender/cameras.py +++ b/brainrender/cameras.py @@ -1,3 +1,9 @@ +"""Pre-defined camera parameter dictionaries for brainrender scenes. + +Each camera is a dictionary with keys ``pos``, ``viewup``, and +``clipping_range``, and is accessible by name through the ``cameras`` registry. +""" + sagittal_camera = { "pos": (6514, -34, 36854), "viewup": (0, -1, 0), From 15ad6097fd6098fa59b5fb825ad193478a4f94cb Mon Sep 17 00:00:00 2001 From: AlgoFoe Date: Mon, 15 Jun 2026 19:48:38 +0530 Subject: [PATCH 2/5] remove type annotations from docstrings --- brainrender/camera.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/brainrender/camera.py b/brainrender/camera.py index f94b550b..f73d4bf3 100644 --- a/brainrender/camera.py +++ b/brainrender/camera.py @@ -4,6 +4,7 @@ from vtkmodules.vtkRenderingCore import vtkCamera from brainrender.cameras import cameras +from brainrender.scene import Scene def get_camera(camera: str) -> dict: @@ -12,7 +13,7 @@ def get_camera(camera: str) -> dict: Parameters ---------- - camera : str + camera Name of the pre-defined camera. Returns @@ -31,7 +32,7 @@ def check_camera_param(camera: str | dict) -> dict: Parameters ---------- - camera : str or dict + camera Camera name or parameters dictionary. Returns @@ -64,9 +65,9 @@ def set_camera_params(camera: vtkCamera, params: dict) -> None: Parameters ---------- - camera : vtkCamera + camera Camera object to configure. - params : dict + params Dictionary of camera parameters with keys ``pos``, ``viewup``, ``clipping_range``, and optionally ``focal_point`` and ``distance``. """ @@ -83,7 +84,7 @@ def set_camera_params(camera: vtkCamera, params: dict) -> None: def set_camera( - scene, + scene: Scene, camera: str | dict | vtkCamera | None, ) -> dict | vtkCamera | None: """ @@ -91,9 +92,9 @@ def set_camera( Parameters ---------- - scene : Scene + scene Instance of brainrender Scene. - camera : str, dict, vtkCamera, or None + camera Pre-defined camera name, a dictionary of camera parameters, or a ``vtkCamera`` object. If None, returns immediately. @@ -119,15 +120,15 @@ def set_camera( return camera -def get_camera_params(scene=None, camera: vtkCamera | None = None) -> dict: +def get_camera_params(scene: Scene | None = None, camera: vtkCamera | None = None) -> dict: """ Return the camera parameters from an active scene or camera object. Parameters ---------- - scene : Scene, optional + scene Instance of brainrender Scene whose camera is to be used. - camera : vtkCamera, optional + camera Camera object to read parameters from. Returns From 016ce4a1601e53fec7a9d226c91a940767c6b1f5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 14:18:51 +0000 Subject: [PATCH 3/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- brainrender/camera.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/brainrender/camera.py b/brainrender/camera.py index f73d4bf3..d974ef28 100644 --- a/brainrender/camera.py +++ b/brainrender/camera.py @@ -120,7 +120,9 @@ def set_camera( return camera -def get_camera_params(scene: Scene | None = None, camera: vtkCamera | None = None) -> dict: +def get_camera_params( + scene: Scene | None = None, camera: vtkCamera | None = None +) -> dict: """ Return the camera parameters from an active scene or camera object. From 2005fa62f6665ec147524be0c0eacf63a5c5baf0 Mon Sep 17 00:00:00 2001 From: AlgoFoe Date: Mon, 15 Jun 2026 19:59:39 +0530 Subject: [PATCH 4/5] avoid circular import --- brainrender/camera.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/brainrender/camera.py b/brainrender/camera.py index f73d4bf3..9576a5d1 100644 --- a/brainrender/camera.py +++ b/brainrender/camera.py @@ -1,10 +1,15 @@ """Camera utilities for brainrender scenes.""" +from __future__ import annotations + +from typing import TYPE_CHECKING + from loguru import logger from vtkmodules.vtkRenderingCore import vtkCamera from brainrender.cameras import cameras -from brainrender.scene import Scene +if TYPE_CHECKING: + from brainrender.scene import Scene def get_camera(camera: str) -> dict: From b9980f879641205bd5f14bf427e7018e43040e13 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 14:30:27 +0000 Subject: [PATCH 5/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- brainrender/camera.py | 1 + 1 file changed, 1 insertion(+) diff --git a/brainrender/camera.py b/brainrender/camera.py index 325304f1..7f2a54d6 100644 --- a/brainrender/camera.py +++ b/brainrender/camera.py @@ -8,6 +8,7 @@ from vtkmodules.vtkRenderingCore import vtkCamera from brainrender.cameras import cameras + if TYPE_CHECKING: from brainrender.scene import Scene