def backends(self, name: Optional[str] = None, filters: Optional[Callable[[List[IBMQBackend]], bool]] = None, timeout: Optional[float] = None, **kwargs: Any) -> List[IBMQBackend]: """Return all backends accessible via this provider, subject to optional filtering. Args: name (str): backend name to filter by filters (callable): more complex filters, such as lambda functions e.g. AccountProvider.backends( filters=lambda b: b.configuration['n_qubits'] > 5) timeout (float or None): number of seconds to wait for backend discovery. kwargs: simple filters specifying a true/false criteria in the backend configuration or backend status or provider credentials e.g. AccountProvider.backends(n_qubits=5, operational=True) Returns: list[IBMQBackend]: list of backends available that match the filter """ # pylint: disable=arguments-differ if self._backends is None: self._backends = self._discover_remote_backends(timeout=timeout) backends = self._backends.values() # Special handling of the `name` parameter, to support alias # resolution. if name: aliases = self._aliased_backend_names() aliases.update(self._deprecated_backend_names()) name = aliases.get(name, name) kwargs['backend_name'] = name return filter_backends(backends, filters=filters, **kwargs)
def __call__(self, name: Optional[str] = None, filters: Optional[Callable[[List[IBMQBackend]], bool]] = None, timeout: Optional[float] = None, **kwargs: Any) -> List[IBMQBackend]: """Return all backends accessible via this provider, subject to optional filtering. Args: name: Backend name to filter by. filters: More complex filters, such as lambda functions. For example:: AccountProvider.backends(filters=lambda b: b.configuration().n_qubits > 5) timeout: Maximum number of seconds to wait for the discovery of remote backends. kwargs: Simple filters that specify a ``True``/``False`` criteria in the backend configuration, backends status, or provider credentials. An example to get the operational backends with 5 qubits:: AccountProvider.backends(n_qubits=5, operational=True) Returns: The list of available backends that match the filter. """ backends = self._provider._backends.values() # Special handling of the `name` parameter, to support alias # resolution. if name: aliases = self._aliased_backend_names() aliases.update(self._deprecated_backend_names()) name = aliases.get(name, name) kwargs['backend_name'] = name return filter_backends(backends, filters=filters, **kwargs)
def __call__(self, name=None, filters=None, **kwargs): """A listing of all backends from this provider. Parameters: name (str): The name of a given backend. filters (callable): A filter function. kwargs (dict): A dictionary of other keyword arguments. Returns: list: A list of backends, if any. Example: ..jupyter-execute:: from qiskit_ionq_provider import IonQProvider ionq = IonQProvider('TOKEN') sim = ionq.backends(filters=lambda x: x.configuration().simulator) print(sim) """ # pylint: disable=arguments-differ backends = self._backends if name: backends = [b for b in self._backends if b.name() == name] return filter_backends(backends, filters, **kwargs)
def backends(self, name=None, filters=None, **kwargs): # pylint: disable=arguments-differ backends = self._backends if name: backends = [backend for backend in backends if backend.name() == name] return filter_backends(backends, filters=filters, **kwargs)
def backends(self, name=None, filters=None, **kwargs): # pylint: disable=arguments-differ backends = self._backends.values() if name: kwargs['backend_name'] = name return filter_backends(backends, filters=filters, **kwargs)
def backends(self, name: str = None, **kwargs) -> List[Backend]: """ Returns a list of backends matching the specified filtering. """ backends = self._backends if name is None else [ backend for backend in self._backends if backend.name() == name ] return filter_backends(backends, filters=None, **kwargs)
def backends(self, name=None, filters=None, **kwargs): # pylint: disable=arguments-differ # Instantiate a new backend instance so if config options # are set they will only last as long as that backend object exists backends = [] for backend_name, backend_cls in self._backends: if name is None or backend_name == name: backends.append(backend_cls(provider=self)) return filter_backends(backends, filters=filters)
def backends(self, name=None, filters=None, **kwargs): """A listing of all backends from this provider. """ # pylint: disable=arguments-differ backends = self._backends if name: backends = [ backend for backend in backends if backend.name() == name] return filter_backends(backends, filters=filters, **kwargs)
def backends(self, name=None, filters=None, **kwargs): backends = self._backends.values() if name: try: backends = [ backend for backend in backends if backend.name() == name ] except LookupError: pass return filter_backends(backends, filters=filters, **kwargs)
def backends(self, name: Optional[str] = None, filters: Optional[Callable[[List[IBMQBackend]], bool]] = None, timeout: Optional[float] = None, min_num_qubits: Optional[int] = None, **kwargs: Any) -> List[IBMQBackend]: """Return all backends accessible via this provider, subject to optional filtering. Args: name: Backend name to filter by. filters: More complex filters, such as lambda functions. For example:: AccountProvider.backends( filters=lambda b: b.configuration().quantum_volume > 16) timeout: Maximum number of seconds to wait for the discovery of remote backends. min_num_qubits: Minimum number of qubits the backend has to have. kwargs: Simple filters that specify a ``True``/``False`` criteria in the backend configuration, backends status, or provider credentials. An example to get the operational backends with 5 qubits:: AccountProvider.backends(n_qubits=5, operational=True) Returns: The list of available backends that match the filter. """ if timeout: warnings.warn( "The `timeout` keyword argument is deprecated and will " "be removed in a future release.", DeprecationWarning, stacklevel=2) backends = list(self._provider._backends.values()) # Special handling of the `name` parameter, to support alias # resolution. if name: aliases = self._aliased_backend_names() aliases.update(self._deprecated_backend_names()) name = aliases.get(name, name) kwargs['backend_name'] = name if min_num_qubits: backends = list( filter(lambda b: b.configuration().n_qubits >= min_num_qubits, backends)) return filter_backends(backends, filters=filters, **kwargs)
def backends(self, name=None, filters=None, **kwargs): # pylint: disable=arguments-differ # Instantiate a new backend instance so if config options # are set they will only last as long as that backend object exists backends = [] for backend_name, backend_cls, method, device in self._BACKENDS: opts = {'provider': self} if method is not None: opts['method'] = method if device is not None: opts['device'] = device if name is None or backend_name == name: backends.append(backend_cls(**opts)) return filter_backends(backends, filters=filters)
def backends(self, name=None, filters=None, **kwargs): # pylint: disable=arguments-differ backends = self._backends.values() # Special handling of the `name` parameter, to support alias resolution # and deprecated names. if name: try: resolved_name = resolve_backend_name( name, backends, self._deprecated_backend_names(), {} ) backends = [backend for backend in backends if backend.name() == resolved_name] except LookupError: return [] return filter_backends(backends, filters=filters, **kwargs)
def __call__(self, name=None, filters=None, **kwargs): """A listing of all backends from this provider. Parameters: name (str): The name of a given backend. filters (callable): A filter function. Returns: list: A list of backends, if any. """ # pylint: disable=arguments-differ backends = self._backends if name: backends = [ backend for backend in backends if backend.name() == name ] return filter_backends(backends, filters=filters, **kwargs)
def backends(self, name=None, **kwargs): if name: backends = [ backend for backend in backends if backend.name() == name ] return filter_backends(backends, filters=filters, **kwargs)
def backends( self, name: Optional[str] = None, filters: Optional[Callable[[List[IBMBackend]], bool]] = None, min_num_qubits: Optional[int] = None, input_allowed: Optional[Union[str, List[str]]] = None, instance: Optional[str] = None, **kwargs: Any, ) -> List[IBMBackend]: """Return all backends accessible via this account, subject to optional filtering. Args: name: Backend name to filter by. filters: More complex filters, such as lambda functions. For example:: IBMProvider.backends( filters=lambda b: b.configuration().quantum_volume > 16) min_num_qubits: Minimum number of qubits the backend has to have. input_allowed: Filter by the types of input the backend supports. Valid input types are ``job`` (circuit job) and ``runtime`` (Qiskit Runtime). For example, ``inputs_allowed='runtime'`` will return all backends that support Qiskit Runtime. If a list is given, the backend must support all types specified in the list. instance: The provider in the hub/group/project format. **kwargs: Simple filters that specify a ``True``/``False`` criteria in the backend configuration, backends status, or provider credentials. An example to get the operational backends with 5 qubits:: IBMProvider.backends(n_qubits=5, operational=True) Returns: The list of available backends that match the filter. Raises: IBMBackendValueError: If only one or two parameters from `hub`, `group`, `project` are specified. """ backends: List[IBMBackend] = [] if instance: hgp = self._provider._get_hgp(instance=instance) backends = list(hgp.backends.values()) else: backends = list(self._backends.values()) # Special handling of the `name` parameter, to support alias resolution. if name: aliases = self._aliased_backend_names() aliases.update(self._deprecated_backend_names()) name = aliases.get(name, name) kwargs["backend_name"] = name if min_num_qubits: backends = list( filter(lambda b: b.configuration().n_qubits >= min_num_qubits, backends)) if input_allowed: if not isinstance(input_allowed, list): input_allowed = [input_allowed] backends = list( filter( lambda b: set(input_allowed) <= set(b.configuration(). input_allowed), backends, )) return filter_backends(backends, filters=filters, **kwargs)