From d10b5638a35275c1316429cd9893e7f9a9a02061 Mon Sep 17 00:00:00 2001 From: "Smit6ju@mail.uc.edu" Date: Fri, 19 Dec 2025 21:19:03 -0500 Subject: [PATCH 1/5] Fix Issue #254. #253 --- contrib/download_depccg_model.py | 2 +- lambeq/text2diagram/model_based_reader/model_downloader.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/download_depccg_model.py b/contrib/download_depccg_model.py index dd3004b0..e84a2110 100644 --- a/contrib/download_depccg_model.py +++ b/contrib/download_depccg_model.py @@ -2,7 +2,7 @@ from urllib.request import urlretrieve from depccg.instance_models import MODEL_DIRECTORY -URL = 'https://qnlp.cambridgequantum.com/models/tri_headfirst.tar.gz' +URL = 'https://qnlp.quantinuum.com/models/tri_headfirst.tar.gz' print('Please consider using Bobcat, the parser included with lambeq,\n' 'instead of depccg.') diff --git a/lambeq/text2diagram/model_based_reader/model_downloader.py b/lambeq/text2diagram/model_based_reader/model_downloader.py index 44963798..795641a3 100644 --- a/lambeq/text2diagram/model_based_reader/model_downloader.py +++ b/lambeq/text2diagram/model_based_reader/model_downloader.py @@ -31,7 +31,7 @@ from lambeq.core.globals import VerbosityLevel from lambeq.typing import StrPathT -MODELS_URL = 'https://qnlp.cambridgequantum.com/models' +MODELS_URL = 'https://qnlp.quantinuum.com/models' MODELS = {'bobcat', 'oncilla'} VERSION_FNAME = 'version.txt' CHECKSUM_FNAME = 'model_checksum.sha256' From 1733dc1e725286736edf8b4794778ab366d07366 Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Sat, 20 Dec 2025 08:04:44 +0000 Subject: [PATCH 2/5] Fix exception initialization to make flake8-bugbear happy --- lambeq/backend/snake_removal.py | 7 ++++++- lambeq/text2diagram/ccg_rule.py | 1 + lambeq/text2diagram/ccg_type.py | 1 + lambeq/text2diagram/ccgbank_parser.py | 1 + lambeq/text2diagram/depccg_parser.py | 1 + lambeq/text2diagram/model_based_reader/bobcat_parser.py | 1 + lambeq/text2diagram/model_based_reader/model_downloader.py | 1 + lambeq/text2diagram/model_based_reader/oncilla_parser.py | 1 + lambeq/text2diagram/pregroup_tree.py | 1 + lambeq/text2diagram/web_parser.py | 1 + 10 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lambeq/backend/snake_removal.py b/lambeq/backend/snake_removal.py index 346802ea..a4811ce1 100644 --- a/lambeq/backend/snake_removal.py +++ b/lambeq/backend/snake_removal.py @@ -30,7 +30,12 @@ class InterchangerError(Exception): """ This is raised when we try to interchange conected boxes. """ def __init__(self, box0: Box, box1: Box) -> None: - super().__init__(f'Boxes {box0} and {box1} do not commute.') + super().__init__(box0, box1) + self.box0 = box0 + self.box1 = box1 + + def __str__(self) -> str: + return f'Boxes {self.box0} and {self.box1} do not commute.' def snake_removal(diagram: Diagram, left: bool = False) -> Iterator[Diagram]: diff --git a/lambeq/text2diagram/ccg_rule.py b/lambeq/text2diagram/ccg_rule.py index bb62eddb..55261b98 100644 --- a/lambeq/text2diagram/ccg_rule.py +++ b/lambeq/text2diagram/ccg_rule.py @@ -27,6 +27,7 @@ class CCGRuleUseError(Exception): """Error raised when a :py:class:`CCGRule` is applied incorrectly.""" def __init__(self, rule: CCGRule, message: str) -> None: + super().__init__(rule, message) self.rule = rule self.message = message diff --git a/lambeq/text2diagram/ccg_type.py b/lambeq/text2diagram/ccg_type.py index 1f6b35ef..bf894472 100644 --- a/lambeq/text2diagram/ccg_type.py +++ b/lambeq/text2diagram/ccg_type.py @@ -28,6 +28,7 @@ class CCGParseError(Exception): """Error when parsing a CCG type string.""" def __init__(self, cat: str, message: str) -> None: + super().__init__(cat, message) self.cat = cat self.message = message diff --git a/lambeq/text2diagram/ccgbank_parser.py b/lambeq/text2diagram/ccgbank_parser.py index e51f3623..6a52ebe8 100644 --- a/lambeq/text2diagram/ccgbank_parser.py +++ b/lambeq/text2diagram/ccgbank_parser.py @@ -52,6 +52,7 @@ class CCGBankParseError(Exception): """Error raised if parsing fails in CCGBank.""" def __init__(self, sentence: str = '', message: str = '') -> None: + super().__init__(sentence, message) if message: self.sentence = sentence self.message = message diff --git a/lambeq/text2diagram/depccg_parser.py b/lambeq/text2diagram/depccg_parser.py index 3d844a7b..a2d04b63 100644 --- a/lambeq/text2diagram/depccg_parser.py +++ b/lambeq/text2diagram/depccg_parser.py @@ -66,6 +66,7 @@ def _import_depccg() -> None: class DepCCGParseError(Exception): def __init__(self, sentence: str) -> None: + super().__init__(sentence) self.sentence = sentence def __str__(self) -> str: # pragma: no cover diff --git a/lambeq/text2diagram/model_based_reader/bobcat_parser.py b/lambeq/text2diagram/model_based_reader/bobcat_parser.py index d4b5f43f..702b7dbd 100644 --- a/lambeq/text2diagram/model_based_reader/bobcat_parser.py +++ b/lambeq/text2diagram/model_based_reader/bobcat_parser.py @@ -48,6 +48,7 @@ class BobcatParseError(Exception): def __init__(self, sentence: str) -> None: + super().__init__(sentence) self.sentence = sentence def __str__(self) -> str: diff --git a/lambeq/text2diagram/model_based_reader/model_downloader.py b/lambeq/text2diagram/model_based_reader/model_downloader.py index 795641a3..df4db3ee 100644 --- a/lambeq/text2diagram/model_based_reader/model_downloader.py +++ b/lambeq/text2diagram/model_based_reader/model_downloader.py @@ -42,6 +42,7 @@ class ModelDownloaderError(Exception): def __init__(self, error_msg: str) -> None: + super().__init__(error_msg) self.error_msg = error_msg def __str__(self) -> str: diff --git a/lambeq/text2diagram/model_based_reader/oncilla_parser.py b/lambeq/text2diagram/model_based_reader/oncilla_parser.py index f15590f3..a516052d 100644 --- a/lambeq/text2diagram/model_based_reader/oncilla_parser.py +++ b/lambeq/text2diagram/model_based_reader/oncilla_parser.py @@ -45,6 +45,7 @@ class OncillaParseError(Exception): def __init__(self, sentence: str, reason: str = '') -> None: + super().__init__(sentence, reason) self.sentence = sentence self.reason = reason diff --git a/lambeq/text2diagram/pregroup_tree.py b/lambeq/text2diagram/pregroup_tree.py index 7ed6a9c9..b8780ab2 100644 --- a/lambeq/text2diagram/pregroup_tree.py +++ b/lambeq/text2diagram/pregroup_tree.py @@ -24,6 +24,7 @@ class PregroupTreeNodeError(Exception): def __init__(self, sentence: str) -> None: + super().__init__(sentence) self.sentence = sentence def __str__(self) -> str: diff --git a/lambeq/text2diagram/web_parser.py b/lambeq/text2diagram/web_parser.py index ee152464..7683b93c 100644 --- a/lambeq/text2diagram/web_parser.py +++ b/lambeq/text2diagram/web_parser.py @@ -40,6 +40,7 @@ class WebParseError(OSError): def __init__(self, sentence: str) -> None: + super().__init__(sentence) self.sentence = sentence def __str__(self) -> str: From 12620ff71b3dbbedc65c38011d955121b074d95c Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Sat, 20 Dec 2025 08:30:47 +0000 Subject: [PATCH 3/5] Fix: Remove unused type ignore comment in nelder_mead_optimizer --- lambeq/training/nelder_mead_optimizer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambeq/training/nelder_mead_optimizer.py b/lambeq/training/nelder_mead_optimizer.py index 6b2377c0..c2f78eb6 100644 --- a/lambeq/training/nelder_mead_optimizer.py +++ b/lambeq/training/nelder_mead_optimizer.py @@ -259,7 +259,7 @@ def objective(self, x: Iterable[Any], y: ArrayLike, w: ArrayLike) -> float: raise ValueError( 'Objective function must return a scalar' ) from e - return result # type: ignore[return-value] + return result def backward(self, batch: tuple[Iterable[Any], np.ndarray]) -> float: """Calculate the gradients of the loss function. From ff727f9bce59af3ca4ce0f4f3a55f2b1206b8fd5 Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Sat, 20 Dec 2025 08:59:15 +0000 Subject: [PATCH 4/5] Pin autoray < 0.6.0 to fix PennyLane NumpyMimic AttributeError --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index edf6f957..65a3ea1e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -75,6 +75,7 @@ extras = discopy >= 1.1.7 jax < 0.6.0 jaxlib < 0.6.0 + autoray < 0.6.0 pennylane >= 0.29.1, < 0.37.0 pennylane-honeywell pennylane-qiskit >= 0.29.1, < 0.37.0 From 193bfad1e4bead26eb9b661b26a87a6cad2ffafe Mon Sep 17 00:00:00 2001 From: Richie Yeung Date: Sat, 20 Dec 2025 09:05:51 +0000 Subject: [PATCH 5/5] Add numpy >= 1.24.0 constraint for Python 3.12 compatibility --- setup.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.cfg b/setup.cfg index 65a3ea1e..a43809f2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -73,6 +73,7 @@ python_requires = >=3.10 [options.extras_require] extras = discopy >= 1.1.7 + numpy >= 1.24.0, < 2.0 jax < 0.6.0 jaxlib < 0.6.0 autoray < 0.6.0