All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Types of changes:
- Added: for new features.
- Changed: for changes in existing functionality.
- Deprecated: for soon-to-be removed features.
- Removed: for now removed features.
- Fixed: for any bug fixes.
- Security: in case of vulnerabilities.
IBMQJob
now has three new methods:done()
,running()
, andcancelled()
. The methods are used to indicate the job status. (#494)backend.run()
now accepts an optionaljob_tags
parameter. If specified, thejob_tags
are assigned to the job, which can also be used as a filter inbackend.jobs()
. (#511)IBMQBackend
now has two new methods:job_limit()
andremaining_job_counts()
.job_limit()
returns the job limit for a backend, which includes the current number of active jobs you have on the backend and the the maximum number of active jobs you can have on it.remaining_job_counts()
returns the number of remaining jobs that could be submitted to the backend before the maximum limit on active jobs is reached. Note the job limit for a backend is given for a specific provider (i.e. a specific backend with a specific provider). (#513)IBMQJobManager
now has a new methodretrieve_job_set()
that allows you to retrieve a previously submitted job set using the job set ID. A job set ID can be retrieved using the newjob_set.job_set_id()
method. (#514)
- The Exception hierarchy has been refined with more specialized classes.
You can, however, continue to catch their parent exceptions (such
as
IBMQAccountError
). Also, the exception classIBMQApiUrlError
has been replaced byIBMQAccountCredentialsInvalidUrl
andIBMQAccountCredentialsInvalidToken
. (#480)
0.4.5 - 2019-12-18
IBMQJob
now has a newqueue_info()
method that returns queue information, such as queue position, estimated start/end time, and priority levels for the job. (#467)- Python 3.8 is now supported in qiskit-ibmq-provider. (#445)
0.4.4 - 2019-12-09
IBMQJob.result()
now accepts an optionalrefresh
parameter. Ifrefresh=True
is specified, the function re-queries the api for the results, rather than returning those cached. (#469)POST
network request are now retried if the status code is among specific safe codes. In the case of the request failing during job submission, more information is now displayed in theINFO
andDEBUG
log levels. (#475)
- Python 3.5 support in qiskit-ibmq-provider is deprecated. Support will be removed on the upstream python community's end of life date for the version, which is 09/13/2020. (#445)
0.4.3 - 2019-11-21
- Fixed an issue where
IBMQJob.error_message()
may raise an exception if the job fails before execution. (#458)
0.4.2 - 2019-11-18
- Fixed
IBMQBackendService.jobs()
to correctly return jobs when bothstart_datetime
andend_datetime
are specified. Now, when the two parameters are specified, the function will return the jobs after (greater than or equal to) and before (less than or equal to) the two given datetimes. (#452)
0.4.1 - 2019-11-14
- Fixed
job.creation_date()
return string format to be the same as that of release 0.3. (#447)
IBMBackend.jobs()
andIBMQBackendService.jobs()
now accept the optional parametersstart_datetime
andend_datetime
. If one is specified, it is used to find jobs whose creation date is after (greater than) or before (less than) the given the date/time, respectively. If both are specified, they are used to find jobs whose creation date is between the two dates. (#443)
0.4.0 - 2019-11-12
- A new
IBMQJobManager
class that takes a list of circuits or pulse schedules as input, splits them into one or more jobs, and submits the jobs. (#389, #400, #407) - New features to
provider.backends
:- it contains the available backends as attributes. A user can now use
provider.backends.<tab>
to see a list of backend names, and make use of the attributes as regularIBMQBackend
instances. (#303) - the methods
provider.backends.jobs()
andprovider.backends.retrieve_job()
can be used for retrieving provider-wide jobs. (#354)
- it contains the available backends as attributes. A user can now use
IBMQBackend.run()
now accepts an optionaljob_name
parameter. If specified, thejob_name
is assigned to the job, which can also be used as a filter inIBMQBackend.jobs()
. (#300, #384)IBMQBackend.run()
now accepts an optionaljob_share_level
parameter. If specified, the job could be shared with other users at the global, hub, group, project, or none level. (#414)- The signature of
IBMQBackend.jobs()
is changed.db_filter
, which was the 4th parameter, is now the 5th parameter. (#300) - The
backend.properties()
function now accepts an optionaldatetime
parameter. If specified, the function returns the backend properties closest to, but older than, the specified datetime filter. (#277) - The
WebsocketClient.get_job_status()
method now accepts two optional parameters:retries
andbackoff_factor
. (#341) - The
IBMQJob
class has been refactored:- The
IBMQJob
attributes are now automatically populated based on the information contained in the remote API. As a result, theIBMQJob
constructor signature has changed. (#329) IBMQJob.submit()
can no longer be called directly, and jobs are expected to be submitted viaIBMQBackend.run()
. (#329)IBMQJob.error_message()
now gives more information on why a job failed. (#375)IBMQJob.queue_position()
now accepts an optionalrefresh
parameter that indicates whether it should query the API for the latest queue position. (#387)- The
IBMQJob.result()
function now accepts an optionalpartial
parameter. If specified,IBMQJob.result()
will return partial results for jobs with experiments that failed. (#399)
- The
- The Exception hierarchy has been refined with more specialized classes, and exception chaining is used in some cases - please inspect the complete traceback for more informative failures. (#395, #396)
- Some
warnings
have been toned down tologger.warning
messages. (#379)
- Support for the legacy Quantum Experience and QConsole is fully deprecated. Only credentials from the new Quantum Experience can be used. (#344)
- The circuits functionality has been temporarily removed from the provider. It will be reintroduced in future versions. (#429)
0.3.3 - 2019-09-30
- Fixed an issue where proxy parameters were not fully passed to the final sessions, leading to incomplete proxy support. (#353)
0.3.2 - 2019-08-20
- Pin version of
nest_asyncio
requirement. (#312)
0.3.1 - 2019-07-23
- The
backend.jobs()
function now has a defaultlimit
of 10 results, and in the IBM Q Experience v2 will automatically perform several API calls in order to retrieve the specified number of jobs, if higher. (#263)
load_accounts
dispatches toload_account
if v2 credentials are stored, allowing for backward compatibility. (#273)
0.3.0 - 2019-07-15
- Fixed Circuits status checks according to latest API changes. (#95)
- Fixed an authentication issue with the
backend_status
endpoint when using the new api. (#101)
- The package defaults to connecting to the IBM Q Experience v2 by default, and
to using a single token and URL for accessing all the remote capabilities.
- an
IBMQ.update_account()
added for helping transitioning. (#209) qiskit.IBMQ
is no longer aProvider
: providers for the individual projects can be obtained viaIBMQ.get_provider()
. (#214)- the
qiskit.IBMQ
account-management methods have been revised, and act on a single account. (#186) - the
qiskit.IBMQ
backend-management methods have been moved to the individualAccountProvider
instances. (#186, #212).
- an
- Updated detection of classic vs. new api based on version endpoint. (#95)
- The
requires_qe_access
decorator, previously in terra, is now included in this package. (#128) IBMQJob.job_id()
now accepts an optionaltimeout
parameter, for allowing users finer control over the waiting time. (#238)
- Added support for pooling job status via websockets. Note this is only available when using the new API authentication. (#100)
- Added support for using object storage when submitting and retrieving jobs. Note this is only available when using the new IBM Q Experience v2. (#110)
- Added support for custom qx-client-application request header via the environment
variable
QE_CUSTOM_CLIENT_APP_HEADER
when using the new IBM Q Experience v2. (#165) backend.properties()
andbackend.defaults()
now accept arefresh
flag. When False, cached data will be returned. (#224)
- Support for the legacy IBM Q Experience and Qconsole is on the process of
being deprecated. They will still be supported during the
0.3.x
versions, but we encourage transitioning to the new IBM Q Experience. (#232)- the
IBMQ.load_accounts()
and account-management methods are replaced by methods that work on a single token and URL. - the
IBMQ.backends()
method has been moved to the provider instances:provider = IBMQ.get_provider(); provider.backends()
. - the
IBMQ.get_backend(name)
method has been moved to the provider instances:provider = IBMQ.get_provider(); provider.get_backend(name)
.
- the
0.2.2 - 2019-05-07
- Fixed Circuits parameter validation. (#89)
0.2.1 - 2019-05-06
- Improved compatibility with older setuptools versions. (#85)
0.2.0 - 2019-05-06
- The IBMQProvider supports connecting to the new version of the IBM Q API. Please note support for this version is still experimental. (#78)
- Added support for
Circuits
through the new API. (#79)
- Fixed incorrect parsing of some API hub URLs. (#77)
- Fixed noise model handling for remote simulators. (#84)
0.1.1 - 2019-05-01
- The backend configurations now return instances of specialized
BackendConfiguration
classes (ie.QasmBackendConfiguration
). (#74).
- Fixed signature mismatch during
job.cancel()
. (#73)
0.1 - 2019-04-17
- The connector
get_job()
methods accepts two new parameters for including and excluding specific fields from the response. (#6) - Added
backend.defauls()
for retrieving the pulse defaults for a backend through a new endpoint. (#33) - Added
job.properties()
for retrieving the backend properties for a job through a new endpoint. (#35)
- The IBMQ Provider has been moved to an individual package outside the Qiskit Terra package.
- The exception hierarchy has been revised: the package base exception is
IBMQError
, and they have been grouped in.exception
modules. (#5) - Ensured that retrieved jobs come from their appropriate backend. (#23)
- Job
error_message()
function now summarizes the problems that made the job to fail. (#48) backend.jobs()
no longer emits a warning for pre-qobj jobs. (#59)
- Support for non-qobj format has been removed. (#26, #28)