From 72e5005a4112a6781c553f87be4ede0c162b0eda Mon Sep 17 00:00:00 2001 From: pdesanex Date: Wed, 21 Aug 2024 11:59:18 +0100 Subject: [PATCH 01/44] Update documentation.yaml --- .github/workflows/documentation.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml index 38ec2fe94..1edbd18c5 100644 --- a/.github/workflows/documentation.yaml +++ b/.github/workflows/documentation.yaml @@ -7,6 +7,7 @@ on: paths: - '.github/workflows/documentation.yaml' - 'docs/**' + - 'iblrig/__init__.py' - 'CHANGELOG.md' - 'README.md' - 'pyproject.toml' From 98867da8bab54abd9fcd82e4866623b307994d3b Mon Sep 17 00:00:00 2001 From: pdesanex Date: Wed, 21 Aug 2024 12:19:08 +0100 Subject: [PATCH 02/44] Update pyproject.toml --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a4b595bc0..83d2a1237 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -104,7 +104,7 @@ files = [ "iblrig/[!test]**/*.py", "iblrig_tasks/**/*.py" ] ignore_missing_imports = true [tool.pytest.ini_options] -addopts = "-ra --showlocals --cov=iblrig --cov=iblrig_tasks --cov-report=html --cov-report=xml --tb=short" +addopts = "-ra --showlocals --cov-report=html --cov-report=xml --tb=short" minversion = "6.0" testpaths = [ "iblrig/test" ] python_files = [ "test_*.py" ] @@ -176,4 +176,6 @@ known-first-party = [ "ibl*", "one*", "pybpod*" ] exclude = [ "docs", "venv", "iblrig/test" ] [tool.coverage.run] +source = [ "iblrig", "iblrig_tasks" ] omit = [ "iblrig/test/**" ] +relative_files = true From 4f9b3daaa768b7d3d323724bcd600a8fec95e6a6 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Wed, 21 Aug 2024 12:31:48 +0100 Subject: [PATCH 03/44] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 83d2a1237..75f30459c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -104,7 +104,7 @@ files = [ "iblrig/[!test]**/*.py", "iblrig_tasks/**/*.py" ] ignore_missing_imports = true [tool.pytest.ini_options] -addopts = "-ra --showlocals --cov-report=html --cov-report=xml --tb=short" +addopts = "-ra --showlocals --cov --cov-report=html --cov-report=xml --tb=short" minversion = "6.0" testpaths = [ "iblrig/test" ] python_files = [ "test_*.py" ] From 8df0cd5aa9b2c689baa5a95e813f451a846d7dd1 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Wed, 21 Aug 2024 14:17:33 +0100 Subject: [PATCH 04/44] remove scripts --- scripts/__init__.py | 0 scripts/ibllib/__init__.py | 0 scripts/ibllib/purge_rig_data.py | 96 -------------------- scripts/ibllib/register_session.py | 18 ---- scripts/ibllib/screen_stimulus_from_wheel.py | 81 ----------------- 5 files changed, 195 deletions(-) delete mode 100644 scripts/__init__.py delete mode 100644 scripts/ibllib/__init__.py delete mode 100644 scripts/ibllib/purge_rig_data.py delete mode 100644 scripts/ibllib/register_session.py delete mode 100644 scripts/ibllib/screen_stimulus_from_wheel.py diff --git a/scripts/__init__.py b/scripts/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/scripts/ibllib/__init__.py b/scripts/ibllib/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/scripts/ibllib/purge_rig_data.py b/scripts/ibllib/purge_rig_data.py deleted file mode 100644 index 21bed86cb..000000000 --- a/scripts/ibllib/purge_rig_data.py +++ /dev/null @@ -1,96 +0,0 @@ -""" -Purge data from RIG. - -- looks for datasets matching filename pattern -- datasets that exist in ONE cache are removed -""" - -import argparse -import logging -from fnmatch import fnmatch -from pathlib import Path - -from one.alf.files import get_session_path -from one.alf.io import iter_datasets, iter_sessions -from one.api import ONE - -log = logging.getLogger('iblrig') - - -def session_name(path: str | Path, lab: str | None = None) -> str: - """ - Return the session name (`subject/date/number`) string for a given session path. - - If lab is given return `lab/Subjects/subject/date/number`. - - Parameters - ---------- - path : str or Path - Session path. - lab : str, optional - Lab name - """ - lab = f'{lab}/Subjects/' if lab else '' - return lab + '/'.join(get_session_path(path).parts[-3:]) - - -def local_alf_paths(root_dir: str | Path, filename: str): - """ - Yield session path and relative paths of ALFs that match filename pattern. - - Parameters - ---------- - root_dir : str or Path - The folder to look for sessions. - filename : str - Session filename. - - Yields - ------ - session_path : Path - Session path. - dataset : Path - Relative paths of ALFs. - """ - for session_path in iter_sessions(root_dir): - for dataset in iter_datasets(session_path): - if fnmatch(dataset, filename): - yield session_path, dataset - - -def purge_local_data(local_folder, filename='*', lab=None, dry=False, one=None): - # Figure out datasetType from filename or file path - local_folder = Path(local_folder) - - # Get matching files that exist in ONE cache - to_remove = [] - one = one or ONE() - for session_path, dataset in local_alf_paths(local_folder, filename): - session = session_name(session_path, lab=lab) - eid = one.to_eid(session) - if not eid: - continue - matching = one.list_datasets(eid, dataset.as_posix()) - if not matching: - continue - assert len(matching) == 1 - to_remove.append(local_folder.joinpath(session_path, dataset)) - - log.info(f'Local files to remove: {len(to_remove)}') - for f in to_remove: - log.info(f'DELETE: {f}') - f.unlink() if not dry else None - return to_remove - - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='Delete files from rig') - parser.add_argument('folder', help='Local iblrig_data folder') - parser.add_argument('file', help='File name to search and destroy for every session') - parser.add_argument( - '-lab', required=False, default=None, help='Lab name, in case sessions conflict between labs. default: None' - ) - parser.add_argument('--dry', required=False, default=False, action='store_true', help='Dry run? default: False') - args = parser.parse_args() - purge_local_data(args.folder, args.file, lab=args.lab, dry=args.dry) - print('purge_rig_data script done\n') diff --git a/scripts/ibllib/register_session.py b/scripts/ibllib/register_session.py deleted file mode 100644 index 4fdd4f352..000000000 --- a/scripts/ibllib/register_session.py +++ /dev/null @@ -1,18 +0,0 @@ -import logging -import sys -import traceback - -from ibllib.oneibl.registration import IBLRegistrationClient - -log = logging.getLogger('iblrig') - - -if __name__ == '__main__': - IBLRIG_DATA = sys.argv[1] - try: - log.info('Trying to register session in Alyx...') - IBLRegistrationClient(one=None).create_sessions(IBLRIG_DATA, dry=False) - log.info('Done') - except Exception: - log.error(traceback.format_exc()) - log.warning('Failed to register session on Alyx, will try again from local server after transfer') diff --git a/scripts/ibllib/screen_stimulus_from_wheel.py b/scripts/ibllib/screen_stimulus_from_wheel.py deleted file mode 100644 index 7b23ecb87..000000000 --- a/scripts/ibllib/screen_stimulus_from_wheel.py +++ /dev/null @@ -1,81 +0,0 @@ -import math - -import numpy as np - -from one.api import ONE - -WHEEL_RADIUS = 31 -USER_DEFINED_GAIN = 4.0 -MM_PER_DEG = (2 * math.pi * WHEEL_RADIUS) / 360 -GAIN_FACTOR = 1 / (MM_PER_DEG * USER_DEFINED_GAIN) - - -def pos_on_screen(pos, init_pos): - try: - iter(pos) - except TypeError: - pos = [pos] - - for p in pos: - yield (((p / GAIN_FACTOR) + init_pos) + 180) % 360 - 180 - - -def find_nearest(array, value): - array = np.asarray(array) - idx = (np.abs(array - value)).argmin() - return idx - - -def get_stim_from_wheel(eid: str, tr: int): - """ - Get position of the stimulus on the screen. - - For a given session (eid) and trial (tr) - return the position of the stimulus on the screen, - where the one screen side is at 35 and the other at -35. - - If the mouse wheels wrongly away from 0, the stimulus - remains at the edge of the screen - """ - # eid = '83e77b4b-dfa0-4af9-968b-7ea0c7a0c7e4' - # tr = 0 - # For a given trial tr, the stim on screen responds to the wheel between - # trials['goCue_times'][tr] and trials['feedback_times'][tr] - - one = ONE() - dataset_types = [ - 'trials.goCue_times', - 'trials.feedback_times', - 'trials.feedbackType', - 'trials.contrastLeft', - 'trials.contrastRight', - 'trials.choice', - ] - one.load(eid, dataset_types=dataset_types, dclass_output=True) - alf_path = one.path_from_eid(eid) / 'alf' - trials = one.load_object(alf_path, 'trials') - wheel = one.load_object(eid, 'wheel') - - # check where stimulus started for initial shift - init_pos = -35 if np.isnan(trials['contrastLeft'][tr]) else 35 - - # the screen stim is only coupled to the wheel in this time - wheel_start_idx = find_nearest(wheel.timestamps, trials['goCue_times'][tr]) - wheel_end_idx = find_nearest(wheel.timestamps, trials['feedback_times'][tr]) - wheel_pos = wheel.position[wheel_start_idx:wheel_end_idx] - wheel_times = wheel.timestamps[wheel_start_idx:wheel_end_idx] - - wheel_pos = wheel_pos * 180 / np.pi - wheel_pos = wheel_pos - wheel_pos[0] # starting at 0 - - screen_deg = np.array(list(pos_on_screen(wheel_pos, init_pos))) - # set screen degrees to initial value if larger than 35 - # as then the stimulus stays at the edge of the screen - idc = np.where(abs(screen_deg) > 35)[0] - - screen_deg[idc] = screen_deg[0] - - # f = interp1d(wheel_times, absolute_screen_deg) - # as you might want to get values as shown on screen, i.e. at 60 Hz - - return wheel_pos, screen_deg, trials['feedbackType'][tr], wheel_times From d20322cce36d2829e5a76ed420229723e83f2f8d Mon Sep 17 00:00:00 2001 From: pdesanex Date: Wed, 21 Aug 2024 14:18:41 +0100 Subject: [PATCH 05/44] Update pyproject.toml --- pyproject.toml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 75f30459c..89571dd79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -170,12 +170,15 @@ quote-style = "single" convention = "numpy" [tool.ruff.lint.isort] -known-first-party = [ "ibl*", "one*", "pybpod*" ] +known-first-party = [ "ibl*", "one*", "pybpod*", "tycmd" ] [tool.deadcode] -exclude = [ "docs", "venv", "iblrig/test" ] +exclude = [ "docs", "venv", ".venv" ] [tool.coverage.run] -source = [ "iblrig", "iblrig_tasks" ] -omit = [ "iblrig/test/**" ] +source_pkgs = [ "iblrig", "iblrig_tasks" ] +omit = [ "iblrig/test/*" ] relative_files = true + +[tool.coverage.report] +skip_empty = true From 610957a0f709f2c5a696d9f18841d2ced15f9297 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Wed, 21 Aug 2024 14:26:39 +0100 Subject: [PATCH 06/44] replace pdf document with a link --- visual_stim/Fredericksen_etal_97.pdf | Bin 372340 -> 0 bytes visual_stim/literature.md | 4 ++++ 2 files changed, 4 insertions(+) delete mode 100644 visual_stim/Fredericksen_etal_97.pdf create mode 100644 visual_stim/literature.md diff --git a/visual_stim/Fredericksen_etal_97.pdf b/visual_stim/Fredericksen_etal_97.pdf deleted file mode 100644 index a34996eadf0b3edfe97ae0497ba875f61fbf46e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372340 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%0D!0d7S@&NVriu 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�mYQthc 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

(V<5Camo{swve+oG>;kiFry9N6fIbcY# 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 z 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 Date: Wed, 21 Aug 2024 22:39:12 +0100 Subject: [PATCH 07/44] add call_git method --- iblrig/version_management.py | 79 +++++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 20 deletions(-) diff --git a/iblrig/version_management.py b/iblrig/version_management.py index b6677e814..61d156125 100644 --- a/iblrig/version_management.py +++ b/iblrig/version_management.py @@ -1,8 +1,10 @@ import logging import re from collections.abc import Callable +from functools import cache from pathlib import Path from subprocess import STDOUT, CalledProcessError, SubprocessError, check_call, check_output +from typing import Any, Literal import requests from packaging import version @@ -125,37 +127,72 @@ def get_detailed_version_string(v_basic: str) -> str: return v_detailed -@static_vars(branch=None) -def get_branch() -> str | None: +cached_check_output = cache(check_output) +OnErrorLiteral = Literal['raise', 'log', 'silence'] + + +def call_git(*args: str, cache_output: bool = True, on_error: OnErrorLiteral = 'raise') -> str | None: """ - Get the Git branch of the iblrig installation. + Call a git command with the specified arguments. - This function retrieves and caches the Git branch of the iblrig installation. - If the branch is already cached, it returns the cached value. If not, it - attempts to obtain the branch from the Git repository. + This function executes a git command with the provided arguments. It can cache the output of the command + and handle errors based on the specified behavior. + + Parameters + ---------- + *args : str + The arguments to pass to the git command. + cache_output : bool, optional + Whether to cache the output of the command. Default is True. + on_error : str, optional + The behavior when an error occurs. Either + - 'raise': raise the exception (default), + - 'log': log the exception, or + - 'silence': suppress the exception. Returns ------- - Union[str, None] - The Git branch of the iblrig installation, or None if it cannot be determined. + str or None + The output of the git command as a string, or None if an error occurred. - Notes - ----- - This method will only work with installations managed through Git. + Raises + ------ + RuntimeError + If the installation is not managed through git and on_error is set to 'raise'. + SubprocessError + If the command fails and on_error is set to 'raise'. """ - if get_branch.branch is not None: - return get_branch.branch + kwargs: dict[str, Any] = {'args': ('git', *args), 'cwd': BASE_DIR, 'timeout': 5, 'text': True} if not IS_GIT: - log.error('This installation of iblrig is not managed through git') + message = 'This installation of iblrig is not managed through git' + if on_error == 'raise': + raise RuntimeError(message) + elif on_error == 'log': + log.error(message) + return None try: - get_branch.branch = check_output( - ['git', 'rev-parse', '--abbrev-ref', 'HEAD'], cwd=BASE_DIR, timeout=5, text=True - ).removesuffix('\n') - return get_branch.branch - except (SubprocessError, CalledProcessError): + output = cached_check_output(**kwargs) if cache_output else check_output(**kwargs) + return output.strip() + except SubprocessError as e: + if on_error == 'raise': + raise e + elif on_error == 'log': + log.exception(e) return None +def get_branch() -> str | None: + """ + Get the Git branch of the iblrig installation. + + Returns + ------- + str or None + The Git branch of the iblrig installation, or None if it cannot be determined. + """ + return call_git('rev-parse', '--abbrev-ref', 'HEAD', on_error='log') + + @static_vars(is_fetched_already=False) def get_remote_tags() -> None: """ @@ -177,8 +214,10 @@ def get_remote_tags() -> None: return if not IS_GIT: log.error('This installation of iblrig is not managed through git') + if (branch := get_branch()) is None: + return try: - check_call(['git', 'fetch', 'origin', get_branch(), '-t', '-q', '-f'], cwd=BASE_DIR, timeout=5) + check_call(['git', 'fetch', 'origin', branch, '-t', '-q', '-f'], cwd=BASE_DIR, timeout=5) except (SubprocessError, CalledProcessError): return get_remote_tags.is_fetched_already = True From e610416542f65190225a0393ac338110d6017ee2 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 10:19:31 +0100 Subject: [PATCH 08/44] start work on get_lab_location_dict() --- iblrig/tools.py | 45 ++++++++++++++++++++++++++++++++++-- iblrig/version_management.py | 26 +++++++++++++++++---- 2 files changed, 64 insertions(+), 7 deletions(-) diff --git a/iblrig/tools.py b/iblrig/tools.py index e939eefdd..a68d92c7d 100644 --- a/iblrig/tools.py +++ b/iblrig/tools.py @@ -1,18 +1,23 @@ import asyncio import logging import os +import platform import re import shutil import socket import subprocess from collections.abc import Callable from dataclasses import dataclass +from datetime import date +from functools import cache from pathlib import Path from typing import Any, TypeVar -from iblrig.constants import BONSAI_EXE +from iblrig import version_management +from iblrig.constants import BONSAI_EXE, IS_GIT from iblrig.path_helper import create_bonsai_layout_from_template, load_pydantic_yaml -from iblrig.pydantic_definitions import RigSettings +from iblrig.pydantic_definitions import HardwareSettings, RigSettings +from iblutil.util import get_mac log = logging.getLogger(__name__) @@ -375,3 +380,39 @@ class ANSI: DIM = '\033[2m' UNDERLINE = '\033[4m' END = '\033[0m' + + +cached_check_output = cache(subprocess.check_output) + + +def get_lab_location_dict(hardware_settings: HardwareSettings, iblrig_settings: RigSettings) -> dict[str, Any]: + lab_location = dict() + lab_location['rig_name'] = hardware_settings.RIG_NAME + lab_location['iblrig_version'] = str(version_management.get_local_version()) + lab_location['last_seen'] = date.today().isoformat() + + machine = dict() + machine['hostname'] = socket.gethostname() + machine['platform'] = platform.platform() + machine['ip_address'] = socket.gethostbyname(machine['hostname']) + machine['mac_address'] = get_mac() + machine['anydesk_id'] = get_anydesk_id(silent=True) + lab_location['machine'] = machine + + git = dict() + git['is_git'] = IS_GIT + git['branch'] = version_management.get_branch() + git['commit_id'] = version_management.get_commit_hash() + git['is_dirty'] = version_management.is_dirty() + lab_location['git'] = git + + # bpod + # sound + # rotary encoder + # frame2ttl + # ambient module + + # validation errors + # validation warnings + + return lab_location diff --git a/iblrig/version_management.py b/iblrig/version_management.py index 61d156125..a5d14caf2 100644 --- a/iblrig/version_management.py +++ b/iblrig/version_management.py @@ -1,7 +1,6 @@ import logging import re from collections.abc import Callable -from functools import cache from pathlib import Path from subprocess import STDOUT, CalledProcessError, SubprocessError, check_call, check_output from typing import Any, Literal @@ -11,7 +10,7 @@ from iblrig import __version__ from iblrig.constants import BASE_DIR, IS_GIT, IS_VENV -from iblrig.tools import internet_available, static_vars +from iblrig.tools import cached_check_output, internet_available, static_vars log = logging.getLogger(__name__) @@ -127,7 +126,6 @@ def get_detailed_version_string(v_basic: str) -> str: return v_detailed -cached_check_output = cache(check_output) OnErrorLiteral = Literal['raise', 'log', 'silence'] @@ -172,7 +170,7 @@ def call_git(*args: str, cache_output: bool = True, on_error: OnErrorLiteral = ' return None try: output = cached_check_output(**kwargs) if cache_output else check_output(**kwargs) - return output.strip() + return str(output).strip() except SubprocessError as e: if on_error == 'raise': raise e @@ -181,7 +179,7 @@ def call_git(*args: str, cache_output: bool = True, on_error: OnErrorLiteral = ' return None -def get_branch() -> str | None: +def get_branch(): """ Get the Git branch of the iblrig installation. @@ -193,6 +191,24 @@ def get_branch() -> str | None: return call_git('rev-parse', '--abbrev-ref', 'HEAD', on_error='log') +def get_commit_hash(short: bool = True): + """ + Get the hash of the currently checked out commit of the iblrig installation. + + Parameters + ---------- + short : bool, optional + Whether to return the short hash of the commit hash. Default is True. + + Returns + ------- + str or None + Hash of the currently checked out commit, or None if it cannot be determined. + """ + args = ['rev-parse', '--short', 'HEAD'] if short else ['rev-parse', 'HEAD'] + return call_git(*args, on_error='log') + + @static_vars(is_fetched_already=False) def get_remote_tags() -> None: """ From 40c85a613948e1ff2e23744eaabd25b45ba1dbb1 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 10:27:26 +0100 Subject: [PATCH 09/44] Update tools.py --- iblrig/tools.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/iblrig/tools.py b/iblrig/tools.py index a68d92c7d..b4c6512c3 100644 --- a/iblrig/tools.py +++ b/iblrig/tools.py @@ -392,8 +392,9 @@ def get_lab_location_dict(hardware_settings: HardwareSettings, iblrig_settings: lab_location['last_seen'] = date.today().isoformat() machine = dict() - machine['hostname'] = socket.gethostname() machine['platform'] = platform.platform() + machine['hostname'] = socket.gethostname() + machine['fqdn'] = socket.getfqdn() machine['ip_address'] = socket.gethostbyname(machine['hostname']) machine['mac_address'] = get_mac() machine['anydesk_id'] = get_anydesk_id(silent=True) From de972842bf7f4459e8877b889ea3b512b4ae59e6 Mon Sep 17 00:00:00 2001 From: Florian Rau Date: Thu, 22 Aug 2024 10:34:27 +0100 Subject: [PATCH 10/44] Update tools.py --- iblrig/tools.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/iblrig/tools.py b/iblrig/tools.py index b4c6512c3..16f4cbcef 100644 --- a/iblrig/tools.py +++ b/iblrig/tools.py @@ -55,12 +55,15 @@ def ask_user(prompt: str, default: bool = False) -> bool: return False -def get_anydesk_id(silent: bool = False) -> str | None: +def get_anydesk_id(format_id: bool = True, silent: bool = False) -> str | None: """ Retrieve the AnyDesk ID of the current machine. Parameters ---------- + format_id : bool, optional + If True (default), format the ID in blocks separated by spaces. + If False, return the ID as one continuous block. silent : bool, optional If True, suppresses exceptions and logs them instead. If False (default), raises exceptions. @@ -99,7 +102,7 @@ def get_anydesk_id(silent: bool = False) -> str | None: proc = subprocess.Popen([cmd, '--get-id'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) if proc.stdout and re.match(r'^\d{10}$', id_string := next(proc.stdout).decode()): - anydesk_id = f'{int(id_string):,}'.replace(',', ' ') + anydesk_id = f'{int(id_string):,}'.replace(',', ' ' if format_id else '') except (FileNotFoundError, subprocess.CalledProcessError, StopIteration, UnicodeDecodeError) as e: if silent: log.debug(e, exc_info=True) @@ -397,7 +400,7 @@ def get_lab_location_dict(hardware_settings: HardwareSettings, iblrig_settings: machine['fqdn'] = socket.getfqdn() machine['ip_address'] = socket.gethostbyname(machine['hostname']) machine['mac_address'] = get_mac() - machine['anydesk_id'] = get_anydesk_id(silent=True) + machine['anydesk_id'] = get_anydesk_id(format_id=False, silent=True) lab_location['machine'] = machine git = dict() From 28ac26fe9d7654ec8ff41e0b2dc050cbbe9d040c Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 13:45:15 +0100 Subject: [PATCH 11/44] work on documentation --- .github/workflows/documentation.yaml | 4 +--- .github/workflows/release.yaml | 30 ++++++++++++++++++++++++++++ docs/source/conf.py | 1 + docs/source/index.rst | 29 +++++++++++++++++---------- 4 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml index 1edbd18c5..45889c461 100644 --- a/.github/workflows/documentation.yaml +++ b/.github/workflows/documentation.yaml @@ -21,13 +21,11 @@ jobs: - name: Set up PDM uses: pdm-project/setup-pdm@v4 with: - python-version: ${{ matrix.python-version }} cache: true - name: Install requirements run: pdm sync -dG doc - name: Sphinx build - run: | - pdm run sphinx-build docs/source docs/build/html + run: pdm run sphinx-build docs/source docs/build/html - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..b51b9eb99 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,30 @@ +name: Release + +on: + workflow_dispatch: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+' + +jobs: + documentation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up PDM + uses: pdm-project/setup-pdm@v4 + with: + cache: true + - name: Install requirements + run: pdm sync -dG doc + - uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended + version: 1.0 + - name: Build PDF + run: make -C docs/ latexpdf + - uses: actions/upload-artifact@v4 + with: + name: documentation + path: docs/build/latex/iblrig.pdf + retention-days: 1 diff --git a/docs/source/conf.py b/docs/source/conf.py index 1e94dc5bd..5d7c17e5b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -6,6 +6,7 @@ copyright = f'2018 – {date.today().year} International Brain Laboratory' author = 'International Brain Laboratory' version = '.'.join(__version__.split('.')[:3]) +release = '.'.join(__version__.split('.')[:3]) # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/docs/source/index.rst b/docs/source/index.rst index 86dbf53a0..6156d7e78 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,5 +1,12 @@ -.. include:: ../../README.md - :parser: myst_parser.sphinx_ +.. only:: html + + .. include:: ../../README.md + :parser: myst_parser.sphinx_ + +.. only:: latex + + Welcome to IBLRIG + ================= .. toctree:: :caption: Contents: @@ -12,14 +19,16 @@ reference_developer_guide faq -.. toctree:: - :hidden: +.. only:: html - changelog + .. toctree:: + :hidden: -.. toctree:: - :caption: Links - :hidden: + changelog + + .. toctree:: + :caption: Links + :hidden: - IBLRIG on GitHub - Appendix 3: IBL protocol for setting up the behavioral training rig \ No newline at end of file + IBLRIG on GitHub + Appendix 3: IBL protocol for setting up the behavioral training rig From 910dfb4cd5775c28b80344a6534e0ca125339a5a Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 13:45:34 +0100 Subject: [PATCH 12/44] Update tools.py --- iblrig/tools.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/iblrig/tools.py b/iblrig/tools.py index 16f4cbcef..cdfe1ed94 100644 --- a/iblrig/tools.py +++ b/iblrig/tools.py @@ -410,13 +410,7 @@ def get_lab_location_dict(hardware_settings: HardwareSettings, iblrig_settings: git['is_dirty'] = version_management.is_dirty() lab_location['git'] = git - # bpod - # sound - # rotary encoder - # frame2ttl - # ambient module - - # validation errors - # validation warnings + # TODO: add hardware/firmware versions of bpod, soundcard, rotary encoder, frame2ttl, ambient module, etc + # TODO: add validation errors/warnings return lab_location From a1b8509f65190a89bb9cdc20be0ce6250dcd1774 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 13:46:59 +0100 Subject: [PATCH 13/44] Update release.yaml --- .github/workflows/release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index b51b9eb99..8ea68f824 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -3,8 +3,8 @@ name: Release on: workflow_dispatch: push: - tags: - - '[0-9]+.[0-9]+.[0-9]+' +# tags: +# - '[0-9]+.[0-9]+.[0-9]+' jobs: documentation: From 47af4a3b2e04d8417501ffb182f318bfaa2098a8 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 13:49:22 +0100 Subject: [PATCH 14/44] Update release.yaml --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8ea68f824..e629bdbbd 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -22,7 +22,7 @@ jobs: packages: latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended version: 1.0 - name: Build PDF - run: make -C docs/ latexpdf + run: pdm run make -C docs/ latexpdf - uses: actions/upload-artifact@v4 with: name: documentation From 9bb2248bc02bf6a57f903219988a2c5fc36eb4d8 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 13:55:41 +0100 Subject: [PATCH 15/44] Update release.yaml --- .github/workflows/release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index e629bdbbd..2625faa78 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -17,10 +17,10 @@ jobs: cache: true - name: Install requirements run: pdm sync -dG doc - - uses: awalsh128/cache-apt-pkgs-action@latest + - name: Install TeX Live + uses: zauguin/install-texlive@v3 with: packages: latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended - version: 1.0 - name: Build PDF run: pdm run make -C docs/ latexpdf - uses: actions/upload-artifact@v4 From 87515d86c4c23ef5a3469467a88021fcf8a64e24 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 13:57:38 +0100 Subject: [PATCH 16/44] Update release.yaml --- .github/workflows/release.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2625faa78..006001877 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -17,10 +17,11 @@ jobs: cache: true - name: Install requirements run: pdm sync -dG doc - - name: Install TeX Live - uses: zauguin/install-texlive@v3 + - uses: awalsh128/cache-apt-pkgs-action@latest with: packages: latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended + version: 1.0 + execute_install_scripts: true - name: Build PDF run: pdm run make -C docs/ latexpdf - uses: actions/upload-artifact@v4 From 4c52c373209d02323b9a4724e582040bba8ed6b9 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 14:00:51 +0100 Subject: [PATCH 17/44] work on github actions --- .github/workflows/documentation.yaml | 1 + .github/workflows/release.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/documentation.yaml b/.github/workflows/documentation.yaml index 45889c461..8c8320c2e 100644 --- a/.github/workflows/documentation.yaml +++ b/.github/workflows/documentation.yaml @@ -22,6 +22,7 @@ jobs: uses: pdm-project/setup-pdm@v4 with: cache: true + python-version-file: pyproject.toml - name: Install requirements run: pdm sync -dG doc - name: Sphinx build diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 006001877..96fe3bbce 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -15,6 +15,7 @@ jobs: uses: pdm-project/setup-pdm@v4 with: cache: true + python-version-file: pyproject.toml - name: Install requirements run: pdm sync -dG doc - uses: awalsh128/cache-apt-pkgs-action@latest From 384aba9746802ad3523043f2c901c5ca35bde087 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 14:04:37 +0100 Subject: [PATCH 18/44] Update release.yaml --- .github/workflows/release.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 96fe3bbce..ca5d56485 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -18,13 +18,10 @@ jobs: python-version-file: pyproject.toml - name: Install requirements run: pdm sync -dG doc - - uses: awalsh128/cache-apt-pkgs-action@latest + - uses: xu-cheng/texlive-action@v2 with: - packages: latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended - version: 1.0 - execute_install_scripts: true - - name: Build PDF - run: pdm run make -C docs/ latexpdf + scheme: full + run: pdm run make -C docs/ latexpdf - uses: actions/upload-artifact@v4 with: name: documentation From 9b6f1f6eff4fcbbd52d46b50a401507ae14721f6 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 14:09:31 +0100 Subject: [PATCH 19/44] Update release.yaml --- .github/workflows/release.yaml | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ca5d56485..0ab0fffd0 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -11,17 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up PDM - uses: pdm-project/setup-pdm@v4 + - uses: ammaraskar/sphinx-action@master with: - cache: true - python-version-file: pyproject.toml - - name: Install requirements - run: pdm sync -dG doc - - uses: xu-cheng/texlive-action@v2 - with: - scheme: full - run: pdm run make -C docs/ latexpdf + docs-folder: "docs/" + pre-build-command: "apt install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" + build-command: "make latexpdf" - uses: actions/upload-artifact@v4 with: name: documentation From 5653f0d89e1fc665b16ac4073c4686b59d8382e9 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 14:12:19 +0100 Subject: [PATCH 20/44] Update release.yaml --- .github/workflows/release.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0ab0fffd0..0c86d9435 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -11,11 +11,18 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: Set up PDM + uses: pdm-project/setup-pdm@v4 + with: + cache: true + python-version-file: pyproject.toml + - name: Install requirements + run: pdm sync -dG doc - uses: ammaraskar/sphinx-action@master with: docs-folder: "docs/" - pre-build-command: "apt install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" - build-command: "make latexpdf" + pre-build-command: "apt update -y && apt install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" + build-command: "pdm run make latexpdf" - uses: actions/upload-artifact@v4 with: name: documentation From 5c4a04334e4c81cc3dd0e83d62ba0a2b87450b69 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 14:13:44 +0100 Subject: [PATCH 21/44] Update release.yaml --- .github/workflows/release.yaml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0c86d9435..400aae0ee 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -11,18 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up PDM - uses: pdm-project/setup-pdm@v4 - with: - cache: true - python-version-file: pyproject.toml - - name: Install requirements - run: pdm sync -dG doc - uses: ammaraskar/sphinx-action@master with: docs-folder: "docs/" pre-build-command: "apt update -y && apt install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" - build-command: "pdm run make latexpdf" + build-command: "make latexpdf" - uses: actions/upload-artifact@v4 with: name: documentation From 251f0602fb0fe322fdc15ffd578a0e4e6f6f6f43 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 14:17:15 +0100 Subject: [PATCH 22/44] Update release.yaml --- .github/workflows/release.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 400aae0ee..38dcee23a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -11,6 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.10 + cache: 'pip' + - run: pip install . - uses: ammaraskar/sphinx-action@master with: docs-folder: "docs/" From 8d101eabbd145d68645e7ba598a4c2f5da20677c Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 14:18:27 +0100 Subject: [PATCH 23/44] Update release.yaml --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 38dcee23a..7390097be 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: 3.10 + python-version: "3.10" cache: 'pip' - run: pip install . - uses: ammaraskar/sphinx-action@master From 0b203af82230d6920cce2811d64b9d80c0c582d3 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 15:17:13 +0100 Subject: [PATCH 24/44] attempt to fix PDF build --- .github/workflows/release.yaml | 9 ++------- docs/source/conf.py | 8 +++++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 7390097be..0695eb99b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -11,16 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: "3.10" - cache: 'pip' - - run: pip install . - uses: ammaraskar/sphinx-action@master with: - docs-folder: "docs/" - pre-build-command: "apt update -y && apt install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" + pre-build-command: "apt-get update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" build-command: "make latexpdf" + docs-folder: "docs" - uses: actions/upload-artifact@v4 with: name: documentation diff --git a/docs/source/conf.py b/docs/source/conf.py index 5d7c17e5b..d973438e2 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,6 +1,12 @@ from datetime import date -from iblrig import __version__ +try: + from iblrig import __version__ +except ModuleNotFoundError: + import sys + from pathlib import Path + sys.path.append(str(Path(__file__).parents[1].resolve())) + from iblrig import __version__ project = 'iblrig' copyright = f'2018 – {date.today().year} International Brain Laboratory' From 9906730185a0df856c0d0dafa3f2a3db37240322 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 15:18:56 +0100 Subject: [PATCH 25/44] Update conf.py --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index d973438e2..d7d9d139a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -5,7 +5,7 @@ except ModuleNotFoundError: import sys from pathlib import Path - sys.path.append(str(Path(__file__).parents[1].resolve())) + sys.path.append(str(Path(__file__).parents[1].joinpath('iblrig').resolve())) from iblrig import __version__ project = 'iblrig' From 961773142c25e72ffd905866d030771cf850c01b Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 15:25:16 +0100 Subject: [PATCH 26/44] attempt to fix PDF build #2 --- .github/workflows/release.yaml | 2 +- docs/source/conf.py | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0695eb99b..d50de6b8e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v4 - uses: ammaraskar/sphinx-action@master with: - pre-build-command: "apt-get update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" + pre-build-command: "apt-get update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended && pip install -e ." build-command: "make latexpdf" docs-folder: "docs" - uses: actions/upload-artifact@v4 diff --git a/docs/source/conf.py b/docs/source/conf.py index d7d9d139a..40bbd027d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,12 +1,7 @@ from datetime import date -try: - from iblrig import __version__ -except ModuleNotFoundError: - import sys - from pathlib import Path - sys.path.append(str(Path(__file__).parents[1].joinpath('iblrig').resolve())) - from iblrig import __version__ +from iblrig import __version__ + project = 'iblrig' copyright = f'2018 – {date.today().year} International Brain Laboratory' From c466d547946402be126c8418a405be990e5e5846 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Thu, 22 Aug 2024 15:33:02 +0100 Subject: [PATCH 27/44] attempt to fix PDF build #3 --- .github/workflows/release.yaml | 2 +- docs/source/conf.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d50de6b8e..0695eb99b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v4 - uses: ammaraskar/sphinx-action@master with: - pre-build-command: "apt-get update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended && pip install -e ." + pre-build-command: "apt-get update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" build-command: "make latexpdf" docs-folder: "docs" - uses: actions/upload-artifact@v4 diff --git a/docs/source/conf.py b/docs/source/conf.py index 40bbd027d..d213d627a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,7 +1,13 @@ from datetime import date -from iblrig import __version__ - +try: + from iblrig import __version__ +except ModuleNotFoundError: + import sys + from pathlib import Path + _BASE_DIR = Path(__file__).resolve().parents[2] + sys.path.append(str(_BASE_DIR)) + from iblrig import __version__ project = 'iblrig' copyright = f'2018 – {date.today().year} International Brain Laboratory' From 2cde7506e27db64ae7ba2864c5de6593690ec3e4 Mon Sep 17 00:00:00 2001 From: Florian Rau Date: Fri, 23 Aug 2024 08:35:36 +0100 Subject: [PATCH 28/44] support for sphinx_simplepdf --- docs/source/conf.py | 26 +- docs/source/index.rst | 11 +- docs/source/installation.rst | 6 +- docs/source/reference_developer_guide.rst | 58 +++-- pdm.lock | 289 ++++++++++++++++++++-- pyproject.toml | 2 + 6 files changed, 327 insertions(+), 65 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index d213d627a..22a342321 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,13 +1,7 @@ from datetime import date -try: - from iblrig import __version__ -except ModuleNotFoundError: - import sys - from pathlib import Path - _BASE_DIR = Path(__file__).resolve().parents[2] - sys.path.append(str(_BASE_DIR)) - from iblrig import __version__ +from iblrig import __version__ +from iblrig.constants import BASE_PATH project = 'iblrig' copyright = f'2018 – {date.today().year} International Brain Laboratory' @@ -18,7 +12,7 @@ # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -extensions = ['sphinx_lesson', 'sphinx.ext.autosectionlabel'] +extensions = ['sphinx_lesson', 'sphinx.ext.autosectionlabel', 'sphinx_simplepdf'] autosectionlabel_prefix_document = True source_suffix = ['.rst', '.md'] @@ -31,3 +25,17 @@ html_theme = 'sphinx_rtd_theme' html_static_path = ['_static'] + + +simplepdf_vars = { + 'primary': '#FA2323', + 'secondary': '#379683', + 'cover': 'white', + 'cover-bg': 'linear-gradient(180deg, rgb(0, 81, 142) 0%, rgb(0, 158, 214) 50%, rgb(201, 53, 154) 100%)', +} +simplepdf_file_name = f'iblrig_{__version__}_reference.pdf' +simplepdf_weasyprint_flags = ['-j70', '-D150', '--hinting'] +html_context = { + 'docs_scope': 'external', + 'cover_meta_data': 'International Brain Laboratory', +} diff --git a/docs/source/index.rst b/docs/source/index.rst index 6156d7e78..c043419f9 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,15 +1,10 @@ -.. only:: html +.. if-builder:: html .. include:: ../../README.md :parser: myst_parser.sphinx_ -.. only:: latex - - Welcome to IBLRIG - ================= - .. toctree:: - :caption: Contents: + :maxdepth: 3 :hidden: installation @@ -19,7 +14,7 @@ reference_developer_guide faq -.. only:: html +.. if-builder:: html .. toctree:: :hidden: diff --git a/docs/source/installation.rst b/docs/source/installation.rst index acb8be90d..efba77d19 100644 --- a/docs/source/installation.rst +++ b/docs/source/installation.rst @@ -49,8 +49,8 @@ Now, run the following command at the prompt of Windows PowerShell: and usability. -Installing MS Visual C++ Redistributable ----------------------------------------- +Installing Visual C++ Redistributable +------------------------------------- With the Administrator PowerShell still open, run the following commands: @@ -67,7 +67,7 @@ With the Administrator PowerShell still open, run the following commands: .. admonition:: Background :class: seealso - These commands will create a temporary directory, download and silently install the Visual C++ Redistributable package for + These commands will create a temporary directory, download and install the Visual C++ Redistributable package for 64-bit Windows systems. The installer is retrieved from a Microsoft server and executed with parameters to ensure a seamless and unobtrusive installation process. diff --git a/docs/source/reference_developer_guide.rst b/docs/source/reference_developer_guide.rst index 0d6667cec..a5a6e24db 100644 --- a/docs/source/reference_developer_guide.rst +++ b/docs/source/reference_developer_guide.rst @@ -5,7 +5,7 @@ Developer Guide Versioning Scheme ----------------- -IBLRIG v8 uses `Semantic Versioning 2.0.0 `_. +IBLRIG v8 uses `Semantic Versioning `_. Its version string (currently "|version|") is a combination of three fields, separated by dots: .. centered:: ``MAJOR`` . ``MINOR`` . ``PATCH`` @@ -32,18 +32,21 @@ Here, * ``post3`` indicates the third unversioned commit after the latest versioned release, and * ``dirty`` indicates the presence of uncommited changes in your local repository of IBLRIG. -Both of these fields are inferred by means of git describe and do not require manual interaction from the developer. +Both of these fields are automatically inferred (by means of ``git describe``) and do not require manual interaction from the +developer. -PDM ---- +Package Management and Development Workflows with PDM +----------------------------------------------------- We use `PDM `_ to manage dependencies of IBLRIG. -See `PDM's documentation ` for help with installing PDM. +PDM can also be used to run various commands with relevance to the development process without having to activate a virtual +environment first. +Please refer to `PDM's documentation `_ for help with installing PDM. Installing Developer Dependencies ---------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To install additional dependencies needed for working on IBLRIG's code-base, run: @@ -52,8 +55,8 @@ To install additional dependencies needed for working on IBLRIG's code-base, run pdm sync -d -Running Unit Tests Locally --------------------------- +Running Unit Tests +^^^^^^^^^^^^^^^^^^ To run unit tests locally, run: @@ -61,36 +64,30 @@ To run unit tests locally, run: pdm run pytest -This will also generate a coverage report which can be found in the ``htmlcov`` directory. +This will also generate a HTML based coverage report which can be found in the ``htmlcov`` directory. Linting & Formatting --------------------- - -To lint your code, run the: - -.. code-block:: console +^^^^^^^^^^^^^^^^^^^^ - pdm run ruff check +We use `Ruff `_ for linting and formatting our code-base in close accordance with `the Black code +style `_. -Adding the commandline flag ``--fix`` will automatically fix issues that are deemed safe to handle: +To lint your code, run: .. code-block:: console - pdm run ruff check --fix - -To *check* if your code conforms to the `Black code style `_, run: - -.. code-block:: console + pdm run ruff check - pdm run ruff format --check +Appending the flag ``--fix`` to the above command will automatically fix issues that are deemed safe to handle. -To reformat your code according to the `Black code style `_, run: +To reformat your code according to the `Black code style `_ run: .. code-block:: console pdm run ruff format +Appending the flag ``--check`` to the above command will check your code for formatting issues without applying any changes. Refer to `Ruff Formater's documentation `_ for further details. @@ -115,18 +112,29 @@ Release Checklist Building the documentation -------------------------- +To build the documentation, run: + .. code-block:: console pdm run sphinx-autobuild ./docs/source ./docs/build +You can also export the documentation to a PDF file: + +.. code-block:: console + + pdm run make -C docs/ simplepdf + +Find the exported PDF file in ``docs/build/simplepdf``. + Contribute to the documentation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + To write the documentation: * Write the documentation in the ``iblrig/docs/source`` folder * If you are writing in a new file, add it to the ``index.rst`` so it appears in the table of content -* Push all your changes to the ``iblrigv8dev`` branch ; if this branch does not exist, create it first +* Push all your changes to the ``iblrigv8dev`` branch; if this branch does not exist, create it first To release the documentation onto the `website `_: diff --git a/pdm.lock b/pdm.lock index 95d257af3..a5b08782c 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default", "ci", "dev", "doc", "project-extraction", "test", "typing"] strategy = ["inherit_metadata"] lock_version = "4.5.0" -content_hash = "sha256:5997e4ffdd76310675bcace841dbb38af89e7dc8da116600cabe1f5bf79e18e6" +content_hash = "sha256:02c08779c288dce1bc517fc41e2c3d385fd24fc15a0e2fa491f87e5f94863e0b" [[metadata.targets]] requires_python = "==3.10.*" @@ -78,7 +78,7 @@ files = [ name = "asttokens" version = "2.4.1" summary = "Annotate AST trees with source code positions" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] dependencies = [ "six>=1.12.0", "typing; python_version < \"3.5\"", @@ -116,6 +116,20 @@ files = [ {file = "babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316"}, ] +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +requires_python = ">=3.6.0" +summary = "Screen-scraping library" +groups = ["dev", "doc"] +dependencies = [ + "soupsieve>1.2", +] +files = [ + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, +] + [[package]] name = "boto3" version = "1.34.162" @@ -149,6 +163,53 @@ files = [ {file = "botocore-1.34.162.tar.gz", hash = "sha256:adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3"}, ] +[[package]] +name = "brotli" +version = "1.1.0" +summary = "Python bindings for the Brotli compression library" +groups = ["dev", "doc"] +marker = "platform_python_implementation == \"CPython\"" +files = [ + {file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752"}, + {file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8fd5270e906eef71d4a8d19b7c6a43760c6abcfcc10c9101d14eb2357418de9"}, + {file = "Brotli-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ae56aca0402a0f9a3431cddda62ad71666ca9d4dc3a10a142b9dce2e3c0cda3"}, + {file = "Brotli-1.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43ce1b9935bfa1ede40028054d7f48b5469cd02733a365eec8a329ffd342915d"}, + {file = "Brotli-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7c4855522edb2e6ae7fdb58e07c3ba9111e7621a8956f481c68d5d979c93032e"}, + {file = "Brotli-1.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:38025d9f30cf4634f8309c6874ef871b841eb3c347e90b0851f63d1ded5212da"}, + {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e6a904cb26bfefc2f0a6f240bdf5233be78cd2488900a2f846f3c3ac8489ab80"}, + {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a37b8f0391212d29b3a91a799c8e4a2855e0576911cdfb2515487e30e322253d"}, + {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e84799f09591700a4154154cab9787452925578841a94321d5ee8fb9a9a328f0"}, + {file = "Brotli-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f66b5337fa213f1da0d9000bc8dc0cb5b896b726eefd9c6046f699b169c41b9e"}, + {file = "Brotli-1.1.0-cp310-cp310-win32.whl", hash = "sha256:be36e3d172dc816333f33520154d708a2657ea63762ec16b62ece02ab5e4daf2"}, + {file = "Brotli-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:0c6244521dda65ea562d5a69b9a26120769b7a9fb3db2fe9545935ed6735b128"}, + {file = "Brotli-1.1.0.tar.gz", hash = "sha256:81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724"}, +] + +[[package]] +name = "brotlicffi" +version = "1.1.0.0" +requires_python = ">=3.7" +summary = "Python CFFI bindings to the Brotli library" +groups = ["dev", "doc"] +marker = "platform_python_implementation != \"CPython\"" +dependencies = [ + "cffi>=1.0.0", +] +files = [ + {file = "brotlicffi-1.1.0.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9b7ae6bd1a3f0df532b6d67ff674099a96d22bc0948955cb338488c31bfb8851"}, + {file = "brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19ffc919fa4fc6ace69286e0a23b3789b4219058313cf9b45625016bf7ff996b"}, + {file = "brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9feb210d932ffe7798ee62e6145d3a757eb6233aa9a4e7db78dd3690d7755814"}, + {file = "brotlicffi-1.1.0.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84763dbdef5dd5c24b75597a77e1b30c66604725707565188ba54bab4f114820"}, + {file = "brotlicffi-1.1.0.0-cp37-abi3-win32.whl", hash = "sha256:1b12b50e07c3911e1efa3a8971543e7648100713d4e0971b13631cce22c587eb"}, + {file = "brotlicffi-1.1.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:994a4f0681bb6c6c3b0925530a1926b7a189d878e6e5e38fae8efa47c5d9c613"}, + {file = "brotlicffi-1.1.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2e4aeb0bd2540cb91b069dbdd54d458da8c4334ceaf2d25df2f4af576d6766ca"}, + {file = "brotlicffi-1.1.0.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b7b0033b0d37bb33009fb2fef73310e432e76f688af76c156b3594389d81391"}, + {file = "brotlicffi-1.1.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54a07bb2374a1eba8ebb52b6fafffa2afd3c4df85ddd38fcc0511f2bb387c2a8"}, + {file = "brotlicffi-1.1.0.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7901a7dc4b88f1c1475de59ae9be59799db1007b7d059817948d8e4f12e24e35"}, + {file = "brotlicffi-1.1.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce01c7316aebc7fce59da734286148b1d1b9455f89cf2c8a4dfce7d41db55c2d"}, + {file = "brotlicffi-1.1.0.0.tar.gz", hash = "sha256:b77827a689905143f87915310b93b273ab17888fd43ef350d4832c4a71083c13"}, +] + [[package]] name = "certifi" version = "2024.7.4" @@ -402,6 +463,21 @@ files = [ {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, ] +[[package]] +name = "cssselect2" +version = "0.7.0" +requires_python = ">=3.7" +summary = "CSS selectors for Python ElementTree" +groups = ["dev", "doc"] +dependencies = [ + "tinycss2", + "webencodings", +] +files = [ + {file = "cssselect2-0.7.0-py3-none-any.whl", hash = "sha256:fd23a65bfd444595913f02fc71f6b286c29261e354c41d722ca7a261a49b5969"}, + {file = "cssselect2-0.7.0.tar.gz", hash = "sha256:1ccd984dab89fc68955043aca4e1b03e0cf29cad9880f6e28e3ba7a74b14aa5a"}, +] + [[package]] name = "cycler" version = "0.12.1" @@ -468,7 +544,7 @@ name = "decorator" version = "5.1.1" requires_python = ">=3.5" summary = "Decorators for Humans" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] files = [ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, @@ -491,7 +567,6 @@ version = "1.2.2" requires_python = ">=3.7" summary = "Backport of PEP 654 (exception groups)" groups = ["default", "ci", "dev", "doc", "test"] -marker = "python_version < \"3.11\"" files = [ {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, @@ -502,7 +577,7 @@ name = "executing" version = "2.0.1" requires_python = ">=3.5" summary = "Get the currently executing AST node of a frame, and other information" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] files = [ {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, @@ -539,7 +614,33 @@ name = "fonttools" version = "4.53.1" requires_python = ">=3.8" summary = "Tools to manipulate font files" -groups = ["default"] +groups = ["default", "dev", "doc"] +files = [ + {file = "fonttools-4.53.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0679a30b59d74b6242909945429dbddb08496935b82f91ea9bf6ad240ec23397"}, + {file = "fonttools-4.53.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8bf06b94694251861ba7fdeea15c8ec0967f84c3d4143ae9daf42bbc7717fe3"}, + {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b96cd370a61f4d083c9c0053bf634279b094308d52fdc2dd9a22d8372fdd590d"}, + {file = "fonttools-4.53.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1c7c5aa18dd3b17995898b4a9b5929d69ef6ae2af5b96d585ff4005033d82f0"}, + {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e013aae589c1c12505da64a7d8d023e584987e51e62006e1bb30d72f26522c41"}, + {file = "fonttools-4.53.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9efd176f874cb6402e607e4cc9b4a9cd584d82fc34a4b0c811970b32ba62501f"}, + {file = "fonttools-4.53.1-cp310-cp310-win32.whl", hash = "sha256:c8696544c964500aa9439efb6761947393b70b17ef4e82d73277413f291260a4"}, + {file = "fonttools-4.53.1-cp310-cp310-win_amd64.whl", hash = "sha256:8959a59de5af6d2bec27489e98ef25a397cfa1774b375d5787509c06659b3671"}, + {file = "fonttools-4.53.1-py3-none-any.whl", hash = "sha256:f1f8758a2ad110bd6432203a344269f445a2907dc24ef6bccfd0ac4e14e0d71d"}, + {file = "fonttools-4.53.1.tar.gz", hash = "sha256:e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4"}, +] + +[[package]] +name = "fonttools" +version = "4.53.1" +extras = ["woff"] +requires_python = ">=3.8" +summary = "Tools to manipulate font files" +groups = ["dev", "doc"] +dependencies = [ + "brotli>=1.0.1; platform_python_implementation == \"CPython\"", + "brotlicffi>=0.8.0; platform_python_implementation != \"CPython\"", + "fonttools==4.53.1", + "zopfli>=0.1.4", +] files = [ {file = "fonttools-4.53.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0679a30b59d74b6242909945429dbddb08496935b82f91ea9bf6ad240ec23397"}, {file = "fonttools-4.53.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8bf06b94694251861ba7fdeea15c8ec0967f84c3d4143ae9daf42bbc7717fe3"}, @@ -599,7 +700,7 @@ version = "3.0.3" requires_python = ">=3.7" summary = "Lightweight in-process concurrent programming" groups = ["dev", "doc"] -marker = "(platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\") and python_version < \"3.13\"" +marker = "platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\"" files = [ {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, @@ -627,6 +728,21 @@ files = [ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, ] +[[package]] +name = "html5lib" +version = "1.1" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +summary = "HTML parser based on the WHATWG HTML specification" +groups = ["dev", "doc"] +dependencies = [ + "six>=1.9", + "webencodings", +] +files = [ + {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"}, + {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"}, +] + [[package]] name = "ibl-neuropixel" version = "1.2.0" @@ -866,7 +982,7 @@ name = "ipython" version = "8.26.0" requires_python = ">=3.10" summary = "IPython: Productive Interactive Computing" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] dependencies = [ "colorama; sys_platform == \"win32\"", "decorator", @@ -890,7 +1006,7 @@ name = "jedi" version = "0.19.1" requires_python = ">=3.6" summary = "An autocompletion tool for Python that can be used for text editors." -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] dependencies = [ "parso<0.9.0,>=0.8.3", ] @@ -1068,6 +1184,21 @@ files = [ {file = "lazy_loader-0.4.tar.gz", hash = "sha256:47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1"}, ] +[[package]] +name = "libsass" +version = "0.23.0" +requires_python = ">=3.8" +summary = "Sass for Python: A straightforward binding of libsass for Python." +groups = ["dev", "doc"] +files = [ + {file = "libsass-0.23.0-cp38-abi3-macosx_11_0_x86_64.whl", hash = "sha256:34cae047cbbfc4ffa832a61cbb110f3c95f5471c6170c842d3fed161e40814dc"}, + {file = "libsass-0.23.0-cp38-abi3-macosx_14_0_arm64.whl", hash = "sha256:ea97d1b45cdc2fc3590cb9d7b60f1d8915d3ce17a98c1f2d4dd47ee0d9c68ce6"}, + {file = "libsass-0.23.0-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:4a218406d605f325d234e4678bd57126a66a88841cb95bee2caeafdc6f138306"}, + {file = "libsass-0.23.0-cp38-abi3-win32.whl", hash = "sha256:31e86d92a5c7a551df844b72d83fc2b5e50abc6fbbb31e296f7bebd6489ed1b4"}, + {file = "libsass-0.23.0-cp38-abi3-win_amd64.whl", hash = "sha256:a2ec85d819f353cbe807432d7275d653710d12b08ec7ef61c124a580a8352f3c"}, + {file = "libsass-0.23.0.tar.gz", hash = "sha256:6f209955ede26684e76912caf329f4ccb57e4a043fd77fe0e7348dd9574f1880"}, +] + [[package]] name = "llvmlite" version = "0.43.0" @@ -1161,7 +1292,7 @@ name = "matplotlib-inline" version = "0.1.7" requires_python = ">=3.8" summary = "Inline Matplotlib backend for Jupyter" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] dependencies = [ "traitlets", ] @@ -1502,7 +1633,7 @@ name = "parso" version = "0.8.4" requires_python = ">=3.6" summary = "A Python Parser" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] files = [ {file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"}, {file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"}, @@ -1541,7 +1672,7 @@ files = [ name = "pexpect" version = "4.9.0" summary = "Pexpect allows easy control of interactive console applications." -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] marker = "sys_platform != \"win32\" and sys_platform != \"emscripten\"" dependencies = [ "ptyprocess>=0.5", @@ -1576,7 +1707,7 @@ name = "pillow" version = "10.4.0" requires_python = ">=3.8" summary = "Python Imaging Library (Fork)" -groups = ["default"] +groups = ["default", "dev", "doc"] files = [ {file = "pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e"}, {file = "pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d"}, @@ -1635,7 +1766,7 @@ name = "prompt-toolkit" version = "3.0.47" requires_python = ">=3.7.0" summary = "Library for building powerful interactive command lines in Python" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] dependencies = [ "wcwidth", ] @@ -1680,7 +1811,7 @@ files = [ name = "ptyprocess" version = "0.7.0" summary = "Run a subprocess in a pseudo terminal" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] marker = "sys_platform != \"win32\" and sys_platform != \"emscripten\"" files = [ {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, @@ -1691,7 +1822,7 @@ files = [ name = "pure-eval" version = "0.2.3" summary = "Safely evaluate AST nodes without side effects" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] files = [ {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"}, {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"}, @@ -1789,6 +1920,17 @@ files = [ {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, ] +[[package]] +name = "pydyf" +version = "0.11.0" +requires_python = ">=3.8" +summary = "A low-level PDF generator." +groups = ["dev", "doc"] +files = [ + {file = "pydyf-0.11.0-py3-none-any.whl", hash = "sha256:0aaf9e2ebbe786ec7a78ec3fbffa4cdcecde53fd6f563221d53c6bc1328848a3"}, + {file = "pydyf-0.11.0.tar.gz", hash = "sha256:394dddf619cca9d0c55715e3c55ea121a9bf9cbc780cdc1201a2427917b86b64"}, +] + [[package]] name = "pyflakes" version = "3.2.0" @@ -1805,7 +1947,7 @@ name = "pygments" version = "2.18.0" requires_python = ">=3.8" summary = "Pygments is a syntax highlighting package written in Python." -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] files = [ {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, @@ -1865,6 +2007,17 @@ files = [ {file = "pyparsing-3.1.2.tar.gz", hash = "sha256:a1bac0ce561155ecc3ed78ca94d3c9378656ad4c94c1270de543f621420f94ad"}, ] +[[package]] +name = "pyphen" +version = "0.16.0" +requires_python = ">=3.8" +summary = "Pure Python module to hyphenate text" +groups = ["dev", "doc"] +files = [ + {file = "pyphen-0.16.0-py3-none-any.whl", hash = "sha256:b4a4c6d7d5654b698b5fc68123148bb799b3debe0175d1d5dc3edfe93066fc4c"}, + {file = "pyphen-0.16.0.tar.gz", hash = "sha256:2c006b3ddf072c9571ab97606d9ab3c26a92eaced4c0d59fd1d26988f308f413"}, +] + [[package]] name = "pyqt5" version = "5.15.10" @@ -2400,6 +2553,17 @@ files = [ {file = "sounddevice-0.5.0.tar.gz", hash = "sha256:0de95277654b3d403d9c15ded3c6cedf307e9b27cc9ce7bd995a2891d0c955af"}, ] +[[package]] +name = "soupsieve" +version = "2.6" +requires_python = ">=3.8" +summary = "A modern CSS selector implementation for Beautiful Soup." +groups = ["dev", "doc"] +files = [ + {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"}, + {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"}, +] + [[package]] name = "sparse" version = "0.15.4" @@ -2541,6 +2705,22 @@ files = [ {file = "sphinx_rtd_theme_ext_color_contrast-0.3.2.tar.gz", hash = "sha256:464a579ac030821a328ef485d712f9b0a4b57dcb8e3aab44515dedc1944662e3"}, ] +[[package]] +name = "sphinx-simplepdf" +version = "1.6.0" +summary = "An easy to use PDF Builder for Sphinx with a modern PDF-Theme." +groups = ["dev", "doc"] +dependencies = [ + "beautifulsoup4", + "libsass", + "sphinx", + "weasyprint", +] +files = [ + {file = "sphinx-simplepdf-1.6.0.tar.gz", hash = "sha256:bc8412c6b029886ae2e9241612dfc59c4cd35fa8cf2e7eb987c14126d422a939"}, + {file = "sphinx_simplepdf-1.6.0-py3-none-any.whl", hash = "sha256:466a2b7e2000997ebf4dae62d88cd37b27d38c436ca23e81caf939e1d0e611f1"}, +] + [[package]] name = "sphinx-tabs" version = "3.4.5" @@ -2681,7 +2861,7 @@ files = [ name = "stack-data" version = "0.6.3" summary = "Extract data from python stack frames and tracebacks for informative displays" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] dependencies = [ "asttokens>=2.1.0", "executing>=1.2.0", @@ -2766,6 +2946,20 @@ files = [ {file = "tifffile-2024.8.10.tar.gz", hash = "sha256:fdc12124f1478a07b1524641dc6b50cf6bde0483011a63fd2a773094090c3dcf"}, ] +[[package]] +name = "tinycss2" +version = "1.3.0" +requires_python = ">=3.8" +summary = "A tiny CSS parser" +groups = ["dev", "doc"] +dependencies = [ + "webencodings>=0.4", +] +files = [ + {file = "tinycss2-1.3.0-py3-none-any.whl", hash = "sha256:54a8dbdffb334d536851be0226030e9505965bb2f30f21a4a82c55fb2a80fae7"}, + {file = "tinycss2-1.3.0.tar.gz", hash = "sha256:152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d"}, +] + [[package]] name = "tomli" version = "2.0.1" @@ -2827,7 +3021,7 @@ name = "traitlets" version = "5.14.3" requires_python = ">=3.8" summary = "Traitlets Python configuration system" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] files = [ {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, @@ -2963,7 +3157,7 @@ files = [ name = "wcwidth" version = "0.2.13" summary = "Measures the displayed width of unicode strings in a terminal" -groups = ["dev", "doc"] +groups = ["default", "dev", "doc"] dependencies = [ "backports-functools-lru-cache>=1.2.1; python_version < \"3.2\"", ] @@ -2972,6 +3166,37 @@ files = [ {file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"}, ] +[[package]] +name = "weasyprint" +version = "62.3" +requires_python = ">=3.9" +summary = "The Awesome Document Factory" +groups = ["dev", "doc"] +dependencies = [ + "Pillow>=9.1.0", + "Pyphen>=0.9.1", + "cffi>=0.6", + "cssselect2>=0.1", + "fonttools[woff]>=4.0.0", + "html5lib>=1.1", + "pydyf>=0.10.0", + "tinycss2>=1.3.0", +] +files = [ + {file = "weasyprint-62.3-py3-none-any.whl", hash = "sha256:d31048646ce15084e135b33e334a61f526aa68d2f679fcc109ed0e0f5edaed21"}, + {file = "weasyprint-62.3.tar.gz", hash = "sha256:8d8680d732f7fa0fcbc587692a5a5cb095c3525627066918d6e203cbf42b7fcd"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +summary = "Character encoding aliases for legacy web content" +groups = ["dev", "doc"] +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + [[package]] name = "websockets" version = "12.0" @@ -3020,3 +3245,27 @@ files = [ {file = "zipp-3.20.0-py3-none-any.whl", hash = "sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d"}, {file = "zipp-3.20.0.tar.gz", hash = "sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31"}, ] + +[[package]] +name = "zopfli" +version = "0.2.3" +requires_python = ">=3.8" +summary = "Zopfli module for python" +groups = ["dev", "doc"] +files = [ + {file = "zopfli-0.2.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:52438999888715a378fc6fe1477ab7813e9e9b58a27a38d2ad7be0e396b1ab2e"}, + {file = "zopfli-0.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6020a3533c6c7be09db9e59c2a8f3f894bf5d8e95cc01890d82114c923317c57"}, + {file = "zopfli-0.2.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:72349c78da402e6784bd9c5f4aff5cc7017bd969016ec07b656722f7f29fc975"}, + {file = "zopfli-0.2.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:711d4fde9cb99e1a9158978e9d1624a37cdd170ff057f6340059514fcf38e808"}, + {file = "zopfli-0.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae890df6e5f1e8fa0697cafd848826decce0ac53e54e5a018fd97775e3a354c0"}, + {file = "zopfli-0.2.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40b830244e6458ef982b4a5ebb0f228986d481408bae557a95eeece2c5ede4e6"}, + {file = "zopfli-0.2.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7bc89b71d1c4677f708cc162f40a4560f78f5f4c6aa6d884b423df7d38e8ba0b"}, + {file = "zopfli-0.2.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f07997453e7777e19ef0a2445cc1b90e1bb90c623dd77554325932dea6350fee"}, + {file = "zopfli-0.2.3-cp310-cp310-win32.whl", hash = "sha256:978395a4ce5cc46db29a36cdb80549b564dc7706237abaca5aac328dd5842f65"}, + {file = "zopfli-0.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:61a2fcc624e8b038d4fca84ba927dc3f31df53a7284692d46aa44d16fb3f47b2"}, + {file = "zopfli-0.2.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:09ad5f8d7e0fe1975ca6d9fd5ad61c74233ae277982d3bc8814b599bbeb92f44"}, + {file = "zopfli-0.2.3-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78022777139ac973286219e9e085d9496fb6c935502d93a52bd1bed01dfc2002"}, + {file = "zopfli-0.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13d151d5c83980f384439c87a5511853890182c05d93444f3cb05e5ceed37d82"}, + {file = "zopfli-0.2.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c1afe5ba0d957e462afbd3da116ac1a2a6d23e8a94436a95b692c5c324694a16"}, + {file = "zopfli-0.2.3.zip", hash = "sha256:dbc9841bedd736041eb5e6982cd92da93bee145745f5422f3795f6f258cdc6ef"}, +] diff --git a/pyproject.toml b/pyproject.toml index 89571dd79..4ec7a74f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,6 +30,7 @@ dependencies = [ # Everything else "annotated-types>=0.7.0", "graphviz>=0.20.3", + "ipython>=8.26.0", "matplotlib>=3.9.2", "numpy>=1.26.4", "packaging>=24.1", @@ -86,6 +87,7 @@ doc = [ "sphinx>=7.4.7", "sphinx-autobuild>=2024.4.16", "sphinx-lesson>=0.8.18", + "sphinx-simplepdf>=1.6.0", "myst-parser>=4.0.0", ] typing = [ From 3db037e809b3981e4ad78b2fff8a7af7262af162 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 09:00:42 +0100 Subject: [PATCH 29/44] Update release.yaml --- .github/workflows/release.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0695eb99b..7d7924f52 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -11,13 +11,17 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: ammaraskar/sphinx-action@master + - name: Set up PDM + uses: pdm-project/setup-pdm@v4 with: - pre-build-command: "apt-get update -y && apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended" - build-command: "make latexpdf" - docs-folder: "docs" + cache: true + python-version-file: pyproject.toml + - name: Install requirements + run: pdm sync -dG doc + - name: Sphinx build + run: pdm run make -C docs/ simplepdf - uses: actions/upload-artifact@v4 with: name: documentation - path: docs/build/latex/iblrig.pdf + path: docs/build/simplepdf/*.pdf retention-days: 1 From 0e2b9ecdcdfbc6581764699ac12ddd3a211e3224 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 09:20:09 +0100 Subject: [PATCH 30/44] Update release.yaml --- .github/workflows/release.yaml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 7d7924f52..1045ded27 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -7,7 +7,8 @@ on: # - '[0-9]+.[0-9]+.[0-9]+' jobs: - documentation: + pdf: + name: Build PDF runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -18,10 +19,23 @@ jobs: python-version-file: pyproject.toml - name: Install requirements run: pdm sync -dG doc - - name: Sphinx build + - name: Build PDF run: pdm run make -C docs/ simplepdf - - uses: actions/upload-artifact@v4 + - name: Upload artifact + uses: actions/upload-artifact@v4 with: name: documentation path: docs/build/simplepdf/*.pdf retention-days: 1 + + release: + name: Publish GitHub Release + steps: + - uses: actions/checkout@v4 + - name: Download artifact + uses: actions/download-artifact@v4 + with: + name: documentation + - uses: softprops/action-gh-release@v2 + with: + files: documentation/*.pdf \ No newline at end of file From a888fe7861d9db5e4e544aa42738748a9e93330b Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 09:21:02 +0100 Subject: [PATCH 31/44] Update release.yaml --- .github/workflows/release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1045ded27..ac3ca75b1 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -30,6 +30,7 @@ jobs: release: name: Publish GitHub Release + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Download artifact From 1fd98c0a57d0323354f5fc842543c86efa9f7541 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 09:22:04 +0100 Subject: [PATCH 32/44] Update release.yaml --- .github/workflows/release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ac3ca75b1..f97a0efd5 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -30,6 +30,7 @@ jobs: release: name: Publish GitHub Release + needs: pdf runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From eb66b011d572bd1b028fb2eefea739712dfbdc09 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 09:33:32 +0100 Subject: [PATCH 33/44] Update release.yaml --- .github/workflows/release.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f97a0efd5..4d0e20139 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,10 +1,11 @@ name: Release on: - workflow_dispatch: push: -# tags: -# - '[0-9]+.[0-9]+.[0-9]+' + branches: + - iblrigv8 + tags: + - '[0-9]+.[0-9]+.[0-9]+' jobs: pdf: From 7a97deefb72dff995ab6294e232186dd28a476c3 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 11:27:10 +0100 Subject: [PATCH 34/44] prepare release --- CHANGELOG.md | 6 ++++++ docs/source/conf.py | 6 +++--- iblrig/__init__.py | 2 +- iblrig/tools.py | 6 +++--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df785488a..6e1a1529e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========= +8.23.1 +------ +* feature: post hardware information to alyx +* generate PDF documentation +* remove dead code + 8.23.0 ------ * hardware validation: check for unexpected events on Bpod's digital input ports diff --git a/docs/source/conf.py b/docs/source/conf.py index 22a342321..4b87d1fc4 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,10 +28,10 @@ simplepdf_vars = { - 'primary': '#FA2323', - 'secondary': '#379683', + 'primary': '#004f8c', + 'secondary': '#004f8c', 'cover': 'white', - 'cover-bg': 'linear-gradient(180deg, rgb(0, 81, 142) 0%, rgb(0, 158, 214) 50%, rgb(201, 53, 154) 100%)', + 'cover-bg': 'linear-gradient(180deg, #004f8c 0%, #00a1d9 50%, #cc3399 100%)', } simplepdf_file_name = f'iblrig_{__version__}_reference.pdf' simplepdf_weasyprint_flags = ['-j70', '-D150', '--hinting'] diff --git a/iblrig/__init__.py b/iblrig/__init__.py index 4978b8721..45e724ad2 100644 --- a/iblrig/__init__.py +++ b/iblrig/__init__.py @@ -6,7 +6,7 @@ # 5) git tag the release in accordance to the version number below (after merge!) # >>> git tag 8.15.6 # >>> git push origin --tags -__version__ = '8.23.0' +__version__ = '8.23.1' from iblrig.version_management import get_detailed_version_string diff --git a/iblrig/tools.py b/iblrig/tools.py index cdfe1ed94..99ab066f4 100644 --- a/iblrig/tools.py +++ b/iblrig/tools.py @@ -398,9 +398,9 @@ def get_lab_location_dict(hardware_settings: HardwareSettings, iblrig_settings: machine['platform'] = platform.platform() machine['hostname'] = socket.gethostname() machine['fqdn'] = socket.getfqdn() - machine['ip_address'] = socket.gethostbyname(machine['hostname']) - machine['mac_address'] = get_mac() - machine['anydesk_id'] = get_anydesk_id(format_id=False, silent=True) + machine['ip'] = socket.gethostbyname(machine['hostname']) + machine['mac'] = get_mac() + machine['anydesk'] = get_anydesk_id(format_id=False, silent=True) lab_location['machine'] = machine git = dict() From 61e6f7d19214841733d2edc7939b7497b0354d05 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 11:53:04 +0100 Subject: [PATCH 35/44] further simplifications with regards to calling git --- iblrig/version_management.py | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/iblrig/version_management.py b/iblrig/version_management.py index a5d14caf2..96df0980f 100644 --- a/iblrig/version_management.py +++ b/iblrig/version_management.py @@ -209,7 +209,6 @@ def get_commit_hash(short: bool = True): return call_git(*args, on_error='log') -@static_vars(is_fetched_already=False) def get_remote_tags() -> None: """ Fetch remote Git tags if not already fetched. @@ -226,17 +225,11 @@ def get_remote_tags() -> None: ----- This method will only work with installations managed through Git. """ - if get_remote_tags.is_fetched_already or not internet_available(): + if not internet_available(): return - if not IS_GIT: - log.error('This installation of iblrig is not managed through git') if (branch := get_branch()) is None: return - try: - check_call(['git', 'fetch', 'origin', branch, '-t', '-q', '-f'], cwd=BASE_DIR, timeout=5) - except (SubprocessError, CalledProcessError): - return - get_remote_tags.is_fetched_already = True + call_git('fetch', 'origin', branch, '-t', '-q', '-f', on_error='log') @static_vars(changelog=None) @@ -272,7 +265,6 @@ def get_changelog() -> str: return get_changelog.changelog -@static_vars(remote_version=None) def get_remote_version() -> version.Version | None: """ Retrieve the remote version of iblrig from the Git repository. @@ -290,31 +282,11 @@ def get_remote_version() -> version.Version | None: ----- This method will only work with installations managed through Git. """ - if get_remote_version.remote_version is not None: - log.debug(f'Using cached remote version: {get_remote_version.remote_version}') - return get_remote_version.remote_version - - if not IS_GIT: - log.error('Cannot obtain remote version: This installation of iblrig is not managed through git') - return None - if not internet_available(): log.error('Cannot obtain remote version: Not connected to internet') return None - try: - log.debug('Obtaining remote version from github') - get_remote_tags() - references = check_output( - ['git', 'ls-remote', '-t', '-q', '--exit-code', '--refs', 'origin', 'tags', '*'], - cwd=BASE_DIR, - timeout=5, - encoding='UTF-8', - ) - - except (SubprocessError, CalledProcessError, FileNotFoundError): - log.error('Could not obtain remote version string') - return None + references = call_git('ls-remote', '-t', '-q', '--exit-code', '--refs', 'origin', 'tags', '*', on_error='log') try: log.debug('Parsing local version string') From 75246e0aa6470a918878dd81fd0969486d9bb37a Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 11:58:42 +0100 Subject: [PATCH 36/44] Update version_management.py --- iblrig/version_management.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/iblrig/version_management.py b/iblrig/version_management.py index 96df0980f..94a9c5832 100644 --- a/iblrig/version_management.py +++ b/iblrig/version_management.py @@ -1,6 +1,7 @@ import logging import re from collections.abc import Callable +from functools import cache from pathlib import Path from subprocess import STDOUT, CalledProcessError, SubprocessError, check_call, check_output from typing import Any, Literal @@ -10,7 +11,7 @@ from iblrig import __version__ from iblrig.constants import BASE_DIR, IS_GIT, IS_VENV -from iblrig.tools import cached_check_output, internet_available, static_vars +from iblrig.tools import cached_check_output, internet_available log = logging.getLogger(__name__) @@ -232,7 +233,7 @@ def get_remote_tags() -> None: call_git('fetch', 'origin', branch, '-t', '-q', '-f', on_error='log') -@static_vars(changelog=None) +@cache def get_changelog() -> str: """ Retrieve the changelog for the iblrig installation. @@ -252,8 +253,6 @@ def get_changelog() -> str: This method relies on the presence of a CHANGELOG.md file either in the repository or locally. """ - if get_changelog.changelog is not None: - return get_changelog.changelog try: changelog = requests.get( f'https://raw.githubusercontent.com/int-brain-lab/iblrig/{get_branch()}/CHANGELOG.md', allow_redirects=True @@ -261,8 +260,7 @@ def get_changelog() -> str: except requests.RequestException: with open(Path(BASE_DIR).joinpath('CHANGELOG.md')) as f: changelog = f.read() - get_changelog.changelog = changelog - return get_changelog.changelog + return changelog def get_remote_version() -> version.Version | None: From acf21f25ed78c386b60aaa9779ec0464162004ab Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 12:04:47 +0100 Subject: [PATCH 37/44] make get_changelog() more robust --- iblrig/version_management.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/iblrig/version_management.py b/iblrig/version_management.py index 94a9c5832..1003f95cd 100644 --- a/iblrig/version_management.py +++ b/iblrig/version_management.py @@ -254,10 +254,12 @@ def get_changelog() -> str: repository or locally. """ try: + if (branch := get_branch()) is None: + raise RuntimeError() changelog = requests.get( - f'https://raw.githubusercontent.com/int-brain-lab/iblrig/{get_branch()}/CHANGELOG.md', allow_redirects=True + f'https://raw.githubusercontent.com/int-brain-lab/iblrig/{branch}/CHANGELOG.md', allow_redirects=True ).text - except requests.RequestException: + except (requests.RequestException, RuntimeError): with open(Path(BASE_DIR).joinpath('CHANGELOG.md')) as f: changelog = f.read() return changelog From 222cebb8822cd7fd8bf0492b9ed48927d376de9e Mon Sep 17 00:00:00 2001 From: owinter Date: Fri, 23 Aug 2024 12:06:38 +0100 Subject: [PATCH 38/44] try and log state machine pybpod crashed state --- iblrig/base_choice_world.py | 39 +++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/iblrig/base_choice_world.py b/iblrig/base_choice_world.py index 12ebfc76b..8663b3585 100644 --- a/iblrig/base_choice_world.py +++ b/iblrig/base_choice_world.py @@ -676,21 +676,30 @@ def trial_completed(self, bpod_data): # get the trial outcome state_names = ['correct', 'error', 'no_go', 'omit_correct', 'omit_error', 'omit_no_go'] raw_outcome = {sn: ~np.isnan(bpod_data['States timestamps'].get(sn, [[np.NaN]])[0][0]) for sn in state_names} - outcome = next(k for k in raw_outcome if raw_outcome[k]) - # Update response buffer -1 for left, 0 for nogo, and 1 for rightward - position = self.trials_table.at[self.trial_num, 'position'] - if 'correct' in outcome: - self.trials_table.at[self.trial_num, 'trial_correct'] = True - self.session_info.NTRIALS_CORRECT += 1 - self.trials_table.at[self.trial_num, 'response_side'] = -np.sign(position) - elif 'error' in outcome: - self.trials_table.at[self.trial_num, 'response_side'] = np.sign(position) - elif 'no_go' in outcome: - self.trials_table.at[self.trial_num, 'response_side'] = 0 - super().trial_completed(bpod_data) - # here we throw potential errors after having written the trial to disk - assert np.sum(list(raw_outcome.values())) == 1 - assert position != 0, 'the position value should be either 35 or -35' + try: + outcome = next(k for k in raw_outcome if raw_outcome[k]) + # Update response buffer -1 for left, 0 for nogo, and 1 for rightward + position = self.trials_table.at[self.trial_num, 'position'] + if 'correct' in outcome: + self.trials_table.at[self.trial_num, 'trial_correct'] = True + self.session_info.NTRIALS_CORRECT += 1 + self.trials_table.at[self.trial_num, 'response_side'] = -np.sign(position) + elif 'error' in outcome: + self.trials_table.at[self.trial_num, 'response_side'] = np.sign(position) + elif 'no_go' in outcome: + self.trials_table.at[self.trial_num, 'response_side'] = 0 + super().trial_completed(bpod_data) + # here we throw potential errors after having written the trial to disk + assert np.sum(list(raw_outcome.values())) == 1 + assert position != 0, 'the position value should be either 35 or -35' + except StopIteration as e: + log.error(f'No outcome detected for trial {self.trial_num}. Bpod output:') + log.error(raw_outcome) + raise e + except AssertionError as e: + log.error(f'Error in trial {self.trial_num}: {e}. Bpod output:') + log.error(raw_outcome) + raise e class BiasedChoiceWorldSession(ActiveChoiceWorldSession): From 18aba4eecb2dca8b7c816540298222c210f788b8 Mon Sep 17 00:00:00 2001 From: Florian Rau Date: Fri, 23 Aug 2024 12:13:59 +0100 Subject: [PATCH 39/44] upload hardware information to Alyx --- iblrig/gui/wizard.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iblrig/gui/wizard.py b/iblrig/gui/wizard.py index 76ff8dab9..e5acabb2d 100644 --- a/iblrig/gui/wizard.py +++ b/iblrig/gui/wizard.py @@ -47,7 +47,7 @@ from iblrig.path_helper import load_pydantic_yaml from iblrig.pydantic_definitions import HardwareSettings, RigSettings from iblrig.raw_data_loaders import load_task_jsonable -from iblrig.tools import alyx_reachable, internet_available +from iblrig.tools import alyx_reachable, internet_available, get_lab_location_dict from iblrig.valve import Valve from iblrig.version_management import check_for_updates, get_changelog from iblutil.util import Bunch, setup_logger @@ -229,7 +229,7 @@ def login( # validate connection and some parameters now that we're connected try: - self.alyx.rest('locations', 'read', id=self.hardware_settings.RIG_NAME) + self.alyx.rest('locations', 'partial_update', id=self.hardware_settings.RIG_NAME, data=json.dumps({'json': get_lab_location_dict(self.hardware_settings, self.iblrig_settings)})) except HTTPError as ex: if ex.response.status_code not in (404, 400): # file not found; auth error # Likely Alyx is down or server-side issue From 6c60326b933059c77487b8d9a38e94dcd1692579 Mon Sep 17 00:00:00 2001 From: Florian Rau Date: Fri, 23 Aug 2024 12:16:03 +0100 Subject: [PATCH 40/44] ruff --- iblrig/gui/wizard.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/iblrig/gui/wizard.py b/iblrig/gui/wizard.py index e5acabb2d..cd8a0e563 100644 --- a/iblrig/gui/wizard.py +++ b/iblrig/gui/wizard.py @@ -47,7 +47,7 @@ from iblrig.path_helper import load_pydantic_yaml from iblrig.pydantic_definitions import HardwareSettings, RigSettings from iblrig.raw_data_loaders import load_task_jsonable -from iblrig.tools import alyx_reachable, internet_available, get_lab_location_dict +from iblrig.tools import alyx_reachable, get_lab_location_dict, internet_available from iblrig.valve import Valve from iblrig.version_management import check_for_updates, get_changelog from iblutil.util import Bunch, setup_logger @@ -229,7 +229,12 @@ def login( # validate connection and some parameters now that we're connected try: - self.alyx.rest('locations', 'partial_update', id=self.hardware_settings.RIG_NAME, data=json.dumps({'json': get_lab_location_dict(self.hardware_settings, self.iblrig_settings)})) + self.alyx.rest( + 'locations', + 'partial_update', + id=self.hardware_settings.RIG_NAME, + data=json.dumps({'json': get_lab_location_dict(self.hardware_settings, self.iblrig_settings)}), + ) except HTTPError as ex: if ex.response.status_code not in (404, 400): # file not found; auth error # Likely Alyx is down or server-side issue From b48ce36fab61c66fef69b64601d5047922b3ae7e Mon Sep 17 00:00:00 2001 From: Florian Rau Date: Fri, 23 Aug 2024 12:34:55 +0100 Subject: [PATCH 41/44] Update wizard.py --- iblrig/gui/wizard.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iblrig/gui/wizard.py b/iblrig/gui/wizard.py index cd8a0e563..395086136 100644 --- a/iblrig/gui/wizard.py +++ b/iblrig/gui/wizard.py @@ -233,7 +233,7 @@ def login( 'locations', 'partial_update', id=self.hardware_settings.RIG_NAME, - data=json.dumps({'json': get_lab_location_dict(self.hardware_settings, self.iblrig_settings)}), + data={'json': get_lab_location_dict(self.hardware_settings, self.iblrig_settings)}, ) except HTTPError as ex: if ex.response.status_code not in (404, 400): # file not found; auth error From 41cead2e63a80625648d01172e7a72886f32a351 Mon Sep 17 00:00:00 2001 From: Florian Rau Date: Fri, 23 Aug 2024 12:34:57 +0100 Subject: [PATCH 42/44] Update base_choice_world.py --- iblrig/base_choice_world.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/iblrig/base_choice_world.py b/iblrig/base_choice_world.py index 8663b3585..16808adc8 100644 --- a/iblrig/base_choice_world.py +++ b/iblrig/base_choice_world.py @@ -693,12 +693,14 @@ def trial_completed(self, bpod_data): assert np.sum(list(raw_outcome.values())) == 1 assert position != 0, 'the position value should be either 35 or -35' except StopIteration as e: - log.error(f'No outcome detected for trial {self.trial_num}. Bpod output:') - log.error(raw_outcome) + log.error(f'No outcome detected for trial {self.trial_num}.') + log.error(f'raw_outcome: {raw_outcome}') + log.error("State names: " + ", ".join(bpod_data['States timestamps'].keys())) raise e except AssertionError as e: - log.error(f'Error in trial {self.trial_num}: {e}. Bpod output:') - log.error(raw_outcome) + log.error(f'Assertion Error in trial {self.trial_num}.') + log.error(f'raw_outcome: {raw_outcome}') + log.error("State names: " + ", ".join(bpod_data['States timestamps'].keys())) raise e From 4d13517ea22f0d6ae7ed36ae7af57982f09e0d3b Mon Sep 17 00:00:00 2001 From: Florian Rau Date: Fri, 23 Aug 2024 12:35:25 +0100 Subject: [PATCH 43/44] Update base_choice_world.py --- iblrig/base_choice_world.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iblrig/base_choice_world.py b/iblrig/base_choice_world.py index 16808adc8..fbc772a26 100644 --- a/iblrig/base_choice_world.py +++ b/iblrig/base_choice_world.py @@ -695,12 +695,12 @@ def trial_completed(self, bpod_data): except StopIteration as e: log.error(f'No outcome detected for trial {self.trial_num}.') log.error(f'raw_outcome: {raw_outcome}') - log.error("State names: " + ", ".join(bpod_data['States timestamps'].keys())) + log.error('State names: ' + ', '.join(bpod_data['States timestamps'].keys())) raise e except AssertionError as e: log.error(f'Assertion Error in trial {self.trial_num}.') log.error(f'raw_outcome: {raw_outcome}') - log.error("State names: " + ", ".join(bpod_data['States timestamps'].keys())) + log.error('State names: ' + ', '.join(bpod_data['States timestamps'].keys())) raise e From 870dff3a03869646fc1c5b3052625421fb209fe6 Mon Sep 17 00:00:00 2001 From: pdesanex Date: Fri, 23 Aug 2024 12:44:18 +0100 Subject: [PATCH 44/44] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e1a1529e..20fc9c08a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Changelog ------ * feature: post hardware information to alyx * generate PDF documentation +* increase verbosity of error handling in base task * remove dead code 8.23.0