- Added the naive MOVE transpilation method for unified transpilation behavior for different external APIs. #124
- Added class for compilation options :class:`CircuitCompilationOptions` to allow for more fine-grained control over the compilation process. (breaking change)
- :meth:`IQMClient.submit_circuit` now takes a :class:`CircuitCompilationOptions` parameter instead of
max_circuit_duration_over_t2
andheralding_mode
. - Moved the existing
max_circuit_duration_over_t2
parameter to :class:`CircuitCompilationOptions`. - Moved the existing
heralding_mode
parameter to :class:`CircuitCompilationOptions`. - Introduced new option
move_gate_validation
to turn off MOVE gate validation during compilation (ADVANCED). - Introduced new option
move_gate_frame_tracking
to turn off frame tracking for the MOVE gate (ADVANCED).
- :meth:`IQMClient.submit_circuit` now takes a :class:`CircuitCompilationOptions` parameter instead of
- Allow inspecting a run request before submitting it for execution. #129
- Update documentation. #128
- Move all data models to
iqm.iqm_client.models
. #125 - Refactor user authentication and check authentication parameters for conflicts. #125
- Show full response error in all cases of receiving a HTTP 4xx error response. #123
- Raise ClientConfigurationError and display the details of the error upon receiving a HTTP 400 error response. #120
- Add new job states to support job delete operation in the backend. #119
- Use GitHub Action as a Trusted Publisher to publish packages to PyPI. #116
- Support both extended and simple quantum architecture specification. #117
- Extend quantum architecture specification to allow different loci for each operation. #112
- Allow the
move
instruction natively. - Validate instructions loci based on quantum architecture.
- Auto-rename deprecated instruction names to current names.
- Remove multiversion documentation. #115
- Remove
circuit_duration_check
parameter fromRunRequest
. #114 - Add
max_circuit_duration_over_t2
parameter toRunRequest
to control circuit disqualification threshold. #114
- Add testing with python 3.11. #113
- Make network request timeouts reconfigurable for
abort_job
,get_quantum_architecture
,get_run
, andget_run_status
via keyword argumenttimeout_secs
. #110 - Make network request timeouts reconfigurable globally via environment variable
IQM_CLIENT_REQUESTS_TIMEOUT
. #110
- Allow construction of
Circuit.instructions
from atuple
ofdict
. #109
- Bump
pydantic
version to2.4.2
. #108
- Update project setup to use
pyproject.toml
. #107 - New instruction names:
phased_rx
->prx
,measurement
->measure
(the old names are deprecated but still supported). #107
- Add API token support. #102
- Add CoCoS version to job metadata. #104
- Add platform version and python version to user agent. #103
- Require number of shots to be greater than zero. #101
- Update integration guide. #99
- Use
get_run_status
instead ofget_run
to check job status inwait_for_compilation
andwait_for_results
. #100
- Use latest version of
sphinx-multiversion-contrib
to fix documentation version sorting. #98
- Move
iqm_client
package toiqm
namespace. #96
- Update integration guide. #95
- Improve tests. #94
- Use ISO 8601 format timestamps in RunResult metadata. #93
- Add execution timestamps in RunResult metadata. #92
- Add ability to abort jobs. #89
- Add parameter
heralding
toRunRequest
. #87
- Add parameter
circuit_duration_check
allowing to control server-side maximum circuit duration check. #85
- Generate license information for dependencies on every release #84
- Revert moving Pydantic model definitions into
models.py
file. #81
- Add function
validate_circuit
to validate a submitted circuit for input argument correctness. #80
- Split
PENDING
job status intoPENDING_COMPILATION
andPENDING_EXECUTION
#79 - Add
wait_for_compilation
method. #79
- Bugfix: multiversion documentation has incomplete lists to available documentation versions #76
- Add utility function
to_json_dict
to convert a dict to a JSON dict. #77
- Improve error reporting on unexpected server responses. #74
- Improve multiversion docs builds. #75
- Add user agent header to requests. #72
- Fix multiversion docs publication. #73
- Reduce docs size. #71
- Fix docs version sort. #70
- Change type of
calibration_set_id
to be opaque UUID. #69
- Remove
description
from pydantic model fields. #68
- Add optional
implementation
field toInstruction
. #67
- Raise an error while fetching quantum architecture if authentication is not provided. #66
RunResult.metadata.request
now contains a copy of the original request. #65
- Bugfix:
Circuit.metadata
Pydantic field needs default value. #64
- Add optional
metadata
field toCircuit
. #63
- Reduce wait interval between requests to the IQM Server and make it configurable with the
IQM_CLIENT_SECONDS_BETWEEN_CALLS
environment var. #62
- Retry requests to the IQM Server if the server is busy. #61
- Add integration guide. #60
- Support OpenTelemetry trace propagation. #59
- New external token is now obtained from tokens file if old token expired. #58
- Update documentation. #57
- The method
IQMClient.get_quantum_architecture
now return the architecture specification instead of the top level object. #56
- Update documentation of Metadata. #54
- Improved error message when
qubit_mapping
does not cover all qubits in a circuit. #53 - Better type definitions and code cleanup. #53, #52
- Add method
IQMClient.get_quantum_architecture
. #51
- Change
Circuit.instructions
andInstruction.qubits
from list to tuple. #49
- Remove settings from RunRequest, add custom_settings. #48
- Increase job result poll interval while waiting for circuit execution. #47
- Add description of calibration set ID of RunResult metadata in the documentation. #45
- Increase timeout of requests. #43
- Add calibration set ID to RunResult metadata. #42
- Add optional
calibration_set_id
parameter toIQMClient.submit_circuit
. #40
IQMClient.close
renamed toIQMClient.close_auth_session
and raises an exception when asked to close an externally managed authentication session. #39- Try to automatically close the authentication session when the client is deleted. #39
- Show CoCoS error on 401 response. #39
settings
are moved from the constructor ofIQMClient
toIQMClient.submit_circuit
. #31- Changed the type of
qubit_mapping
argument ofIQMClient.submit_circuit
todict[str, str]
. #31 - User can now import from iqm_client using from iqm_client import x instead of from iqm_client.iqm_client import x. #31
- Parse new field metadata for job result requests to the IQM quantum computer. #37
- Update documentation to include development version and certain released versions in a subdirectory. #36
- Add support for authentication without username/password, using externally managed tokens file. #35
- Implement functionality to submit a batch of circuits in one job. #34
- Make
settings
an optional parameter forIQMClient
. #30
- Add function
get_run_status
to check status of execution without getting measurement results. #29
- Update documentation to mention barriers. #28
- Update HTTP endpoints for circuit execution and results retrieval. #26
- Requires CoCoS 4.0
- Publish JSON schema for the circuit run request sent to an IQM server. #24
- Add support for Python 3.10. #23
- Make
qubit_mapping
an optional parameter inIQMClient.submit_circuit
. #21
- Validate that the schema of IQM server URL is http or https. #20
- Add 'Expect: 100-Continue' header to the post request. #18
- Bump pydantic dependency. #13
- Minor updates in docs. #13
- Emit warnings in server response as python UserWarning. #15
- Configure automatic tagging and releasing. #7
- Implement HTTP Basic auth. #9
- Increase default timeout. #8
- Document the native instruction types. #5
- Remove unneeded args field from Circuit. #4
- Changed example instruction phased_rx to measurement. #2
- Split IQM client from the Cirq on IQM library