Lambeq

Latest version: v0.4.3

Safety actively analyzes 722491 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.4.3

Changed:

- Documentation has now been moved to a [dedicated repository](https://github.com/CQCL/lambeq-docs) and got a new URL (https://cqcl.github.io/lambeq-docs/).
- Changed the landing page and some visuals in the online documentation.
- Updated README to reflect the new docs structure.

Fixed:

- Fixed minor issues on some documentation pages and the README file.

0.4.2

Added:

- Added timing information to training logs and model checkpoints.

Changed:

- Changed theme of online documentation.
- Updated required version of `pytket` to 1.31.0.

Fixed:

- Fixed bug in generation of single-legged quantum spiders.
- Fixed bug when evaluating quantum circuits using Tket.

Removed:

- Removed support for Python 3.9.

0.4.1

Added:

- Support for Python 3.12.
- A new `Sim4Ansatz` based on the paper by Sim et al. (arXiv:1905.10876).
- A new argument in `Trainer.fit` for specifying an `early_stopping_criterion` other than validation loss.
- A new argument `collapse_noun_phrases` in methods of `CCGParser` and `CCGTree` classes (for example, see `CCGParser.sentence2diagram`) that allows the user to maintain noun phrases in the derivation or collapse them into nouns as desired.
- Raised meaningful exception when users try to convert to/from DisCoPy 1.1.0.

Changed:

- An internal refactoring of module `backend.drawing` in view of planned new features.
- Updated random number generation in `TketModel` by using the recommended `numpy.random.default_rnd` method.

Fixed:

- Handling of possible empty ``Bra`` s and ``Ket`` s during conversion from DisCoPy.
- Fixed a bug in JIT compilation of mixed circuit evaluations.

0.4.0

Added:

- A new integrated backend that replaces ``DisCoPy``, which until now was providing the low-level functionality of ``lambeq``. The new backend offers better performance, increased stability, faster training speeds, and a simplified high-level interface to the user. The new backend consists of the following sub-modules:

- ``lambeq.backend.grammar``: Contains the building blocks for creating string diagrams.
- ``lambeq.backend.tensor``: Contains the necessary classes to create tensor diagrams.
- ``lambeq.backend.quantum``: Adds quantum-specific functionality to the backend and provides a circuit simulator based on the [TensorNetwork](https://github.com/google/TensorNetwork) library.
- ``lambeq.backend.pennylane``: Interface with PennyLane.
- ``lambeq.backend.tk``: Inteface with Tket.
- ``lambeq.backend.numerical_backend``: Common interface for numerical backends (such as Numpy, Jax, PyTorch, TensorFlow)
- ``lambeq.backend.drawing``: Contains drawing functionality for diagrams and circuits.

- ``lambeq.BobcatParser``: Added a special case for adjectival conjunction in tree translation.
- ``lambeq.TreeReader``: Diagrams now are created straight from the ``lambeq.CCGTree``.
- ``lambeq.CCGRule`` apply method: Added ``lambeq.CCGRule.apply`` method to class ``lambeq.CCGRule``.

Changed:

- Diagram-level rewriters: Rewrite functions ``remove_cups`` and ``remove_swaps`` are now refactored as diagram-level rewriters, ``lambeq.RemoveCupsRewriter`` and ``lambeq.RemoveSwapsRewriter`` correspondingly.
- Extra whitespace is now ignored in the ``lambeq.Tokeniser``.

Fixed:

- ``lambeq.UnknownWordsRewriteRule``: Fixed rewriting of non-word boxes.

Removed:

- Removed ``CCGTree.to_biclosed_diagram`` and references to ``discopy.biclosed``. Now CCG trees are directly converted into string diagrams, without the extra step of storing the derivation in a biclosed form.
- ``lambeq.CCGRule``: Removed ``replace_cat_result`` and added ``lambeq.CCGRule.resolve``.

0.3.3

This update features contributions from participants in [unitaryHACK 2023](//unitaryhack.dev):
- Two new optimisers:
- The Nelder-Mead optimiser. (credit: [Gopal Dahale](//github.com/CQCL/lambeq/pull/104))
- The Rotosolve optimiser. (credit: [Ahmed Darwish](//github.com/CQCL/lambeq/pull/93))
- A new rewrite rule for handling unknown words. (credit: [WingCode](//github.com/CQCL/lambeq/pull/105))

Many thanks to all who participated.

This update also contains the following changes:

Added:
- `DiagramRewriter` is a new class that rewrites diagrams by looking at the diagram as a whole rather than by using rewrite rules on individual boxes. This includes an example `UnifyCodomainRewriter` which adds an extra box to the end of diagrams to change the output to a specified type. (credit: [A.C.E07](//github.com/CQCL/lambeq/pull/111))
- Added an early stopping mechanism to `Trainer` using the parameter `early_stopping_interval`.

Fixed:
- In `PennyLaneModel`, SymPy symbols are now substituted during the forward pass so that gradients are back-propagated to the original parameters.
- A pickling error that prevented CCG trees produced by `BobcatParser` from being unpickled has been fixed.

0.3.2

Added:
- Support for `DisCoPy` >= 1.1.4 (credit: toumix).
- replaced `discopy.rigid` with `discopy.grammar.pregroup` everywhere.
- replaced `discopy.biclosed` with `discopy.grammar.categorial` everywhere.
- Use `Diagram.decode` to account for the change in contructor signature `Diagram(inside, dom, cod)`.
- updated attribute names that were previously hidden, e.g. `._data` becomes `.data`.
- replaced diagrammatic conjugate with transpose.
- swapped left and right currying.
- dropped support for legacy DisCoPy.
- Added `CCGType` class for utilisation in the `biclosed_type` attribute of `CCGTree`, allowing conversion to and from a discopy categorial object using `CCGType.discopy` and `CCGType.from_discopy` methods.
- `CCGTree`: added reference to the original tree from parsing by introducing a `metadata` field.

Changed:

- Internalised DisCoPy quantum ansätze in lambeq.
- `IQPAnsatz` now ends with a layer of Hadamard gates in the multi-qubit case and the post-selection basis is set to be the computational basis (Pauli Z).

Fixed:

- Fixed a bottleneck during the initialisation of the `PennyLaneModel` caused by the inefficient substitution of Sympy symbols in the circuits.
- Escape special characters in box labels for symbol creation.
- Documentation: fixed broken links to DisCoPy documentation.
- Documentation: enabled sphinxcontrib.jquery extension for Read the Docs theme.
- Fixed disentangling `RealAnsatz` in extend-lambeq tutorial notebook.
- Fixed model loading in PennyLane notebooks.
- Fixed typo `SPSAOptimizer` (credit: Gopal-Dahale)

Removed:

- Removed support for Python 3.8.

Page 1 of 4

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.