Source code for catalyst.utils.exceptions
# Copyright 2023 Xanadu Quantum Technologies Inc.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Custom Catalyst exceptions."""
[docs]
class DifferentiableCompileError(CompileError):
"""An error indicating an invalid differentiation configuration."""
[docs]
class PlxprCaptureCFCompatibilityError(Exception):
"""Error raised when Catalyst control flow is used with PennyLane capture enabled.
This error indicates that Catalyst's control flow functions (for_loop, while_loop, cond)
cannot be used in contexts where PennyLane's capture mode is active. Users should use
the corresponding PennyLane functions instead for compatibility with capture functionality.
"""
def __init__(self, control_flow_type):
message = (
f"catalyst.{control_flow_type} is not supported with PennyLane's capture enabled. "
"For compatibility with program capture, please use the corresponding "
f"qml.{control_flow_type} instead. See the documentation for more information."
)
super().__init__(message)
_modules/catalyst/utils/exceptions
Download Python script
Download Notebook
View on GitHub