From 414557e17ec2410009aa1e281313182799a8e6a8 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 11:45:53 +0100 Subject: [PATCH 01/11] Vendors Jupyter dark detect; uses internal wrapper --- pyproject.toml | 21 +- src/easydiffraction/display/tablers/base.py | 3 +- .../utils/_vendored/__init__.py | 23 ++ .../_vendored/jupyter_dark_detect/__init__.py | 10 + .../_vendored/jupyter_dark_detect/detector.py | 247 ++++++++++++++++++ .../utils/_vendored/theme_detect.py | 93 +++++++ tmp/display3.py | 2 +- 7 files changed, 392 insertions(+), 7 deletions(-) create mode 100644 src/easydiffraction/utils/_vendored/__init__.py create mode 100644 src/easydiffraction/utils/_vendored/jupyter_dark_detect/__init__.py create mode 100644 src/easydiffraction/utils/_vendored/jupyter_dark_detect/detector.py create mode 100644 src/easydiffraction/utils/_vendored/theme_detect.py diff --git a/pyproject.toml b/pyproject.toml index e06bfda1..c366ca06 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,11 +76,10 @@ docs = [ 'pyyaml', # YAML parser ] visualization = [ - 'darkdetect', # Detecting dark mode - 'jupyter_dark_detect', # Jupyter notebook dark mode support - 'pandas', # Displaying tables in juptyer notebooks - 'plotly', # Interactive plots - 'py3Dmol', # Visualisation of crystal structures + 'darkdetect', # Detecting dark mode (system-level) + 'pandas', # Displaying tables in juptyer notebooks + 'plotly', # Interactive plots + 'py3Dmol', # Visualisation of crystal structures ] all = [ 'easydiffraction[dev]', @@ -266,6 +265,18 @@ force-single-line = true [tool.ruff.lint.per-file-ignores] '*test_*.py' = ['S101'] # allow asserts in test files +# Vendored jupyter_dark_detect: keep as-is from upstream for easy updates +# https://github.com/OpenMined/jupyter-dark-detect/tree/main/jupyter_dark_detect +'src/easydiffraction/utils/_vendored/jupyter_dark_detect/*' = [ + 'S110', # try-except-pass + 'S112', # try-except-continue + 'S404', # subprocess module + 'S607', # partial executable path + 'TID252', # relative imports + 'W291', # trailing whitespace (in JS strings) + 'W505', # doc line too long + 'E501', # line too long (in JS strings) +] [tool.ruff.lint.pycodestyle] max-line-length = 100 #99# https://peps.python.org/pep-0008/#maximum-line-length diff --git a/src/easydiffraction/display/tablers/base.py b/src/easydiffraction/display/tablers/base.py index 55233309..902cba92 100644 --- a/src/easydiffraction/display/tablers/base.py +++ b/src/easydiffraction/display/tablers/base.py @@ -13,9 +13,10 @@ from typing import Any from IPython import get_ipython -from jupyter_dark_detect import is_dark from rich.color import Color +from easydiffraction.utils._vendored.theme_detect import is_dark + class TableBackendBase(ABC): """Abstract base class for concrete table backends. diff --git a/src/easydiffraction/utils/_vendored/__init__.py b/src/easydiffraction/utils/_vendored/__init__.py new file mode 100644 index 00000000..45731a5e --- /dev/null +++ b/src/easydiffraction/utils/_vendored/__init__.py @@ -0,0 +1,23 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-License-Identifier: BSD-3-Clause +"""Vendored third-party modules. + +This package contains third-party code that has been vendored into the +project to avoid external dependencies not available on conda-forge. + +Packages: + jupyter_dark_detect/ + Vendored copy of jupyter_dark_detect (MIT License). + Check jupyter_dark_detect.__version__ for vendored version. + + To update, replace these files from upstream: + - https://github.com/OpenMined/jupyter-dark-detect/blob/main/jupyter_dark_detect/__init__.py + - https://github.com/OpenMined/jupyter-dark-detect/blob/main/jupyter_dark_detect/detector.py + + Then run 'pixi run fix' to format and check for issues. + +Modules: + theme_detect: + Custom wrapper around jupyter_dark_detect with optimized + detection order for EasyDiffraction's use case. +""" diff --git a/src/easydiffraction/utils/_vendored/jupyter_dark_detect/__init__.py b/src/easydiffraction/utils/_vendored/jupyter_dark_detect/__init__.py new file mode 100644 index 00000000..11ef7b95 --- /dev/null +++ b/src/easydiffraction/utils/_vendored/jupyter_dark_detect/__init__.py @@ -0,0 +1,10 @@ +"""jupyter-dark-detect: Detect dark mode in Jupyter environments. + +This package provides a simple API to detect whether Jupyter Notebook/Lab +is running in dark mode across different environments. +""" + +from .detector import is_dark + +__version__ = '0.1.0' +__all__ = ['is_dark'] diff --git a/src/easydiffraction/utils/_vendored/jupyter_dark_detect/detector.py b/src/easydiffraction/utils/_vendored/jupyter_dark_detect/detector.py new file mode 100644 index 00000000..8f34b5af --- /dev/null +++ b/src/easydiffraction/utils/_vendored/jupyter_dark_detect/detector.py @@ -0,0 +1,247 @@ +"""Dark mode detection for Jupyter environments.""" + +import json +import os +import platform +import re +import subprocess +import sys +import time +from pathlib import Path +from typing import Optional + + +def is_dark() -> bool: + """Check if Jupyter Notebook/Lab is running in dark mode. + + This function attempts multiple detection strategies: + 1. JupyterLab theme settings files + 2. VS Code settings (when running in VS Code) + 3. JavaScript DOM inspection + 4. System preferences (macOS) + + Returns: + bool: True if dark mode is detected, False otherwise + """ + # Try JupyterLab settings first + result = _check_jupyterlab_settings() + if result is not None: + return result + + # Check VS Code settings + result = _check_vscode_settings() + if result is not None: + return result + + # Try JavaScript detection + result = _check_javascript_detection() + if result is not None: + return result + + # Check system preferences + result = _check_system_preferences() + if result is not None: + return result + + # Default to light mode + return False + + +def _check_jupyterlab_settings() -> Optional[bool]: + """Check JupyterLab theme settings files.""" + jupyter_config_paths = [ + Path.home() + / '.jupyter' + / 'lab' + / 'user-settings' + / '@jupyterlab' + / 'apputils-extension' + / 'themes.jupyterlab-settings', + Path.home() + / '.jupyter' + / 'lab' + / 'user-settings' + / '@jupyterlab' + / 'apputils-extension' + / 'themes.jupyterlab-settings.json', + ] + + for config_path in jupyter_config_paths: + if config_path.exists(): + try: + with Path(config_path).open('r') as f: + content = f.read() + # Remove comments from the JSON (JupyterLab allows comments) + content = re.sub(r'//.*$', '', content, flags=re.MULTILINE) + content = re.sub(r'/\*.*?\*/', '', content, flags=re.DOTALL) + + settings = json.loads(content) + theme = settings.get('theme', '').lower() + + if 'dark' in theme: + return True + elif 'light' in theme: + return False + except Exception: + continue + + return None + + +def _check_vscode_settings() -> Optional[bool]: + """Check VS Code settings when running in VS Code.""" + if 'VSCODE_PID' not in os.environ: + return None + + # Check VS Code NLS config first + vscode_nls = os.environ.get('VSCODE_NLS_CONFIG', '') + if 'dark' in vscode_nls.lower(): + return True + + # Check VS Code settings files + vscode_settings_paths = [ + Path.cwd() / '.vscode' / 'settings.json', + Path.home() / '.config' / 'Code' / 'User' / 'settings.json', + Path.home() / 'Library' / 'Application Support' / 'Code' / 'User' / 'settings.json', + # macOS + Path.home() / 'AppData' / 'Roaming' / 'Code' / 'User' / 'settings.json', # Windows + ] + + for settings_path in vscode_settings_paths: + if settings_path.exists(): + try: + with Path(settings_path).open('r') as f: + settings = json.load(f) + theme = settings.get('workbench.colorTheme', '').lower() + if 'dark' in theme: + return True + elif 'light' in theme: + return False + except Exception: + continue + + return None + + +def _check_javascript_detection() -> Optional[bool]: + """Use JavaScript to detect dark mode in the browser.""" + try: + from IPython import get_ipython + from IPython.display import Javascript + from IPython.display import display + + ipython = get_ipython() + if ipython is None: + return None + + # First try the advanced detection with computed styles + try: + display( + Javascript(""" + (function() { + var isDark = false; + + // Check JupyterLab theme + if (document.body.classList.contains('jp-mod-dark') || + document.body.classList.contains('theme-dark') || + document.body.classList.contains('vscode-dark')) { + isDark = true; + } + + // Check theme attribute + var themeAttr = document.body.getAttribute('data-jp-theme-name'); + if (themeAttr && themeAttr.includes('dark')) { + isDark = true; + } + + // Check computed background color + var notebookEl = document.querySelector('.jp-Notebook') || + document.querySelector('.notebook_app') || + document.body; + if (notebookEl) { + var bgColor = window.getComputedStyle(notebookEl).backgroundColor; + var rgb = bgColor.match(/\\d+/g); + if (rgb && rgb.length >= 3) { + var brightness = (parseInt(rgb[0]) + parseInt(rgb[1]) + parseInt(rgb[2])) / 3; + if (brightness < 128) { + isDark = true; + } + } + } + + // Store result + if (typeof IPython !== 'undefined' && IPython.notebook && IPython.notebook.kernel) { + IPython.notebook.kernel.execute('_jupyter_dark_detect_result = ' + isDark); + } + })(); + """) + ) + + # Give JavaScript time to execute + time.sleep(0.2) + + # Check for result + if hasattr(sys.modules['__main__'], '_jupyter_dark_detect_result'): + result = bool(sys.modules['__main__']._jupyter_dark_detect_result) + delattr(sys.modules['__main__'], '_jupyter_dark_detect_result') + return result + + except Exception: + pass + + # Fallback to simpler detection + result = ipython.run_cell_magic( + 'javascript', + '', + """ + if (typeof IPython !== 'undefined' && IPython.notebook) { + IPython.notebook.kernel.execute("_jupyter_dark_detect_result = " + + (document.body.classList.contains('theme-dark') || + document.body.classList.contains('jp-mod-dark') || + (document.body.getAttribute('data-jp-theme-name') && + document.body.getAttribute('data-jp-theme-name').includes('dark')))); + } + """, + ) + + # Check for result + if hasattr(sys.modules['__main__'], '_jupyter_dark_detect_result'): + result = bool(sys.modules['__main__']._jupyter_dark_detect_result) + delattr(sys.modules['__main__'], '_jupyter_dark_detect_result') + return result + + except Exception: + pass + + return None + + +def _check_system_preferences() -> Optional[bool]: + """Check system dark mode preferences.""" + try: + system = platform.system() + + if system == 'Darwin': # macOS + result = subprocess.run( + ['defaults', 'read', '-g', 'AppleInterfaceStyle'], capture_output=True, text=True + ) + return result.returncode == 0 and 'dark' in result.stdout.lower() + + elif system == 'Windows': + try: + import winreg + + key = winreg.OpenKey( + winreg.HKEY_CURRENT_USER, + r'Software\Microsoft\Windows\CurrentVersion\Themes\Personalize', + ) + value, _ = winreg.QueryValueEx(key, 'AppsUseLightTheme') + winreg.CloseKey(key) + return value == 0 # 0 means dark mode + except Exception: + pass + + except Exception: + pass + + return None diff --git a/src/easydiffraction/utils/_vendored/theme_detect.py b/src/easydiffraction/utils/_vendored/theme_detect.py new file mode 100644 index 00000000..0f39fc40 --- /dev/null +++ b/src/easydiffraction/utils/_vendored/theme_detect.py @@ -0,0 +1,93 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-License-Identifier: BSD-3-Clause +"""Jupyter theme detection with custom detection order. + +This module wraps the vendored jupyter_dark_detect package and provides +a custom detection order optimized for EasyDiffraction's use case. + +Detection Strategy (in priority order): + +1. JupyterLab settings files (~/.jupyter/lab/user-settings/) +2. VS Code settings (when VSCODE_PID env var is present) +3. JavaScript DOM inspection (for browser-based environments) +4. System preferences (macOS, Windows) - fallback only + +Note: + The detection order differs from upstream jupyter_dark_detect. + We prioritize JavaScript DOM inspection over system preferences + because the Jupyter theme may differ from the system theme. + +Example: + >>> from easydiffraction.utils._vendored.theme_detect import is_dark + >>> if is_dark(): + ... print('Dark mode detected') +""" + +from __future__ import annotations + +from typing import Optional + +# Import detection functions from vendored jupyter_dark_detect +from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_javascript_detection, +) +from easydiffraction.utils._vendored.jupyter_dark_detect.detector import _check_jupyterlab_settings +from easydiffraction.utils._vendored.jupyter_dark_detect.detector import _check_system_preferences +from easydiffraction.utils._vendored.jupyter_dark_detect.detector import _check_vscode_settings + + +def is_dark() -> bool: + """Check if the Jupyter environment is running in dark mode. + + This function uses a custom detection order that prioritizes + Jupyter-specific detection over system preferences. + + Detection order: + + 1. JupyterLab settings files (most reliable for JupyterLab) + 2. VS Code settings (when running in VS Code) + 3. JavaScript DOM inspection (for browser-based Jupyter) + 4. System preferences (fallback - may differ from Jupyter theme) + + Returns: + True if dark mode is detected, False otherwise. + """ + # Try Jupyter-specific methods first + result = _check_jupyterlab_settings() + if result is not None: + return result + + result = _check_vscode_settings() + if result is not None: + return result + + # JavaScript DOM inspection for browser environments + # (Classic Notebook, Colab, Binder, etc.) + # This comes BEFORE system preferences because Jupyter theme + # may differ from system theme + result = _check_javascript_detection() + if result is not None: + return result + + # System preferences as last resort + result = _check_system_preferences() + if result is not None: + return result + + # Default to light mode if nothing detected + return False + + +def get_detection_result() -> dict[str, Optional[bool]]: + """Get results from all detection methods for debugging. + + Returns: + Dictionary with detection method names as keys and their + results (True/False/None) as values. + """ + return { + 'jupyterlab_settings': _check_jupyterlab_settings(), + 'vscode_settings': _check_vscode_settings(), + 'javascript_dom': _check_javascript_detection(), + 'system_preferences': _check_system_preferences(), + } diff --git a/tmp/display3.py b/tmp/display3.py index 822ba960..de7eed37 100644 --- a/tmp/display3.py +++ b/tmp/display3.py @@ -35,7 +35,7 @@ def rich_to_hex(color): pd_dim_color_light = rich_to_hex(rich_dim_color_light) # + -from jupyter_dark_detect import is_dark +from easydiffraction.utils._vendored.theme_detect import is_dark from IPython import get_ipython def is_dark_theme() -> bool: From 034c5d0293b5c80d2353298b69ac19a6a2662047 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 11:46:50 +0100 Subject: [PATCH 02/11] Adds unit tests for theme detection logic --- .../utils/test_theme_detect.py | 339 ++++++++++++++++++ 1 file changed, 339 insertions(+) create mode 100644 tests/unit/easydiffraction/utils/test_theme_detect.py diff --git a/tests/unit/easydiffraction/utils/test_theme_detect.py b/tests/unit/easydiffraction/utils/test_theme_detect.py new file mode 100644 index 00000000..ff0acfe6 --- /dev/null +++ b/tests/unit/easydiffraction/utils/test_theme_detect.py @@ -0,0 +1,339 @@ +# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-License-Identifier: BSD-3-Clause +"""Unit tests for theme detection module.""" + +from __future__ import annotations + +import json +import os +from pathlib import Path +from unittest import mock + +import pytest + + +class TestCheckJupyterlabSettings: + """Tests for _check_jupyterlab_settings function.""" + + def test_dark_theme_detection(self, tmp_path: Path) -> None: + """Test detection of dark theme in JupyterLab settings.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_jupyterlab_settings, + ) + + settings_dir = ( + tmp_path + / '.jupyter' + / 'lab' + / 'user-settings' + / '@jupyterlab' + / 'apputils-extension' + ) + settings_dir.mkdir(parents=True) + + settings_file = settings_dir / 'themes.jupyterlab-settings' + settings_file.write_text(json.dumps({'theme': 'JupyterLab Dark'})) + + with mock.patch.object(Path, 'home', return_value=tmp_path): + assert _check_jupyterlab_settings() is True + + def test_light_theme_detection(self, tmp_path: Path) -> None: + """Test detection of light theme in JupyterLab settings.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_jupyterlab_settings, + ) + + settings_dir = ( + tmp_path + / '.jupyter' + / 'lab' + / 'user-settings' + / '@jupyterlab' + / 'apputils-extension' + ) + settings_dir.mkdir(parents=True) + + settings_file = settings_dir / 'themes.jupyterlab-settings' + settings_file.write_text(json.dumps({'theme': 'JupyterLab Light'})) + + with mock.patch.object(Path, 'home', return_value=tmp_path): + assert _check_jupyterlab_settings() is False + + def test_no_settings_file(self, tmp_path: Path) -> None: + """Test when no settings file exists.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_jupyterlab_settings, + ) + + with mock.patch.object(Path, 'home', return_value=tmp_path): + assert _check_jupyterlab_settings() is None + + def test_comments_in_settings(self, tmp_path: Path) -> None: + """Test handling of comments in JupyterLab settings.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_jupyterlab_settings, + ) + + settings_dir = ( + tmp_path + / '.jupyter' + / 'lab' + / 'user-settings' + / '@jupyterlab' + / 'apputils-extension' + ) + settings_dir.mkdir(parents=True) + + settings_file = settings_dir / 'themes.jupyterlab-settings' + settings_file.write_text(""" + { + // This is a comment + "theme": "JupyterLab Dark" /* Another comment */ + } + """) + + with mock.patch.object(Path, 'home', return_value=tmp_path): + assert _check_jupyterlab_settings() is True + + +class TestCheckVscodeSettings: + """Tests for _check_vscode_settings function.""" + + def test_not_in_vscode(self) -> None: + """Test when not running in VS Code.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_vscode_settings, + ) + + with mock.patch.dict(os.environ, {}, clear=True): + assert _check_vscode_settings() is None + + def test_vscode_dark_theme(self, tmp_path: Path) -> None: + """Test detection of dark theme in VS Code settings.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_vscode_settings, + ) + + vscode_dir = tmp_path / '.vscode' + vscode_dir.mkdir() + + settings_file = vscode_dir / 'settings.json' + settings_file.write_text( + json.dumps({'workbench.colorTheme': 'One Dark Pro'}) + ) + + with mock.patch.dict(os.environ, {'VSCODE_PID': '12345'}): + with mock.patch.object(Path, 'cwd', return_value=tmp_path): + assert _check_vscode_settings() is True + + def test_vscode_light_theme(self, tmp_path: Path) -> None: + """Test detection of light theme in VS Code settings.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_vscode_settings, + ) + + vscode_dir = tmp_path / '.vscode' + vscode_dir.mkdir() + + settings_file = vscode_dir / 'settings.json' + settings_file.write_text( + json.dumps({'workbench.colorTheme': 'Light+ (default light)'}) + ) + + with mock.patch.dict(os.environ, {'VSCODE_PID': '12345'}): + with mock.patch.object(Path, 'cwd', return_value=tmp_path): + assert _check_vscode_settings() is False + + def test_vscode_nls_config_dark(self) -> None: + """Test detection via VSCODE_NLS_CONFIG with dark theme.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_vscode_settings, + ) + + with mock.patch.dict( + os.environ, {'VSCODE_PID': '12345', 'VSCODE_NLS_CONFIG': '{"theme": "dark"}'} + ): + assert _check_vscode_settings() is True + + +class TestCheckSystemPreferences: + """Tests for _check_system_preferences function.""" + + @pytest.mark.skipif( + not os.sys.platform.startswith('darwin'), reason='macOS only test' + ) + def test_macos_dark_mode(self) -> None: + """Test macOS dark mode detection.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_system_preferences, + ) + + with mock.patch('subprocess.run') as mock_run: + mock_run.return_value.returncode = 0 + mock_run.return_value.stdout = 'Dark' + assert _check_system_preferences() is True + + @pytest.mark.skipif( + not os.sys.platform.startswith('darwin'), reason='macOS only test' + ) + def test_macos_light_mode(self) -> None: + """Test macOS light mode detection.""" + from easydiffraction.utils._vendored.jupyter_dark_detect.detector import ( + _check_system_preferences, + ) + + with mock.patch('subprocess.run') as mock_run: + mock_run.return_value.returncode = 1 + assert _check_system_preferences() is False + + +class TestIsDark: + """Tests for the main is_dark function.""" + + def test_default_to_false(self) -> None: + """Test that is_dark defaults to False when no detection works.""" + from easydiffraction.utils._vendored.theme_detect import is_dark + + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_jupyterlab_settings', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_vscode_settings', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_javascript_detection', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_system_preferences', + return_value=None, + ): + assert is_dark() is False + + def test_jupyterlab_priority(self) -> None: + """Test that JupyterLab settings take priority.""" + from easydiffraction.utils._vendored.theme_detect import is_dark + + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_jupyterlab_settings', + return_value=True, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_vscode_settings', + return_value=False, + ): + assert is_dark() is True + + def test_vscode_second_priority(self) -> None: + """Test that VS Code settings are checked after JupyterLab.""" + from easydiffraction.utils._vendored.theme_detect import is_dark + + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_jupyterlab_settings', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_vscode_settings', + return_value=True, + ): + assert is_dark() is True + + def test_javascript_before_system(self) -> None: + """Test that JS detection comes before system preferences.""" + from easydiffraction.utils._vendored.theme_detect import is_dark + + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_jupyterlab_settings', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_vscode_settings', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_javascript_detection', + return_value=True, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_system_preferences', + return_value=False, + ): + # JS detection should win over system prefs + assert is_dark() is True + + +class TestGetDetectionResult: + """Tests for the get_detection_result debugging function.""" + + def test_returns_dict_with_all_methods(self) -> None: + """Test that get_detection_result returns all detection methods.""" + from easydiffraction.utils._vendored.theme_detect import get_detection_result + + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_jupyterlab_settings', + return_value=True, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_vscode_settings', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_javascript_detection', + return_value=None, + ): + with mock.patch( + 'easydiffraction.utils._vendored.theme_detect.' + '_check_system_preferences', + return_value=False, + ): + result = get_detection_result() + + assert 'jupyterlab_settings' in result + assert 'vscode_settings' in result + assert 'javascript_dom' in result + assert 'system_preferences' in result + + assert result['jupyterlab_settings'] is True + assert result['vscode_settings'] is None + assert result['javascript_dom'] is None + assert result['system_preferences'] is False + + +class TestImports: + """Tests for module imports.""" + + def test_import_from_theme_detect(self) -> None: + """Test importing is_dark from theme_detect.""" + from easydiffraction.utils._vendored.theme_detect import is_dark + + assert callable(is_dark) + + def test_import_from_jupyter_dark_detect(self) -> None: + """Test importing is_dark from vendored jupyter_dark_detect.""" + from easydiffraction.utils._vendored.jupyter_dark_detect import is_dark + + assert callable(is_dark) + + def test_version_available(self) -> None: + """Test that __version__ is available.""" + from easydiffraction.utils._vendored.jupyter_dark_detect import __version__ + + assert isinstance(__version__, str) + assert len(__version__) > 0 From b9d031693a89ad241e5d831e4d317a22bf55c143 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 12:10:16 +0100 Subject: [PATCH 03/11] Updates SPDX headers to 2026 --- src/easydiffraction/__init__.py | 2 +- src/easydiffraction/__main__.py | 2 +- src/easydiffraction/analysis/__init__.py | 2 +- src/easydiffraction/analysis/analysis.py | 2 +- src/easydiffraction/analysis/calculators/__init__.py | 2 +- src/easydiffraction/analysis/calculators/base.py | 2 +- src/easydiffraction/analysis/calculators/crysfml.py | 2 +- src/easydiffraction/analysis/calculators/cryspy.py | 2 +- src/easydiffraction/analysis/calculators/factory.py | 2 +- src/easydiffraction/analysis/calculators/pdffit.py | 2 +- src/easydiffraction/analysis/categories/__init__.py | 2 +- src/easydiffraction/analysis/categories/aliases.py | 2 +- src/easydiffraction/analysis/categories/constraints.py | 2 +- .../analysis/categories/joint_fit_experiments.py | 2 +- src/easydiffraction/analysis/fit_helpers/__init__.py | 2 +- src/easydiffraction/analysis/fit_helpers/metrics.py | 2 +- src/easydiffraction/analysis/fit_helpers/reporting.py | 2 +- src/easydiffraction/analysis/fit_helpers/tracking.py | 2 +- src/easydiffraction/analysis/fitting.py | 2 +- src/easydiffraction/analysis/minimizers/__init__.py | 2 +- src/easydiffraction/analysis/minimizers/base.py | 2 +- src/easydiffraction/analysis/minimizers/dfols.py | 2 +- src/easydiffraction/analysis/minimizers/factory.py | 2 +- src/easydiffraction/analysis/minimizers/lmfit.py | 2 +- src/easydiffraction/core/__init__.py | 2 +- src/easydiffraction/core/category.py | 2 +- src/easydiffraction/core/collection.py | 2 +- src/easydiffraction/core/datablock.py | 2 +- src/easydiffraction/core/diagnostic.py | 2 +- src/easydiffraction/core/factory.py | 2 +- src/easydiffraction/core/guard.py | 2 +- src/easydiffraction/core/identity.py | 2 +- src/easydiffraction/core/parameters.py | 2 +- src/easydiffraction/core/singletons.py | 2 +- src/easydiffraction/core/validation.py | 2 +- src/easydiffraction/crystallography/__init__.py | 2 +- src/easydiffraction/crystallography/crystallography.py | 2 +- src/easydiffraction/crystallography/space_groups.py | 2 +- src/easydiffraction/display/__init__.py | 2 +- src/easydiffraction/display/base.py | 2 +- src/easydiffraction/display/plotters/__init__.py | 2 +- src/easydiffraction/display/plotters/ascii.py | 2 +- src/easydiffraction/display/plotters/base.py | 2 +- src/easydiffraction/display/plotters/plotly.py | 2 +- src/easydiffraction/display/plotting.py | 2 +- src/easydiffraction/display/tablers/__init__.py | 2 +- src/easydiffraction/display/tablers/base.py | 2 +- src/easydiffraction/display/tablers/pandas.py | 2 +- src/easydiffraction/display/tablers/rich.py | 2 +- src/easydiffraction/display/tables.py | 2 +- src/easydiffraction/display/utils.py | 2 +- src/easydiffraction/experiments/__init__.py | 2 +- src/easydiffraction/experiments/categories/__init__.py | 2 +- .../experiments/categories/background/__init__.py | 2 +- src/easydiffraction/experiments/categories/background/base.py | 2 +- .../experiments/categories/background/chebyshev.py | 2 +- src/easydiffraction/experiments/categories/background/enums.py | 2 +- .../experiments/categories/background/factory.py | 2 +- .../experiments/categories/background/line_segment.py | 2 +- src/easydiffraction/experiments/categories/data/bragg_pd.py | 2 +- src/easydiffraction/experiments/categories/data/bragg_sc.py | 2 +- src/easydiffraction/experiments/categories/data/factory.py | 2 +- src/easydiffraction/experiments/categories/data/total.py | 2 +- src/easydiffraction/experiments/categories/excluded_regions.py | 2 +- src/easydiffraction/experiments/categories/experiment_type.py | 2 +- .../experiments/categories/instrument/__init__.py | 2 +- src/easydiffraction/experiments/categories/instrument/base.py | 2 +- src/easydiffraction/experiments/categories/instrument/cwl.py | 2 +- .../experiments/categories/instrument/factory.py | 2 +- src/easydiffraction/experiments/categories/instrument/tof.py | 2 +- src/easydiffraction/experiments/categories/linked_phases.py | 2 +- src/easydiffraction/experiments/categories/peak/__init__.py | 2 +- src/easydiffraction/experiments/categories/peak/base.py | 2 +- src/easydiffraction/experiments/categories/peak/cwl.py | 2 +- src/easydiffraction/experiments/categories/peak/cwl_mixins.py | 2 +- src/easydiffraction/experiments/categories/peak/factory.py | 2 +- src/easydiffraction/experiments/categories/peak/tof.py | 2 +- src/easydiffraction/experiments/categories/peak/tof_mixins.py | 2 +- src/easydiffraction/experiments/categories/peak/total.py | 2 +- .../experiments/categories/peak/total_mixins.py | 2 +- src/easydiffraction/experiments/experiment/__init__.py | 2 +- src/easydiffraction/experiments/experiment/base.py | 2 +- src/easydiffraction/experiments/experiment/bragg_pd.py | 2 +- src/easydiffraction/experiments/experiment/bragg_sc.py | 2 +- src/easydiffraction/experiments/experiment/enums.py | 2 +- src/easydiffraction/experiments/experiment/factory.py | 2 +- src/easydiffraction/experiments/experiment/instrument_mixin.py | 2 +- src/easydiffraction/experiments/experiment/total_pd.py | 2 +- src/easydiffraction/experiments/experiments.py | 2 +- src/easydiffraction/io/__init__.py | 2 +- src/easydiffraction/io/cif/__init__.py | 2 +- src/easydiffraction/io/cif/handler.py | 2 +- src/easydiffraction/io/cif/parse.py | 2 +- src/easydiffraction/io/cif/serialize.py | 2 +- src/easydiffraction/project/__init__.py | 2 +- src/easydiffraction/project/project.py | 2 +- src/easydiffraction/project/project_info.py | 2 +- src/easydiffraction/sample_models/__init__.py | 2 +- src/easydiffraction/sample_models/categories/__init__.py | 2 +- src/easydiffraction/sample_models/categories/atom_sites.py | 2 +- src/easydiffraction/sample_models/categories/cell.py | 2 +- src/easydiffraction/sample_models/categories/space_group.py | 2 +- src/easydiffraction/sample_models/sample_model/__init__.py | 2 +- src/easydiffraction/sample_models/sample_model/base.py | 2 +- src/easydiffraction/sample_models/sample_model/factory.py | 2 +- src/easydiffraction/sample_models/sample_models.py | 2 +- src/easydiffraction/summary/__init__.py | 2 +- src/easydiffraction/summary/summary.py | 2 +- src/easydiffraction/utils/__init__.py | 2 +- src/easydiffraction/utils/_vendored/__init__.py | 2 +- src/easydiffraction/utils/_vendored/theme_detect.py | 2 +- src/easydiffraction/utils/environment.py | 2 +- src/easydiffraction/utils/logging.py | 2 +- src/easydiffraction/utils/utils.py | 2 +- tests/integration/fitting/test_pair-distribution-function.py | 2 +- .../fitting/test_powder-diffraction_constant-wavelength.py | 2 +- tests/integration/fitting/test_powder-diffraction_joint-fit.py | 2 +- .../integration/fitting/test_powder-diffraction_multiphase.py | 2 +- .../fitting/test_powder-diffraction_time-of-flight.py | 2 +- tests/integration/scipp-analysis/dream/test_scipp-cif.py | 2 +- tests/unit/easydiffraction/analysis/calculators/test_base.py | 2 +- .../unit/easydiffraction/analysis/calculators/test_crysfml.py | 2 +- tests/unit/easydiffraction/analysis/calculators/test_cryspy.py | 2 +- .../unit/easydiffraction/analysis/calculators/test_factory.py | 2 +- tests/unit/easydiffraction/analysis/calculators/test_pdffit.py | 2 +- tests/unit/easydiffraction/analysis/categories/test_aliases.py | 2 +- .../easydiffraction/analysis/categories/test_constraints.py | 2 +- .../analysis/categories/test_joint_fit_experiments.py | 2 +- .../unit/easydiffraction/analysis/fit_helpers/test_metrics.py | 2 +- .../easydiffraction/analysis/fit_helpers/test_reporting.py | 2 +- .../unit/easydiffraction/analysis/fit_helpers/test_tracking.py | 2 +- tests/unit/easydiffraction/analysis/minimizers/test_base.py | 2 +- tests/unit/easydiffraction/analysis/minimizers/test_dfols.py | 2 +- tests/unit/easydiffraction/analysis/minimizers/test_factory.py | 2 +- tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py | 2 +- tests/unit/easydiffraction/analysis/test_analysis.py | 2 +- .../easydiffraction/analysis/test_analysis_access_params.py | 2 +- .../unit/easydiffraction/analysis/test_analysis_show_empty.py | 2 +- tests/unit/easydiffraction/analysis/test_fitting.py | 2 +- tests/unit/easydiffraction/core/test_category.py | 2 +- tests/unit/easydiffraction/core/test_collection.py | 2 +- tests/unit/easydiffraction/core/test_datablock.py | 2 +- tests/unit/easydiffraction/core/test_diagnostic.py | 2 +- tests/unit/easydiffraction/core/test_factory.py | 2 +- tests/unit/easydiffraction/core/test_guard.py | 2 +- tests/unit/easydiffraction/core/test_identity.py | 2 +- tests/unit/easydiffraction/core/test_parameters.py | 2 +- tests/unit/easydiffraction/core/test_singletons.py | 2 +- tests/unit/easydiffraction/core/test_validation.py | 2 +- .../easydiffraction/crystallography/test_crystallography.py | 2 +- .../unit/easydiffraction/crystallography/test_space_groups.py | 2 +- tests/unit/easydiffraction/display/plotters/test_ascii.py | 2 +- tests/unit/easydiffraction/display/plotters/test_base.py | 2 +- tests/unit/easydiffraction/display/plotters/test_plotly.py | 2 +- tests/unit/easydiffraction/display/test_plotting.py | 2 +- .../experiments/categories/background/test_base.py | 2 +- .../experiments/categories/background/test_chebyshev.py | 2 +- .../experiments/categories/background/test_enums.py | 2 +- .../experiments/categories/background/test_factory.py | 2 +- .../experiments/categories/background/test_line_segment.py | 2 +- .../experiments/categories/instrument/test_base.py | 2 +- .../experiments/categories/instrument/test_cwl.py | 2 +- .../experiments/categories/instrument/test_factory.py | 2 +- .../experiments/categories/instrument/test_tof.py | 2 +- .../easydiffraction/experiments/categories/peak/test_base.py | 2 +- .../easydiffraction/experiments/categories/peak/test_cwl.py | 2 +- .../experiments/categories/peak/test_cwl_mixins.py | 2 +- .../experiments/categories/peak/test_factory.py | 2 +- .../easydiffraction/experiments/categories/peak/test_tof.py | 2 +- .../experiments/categories/peak/test_tof_mixins.py | 2 +- .../easydiffraction/experiments/categories/peak/test_total.py | 2 +- .../experiments/categories/peak/test_total_mixins.py | 2 +- .../experiments/categories/test_excluded_regions.py | 2 +- .../experiments/categories/test_experiment_type.py | 2 +- .../experiments/categories/test_linked_phases.py | 2 +- tests/unit/easydiffraction/experiments/experiment/test_base.py | 2 +- .../easydiffraction/experiments/experiment/test_bragg_pd.py | 2 +- .../easydiffraction/experiments/experiment/test_bragg_sc.py | 2 +- .../unit/easydiffraction/experiments/experiment/test_enums.py | 2 +- .../easydiffraction/experiments/experiment/test_factory.py | 2 +- .../experiments/experiment/test_instrument_mixin.py | 2 +- .../easydiffraction/experiments/experiment/test_total_pd.py | 2 +- tests/unit/easydiffraction/experiments/test_experiments.py | 2 +- tests/unit/easydiffraction/io/cif/test_handler.py | 2 +- tests/unit/easydiffraction/io/cif/test_serialize.py | 2 +- tests/unit/easydiffraction/io/cif/test_serialize_more.py | 2 +- tests/unit/easydiffraction/project/test_project.py | 2 +- tests/unit/easydiffraction/project/test_project_info.py | 2 +- .../project/test_project_load_and_summary_wrap.py | 2 +- tests/unit/easydiffraction/project/test_project_save.py | 2 +- .../sample_models/categories/test_atom_sites.py | 2 +- .../unit/easydiffraction/sample_models/categories/test_cell.py | 2 +- .../sample_models/categories/test_space_group.py | 2 +- .../easydiffraction/sample_models/sample_model/test_base.py | 2 +- .../easydiffraction/sample_models/sample_model/test_factory.py | 2 +- tests/unit/easydiffraction/sample_models/test_sample_models.py | 2 +- tests/unit/easydiffraction/summary/test_summary.py | 2 +- tests/unit/easydiffraction/summary/test_summary_details.py | 2 +- tests/unit/easydiffraction/test___init__.py | 2 +- tests/unit/easydiffraction/test___main__.py | 2 +- tests/unit/easydiffraction/utils/test_logging.py | 2 +- tests/unit/easydiffraction/utils/test_theme_detect.py | 3 ++- tests/unit/easydiffraction/utils/test_utils.py | 2 +- 203 files changed, 204 insertions(+), 203 deletions(-) diff --git a/src/easydiffraction/__init__.py b/src/easydiffraction/__init__.py index 2e4e54f5..259c931d 100644 --- a/src/easydiffraction/__init__.py +++ b/src/easydiffraction/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.experiments.experiment.factory import ExperimentFactory diff --git a/src/easydiffraction/__main__.py b/src/easydiffraction/__main__.py index e4e79178..c850b1fa 100644 --- a/src/easydiffraction/__main__.py +++ b/src/easydiffraction/__main__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import sys diff --git a/src/easydiffraction/analysis/__init__.py b/src/easydiffraction/analysis/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/analysis/__init__.py +++ b/src/easydiffraction/analysis/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 9e8bd1cd..3532290e 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import List diff --git a/src/easydiffraction/analysis/calculators/__init__.py b/src/easydiffraction/analysis/calculators/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/analysis/calculators/__init__.py +++ b/src/easydiffraction/analysis/calculators/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/calculators/base.py b/src/easydiffraction/analysis/calculators/base.py index 70872b6f..80c86a36 100644 --- a/src/easydiffraction/analysis/calculators/base.py +++ b/src/easydiffraction/analysis/calculators/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from abc import ABC diff --git a/src/easydiffraction/analysis/calculators/crysfml.py b/src/easydiffraction/analysis/calculators/crysfml.py index c8658d27..babd3e08 100644 --- a/src/easydiffraction/analysis/calculators/crysfml.py +++ b/src/easydiffraction/analysis/calculators/crysfml.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/calculators/cryspy.py b/src/easydiffraction/analysis/calculators/cryspy.py index 954bb231..a24fda7f 100644 --- a/src/easydiffraction/analysis/calculators/cryspy.py +++ b/src/easydiffraction/analysis/calculators/cryspy.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import contextlib diff --git a/src/easydiffraction/analysis/calculators/factory.py b/src/easydiffraction/analysis/calculators/factory.py index 5392c5a6..79b4eba9 100644 --- a/src/easydiffraction/analysis/calculators/factory.py +++ b/src/easydiffraction/analysis/calculators/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Dict diff --git a/src/easydiffraction/analysis/calculators/pdffit.py b/src/easydiffraction/analysis/calculators/pdffit.py index c25fda7f..9f099ff6 100644 --- a/src/easydiffraction/analysis/calculators/pdffit.py +++ b/src/easydiffraction/analysis/calculators/pdffit.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """PDF calculation backend using diffpy.pdffit2 if available. diff --git a/src/easydiffraction/analysis/categories/__init__.py b/src/easydiffraction/analysis/categories/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/analysis/categories/__init__.py +++ b/src/easydiffraction/analysis/categories/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/categories/aliases.py b/src/easydiffraction/analysis/categories/aliases.py index cb171742..b55db11d 100644 --- a/src/easydiffraction/analysis/categories/aliases.py +++ b/src/easydiffraction/analysis/categories/aliases.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Alias category for mapping friendly names to parameter UIDs. diff --git a/src/easydiffraction/analysis/categories/constraints.py b/src/easydiffraction/analysis/categories/constraints.py index ba10ff3c..205a28b1 100644 --- a/src/easydiffraction/analysis/categories/constraints.py +++ b/src/easydiffraction/analysis/categories/constraints.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Simple symbolic constraint between parameters. diff --git a/src/easydiffraction/analysis/categories/joint_fit_experiments.py b/src/easydiffraction/analysis/categories/joint_fit_experiments.py index a6422236..818dd6f6 100644 --- a/src/easydiffraction/analysis/categories/joint_fit_experiments.py +++ b/src/easydiffraction/analysis/categories/joint_fit_experiments.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Joint-fit experiment weighting configuration. diff --git a/src/easydiffraction/analysis/fit_helpers/__init__.py b/src/easydiffraction/analysis/fit_helpers/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/analysis/fit_helpers/__init__.py +++ b/src/easydiffraction/analysis/fit_helpers/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/fit_helpers/metrics.py b/src/easydiffraction/analysis/fit_helpers/metrics.py index feaabba7..b6ef9928 100644 --- a/src/easydiffraction/analysis/fit_helpers/metrics.py +++ b/src/easydiffraction/analysis/fit_helpers/metrics.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Optional diff --git a/src/easydiffraction/analysis/fit_helpers/reporting.py b/src/easydiffraction/analysis/fit_helpers/reporting.py index ea110bf9..d9dbc40e 100644 --- a/src/easydiffraction/analysis/fit_helpers/reporting.py +++ b/src/easydiffraction/analysis/fit_helpers/reporting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/fit_helpers/tracking.py b/src/easydiffraction/analysis/fit_helpers/tracking.py index 9b98e68c..438fd46d 100644 --- a/src/easydiffraction/analysis/fit_helpers/tracking.py +++ b/src/easydiffraction/analysis/fit_helpers/tracking.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import time diff --git a/src/easydiffraction/analysis/fitting.py b/src/easydiffraction/analysis/fitting.py index bf3b851d..ee6e3c84 100644 --- a/src/easydiffraction/analysis/fitting.py +++ b/src/easydiffraction/analysis/fitting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import TYPE_CHECKING diff --git a/src/easydiffraction/analysis/minimizers/__init__.py b/src/easydiffraction/analysis/minimizers/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/analysis/minimizers/__init__.py +++ b/src/easydiffraction/analysis/minimizers/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/analysis/minimizers/base.py b/src/easydiffraction/analysis/minimizers/base.py index 2f966d5c..275ad973 100644 --- a/src/easydiffraction/analysis/minimizers/base.py +++ b/src/easydiffraction/analysis/minimizers/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from abc import ABC diff --git a/src/easydiffraction/analysis/minimizers/dfols.py b/src/easydiffraction/analysis/minimizers/dfols.py index c3b70740..544d4b7a 100644 --- a/src/easydiffraction/analysis/minimizers/dfols.py +++ b/src/easydiffraction/analysis/minimizers/dfols.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/minimizers/factory.py b/src/easydiffraction/analysis/minimizers/factory.py index e882ed62..0b1afaa2 100644 --- a/src/easydiffraction/analysis/minimizers/factory.py +++ b/src/easydiffraction/analysis/minimizers/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/analysis/minimizers/lmfit.py b/src/easydiffraction/analysis/minimizers/lmfit.py index acbe2f2f..d7a651cb 100644 --- a/src/easydiffraction/analysis/minimizers/lmfit.py +++ b/src/easydiffraction/analysis/minimizers/lmfit.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/core/__init__.py b/src/easydiffraction/core/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/core/__init__.py +++ b/src/easydiffraction/core/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/core/category.py b/src/easydiffraction/core/category.py index 84738dd0..6be057da 100644 --- a/src/easydiffraction/core/category.py +++ b/src/easydiffraction/core/category.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/core/collection.py b/src/easydiffraction/core/collection.py index e572827d..a84bdb51 100644 --- a/src/easydiffraction/core/collection.py +++ b/src/easydiffraction/core/collection.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Lightweight container for guarded items with name-based indexing. diff --git a/src/easydiffraction/core/datablock.py b/src/easydiffraction/core/datablock.py index d8e0318d..a8cc0ed8 100644 --- a/src/easydiffraction/core/datablock.py +++ b/src/easydiffraction/core/datablock.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/core/diagnostic.py b/src/easydiffraction/core/diagnostic.py index 846c8ed1..74c2ab3b 100644 --- a/src/easydiffraction/core/diagnostic.py +++ b/src/easydiffraction/core/diagnostic.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Diagnostics helpers for logging validation messages. diff --git a/src/easydiffraction/core/factory.py b/src/easydiffraction/core/factory.py index cc0ecd79..3500768f 100644 --- a/src/easydiffraction/core/factory.py +++ b/src/easydiffraction/core/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Iterable diff --git a/src/easydiffraction/core/guard.py b/src/easydiffraction/core/guard.py index 367c400f..0979f4cd 100644 --- a/src/easydiffraction/core/guard.py +++ b/src/easydiffraction/core/guard.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from abc import ABC diff --git a/src/easydiffraction/core/identity.py b/src/easydiffraction/core/identity.py index 90c74231..5848bf18 100644 --- a/src/easydiffraction/core/identity.py +++ b/src/easydiffraction/core/identity.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Identity helpers to build CIF-like hierarchical names. diff --git a/src/easydiffraction/core/parameters.py b/src/easydiffraction/core/parameters.py index 52feb772..37b982e0 100644 --- a/src/easydiffraction/core/parameters.py +++ b/src/easydiffraction/core/parameters.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/core/singletons.py b/src/easydiffraction/core/singletons.py index b699422e..2cd553c1 100644 --- a/src/easydiffraction/core/singletons.py +++ b/src/easydiffraction/core/singletons.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/core/validation.py b/src/easydiffraction/core/validation.py index 6bb88eae..5e31c485 100644 --- a/src/easydiffraction/core/validation.py +++ b/src/easydiffraction/core/validation.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Lightweight runtime validation utilities. diff --git a/src/easydiffraction/crystallography/__init__.py b/src/easydiffraction/crystallography/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/crystallography/__init__.py +++ b/src/easydiffraction/crystallography/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/crystallography/crystallography.py b/src/easydiffraction/crystallography/crystallography.py index 381764a7..c7ff6203 100644 --- a/src/easydiffraction/crystallography/crystallography.py +++ b/src/easydiffraction/crystallography/crystallography.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Any diff --git a/src/easydiffraction/crystallography/space_groups.py b/src/easydiffraction/crystallography/space_groups.py index 0ffa5c09..114b3467 100644 --- a/src/easydiffraction/crystallography/space_groups.py +++ b/src/easydiffraction/crystallography/space_groups.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Space group reference data. diff --git a/src/easydiffraction/display/__init__.py b/src/easydiffraction/display/__init__.py index 43a2b73b..265560b2 100644 --- a/src/easydiffraction/display/__init__.py +++ b/src/easydiffraction/display/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Display subsystem for tables and plots. diff --git a/src/easydiffraction/display/base.py b/src/easydiffraction/display/base.py index 603e6b57..c3babcff 100644 --- a/src/easydiffraction/display/base.py +++ b/src/easydiffraction/display/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Common base classes for display components and their factories.""" diff --git a/src/easydiffraction/display/plotters/__init__.py b/src/easydiffraction/display/plotters/__init__.py index 0801e6c8..14dae26a 100644 --- a/src/easydiffraction/display/plotters/__init__.py +++ b/src/easydiffraction/display/plotters/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Plotting backends. diff --git a/src/easydiffraction/display/plotters/ascii.py b/src/easydiffraction/display/plotters/ascii.py index f7772cd2..f9ef8904 100644 --- a/src/easydiffraction/display/plotters/ascii.py +++ b/src/easydiffraction/display/plotters/ascii.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """ASCII plotting backend. diff --git a/src/easydiffraction/display/plotters/base.py b/src/easydiffraction/display/plotters/base.py index 04ee689d..43c22767 100644 --- a/src/easydiffraction/display/plotters/base.py +++ b/src/easydiffraction/display/plotters/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Abstract base and shared constants for plotting backends.""" diff --git a/src/easydiffraction/display/plotters/plotly.py b/src/easydiffraction/display/plotters/plotly.py index c62221ea..f91156d1 100644 --- a/src/easydiffraction/display/plotters/plotly.py +++ b/src/easydiffraction/display/plotters/plotly.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Plotly plotting backend. diff --git a/src/easydiffraction/display/plotting.py b/src/easydiffraction/display/plotting.py index 63695169..c0c98deb 100644 --- a/src/easydiffraction/display/plotting.py +++ b/src/easydiffraction/display/plotting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Plotting facade for measured and calculated patterns. diff --git a/src/easydiffraction/display/tablers/__init__.py b/src/easydiffraction/display/tablers/__init__.py index 75e19872..93d84417 100644 --- a/src/easydiffraction/display/tablers/__init__.py +++ b/src/easydiffraction/display/tablers/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Tabular rendering backends. diff --git a/src/easydiffraction/display/tablers/base.py b/src/easydiffraction/display/tablers/base.py index 902cba92..2b710d8f 100644 --- a/src/easydiffraction/display/tablers/base.py +++ b/src/easydiffraction/display/tablers/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Low-level backends for rendering tables. diff --git a/src/easydiffraction/display/tablers/pandas.py b/src/easydiffraction/display/tablers/pandas.py index a1883355..da05b5e8 100644 --- a/src/easydiffraction/display/tablers/pandas.py +++ b/src/easydiffraction/display/tablers/pandas.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Pandas-based table renderer for notebooks using DataFrame Styler.""" diff --git a/src/easydiffraction/display/tablers/rich.py b/src/easydiffraction/display/tablers/rich.py index e5f18776..e7a8afbb 100644 --- a/src/easydiffraction/display/tablers/rich.py +++ b/src/easydiffraction/display/tablers/rich.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Rich-based table renderer for terminals and notebooks.""" diff --git a/src/easydiffraction/display/tables.py b/src/easydiffraction/display/tables.py index a079e30f..e149609d 100644 --- a/src/easydiffraction/display/tables.py +++ b/src/easydiffraction/display/tables.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Table rendering engines: console (Rich) and Jupyter (pandas).""" diff --git a/src/easydiffraction/display/utils.py b/src/easydiffraction/display/utils.py index 548fb68f..8c06f384 100644 --- a/src/easydiffraction/display/utils.py +++ b/src/easydiffraction/display/utils.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/__init__.py b/src/easydiffraction/experiments/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/experiments/__init__.py +++ b/src/easydiffraction/experiments/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/categories/__init__.py b/src/easydiffraction/experiments/categories/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/experiments/categories/__init__.py +++ b/src/easydiffraction/experiments/categories/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/categories/background/__init__.py b/src/easydiffraction/experiments/categories/background/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/experiments/categories/background/__init__.py +++ b/src/easydiffraction/experiments/categories/background/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/categories/background/base.py b/src/easydiffraction/experiments/categories/background/base.py index 18a8ef7d..78cc5ef1 100644 --- a/src/easydiffraction/experiments/categories/background/base.py +++ b/src/easydiffraction/experiments/categories/background/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/categories/background/chebyshev.py b/src/easydiffraction/experiments/categories/background/chebyshev.py index 49546f14..3532e35e 100644 --- a/src/easydiffraction/experiments/categories/background/chebyshev.py +++ b/src/easydiffraction/experiments/categories/background/chebyshev.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Chebyshev polynomial background model. diff --git a/src/easydiffraction/experiments/categories/background/enums.py b/src/easydiffraction/experiments/categories/background/enums.py index 4d163c52..d7edf42e 100644 --- a/src/easydiffraction/experiments/categories/background/enums.py +++ b/src/easydiffraction/experiments/categories/background/enums.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Enumerations for background model types.""" diff --git a/src/easydiffraction/experiments/categories/background/factory.py b/src/easydiffraction/experiments/categories/background/factory.py index 13193a36..716260f4 100644 --- a/src/easydiffraction/experiments/categories/background/factory.py +++ b/src/easydiffraction/experiments/categories/background/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Background collection entry point (public facade). diff --git a/src/easydiffraction/experiments/categories/background/line_segment.py b/src/easydiffraction/experiments/categories/background/line_segment.py index d5141340..bf202ce3 100644 --- a/src/easydiffraction/experiments/categories/background/line_segment.py +++ b/src/easydiffraction/experiments/categories/background/line_segment.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Line-segment background model. diff --git a/src/easydiffraction/experiments/categories/data/bragg_pd.py b/src/easydiffraction/experiments/categories/data/bragg_pd.py index db3752b3..47bdf1cb 100644 --- a/src/easydiffraction/experiments/categories/data/bragg_pd.py +++ b/src/easydiffraction/experiments/categories/data/bragg_pd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/categories/data/bragg_sc.py b/src/easydiffraction/experiments/categories/data/bragg_sc.py index 5b10a854..f738b2df 100644 --- a/src/easydiffraction/experiments/categories/data/bragg_sc.py +++ b/src/easydiffraction/experiments/categories/data/bragg_sc.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/categories/data/factory.py b/src/easydiffraction/experiments/categories/data/factory.py index 5f1e5da9..2d60560c 100644 --- a/src/easydiffraction/experiments/categories/data/factory.py +++ b/src/easydiffraction/experiments/categories/data/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/categories/data/total.py b/src/easydiffraction/experiments/categories/data/total.py index cb791432..5dc69b9d 100644 --- a/src/easydiffraction/experiments/categories/data/total.py +++ b/src/easydiffraction/experiments/categories/data/total.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Data categories for total scattering (PDF) experiments.""" diff --git a/src/easydiffraction/experiments/categories/excluded_regions.py b/src/easydiffraction/experiments/categories/excluded_regions.py index cc8ea895..0ebce0a4 100644 --- a/src/easydiffraction/experiments/categories/excluded_regions.py +++ b/src/easydiffraction/experiments/categories/excluded_regions.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Exclude ranges of x from fitting/plotting (masked regions).""" diff --git a/src/easydiffraction/experiments/categories/experiment_type.py b/src/easydiffraction/experiments/categories/experiment_type.py index 2baccf8d..babe82ee 100644 --- a/src/easydiffraction/experiments/categories/experiment_type.py +++ b/src/easydiffraction/experiments/categories/experiment_type.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Experiment type descriptor (form, beam, probe, scattering). diff --git a/src/easydiffraction/experiments/categories/instrument/__init__.py b/src/easydiffraction/experiments/categories/instrument/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/experiments/categories/instrument/__init__.py +++ b/src/easydiffraction/experiments/categories/instrument/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/categories/instrument/base.py b/src/easydiffraction/experiments/categories/instrument/base.py index 8e2fa17b..0d1c04d5 100644 --- a/src/easydiffraction/experiments/categories/instrument/base.py +++ b/src/easydiffraction/experiments/categories/instrument/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Instrument category base definitions for CWL/TOF instruments. diff --git a/src/easydiffraction/experiments/categories/instrument/cwl.py b/src/easydiffraction/experiments/categories/instrument/cwl.py index e7d0c9cb..0653f93c 100644 --- a/src/easydiffraction/experiments/categories/instrument/cwl.py +++ b/src/easydiffraction/experiments/categories/instrument/cwl.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.parameters import Parameter diff --git a/src/easydiffraction/experiments/categories/instrument/factory.py b/src/easydiffraction/experiments/categories/instrument/factory.py index db1c72ff..443957a1 100644 --- a/src/easydiffraction/experiments/categories/instrument/factory.py +++ b/src/easydiffraction/experiments/categories/instrument/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Factory for instrument category items. diff --git a/src/easydiffraction/experiments/categories/instrument/tof.py b/src/easydiffraction/experiments/categories/instrument/tof.py index 981a57e3..ede52d3c 100644 --- a/src/easydiffraction/experiments/categories/instrument/tof.py +++ b/src/easydiffraction/experiments/categories/instrument/tof.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.parameters import Parameter diff --git a/src/easydiffraction/experiments/categories/linked_phases.py b/src/easydiffraction/experiments/categories/linked_phases.py index 2db800fd..3ff827d5 100644 --- a/src/easydiffraction/experiments/categories/linked_phases.py +++ b/src/easydiffraction/experiments/categories/linked_phases.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Linked phases allow combining phases with scale factors.""" diff --git a/src/easydiffraction/experiments/categories/peak/__init__.py b/src/easydiffraction/experiments/categories/peak/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/experiments/categories/peak/__init__.py +++ b/src/easydiffraction/experiments/categories/peak/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/experiments/categories/peak/base.py b/src/easydiffraction/experiments/categories/peak/base.py index ce8030b9..5f2654a7 100644 --- a/src/easydiffraction/experiments/categories/peak/base.py +++ b/src/easydiffraction/experiments/categories/peak/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Base class for peak profile categories.""" diff --git a/src/easydiffraction/experiments/categories/peak/cwl.py b/src/easydiffraction/experiments/categories/peak/cwl.py index 9170c1dc..76777a44 100644 --- a/src/easydiffraction/experiments/categories/peak/cwl.py +++ b/src/easydiffraction/experiments/categories/peak/cwl.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Constant-wavelength peak profile classes.""" diff --git a/src/easydiffraction/experiments/categories/peak/cwl_mixins.py b/src/easydiffraction/experiments/categories/peak/cwl_mixins.py index f35e4ac1..47d48636 100644 --- a/src/easydiffraction/experiments/categories/peak/cwl_mixins.py +++ b/src/easydiffraction/experiments/categories/peak/cwl_mixins.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Constant-wavelength (CWL) peak-profile mixins. diff --git a/src/easydiffraction/experiments/categories/peak/factory.py b/src/easydiffraction/experiments/categories/peak/factory.py index d96092e9..a0aabf10 100644 --- a/src/easydiffraction/experiments/categories/peak/factory.py +++ b/src/easydiffraction/experiments/categories/peak/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typing import Optional diff --git a/src/easydiffraction/experiments/categories/peak/tof.py b/src/easydiffraction/experiments/categories/peak/tof.py index c6a44512..b38c4548 100644 --- a/src/easydiffraction/experiments/categories/peak/tof.py +++ b/src/easydiffraction/experiments/categories/peak/tof.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Time-of-flight peak profile classes.""" diff --git a/src/easydiffraction/experiments/categories/peak/tof_mixins.py b/src/easydiffraction/experiments/categories/peak/tof_mixins.py index 47fd4e41..ca459754 100644 --- a/src/easydiffraction/experiments/categories/peak/tof_mixins.py +++ b/src/easydiffraction/experiments/categories/peak/tof_mixins.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Time-of-flight (TOF) peak-profile mixins. diff --git a/src/easydiffraction/experiments/categories/peak/total.py b/src/easydiffraction/experiments/categories/peak/total.py index 3b843c2e..e1f7c28c 100644 --- a/src/easydiffraction/experiments/categories/peak/total.py +++ b/src/easydiffraction/experiments/categories/peak/total.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Total-scattering (PDF) peak profile classes.""" diff --git a/src/easydiffraction/experiments/categories/peak/total_mixins.py b/src/easydiffraction/experiments/categories/peak/total_mixins.py index 4d9b5877..03907ffa 100644 --- a/src/easydiffraction/experiments/categories/peak/total_mixins.py +++ b/src/easydiffraction/experiments/categories/peak/total_mixins.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Total scattering/PDF peak-profile mixins. diff --git a/src/easydiffraction/experiments/experiment/__init__.py b/src/easydiffraction/experiments/experiment/__init__.py index 23232375..a2a39eea 100644 --- a/src/easydiffraction/experiments/experiment/__init__.py +++ b/src/easydiffraction/experiments/experiment/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.experiments.experiment.base import ExperimentBase diff --git a/src/easydiffraction/experiments/experiment/base.py b/src/easydiffraction/experiments/experiment/base.py index 8acc9c5f..35ed7b1d 100644 --- a/src/easydiffraction/experiments/experiment/base.py +++ b/src/easydiffraction/experiments/experiment/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/experiment/bragg_pd.py b/src/easydiffraction/experiments/experiment/bragg_pd.py index 37e543c2..3821419a 100644 --- a/src/easydiffraction/experiments/experiment/bragg_pd.py +++ b/src/easydiffraction/experiments/experiment/bragg_pd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/experiment/bragg_sc.py b/src/easydiffraction/experiments/experiment/bragg_sc.py index d5e069da..6b95d559 100644 --- a/src/easydiffraction/experiments/experiment/bragg_sc.py +++ b/src/easydiffraction/experiments/experiment/bragg_sc.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Single crystal experiment types and helpers.""" diff --git a/src/easydiffraction/experiments/experiment/enums.py b/src/easydiffraction/experiments/experiment/enums.py index ca235c0e..b15220fe 100644 --- a/src/easydiffraction/experiments/experiment/enums.py +++ b/src/easydiffraction/experiments/experiment/enums.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Enumerations for experiment configuration (forms, modes, types).""" diff --git a/src/easydiffraction/experiments/experiment/factory.py b/src/easydiffraction/experiments/experiment/factory.py index 11b148c8..0db5e347 100644 --- a/src/easydiffraction/experiments/experiment/factory.py +++ b/src/easydiffraction/experiments/experiment/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/experiment/instrument_mixin.py b/src/easydiffraction/experiments/experiment/instrument_mixin.py index 0b32c769..c83c07bc 100644 --- a/src/easydiffraction/experiments/experiment/instrument_mixin.py +++ b/src/easydiffraction/experiments/experiment/instrument_mixin.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/experiment/total_pd.py b/src/easydiffraction/experiments/experiment/total_pd.py index 6e4c3c88..2f2f5f89 100644 --- a/src/easydiffraction/experiments/experiment/total_pd.py +++ b/src/easydiffraction/experiments/experiment/total_pd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/experiments/experiments.py b/src/easydiffraction/experiments/experiments.py index 94489bcf..9f58a3b7 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typeguard import typechecked diff --git a/src/easydiffraction/io/__init__.py b/src/easydiffraction/io/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/io/__init__.py +++ b/src/easydiffraction/io/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/io/cif/__init__.py b/src/easydiffraction/io/cif/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/io/cif/__init__.py +++ b/src/easydiffraction/io/cif/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/io/cif/handler.py b/src/easydiffraction/io/cif/handler.py index a21ae16e..16ed4343 100644 --- a/src/easydiffraction/io/cif/handler.py +++ b/src/easydiffraction/io/cif/handler.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Minimal CIF tag handler used by descriptors/parameters.""" diff --git a/src/easydiffraction/io/cif/parse.py b/src/easydiffraction/io/cif/parse.py index a950d99f..ad0d736d 100644 --- a/src/easydiffraction/io/cif/parse.py +++ b/src/easydiffraction/io/cif/parse.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import gemmi diff --git a/src/easydiffraction/io/cif/serialize.py b/src/easydiffraction/io/cif/serialize.py index 5dc097e1..877f6ab1 100644 --- a/src/easydiffraction/io/cif/serialize.py +++ b/src/easydiffraction/io/cif/serialize.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/project/__init__.py b/src/easydiffraction/project/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/project/__init__.py +++ b/src/easydiffraction/project/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/project/project.py b/src/easydiffraction/project/project.py index f09e94cd..980f680b 100644 --- a/src/easydiffraction/project/project.py +++ b/src/easydiffraction/project/project.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Project facade to orchestrate models, experiments, and analysis.""" diff --git a/src/easydiffraction/project/project_info.py b/src/easydiffraction/project/project_info.py index 13efafbe..998ba200 100644 --- a/src/easydiffraction/project/project_info.py +++ b/src/easydiffraction/project/project_info.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Project metadata container used by Project.""" diff --git a/src/easydiffraction/sample_models/__init__.py b/src/easydiffraction/sample_models/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/sample_models/__init__.py +++ b/src/easydiffraction/sample_models/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/sample_models/categories/__init__.py b/src/easydiffraction/sample_models/categories/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/sample_models/categories/__init__.py +++ b/src/easydiffraction/sample_models/categories/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/sample_models/categories/atom_sites.py b/src/easydiffraction/sample_models/categories/atom_sites.py index 5d21b05d..955c62df 100644 --- a/src/easydiffraction/sample_models/categories/atom_sites.py +++ b/src/easydiffraction/sample_models/categories/atom_sites.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Atom site category. diff --git a/src/easydiffraction/sample_models/categories/cell.py b/src/easydiffraction/sample_models/categories/cell.py index b09785e1..80c0b144 100644 --- a/src/easydiffraction/sample_models/categories/cell.py +++ b/src/easydiffraction/sample_models/categories/cell.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Unit cell parameters category for sample models.""" diff --git a/src/easydiffraction/sample_models/categories/space_group.py b/src/easydiffraction/sample_models/categories/space_group.py index 5b5f2f45..3e726b17 100644 --- a/src/easydiffraction/sample_models/categories/space_group.py +++ b/src/easydiffraction/sample_models/categories/space_group.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Space group category for crystallographic sample models.""" diff --git a/src/easydiffraction/sample_models/sample_model/__init__.py b/src/easydiffraction/sample_models/sample_model/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/sample_models/sample_model/__init__.py +++ b/src/easydiffraction/sample_models/sample_model/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/sample_models/sample_model/base.py b/src/easydiffraction/sample_models/sample_model/base.py index 844c8684..7ae135de 100644 --- a/src/easydiffraction/sample_models/sample_model/base.py +++ b/src/easydiffraction/sample_models/sample_model/base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.datablock import DatablockItem diff --git a/src/easydiffraction/sample_models/sample_model/factory.py b/src/easydiffraction/sample_models/sample_model/factory.py index 3fa0f91b..7a03b0f0 100644 --- a/src/easydiffraction/sample_models/sample_model/factory.py +++ b/src/easydiffraction/sample_models/sample_model/factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Factory for creating sample models from simple inputs or CIF. diff --git a/src/easydiffraction/sample_models/sample_models.py b/src/easydiffraction/sample_models/sample_models.py index 99277b9b..bb85d2e9 100644 --- a/src/easydiffraction/sample_models/sample_models.py +++ b/src/easydiffraction/sample_models/sample_models.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typeguard import typechecked diff --git a/src/easydiffraction/summary/__init__.py b/src/easydiffraction/summary/__init__.py index 3e95b5e9..429f2648 100644 --- a/src/easydiffraction/summary/__init__.py +++ b/src/easydiffraction/summary/__init__.py @@ -1,2 +1,2 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause diff --git a/src/easydiffraction/summary/summary.py b/src/easydiffraction/summary/summary.py index 28b412d7..7d28c875 100644 --- a/src/easydiffraction/summary/summary.py +++ b/src/easydiffraction/summary/summary.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from textwrap import wrap diff --git a/src/easydiffraction/utils/__init__.py b/src/easydiffraction/utils/__init__.py index 4122cfb2..e40e0816 100644 --- a/src/easydiffraction/utils/__init__.py +++ b/src/easydiffraction/utils/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.utils.utils import _is_dev_version diff --git a/src/easydiffraction/utils/_vendored/__init__.py b/src/easydiffraction/utils/_vendored/__init__.py index 45731a5e..20506363 100644 --- a/src/easydiffraction/utils/_vendored/__init__.py +++ b/src/easydiffraction/utils/_vendored/__init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Vendored third-party modules. diff --git a/src/easydiffraction/utils/_vendored/theme_detect.py b/src/easydiffraction/utils/_vendored/theme_detect.py index 0f39fc40..d45b268a 100644 --- a/src/easydiffraction/utils/_vendored/theme_detect.py +++ b/src/easydiffraction/utils/_vendored/theme_detect.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Jupyter theme detection with custom detection order. diff --git a/src/easydiffraction/utils/environment.py b/src/easydiffraction/utils/environment.py index 1a52d07f..aa7de5a6 100644 --- a/src/easydiffraction/utils/environment.py +++ b/src/easydiffraction/utils/environment.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/src/easydiffraction/utils/logging.py b/src/easydiffraction/utils/logging.py index 890ff134..056d650b 100644 --- a/src/easydiffraction/utils/logging.py +++ b/src/easydiffraction/utils/logging.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause """Project-wide logging utilities built on top of Rich. diff --git a/src/easydiffraction/utils/utils.py b/src/easydiffraction/utils/utils.py index 5c07da92..13b90b16 100644 --- a/src/easydiffraction/utils/utils.py +++ b/src/easydiffraction/utils/utils.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from __future__ import annotations diff --git a/tests/integration/fitting/test_pair-distribution-function.py b/tests/integration/fitting/test_pair-distribution-function.py index 6235b3c7..6af36e52 100644 --- a/tests/integration/fitting/test_pair-distribution-function.py +++ b/tests/integration/fitting/test_pair-distribution-function.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import tempfile diff --git a/tests/integration/fitting/test_powder-diffraction_constant-wavelength.py b/tests/integration/fitting/test_powder-diffraction_constant-wavelength.py index 6c8c689c..bba3b2d2 100644 --- a/tests/integration/fitting/test_powder-diffraction_constant-wavelength.py +++ b/tests/integration/fitting/test_powder-diffraction_constant-wavelength.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import tempfile diff --git a/tests/integration/fitting/test_powder-diffraction_joint-fit.py b/tests/integration/fitting/test_powder-diffraction_joint-fit.py index e22b74c4..904b2e1c 100644 --- a/tests/integration/fitting/test_powder-diffraction_joint-fit.py +++ b/tests/integration/fitting/test_powder-diffraction_joint-fit.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import tempfile diff --git a/tests/integration/fitting/test_powder-diffraction_multiphase.py b/tests/integration/fitting/test_powder-diffraction_multiphase.py index aed73b2d..2880eb2b 100644 --- a/tests/integration/fitting/test_powder-diffraction_multiphase.py +++ b/tests/integration/fitting/test_powder-diffraction_multiphase.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import tempfile diff --git a/tests/integration/fitting/test_powder-diffraction_time-of-flight.py b/tests/integration/fitting/test_powder-diffraction_time-of-flight.py index e161ffba..129fb7ff 100644 --- a/tests/integration/fitting/test_powder-diffraction_time-of-flight.py +++ b/tests/integration/fitting/test_powder-diffraction_time-of-flight.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import os diff --git a/tests/integration/scipp-analysis/dream/test_scipp-cif.py b/tests/integration/scipp-analysis/dream/test_scipp-cif.py index 144fff62..15a49b6f 100644 --- a/tests/integration/scipp-analysis/dream/test_scipp-cif.py +++ b/tests/integration/scipp-analysis/dream/test_scipp-cif.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/analysis/calculators/test_base.py b/tests/unit/easydiffraction/analysis/calculators/test_base.py index e1d4bdab..6483af6e 100644 --- a/tests/unit/easydiffraction/analysis/calculators/test_base.py +++ b/tests/unit/easydiffraction/analysis/calculators/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/analysis/calculators/test_crysfml.py b/tests/unit/easydiffraction/analysis/calculators/test_crysfml.py index d0eea743..866d4008 100644 --- a/tests/unit/easydiffraction/analysis/calculators/test_crysfml.py +++ b/tests/unit/easydiffraction/analysis/calculators/test_crysfml.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py b/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py index f1bfd927..9289c15e 100644 --- a/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py +++ b/tests/unit/easydiffraction/analysis/calculators/test_cryspy.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/analysis/calculators/test_factory.py b/tests/unit/easydiffraction/analysis/calculators/test_factory.py index 2fed1816..7cf9fc25 100644 --- a/tests/unit/easydiffraction/analysis/calculators/test_factory.py +++ b/tests/unit/easydiffraction/analysis/calculators/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_list_and_show_supported_calculators_do_not_crash(capsys, monkeypatch): diff --git a/tests/unit/easydiffraction/analysis/calculators/test_pdffit.py b/tests/unit/easydiffraction/analysis/calculators/test_pdffit.py index 9ea0b0cb..e7662d43 100644 --- a/tests/unit/easydiffraction/analysis/calculators/test_pdffit.py +++ b/tests/unit/easydiffraction/analysis/calculators/test_pdffit.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/analysis/categories/test_aliases.py b/tests/unit/easydiffraction/analysis/categories/test_aliases.py index b85ebd3b..73c7b9ab 100644 --- a/tests/unit/easydiffraction/analysis/categories/test_aliases.py +++ b/tests/unit/easydiffraction/analysis/categories/test_aliases.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.analysis.categories.aliases import Alias diff --git a/tests/unit/easydiffraction/analysis/categories/test_constraints.py b/tests/unit/easydiffraction/analysis/categories/test_constraints.py index 23d19e45..542a9f52 100644 --- a/tests/unit/easydiffraction/analysis/categories/test_constraints.py +++ b/tests/unit/easydiffraction/analysis/categories/test_constraints.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.analysis.categories.constraints import Constraint diff --git a/tests/unit/easydiffraction/analysis/categories/test_joint_fit_experiments.py b/tests/unit/easydiffraction/analysis/categories/test_joint_fit_experiments.py index 737f6eb7..6a134ea0 100644 --- a/tests/unit/easydiffraction/analysis/categories/test_joint_fit_experiments.py +++ b/tests/unit/easydiffraction/analysis/categories/test_joint_fit_experiments.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.analysis.categories.joint_fit_experiments import JointFitExperiment diff --git a/tests/unit/easydiffraction/analysis/fit_helpers/test_metrics.py b/tests/unit/easydiffraction/analysis/fit_helpers/test_metrics.py index 63ec75ac..2af9f167 100644 --- a/tests/unit/easydiffraction/analysis/fit_helpers/test_metrics.py +++ b/tests/unit/easydiffraction/analysis/fit_helpers/test_metrics.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/analysis/fit_helpers/test_reporting.py b/tests/unit/easydiffraction/analysis/fit_helpers/test_reporting.py index fcc55f54..458519ce 100644 --- a/tests/unit/easydiffraction/analysis/fit_helpers/test_reporting.py +++ b/tests/unit/easydiffraction/analysis/fit_helpers/test_reporting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/analysis/fit_helpers/test_tracking.py b/tests/unit/easydiffraction/analysis/fit_helpers/test_tracking.py index 8bef6ead..bf3873ab 100644 --- a/tests/unit/easydiffraction/analysis/fit_helpers/test_tracking.py +++ b/tests/unit/easydiffraction/analysis/fit_helpers/test_tracking.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/analysis/minimizers/test_base.py b/tests/unit/easydiffraction/analysis/minimizers/test_base.py index d608bdc2..dca36ee1 100644 --- a/tests/unit/easydiffraction/analysis/minimizers/test_base.py +++ b/tests/unit/easydiffraction/analysis/minimizers/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/analysis/minimizers/test_dfols.py b/tests/unit/easydiffraction/analysis/minimizers/test_dfols.py index b3bb4e03..f0a9ea9d 100644 --- a/tests/unit/easydiffraction/analysis/minimizers/test_dfols.py +++ b/tests/unit/easydiffraction/analysis/minimizers/test_dfols.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/analysis/minimizers/test_factory.py b/tests/unit/easydiffraction/analysis/minimizers/test_factory.py index a429342d..940143a6 100644 --- a/tests/unit/easydiffraction/analysis/minimizers/test_factory.py +++ b/tests/unit/easydiffraction/analysis/minimizers/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_minimizer_factory_list_and_show(capsys): diff --git a/tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py b/tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py index e7322bcd..c2385ee4 100644 --- a/tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py +++ b/tests/unit/easydiffraction/analysis/minimizers/test_lmfit.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import types diff --git a/tests/unit/easydiffraction/analysis/test_analysis.py b/tests/unit/easydiffraction/analysis/test_analysis.py index b99502e1..4a16d206 100644 --- a/tests/unit/easydiffraction/analysis/test_analysis.py +++ b/tests/unit/easydiffraction/analysis/test_analysis.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/analysis/test_analysis_access_params.py b/tests/unit/easydiffraction/analysis/test_analysis_access_params.py index 18de9834..df8827ea 100644 --- a/tests/unit/easydiffraction/analysis/test_analysis_access_params.py +++ b/tests/unit/easydiffraction/analysis/test_analysis_access_params.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_how_to_access_parameters_prints_paths_and_uids(capsys, monkeypatch): diff --git a/tests/unit/easydiffraction/analysis/test_analysis_show_empty.py b/tests/unit/easydiffraction/analysis/test_analysis_show_empty.py index 473437b2..8503398c 100644 --- a/tests/unit/easydiffraction/analysis/test_analysis_show_empty.py +++ b/tests/unit/easydiffraction/analysis/test_analysis_show_empty.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_show_params_empty_branches(capsys): diff --git a/tests/unit/easydiffraction/analysis/test_fitting.py b/tests/unit/easydiffraction/analysis/test_fitting.py index 15899c2c..990cabaf 100644 --- a/tests/unit/easydiffraction/analysis/test_fitting.py +++ b/tests/unit/easydiffraction/analysis/test_fitting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/core/test_category.py b/tests/unit/easydiffraction/core/test_category.py index 7452e3c1..6143c479 100644 --- a/tests/unit/easydiffraction/core/test_category.py +++ b/tests/unit/easydiffraction/core/test_category.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.core.category import CategoryCollection diff --git a/tests/unit/easydiffraction/core/test_collection.py b/tests/unit/easydiffraction/core/test_collection.py index b8388f68..9d89afea 100644 --- a/tests/unit/easydiffraction/core/test_collection.py +++ b/tests/unit/easydiffraction/core/test_collection.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_collection_add_get_delete_and_names(): diff --git a/tests/unit/easydiffraction/core/test_datablock.py b/tests/unit/easydiffraction/core/test_datablock.py index 30ce174b..91d35663 100644 --- a/tests/unit/easydiffraction/core/test_datablock.py +++ b/tests/unit/easydiffraction/core/test_datablock.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_datablock_collection_add_and_filters_with_real_parameters(): diff --git a/tests/unit/easydiffraction/core/test_diagnostic.py b/tests/unit/easydiffraction/core/test_diagnostic.py index ffb11457..98e96320 100644 --- a/tests/unit/easydiffraction/core/test_diagnostic.py +++ b/tests/unit/easydiffraction/core/test_diagnostic.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/core/test_factory.py b/tests/unit/easydiffraction/core/test_factory.py index 040232ca..22ffad86 100644 --- a/tests/unit/easydiffraction/core/test_factory.py +++ b/tests/unit/easydiffraction/core/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/core/test_guard.py b/tests/unit/easydiffraction/core/test_guard.py index 9f9e9a90..1cd9dd15 100644 --- a/tests/unit/easydiffraction/core/test_guard.py +++ b/tests/unit/easydiffraction/core/test_guard.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/core/test_identity.py b/tests/unit/easydiffraction/core/test_identity.py index 1093e872..584135d7 100644 --- a/tests/unit/easydiffraction/core/test_identity.py +++ b/tests/unit/easydiffraction/core/test_identity.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_identity_direct_and_parent_resolution(): diff --git a/tests/unit/easydiffraction/core/test_parameters.py b/tests/unit/easydiffraction/core/test_parameters.py index 31325ff6..d16603b8 100644 --- a/tests/unit/easydiffraction/core/test_parameters.py +++ b/tests/unit/easydiffraction/core/test_parameters.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/core/test_singletons.py b/tests/unit/easydiffraction/core/test_singletons.py index 96faecf8..d2f8fa3a 100644 --- a/tests/unit/easydiffraction/core/test_singletons.py +++ b/tests/unit/easydiffraction/core/test_singletons.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/core/test_validation.py b/tests/unit/easydiffraction/core/test_validation.py index 4a07121a..64150f33 100644 --- a/tests/unit/easydiffraction/core/test_validation.py +++ b/tests/unit/easydiffraction/core/test_validation.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/crystallography/test_crystallography.py b/tests/unit/easydiffraction/crystallography/test_crystallography.py index 46bb1538..3c2bf7df 100644 --- a/tests/unit/easydiffraction/crystallography/test_crystallography.py +++ b/tests/unit/easydiffraction/crystallography/test_crystallography.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/crystallography/test_space_groups.py b/tests/unit/easydiffraction/crystallography/test_space_groups.py index 637212e3..5629f633 100644 --- a/tests/unit/easydiffraction/crystallography/test_space_groups.py +++ b/tests/unit/easydiffraction/crystallography/test_space_groups.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/display/plotters/test_ascii.py b/tests/unit/easydiffraction/display/plotters/test_ascii.py index 7aab6219..1ad07bd3 100644 --- a/tests/unit/easydiffraction/display/plotters/test_ascii.py +++ b/tests/unit/easydiffraction/display/plotters/test_ascii.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/display/plotters/test_base.py b/tests/unit/easydiffraction/display/plotters/test_base.py index df2ab68a..ecc241c6 100644 --- a/tests/unit/easydiffraction/display/plotters/test_base.py +++ b/tests/unit/easydiffraction/display/plotters/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import importlib diff --git a/tests/unit/easydiffraction/display/plotters/test_plotly.py b/tests/unit/easydiffraction/display/plotters/test_plotly.py index 41701d22..f0ea6a61 100644 --- a/tests/unit/easydiffraction/display/plotters/test_plotly.py +++ b/tests/unit/easydiffraction/display/plotters/test_plotly.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/display/test_plotting.py b/tests/unit/easydiffraction/display/test_plotting.py index ac6b05c4..8210f481 100644 --- a/tests/unit/easydiffraction/display/test_plotting.py +++ b/tests/unit/easydiffraction/display/test_plotting.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/experiments/categories/background/test_base.py b/tests/unit/easydiffraction/experiments/categories/background/test_base.py index fc6a5eef..57f1bfeb 100644 --- a/tests/unit/easydiffraction/experiments/categories/background/test_base.py +++ b/tests/unit/easydiffraction/experiments/categories/background/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/categories/background/test_chebyshev.py b/tests/unit/easydiffraction/experiments/categories/background/test_chebyshev.py index 1db96812..d2de6aa7 100644 --- a/tests/unit/easydiffraction/experiments/categories/background/test_chebyshev.py +++ b/tests/unit/easydiffraction/experiments/categories/background/test_chebyshev.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/categories/background/test_enums.py b/tests/unit/easydiffraction/experiments/categories/background/test_enums.py index a7d3b757..4a64fb29 100644 --- a/tests/unit/easydiffraction/experiments/categories/background/test_enums.py +++ b/tests/unit/easydiffraction/experiments/categories/background/test_enums.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_background_enum_default_and_descriptions(): diff --git a/tests/unit/easydiffraction/experiments/categories/background/test_factory.py b/tests/unit/easydiffraction/experiments/categories/background/test_factory.py index 0a282157..57308f95 100644 --- a/tests/unit/easydiffraction/experiments/categories/background/test_factory.py +++ b/tests/unit/easydiffraction/experiments/categories/background/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/experiments/categories/background/test_line_segment.py b/tests/unit/easydiffraction/experiments/categories/background/test_line_segment.py index e25bbfee..483873db 100644 --- a/tests/unit/easydiffraction/experiments/categories/background/test_line_segment.py +++ b/tests/unit/easydiffraction/experiments/categories/background/test_line_segment.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/categories/instrument/test_base.py b/tests/unit/easydiffraction/experiments/categories/instrument/test_base.py index 52ec4d30..047d314b 100644 --- a/tests/unit/easydiffraction/experiments/categories/instrument/test_base.py +++ b/tests/unit/easydiffraction/experiments/categories/instrument/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_instrument_base_sets_category_code(): diff --git a/tests/unit/easydiffraction/experiments/categories/instrument/test_cwl.py b/tests/unit/easydiffraction/experiments/categories/instrument/test_cwl.py index 9898df52..dcefa62e 100644 --- a/tests/unit/easydiffraction/experiments/categories/instrument/test_cwl.py +++ b/tests/unit/easydiffraction/experiments/categories/instrument/test_cwl.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.experiments.categories.instrument.cwl import CwlInstrument diff --git a/tests/unit/easydiffraction/experiments/categories/instrument/test_factory.py b/tests/unit/easydiffraction/experiments/categories/instrument/test_factory.py index 35023d8c..79e97077 100644 --- a/tests/unit/easydiffraction/experiments/categories/instrument/test_factory.py +++ b/tests/unit/easydiffraction/experiments/categories/instrument/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/experiments/categories/instrument/test_tof.py b/tests/unit/easydiffraction/experiments/categories/instrument/test_tof.py index 73008da4..2d4e48b1 100644 --- a/tests/unit/easydiffraction/experiments/categories/instrument/test_tof.py +++ b/tests/unit/easydiffraction/experiments/categories/instrument/test_tof.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_base.py b/tests/unit/easydiffraction/experiments/categories/peak/test_base.py index 5499fc77..737c7e17 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_base.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.experiments.categories.peak.base import PeakBase diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_cwl.py b/tests/unit/easydiffraction/experiments/categories/peak/test_cwl.py index 074e99f1..b3b16d4e 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_cwl.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_cwl.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_cwl_peak_classes_expose_expected_parameters_and_category(): diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_cwl_mixins.py b/tests/unit/easydiffraction/experiments/categories/peak/test_cwl_mixins.py index 99890e31..ffde4deb 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_cwl_mixins.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_cwl_mixins.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.experiments.categories.peak.cwl import CwlPseudoVoigt diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_factory.py b/tests/unit/easydiffraction/experiments/categories/peak/test_factory.py index c9f04490..bc474949 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_factory.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_tof.py b/tests/unit/easydiffraction/experiments/categories/peak/test_tof.py index 138c824c..0ace3beb 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_tof.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_tof.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.experiments.categories.peak.tof import TofPseudoVoigt diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_tof_mixins.py b/tests/unit/easydiffraction/experiments/categories/peak/test_tof_mixins.py index 583b8ffa..c54fdc93 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_tof_mixins.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_tof_mixins.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_total.py b/tests/unit/easydiffraction/experiments/categories/peak/test_total.py index 741018be..7529d875 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_total.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_total.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/categories/peak/test_total_mixins.py b/tests/unit/easydiffraction/experiments/categories/peak/test_total_mixins.py index c7cd6d01..475ab781 100644 --- a/tests/unit/easydiffraction/experiments/categories/peak/test_total_mixins.py +++ b/tests/unit/easydiffraction/experiments/categories/peak/test_total_mixins.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.experiments.categories.peak.total import TotalGaussianDampedSinc diff --git a/tests/unit/easydiffraction/experiments/categories/test_excluded_regions.py b/tests/unit/easydiffraction/experiments/categories/test_excluded_regions.py index d3241bfb..7aa3e833 100644 --- a/tests/unit/easydiffraction/experiments/categories/test_excluded_regions.py +++ b/tests/unit/easydiffraction/experiments/categories/test_excluded_regions.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/categories/test_experiment_type.py b/tests/unit/easydiffraction/experiments/categories/test_experiment_type.py index 8a78444c..429eb419 100644 --- a/tests/unit/easydiffraction/experiments/categories/test_experiment_type.py +++ b/tests/unit/easydiffraction/experiments/categories/test_experiment_type.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/experiments/categories/test_linked_phases.py b/tests/unit/easydiffraction/experiments/categories/test_linked_phases.py index 3f3d1b80..2b7de53c 100644 --- a/tests/unit/easydiffraction/experiments/categories/test_linked_phases.py +++ b/tests/unit/easydiffraction/experiments/categories/test_linked_phases.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_linked_phases_add_and_cif_headers(): diff --git a/tests/unit/easydiffraction/experiments/experiment/test_base.py b/tests/unit/easydiffraction/experiments/experiment/test_base.py index 0178b005..bd781afb 100644 --- a/tests/unit/easydiffraction/experiments/experiment/test_base.py +++ b/tests/unit/easydiffraction/experiments/experiment/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/experiments/experiment/test_bragg_pd.py b/tests/unit/easydiffraction/experiments/experiment/test_bragg_pd.py index cd96f958..f070d4fd 100644 --- a/tests/unit/easydiffraction/experiments/experiment/test_bragg_pd.py +++ b/tests/unit/easydiffraction/experiments/experiment/test_bragg_pd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/experiment/test_bragg_sc.py b/tests/unit/easydiffraction/experiments/experiment/test_bragg_sc.py index b4567ead..bfbb3e0e 100644 --- a/tests/unit/easydiffraction/experiments/experiment/test_bragg_sc.py +++ b/tests/unit/easydiffraction/experiments/experiment/test_bragg_sc.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/experiments/experiment/test_enums.py b/tests/unit/easydiffraction/experiments/experiment/test_enums.py index 2bcce480..2df2dbb5 100644 --- a/tests/unit/easydiffraction/experiments/experiment/test_enums.py +++ b/tests/unit/easydiffraction/experiments/experiment/test_enums.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/experiments/experiment/test_factory.py b/tests/unit/easydiffraction/experiments/experiment/test_factory.py index 61492265..d7838b04 100644 --- a/tests/unit/easydiffraction/experiments/experiment/test_factory.py +++ b/tests/unit/easydiffraction/experiments/experiment/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/experiments/experiment/test_instrument_mixin.py b/tests/unit/easydiffraction/experiments/experiment/test_instrument_mixin.py index fc4c8d76..89975b7d 100644 --- a/tests/unit/easydiffraction/experiments/experiment/test_instrument_mixin.py +++ b/tests/unit/easydiffraction/experiments/experiment/test_instrument_mixin.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/experiments/experiment/test_total_pd.py b/tests/unit/easydiffraction/experiments/experiment/test_total_pd.py index 635c7b65..5a4fe416 100644 --- a/tests/unit/easydiffraction/experiments/experiment/test_total_pd.py +++ b/tests/unit/easydiffraction/experiments/experiment/test_total_pd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/experiments/test_experiments.py b/tests/unit/easydiffraction/experiments/test_experiments.py index 92844bff..89dd874e 100644 --- a/tests/unit/easydiffraction/experiments/test_experiments.py +++ b/tests/unit/easydiffraction/experiments/test_experiments.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/io/cif/test_handler.py b/tests/unit/easydiffraction/io/cif/test_handler.py index a5bf7de2..ea31b833 100644 --- a/tests/unit/easydiffraction/io/cif/test_handler.py +++ b/tests/unit/easydiffraction/io/cif/test_handler.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_cif_handler_names_and_uid(): diff --git a/tests/unit/easydiffraction/io/cif/test_serialize.py b/tests/unit/easydiffraction/io/cif/test_serialize.py index d2bca3ab..2cf82f31 100644 --- a/tests/unit/easydiffraction/io/cif/test_serialize.py +++ b/tests/unit/easydiffraction/io/cif/test_serialize.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/io/cif/test_serialize_more.py b/tests/unit/easydiffraction/io/cif/test_serialize_more.py index 21ee7b66..3c197a75 100644 --- a/tests/unit/easydiffraction/io/cif/test_serialize_more.py +++ b/tests/unit/easydiffraction/io/cif/test_serialize_more.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np diff --git a/tests/unit/easydiffraction/project/test_project.py b/tests/unit/easydiffraction/project/test_project.py index 7fb6e8d6..046a44f0 100644 --- a/tests/unit/easydiffraction/project/test_project.py +++ b/tests/unit/easydiffraction/project/test_project.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/project/test_project_info.py b/tests/unit/easydiffraction/project/test_project_info.py index 88116d81..ef8b061f 100644 --- a/tests/unit/easydiffraction/project/test_project_info.py +++ b/tests/unit/easydiffraction/project/test_project_info.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/project/test_project_load_and_summary_wrap.py b/tests/unit/easydiffraction/project/test_project_load_and_summary_wrap.py index 8753b775..d3e0b2d6 100644 --- a/tests/unit/easydiffraction/project/test_project_load_and_summary_wrap.py +++ b/tests/unit/easydiffraction/project/test_project_load_and_summary_wrap.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_project_load_prints_and_sets_path(tmp_path, capsys): diff --git a/tests/unit/easydiffraction/project/test_project_save.py b/tests/unit/easydiffraction/project/test_project_save.py index 47941f27..2879f85c 100644 --- a/tests/unit/easydiffraction/project/test_project_save.py +++ b/tests/unit/easydiffraction/project/test_project_save.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_project_save_uses_cwd_when_no_explicit_path(monkeypatch, tmp_path, capsys): diff --git a/tests/unit/easydiffraction/sample_models/categories/test_atom_sites.py b/tests/unit/easydiffraction/sample_models/categories/test_atom_sites.py index 172769c4..db4c22ed 100644 --- a/tests/unit/easydiffraction/sample_models/categories/test_atom_sites.py +++ b/tests/unit/easydiffraction/sample_models/categories/test_atom_sites.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.sample_models.categories.atom_sites import AtomSite diff --git a/tests/unit/easydiffraction/sample_models/categories/test_cell.py b/tests/unit/easydiffraction/sample_models/categories/test_cell.py index aade56db..8de1da42 100644 --- a/tests/unit/easydiffraction/sample_models/categories/test_cell.py +++ b/tests/unit/easydiffraction/sample_models/categories/test_cell.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/sample_models/categories/test_space_group.py b/tests/unit/easydiffraction/sample_models/categories/test_space_group.py index 02136c14..d1a0238c 100644 --- a/tests/unit/easydiffraction/sample_models/categories/test_space_group.py +++ b/tests/unit/easydiffraction/sample_models/categories/test_space_group.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.sample_models.categories.space_group import SpaceGroup diff --git a/tests/unit/easydiffraction/sample_models/sample_model/test_base.py b/tests/unit/easydiffraction/sample_models/sample_model/test_base.py index 941e0af9..61c4b3db 100644 --- a/tests/unit/easydiffraction/sample_models/sample_model/test_base.py +++ b/tests/unit/easydiffraction/sample_models/sample_model/test_base.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from easydiffraction.sample_models.sample_model.base import SampleModelBase diff --git a/tests/unit/easydiffraction/sample_models/sample_model/test_factory.py b/tests/unit/easydiffraction/sample_models/sample_model/test_factory.py index f6d7e694..aa9fd9a0 100644 --- a/tests/unit/easydiffraction/sample_models/sample_model/test_factory.py +++ b/tests/unit/easydiffraction/sample_models/sample_model/test_factory.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/sample_models/test_sample_models.py b/tests/unit/easydiffraction/sample_models/test_sample_models.py index 014336b8..eed0ea84 100644 --- a/tests/unit/easydiffraction/sample_models/test_sample_models.py +++ b/tests/unit/easydiffraction/sample_models/test_sample_models.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import pytest diff --git a/tests/unit/easydiffraction/summary/test_summary.py b/tests/unit/easydiffraction/summary/test_summary.py index 6a25c3ff..e6388cbf 100644 --- a/tests/unit/easydiffraction/summary/test_summary.py +++ b/tests/unit/easydiffraction/summary/test_summary.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_summary_as_cif_returns_placeholder_string(): diff --git a/tests/unit/easydiffraction/summary/test_summary_details.py b/tests/unit/easydiffraction/summary/test_summary_details.py index fb32eafc..8965c5ed 100644 --- a/tests/unit/easydiffraction/summary/test_summary_details.py +++ b/tests/unit/easydiffraction/summary/test_summary_details.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_summary_crystallographic_and_experimental_sections(capsys): diff --git a/tests/unit/easydiffraction/test___init__.py b/tests/unit/easydiffraction/test___init__.py index 76426314..714ffc4d 100644 --- a/tests/unit/easydiffraction/test___init__.py +++ b/tests/unit/easydiffraction/test___init__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause # Focused tests for package __init__: lazy attributes and error path diff --git a/tests/unit/easydiffraction/test___main__.py b/tests/unit/easydiffraction/test___main__.py index 0ac113a0..885f73ef 100644 --- a/tests/unit/easydiffraction/test___main__.py +++ b/tests/unit/easydiffraction/test___main__.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause from typer.testing import CliRunner diff --git a/tests/unit/easydiffraction/utils/test_logging.py b/tests/unit/easydiffraction/utils/test_logging.py index 25b43b24..8503e178 100644 --- a/tests/unit/easydiffraction/utils/test_logging.py +++ b/tests/unit/easydiffraction/utils/test_logging.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause def test_module_import(): diff --git a/tests/unit/easydiffraction/utils/test_theme_detect.py b/tests/unit/easydiffraction/utils/test_theme_detect.py index ff0acfe6..e9899fb9 100644 --- a/tests/unit/easydiffraction/utils/test_theme_detect.py +++ b/tests/unit/easydiffraction/utils/test_theme_detect.py @@ -1,5 +1,6 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause + """Unit tests for theme detection module.""" from __future__ import annotations diff --git a/tests/unit/easydiffraction/utils/test_utils.py b/tests/unit/easydiffraction/utils/test_utils.py index 278b7918..183178bd 100644 --- a/tests/unit/easydiffraction/utils/test_utils.py +++ b/tests/unit/easydiffraction/utils/test_utils.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 EasyDiffraction contributors +# SPDX-FileCopyrightText: 2021-2026 EasyDiffraction contributors # SPDX-License-Identifier: BSD-3-Clause import numpy as np From 5c2b3e7d403044989ff25df226688a43502e24f6 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 12:12:15 +0100 Subject: [PATCH 04/11] Skips SPDX header for vendored jupyter_dark_detect --- tools/update_spdx.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tools/update_spdx.py b/tools/update_spdx.py index ebfe7299..df9236af 100644 --- a/tools/update_spdx.py +++ b/tools/update_spdx.py @@ -5,6 +5,7 @@ """ import datetime +import fnmatch import re from pathlib import Path @@ -15,6 +16,17 @@ ) LICENSE_TEXT = '# SPDX-License-Identifier: BSD-3-Clause' +# Patterns to exclude from SPDX header updates (vendored code) +EXCLUDE_PATTERNS = [ + '*/_vendored/jupyter_dark_detect/*', +] + + +def should_exclude(file_path: Path) -> bool: + """Check if a file should be excluded from SPDX header updates.""" + path_str = str(file_path) + return any(fnmatch.fnmatch(path_str, pattern) for pattern in EXCLUDE_PATTERNS) + def update_spdx_header(file_path: Path): # Use Path.open to satisfy lint rule PTH123. @@ -88,6 +100,8 @@ def main(): """ for base_dir in ('src', 'tests'): for py_file in Path(base_dir).rglob('*.py'): + if should_exclude(py_file): + continue update_spdx_header(py_file) From 31786a5120d6725b03a4ae64d7a37818df4ebab2 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 12:25:58 +0100 Subject: [PATCH 05/11] Update pyproject.toml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c366ca06..b403fb60 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -77,7 +77,7 @@ docs = [ ] visualization = [ 'darkdetect', # Detecting dark mode (system-level) - 'pandas', # Displaying tables in juptyer notebooks + 'pandas', # Displaying tables in Jupyter notebooks 'plotly', # Interactive plots 'py3Dmol', # Visualisation of crystal structures ] From cb491c7183a4f0e707c67949aea92d05aeadb72a Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 12:27:58 +0100 Subject: [PATCH 06/11] Excludes vendored code from analysis and coverage --- .codefactor.yml | 6 ++++++ codecov.yml | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 .codefactor.yml create mode 100644 codecov.yml diff --git a/.codefactor.yml b/.codefactor.yml new file mode 100644 index 00000000..cf03fe7f --- /dev/null +++ b/.codefactor.yml @@ -0,0 +1,6 @@ +# CodeFactor configuration +# https://support.codefactor.io/i14-ignore-files-or-folders + +exclude_paths: + # Vendored third-party code - keep as-is from upstream + - 'src/easydiffraction/utils/_vendored/jupyter_dark_detect/**' diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 00000000..7910cb9f --- /dev/null +++ b/codecov.yml @@ -0,0 +1,17 @@ +# Codecov configuration +# https://docs.codecov.com/docs/codecovyml-reference + +coverage: + status: + project: + default: + # Allow small coverage decrease (vendored code adds uncovered lines) + threshold: 0.5% + patch: + default: + # Lower threshold for patches containing vendored code + threshold: 0.5% + +ignore: + # Vendored third-party code - not our code to test + - 'src/easydiffraction/utils/_vendored/jupyter_dark_detect/**' From 1d643ea2b7bc86a291c6df6380e819665e1fc08e Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 12:32:50 +0100 Subject: [PATCH 07/11] Simplifies dark-mode detection fallback behavior --- src/easydiffraction/utils/_vendored/theme_detect.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/easydiffraction/utils/_vendored/theme_detect.py b/src/easydiffraction/utils/_vendored/theme_detect.py index d45b268a..1d555f0a 100644 --- a/src/easydiffraction/utils/_vendored/theme_detect.py +++ b/src/easydiffraction/utils/_vendored/theme_detect.py @@ -70,12 +70,10 @@ def is_dark() -> bool: return result # System preferences as last resort - result = _check_system_preferences() - if result is not None: - return result - - # Default to light mode if nothing detected - return False + # Returns True (dark), False (light), or None (unknown) + # Default to light mode (False) if nothing detected + system_result = _check_system_preferences() + return system_result if system_result is not None else False def get_detection_result() -> dict[str, Optional[bool]]: From d9421e89c7d662c4b017d8ec3dc469609c4769b3 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 12:37:32 +0100 Subject: [PATCH 08/11] Make vendored code exclusions more robust --- .codefactor.yml | 3 +++ codecov.yml | 9 +++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.codefactor.yml b/.codefactor.yml index cf03fe7f..cdb1f100 100644 --- a/.codefactor.yml +++ b/.codefactor.yml @@ -3,4 +3,7 @@ exclude_paths: # Vendored third-party code - keep as-is from upstream + - 'src/easydiffraction/utils/_vendored/' + - 'src/easydiffraction/utils/_vendored/**' + - 'src/easydiffraction/utils/_vendored/jupyter_dark_detect/' - 'src/easydiffraction/utils/_vendored/jupyter_dark_detect/**' diff --git a/codecov.yml b/codecov.yml index 7910cb9f..ffe29da9 100644 --- a/codecov.yml +++ b/codecov.yml @@ -5,13 +5,14 @@ coverage: status: project: default: - # Allow small coverage decrease (vendored code adds uncovered lines) - threshold: 0.5% + # Make project coverage informational (won't block PR) + informational: true patch: default: - # Lower threshold for patches containing vendored code - threshold: 0.5% + # Require patch coverage but with threshold + threshold: 1% ignore: # Vendored third-party code - not our code to test + - 'src/easydiffraction/utils/_vendored/**' - 'src/easydiffraction/utils/_vendored/jupyter_dark_detect/**' From 12f68605e297c6232f0485a9781141580f9b4646 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 13:02:17 +0100 Subject: [PATCH 09/11] Adds link to CodeFactor config to .codefactorignore --- .codefactor.yml | 9 --------- .codefactorignore | 13 +++++++++++++ 2 files changed, 13 insertions(+), 9 deletions(-) delete mode 100644 .codefactor.yml create mode 100644 .codefactorignore diff --git a/.codefactor.yml b/.codefactor.yml deleted file mode 100644 index cdb1f100..00000000 --- a/.codefactor.yml +++ /dev/null @@ -1,9 +0,0 @@ -# CodeFactor configuration -# https://support.codefactor.io/i14-ignore-files-or-folders - -exclude_paths: - # Vendored third-party code - keep as-is from upstream - - 'src/easydiffraction/utils/_vendored/' - - 'src/easydiffraction/utils/_vendored/**' - - 'src/easydiffraction/utils/_vendored/jupyter_dark_detect/' - - 'src/easydiffraction/utils/_vendored/jupyter_dark_detect/**' diff --git a/.codefactorignore b/.codefactorignore new file mode 100644 index 00000000..48d64e0b --- /dev/null +++ b/.codefactorignore @@ -0,0 +1,13 @@ +# CodeFactor exclude patterns configuration must be done online: +# https://www.codefactor.io/repository/github/easyscience/diffraction-lib/ignore +# +# Last updated: 2026-01-05 +# +# Exclude patterns: +# deps/** +# docs/** +# src/easydiffraction/utils/_vendored/jupyter_dark_detect/** +# tests/** +# tmp/** +# tools/** +# tutorials/** From 26302681b3e0330dc0a5dd14c13be416641e7aab Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 13:06:10 +0100 Subject: [PATCH 10/11] Trigger CI re-run From efd81a0b82e1b169ed6c8a3b77722ee2e47fc823 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 5 Jan 2026 13:28:57 +0100 Subject: [PATCH 11/11] Trigger CI re-run