Skip to main content
IBM Quantum Platform

Utilitários

qiskit.utils


Obsoletos

add_deprecation_to_docstring

qiskit.utils.add_deprecation_to_docstring(func, msg, *, since, pending)

GitHub

Insira dinamicamente a mensagem de depreciação na docstring de func.

Parâmetros

  • func (Callable) – A função a ser modificada.
  • msg (str) – A mensagem completa de depreciação.
  • since (str | None) – A versão em que a depreciação começou.
  • pending (bool) – A depreciação ainda está pendente?

Tipo de retorno

Nenhum

deprecate_arg

qiskit.utils.deprecate_arg(name, *, since, additional_msg=None, deprecation_description=None, pending=False, package_name='Qiskit', new_alias=None, predicate=None, removal_timeline='no earlier than 3 months after the release date')

GitHub

Decorador para indicar que um argumento foi depreciado de alguma forma.

Esse decorador pode ser usado várias vezes na mesma função, uma vez por argumento obsoleto. Ele deve ser colocado abaixo de outros decoradores, como @staticmethod e decoradores de imóveis.

Parâmetros

  • name (str) – O nome do argumento obsoleto.
  • since (str) – A versão em que a depreciação começou. Se a depreciação estiver pendente, defina a versão para quando ela começou; mas, mais tarde, ao mudar de pendente para depreciada, atualize-a para a nova versão.
  • deprecation_description (str | None) – O que está sendo descontinuado? E.g. "Definindo o argumento my_func() de my_arg como None." Se não for definido, o padrão será " {func_name} 's argument {name} ".
  • additional_msg (str | None) – Coloque aqui qualquer informação adicional, como o que usar em seu lugar (se new_alias não estiver definido). Por exemplo, "Em vez disso, use o argumento new_arg, que é semelhante, mas não afeta a configuração do circuito."
  • pending (bool) – Defina como True se a depreciação ainda estiver pendente.
  • package_name (str) – O nome do pacote mostrado na mensagem de depreciação (por exemplo, o nome do pacote PyPI ).
  • new_alias (str | None) – Se o arg tiver sido simplesmente renomeado, defina isso como o novo nome. O decorador atualizará dinamicamente os kwargs de modo que, quando o usuário definir o argumento antigo, ele será passado como o argumento new_alias.
  • predicate (Callable[[Any], bool] | None) – Registre o aviso de tempo de execução apenas se o predicado retornar Verdadeiro. Isso é útil para depreciar determinados valores ou tipos para um argumento, por exemplo, lambda my_arg: isinstance(my_arg, dict). Independentemente de um predicado estar definido, o aviso de tempo de execução só será registrado quando o usuário especificar o argumento.
  • removal_timeline (str) – Em quanto tempo essa depreciação poderá ser removida? Espera um valor como "não antes de 6 meses após a última versão" ou "na versão 9.99 ".

Retorna

O chamável decorado.

Tipo de retorno

Chamável

deprecate_func

qiskit.utils.deprecate_func(*, since, additional_msg=None, pending=False, package_name='Qiskit', removal_timeline='no earlier than 3 months after the release date', is_property=False, stacklevel=2)

GitHub

Decorador para indicar que uma função foi descontinuada.

Ele deve ser colocado abaixo de outros decoradores, como @staticmethod e decoradores de propriedade.

Ao descontinuar uma classe, defina esse decorador em sua função __init___.

Parâmetros

  • since (str) – A versão em que a depreciação começou. Se a depreciação estiver pendente, defina a versão para quando ela começou; mas, posteriormente, ao mudar de pendente para depreciada, atualize since para a nova versão.
  • additional_msg (str | None) – Coloque aqui qualquer informação adicional, como o que usar em seu lugar. Por exemplo, "Em vez disso, use a função new_func do módulo <my_module>.<my_submodule>, que é semelhante, mas usa aceleração de GPU."
  • pending (bool) – Defina como True se a depreciação ainda estiver pendente.
  • package_name (str) – O nome do pacote mostrado na mensagem de depreciação (por exemplo, o nome do pacote PyPI ).
  • removal_timeline (str) – Em quanto tempo essa depreciação poderá ser removida? Espera um valor como "não antes de 6 meses após a última versão" ou "na versão 9.99 ".
  • is_property (bool) – Se a função obsoleta for uma @property, defina este valor como True para que a mensagem gerada a descreva corretamente como tal. (Isso não é necessário para os setters de propriedade, pois sua string de documentação é ignorada pelo Python.)
  • stacklevel (int) – Nível de pilha passado para warnings.warn().

Retorna

O chamável decorado.

Tipo de retorno

Chamável


Conversão de unidades SI

apply_prefix

qiskit.utils.apply_prefix(value, unit)

GitHub

Dado o prefixo e o valor de uma unidade SI, aplique o prefixo para converter para a unidade SI padrão.

Parâmetros

Retorna

Valor convertido.

Tipo de retorno

flutuante ParameterExpression

Nota

Isso pode induzir a um erro de valor minúsculo devido à representação interna do objeto float. Veja https://docs.python.org/3/tutorial/floatingpoint.html para obter detalhes.

Aumentos

ValueError – Se o unit não for reconhecido.

Parâmetros

Tipo de retorno

flutuante ParameterExpression

detach_prefix

qiskit.utils.detach_prefix(value, decimal=None)

GitHub

Dado um valor de unidade SI, encontre o prefixo mais adequado para escalar o valor.

Por exemplo, o value = 1.3e8 será convertido em uma tupla de (130.0, "M"), que representa um valor em escala e uma unidade auxiliar que pode ser usada para exibir o valor. No exemplo acima, esse valor pode ser exibido como 130 MHz (a unidade é arbitrária aqui).

Exemplo

>>> value, prefix = detach_prefix(1e4)
>>> print(f"{value} {prefix}Hz")
10 kHz

Parâmetros

  • value (float) – O número para encontrar o prefixo.
  • decimal (int | None) – Opcional. Um número inteiro arbitrário para representar a precisão do valor. Se especificado, ele tenta arredondar a mantissa e ajustar o prefixo ao valor arredondado. Por exemplo, 999_999.91 se tornará 999.9999 k com decimal=4, enquanto 1.0 M com decimal=3 ou menos.

Retorna

Uma tupla de valor escalonado e prefixo.

Tipo de retorno

tupla[ float, str ]

Nota

Isso pode induzir a um erro de valor minúsculo devido à representação interna do objeto float. Veja https://docs.python.org/3/tutorial/floatingpoint.html para obter detalhes.

Aumentos

Parâmetros

Tipo de retorno

tupla[ float, str ]


Ferramentas da aula

wrap_method

qiskit.utils.wrap_method(cls, name, *, before=None, after=None)

GitHub

Envolva a funcionalidade do método de instância ou classe cls.name com comportamento adicional before e after.

Isso altera cls, substituindo o atributo name pela nova funcionalidade. Isso é útil ao criar decoradores de classe. Em vez disso, é permitido que o método seja definido em qualquer classe principal.

Se before ou after forem fornecidos, eles deverão ser chamáveis com uma assinatura compatível com o método referido. Eles serão chamados imediatamente antes ou depois do método, conforme apropriado, e qualquer valor de retorno será ignorado.

Parâmetros

  • cls (type) – a classe a ser modificada.
  • name (str) – o nome do método na classe a ser envolvida.
  • before (Callable | None) – uma função que deve ser chamada antes do método que está sendo encapsulado.
  • after (Callable | None) – uma função que deve ser chamada após o método que está sendo encapsulado.

Aumentos

ValueError - se o método nomeado não estiver definido na classe ou em qualquer classe pai.


Multiprocessamento

default_num_processes

qiskit.utils.default_num_processes()

GitHub

Obtém o número de processos que uma chamada paralela de multiprocessamento usará por padrão.

Normalmente, essas funções também aceitam um argumento de palavra-chave num_processes que substituirá o valor retornado por essa função.

Em ordem de prioridade (da maior para a menor), o valor de retorno será:

  1. A variável de ambiente QISKIT_NUM_PROCS , se definida.
  2. A chave num_processes do arquivo de configuração do usuário do Qiskit, se definida.
  3. Metade das CPUs lógicas disponíveis para esse processo, se isso puder ser determinado. Esse é um substituto para o número de CPUs físicas, pressupondo multithreading simultâneo (SMT) duplo; empiricamente, o desempenho de multiprocessamento do Qiskit parece ser pior quando se tenta usar núcleos SMT.
  4. 1, se tudo o mais falhar.

Se um valor configurado pelo usuário for definido como um número menor que 1, ele será tratado como se fosse 1.

Tipo de retorno

int

is_main_process

qiskit.utils.is_main_process()

GitHub

Verifica se o processo atual é o principal.

Como Python 3.8, isso é idêntico à maneira padrão Python de calcular isso:

>>> import multiprocessing
>>> multiprocessing.parent_process() is None

Essa função foi deixada para compatibilidade com versões anteriores, mas há poucos motivos para não usar as ferramentas internas do Python.

Tipo de retorno

bool

local_hardware_info

qiskit.utils.local_hardware_info()

GitHub

Informações básicas de hardware sobre o computador local.

Tenta estimar o número de CPUs físicas na máquina, mesmo quando o hyperthreading está ativado. A contagem da CPU tem como padrão 1 quando a contagem real não pode ser determinada.

Retorna

As informações de hardware.

Tipo de retorno

dict

should_run_in_parallel

qiskit.utils.should_run_in_parallel(num_processes=None)

GitHub

Decidir se uma função de multiprocessamento deve gerar subprocessos para paralelização.

Em particular, é assim que o parallel_map() decide se deve ou não usar o multiprocessamento. O argumento num_processes , por si só, não impõe o paralelismo; por padrão, o Qiskit só usará o paralelismo baseado em processos quando um método de início de geração de processos semelhante ao fork estiver em vigor. Você pode substituir essa decisão definindo o método de início multiprocessing método de inicialização usado, definindo a variável de ambiente QISKIT_PARALLEL como "TRUE" ou definindo parallel = true no arquivo de configurações do usuário.

Essa função inclui dois gerenciadores de contexto que podem ser usados para modificar temporariamente o valor de retorno dessa função:

override

should_run_in_parallel.override(value)

GitHub

Um gerenciador de contexto no qual o should_run_in_parallel() retornará o endereço value.

Isso não é uma substituição completa; o Qiskit nunca tentará fazer o paralelismo se apenas um único processo estiver disponível e não permitirá o paralelismo baseado em processos em uma profundidade maior que 1.

Parâmetros

value (bool)

ignore_user_settings

should_run_in_parallel.ignore_user_settings()

GitHub

Um gerenciador de contexto no qual o should_run_in_parallel() ignorará as variáveis de configuração do ambiente.

Em particular, a variável de ambiente QISKIT_PARALLEL e o arquivo de configuração do usuário são ignorados nesse contexto.

Parâmetros

num_processes (int | None) – o número máximo de processos solicitados para uso (None implica o padrão).

Tipo de retorno

bool

Exemplos

Substitui temporariamente as configurações definidas para desativar o paralelismo:

>>> with should_run_in_parallel.override(True):
...     assert should_run_in_parallel(8)
>>> with should_run_in_parallel.override(False):
...     assert not should_run_in_parallel(8)

Uma função auxiliar para chamar uma função personalizada com Python ProcessPoolExecutor. As tarefas podem ser executadas em paralelo usando essa função.

parallel_map

qiskit.utils.parallel_map(task, values, task_args=(), task_kwargs=None, num_processes=None)

GitHub

Execução paralela de um mapeamento de valores para a tarefa de função. Isso é funcionalmente equivalente a:

result = [task(value, *task_args, **task_kwargs) for value in values]

Isso paralelizará os resultados se o número de values for maior que um e should_run_in_parallel() retorna True. Caso contrário, ele será executado em série.

Parâmetros

  • task (func) – Função que deve ser chamada para cada valor em values.
  • values (array_like) – Lista ou matriz de valores para os quais a função task deve ser avaliada.
  • task_args (list) – Argumentos adicionais opcionais para a função task .
  • task_kwargs (dict) – Argumento opcional de palavra-chave adicional para a função task .
  • num_processes (int) – Número de processos a serem gerados. Se não for fornecido, o valor de retorno de default_num_processes() é usado.

Retorna

A lista de resultados contém o valor de task(value, *task_args, **task_kwargs) para cada valor em values.

Tipo de retorno

Resultado

Exemplos

import time
from qiskit.utils import parallel_map
def func(_):
        time.sleep(0.1)
        return 0
parallel_map(func, list(range(10)));

Verificadores de dependência opcionais

O Qiskit tem vários recursos que são ativados somente se determinadas dependências opcionais forem atendidas. Este módulo, qiskit.utils.optionalstem uma coleção de objetos que podem ser usados para testar se determinada funcionalidade está disponível e, opcionalmente, gerar MissingOptionalLibraryError se a funcionalidade não estiver disponível.

Testadores disponíveis

Componentes Qiskit

qiskit.utils.optionals.HAS_AER

O Qiskit Aer oferece simuladores de alto desempenho para os circuitos quânticos criados no Qiskit.

qiskit.utils.optionals.HAS_IBMQ

O Qiskit IBMQ Provider é usado para acessar o hardware do IBM Quantum na nuvem IBM.

qiskit.utils.optionals.HAS_IGNIS

Qiskit Ignis fornece ferramentas para verificação de hardware quântico, caracterização de ruído e correção de erros.

qiskit.utils.optionals.HAS_TOQM

O Qiskit TOQM fornece passagens de transpilador para o algoritmo de mapeamento Time-optimal Qubit.

Bibliotecas externas do Python

qiskit.utils.optionals.HAS_CONSTRAINT

python-constraint é um solucionador de problemas de satisfação de restrições, usado na passagem do CSPLayout passagem do transpilador.

qiskit.utils.optionals.HAS_CPLEX

O CPLEX Optimizer da IBM é um solucionador de programação matemática de alto desempenho para programação linear, mista-inteira e quadrática. Isso não é mais usado pelo Qiskit, mas já foi usado no passado, e a opção permanece por motivos de compatibilidade com versões anteriores.

qiskit.utils.optionals.HAS_CVXPY

O CVXPY é um pacote Python para resolver problemas de otimização convexa. Ele é necessário para calcular as normas de diamante com quantum_info.diamond_norm().

qiskit.utils.optionals.HAS_DOCPLEX

IBM Decision Optimization O CPLEX Modelling é uma biblioteca para análise prescritiva. Assim como o CPLEX, essa opção não é mais utilizada pelo Qiskit, mas já foi usada no passado e permanece disponível para fins de compatibilidade com versões anteriores.

qiskit.utils.optionals.HAS_FIXTURES

O conjunto de testes tem recursos adicionais que estão disponíveis se o módulo opcional de acessórios estiver instalado. Isso geralmente também precisa de HAS_TESTTOOLS também. Geralmente, isso só é necessário para os desenvolvedores do Qiskit.

qiskit.utils.optionals.HAS_IPYTHON

Se o kernel IPython estiver disponível, algumas visualizações adicionais e mágicas de linha serão disponibilizadas.

qiskit.utils.optionals.HAS_IPYWIDGETS

Os widgets de monitoramento para trabalhos executados em backends externos podem ser fornecidos se o ipywidgets estiver disponível.

qiskit.utils.optionals.HAS_JAX

Alguns métodos de cálculo de gradiente em opflow.gradients exigem JAX para autodiferenciação.

qiskit.utils.optionals.HAS_JUPYTER

Alguns dos testes exigem uma instalação completa do Jupyter para testar os recursos de interatividade.

qiskit.utils.optionals.HAS_MATPLOTLIB

O Qiskit fornece várias ferramentas de visualização no módulo visualization módulo. Quase todos eles são criados usando o Matplotlib que devem ser instalados para que possam ser usados.

qiskit.utils.optionals.HAS_NETWORKX

Não é mais usado pela Qiskit. Internamente, o Qiskit agora usa a biblioteca de alto desempenho rustworkx como uma dependência central e, durante o período de mudança, às vezes era conveniente converter as coisas para o formato Python -only NetworkX formato. Alguns testes de módulos de aplicativos, como o Qiskit Nature, ainda usam o site NetworkX.

qiskit.utils.optionals.HAS_NLOPT

NLopt é uma biblioteca de otimização não linear, usada pelos otimizadores globais no módulo algorithms.optimizers .

qiskit.utils.optionals.HAS_PIL

O PIL é uma biblioteca de manipulação de imagens do site Python. Na verdade, o Qiskit usa o pillow fork do PIL se ele estiver disponível ao gerar determinadas visualizações, por exemplo, de ambos QuantumCircuit e DAGCircuit em determinados modos.

qiskit.utils.optionals.HAS_PYDOT

Para algumas visualizações de gráficos, o Qiskit usa o pydot como uma interface para GraphViz (consulte HAS_GRAPHVIZ).

qiskit.utils.optionals.HAS_PYGMENTS

O Pygments é um destacador e formatador de código usado por muitos ambientes que envolvem a exibição avançada de blocos de código, incluindo o Sphinx e o Jupyter. O Qiskit usa esse recurso ao produzir um resultado avançado para esses ambientes.

qiskit.utils.optionals.HAS_PYLATEX

Várias visualizações do site LaTeX-based, especialmente as gavetas de circuitos, precisam acessar o projeto pylatexenc para funcionar corretamente.

qiskit.utils.optionals.HAS_QASM3_IMPORT

As funções qasm3.load() e qasm3.loads() para importar programas do OpenQASM 3 para instâncias do QuantumCircuit instâncias usam um pacote importador externo.

qiskit.utils.optionals.HAS_SEABORN

O Qiskit fornece várias ferramentas de visualização no módulo visualization módulo. Alguns deles são criados usando o Seaborn, que deve ser instalado para que possam ser usados.

qiskit.utils.optionals.HAS_SKLEARN

Algumas das funções de gradiente em opflow.gradients usam métodos de regularização do Scikit Learn.

qiskit.utils.optionals.HAS_SKQUANT

Alguns dos otimizadores do site algorithms.optimizers são baseados nos encontrados no Scikit Quant, que deve ser instalado para usá-los.

qiskit.utils.optionals.HAS_SQSNOBFIT

SQSnobFit é uma biblioteca para o algoritmo "stable noisy optimization by branch and fit". Ele é usado pelo otimizador SNOBFIT .

qiskit.utils.optionals.HAS_SYMENGINE

O Symengine é um backend C++ rápido para a biblioteca de manipulação simbólica Sympy. Essa dependência é usada para carregar formatos QPY legados, em que esse pacote foi usado para lidar com Parameters.

qiskit.utils.optionals.HAS_SYMPY

SymPy é uma biblioteca do Python para matemática simbólica. SymPy era historicamente usado para a implementação da ParameterExpression classe, mas já não é mais. No entanto, isso é necessário para algumas funcionalidades antigas que utilizam ParameterExpression.sympify(). Também é utilizado em algumas funções de visualização e na correspondência de modelos.

qiskit.utils.optionals.HAS_TESTTOOLS

O conjunto de testes do Qiskit tem funcionalidades mais avançadas disponíveis se a biblioteca opcional testtools estiver instalada. Geralmente, isso só é necessário para os desenvolvedores do Qiskit.

qiskit.utils.optionals.HAS_TWEEDLEDUM

Tweedledum é uma biblioteca de extensão para síntese e otimização de circuitos que podem envolver oráculos clássicos. No passado, a Qiskit's PhaseOracle usava esse recurso, mas ele não é mais usado pela Qiskit.

qiskit.utils.optionals.HAS_Z3

Z3 é um provador de teoremas, usado nas passagens CrosstalkAdaptiveSchedule e HoareOptimizer passagens do transpilador.

Ferramentas externas de linha de comando

qiskit.utils.optionals.HAS_GRAPHVIZ

Para algumas visualizações de gráficos, o Qiskit usa a ferramenta de visualização GraphViz por meio de sua interface pydot (consulte HAS_PYDOT).

qiskit.utils.optionals.HAS_PDFLATEX

As ferramentas de visualização que usam o LaTeX em sua saída, como as gavetas de circuito, exigem que o pdflatex esteja disponível. Em geral, é necessário garantir que você tenha uma instalação funcional do LaTeX disponível e o pacote qcircuit.tex .

qiskit.utils.optionals.HAS_PDFTOCAIRO

As ferramentas de visualização que convertem arquivos LaTeX-generated em imagens rasterizadas usam a ferramenta pdftocairo . Isso faz parte do conjunto Poppler de ferramentas de PDF.

Classes Lazy Checker

Cada um dos verificadores preguiçosos é uma instância de LazyDependencyManager em uma de suas duas subclasses: LazyImportTester e LazySubprocessTester. Eles devem ser importados de utils diretamente, se necessário, como, por exemplo:

from qiskit.utils import LazyImportTester

LazyDependencyManager

class qiskit.utils.LazyDependencyManager(*, name=None, callback=None, install=None, msg=None)

GitHub

Bases: ABC

Um gerenciador para alguns recursos opcionais cuja importação ou verificação de existência é dispendiosa.

Esses objetos podem ser usados como booleanos, como if x, e avaliarão True se a dependência que eles testam estiver disponível, e False se não estiver. A presença da dependência só será testada quando o booleano for avaliado, portanto, pode ser usado como um teste de tempo de execução em funções e métodos sem exigir um teste de tempo de importação.

Esses objetos também encapsulam o tratamento de erros se a dependência não estiver presente, portanto, você pode fazer coisas como:

from qiskit.utils import LazyImportManager
HAS_MATPLOTLIB = LazyImportManager("matplotlib")

@HAS_MATPLOTLIB.require_in_call
def my_visualisation():
    ...

def my_other_visualisation():
    # ... some setup ...
    HAS_MATPLOTLIB.require_now("my_other_visualisation")
    ...

def my_third_visualisation():
    if HAS_MATPLOTLIB:
        from matplotlib import pyplot
    else:
        ...

Em todos esses casos, o matplotlib não é importado até que as funções sejam inseridas. No caso do decorador, o matplotlib é testado para importação quando a função é chamada pela primeira vez. No segundo e terceiro casos, o carregador tenta importar matplotlib quando o método require_now() é chamado ou quando o contexto booleano é avaliado. Para os métodos require , é gerado um erro se a biblioteca não estiver disponível.

Essa é a classe base, que fornece a verificação do contexto booleano e o gerenciamento de erros. As classes concretas LazyImportTester e LazySubprocessTester fornecem pontos de entrada convenientes para testar se determinados símbolos são importáveis dos módulos ou se determinadas ferramentas de linha de comando estão disponíveis, respectivamente.

Parâmetros

  • name - o nome dessa dependência opcional.
  • callback - uma callback que é chamada imediatamente após a disponibilidade da biblioteca ser testada com o resultado. Isso será chamado apenas uma vez.
  • install - como instalar essa dependência opcional. Passado para MissingOptionalLibraryError como o parâmetro pip_install .
  • msg - uma mensagem extra a ser incluída no erro levantado, caso seja necessário.
_is_available

abstractmethod _is_available()

GitHub

As subclasses de LazyDependencyManager devem substituir esse método para implementar o teste real de disponibilidade. Esse método deve retornar um booleano, em que True indica que a dependência estava disponível. Esse método será chamado apenas uma vez.

Tipo de retorno

bool

disable_locally

disable_locally()

GitHub

Crie um contexto, durante o qual o valor do gerenciador de dependências será False. Isso significa que, dentro do contexto, todas as chamadas para esse objeto se comportarão como se a dependência não estivesse disponível, inclusive gerando erros. É válido chamar esse método independentemente de a dependência já ter sido avaliada ou não. Isso é muito útil em testes.

require_in_call

require_in_call(feature_or_callable: Callable) → Callable

require_in_call(feature_or_callable: str) → Callable[[Callable], Callable]

GitHub

Crie um decorador para callables que exija que a dependência esteja disponível quando a função ou o método decorado for chamado.

Parâmetros

feature_or_callable (str or Callable) – o nome do recurso que requer essas dependências. Se essa função for chamada diretamente como um decorador (por exemplo, @HAS_X.require_in_call em vez de @HAS_X.require_in_call("my feature")), o nome do recurso será considerado o nome da função ou o nome da classe e do método, conforme apropriado.

Retorna

um decorador que fará com que seu argumento exija essa dependência antes de ser chamado.

Tipo de retorno

Chamável

require_in_instance

require_in_instance(feature_or_class: type) → type

require_in_instance(feature_or_class: str) → Callable[[type], type]

GitHub

Um decorador de classe que requer a dependência está disponível quando a classe é inicializada. Esse decorador pode ser usado mesmo que a classe não defina um método __init__ .

Parâmetros

feature_or_class (str orType) – o nome do recurso que requer essas dependências. Se essa função for chamada diretamente como um decorador (por exemplo, @HAS_X.require_in_instance em vez de @HAS_X.require_in_instance("my feature")), o nome do recurso será considerado como o nome da classe.

Retorna

um decorador de classe que garante que o recurso envolvido esteja presente se a classe for inicializada.

Tipo de retorno

Chamável

require_now

require_now(feature)

GitHub

Tenta avidamente importar as dependências desse objeto e gera uma exceção se elas não puderem ser importadas.

Parâmetros

feature (str) – o nome do recurso que está exigindo essas dependências.

Aumentos

MissingOptionalLibraryError - se as dependências não puderem ser importadas.

LazyImportTester

class qiskit.utils.LazyImportTester(name_map_or_modules, *, name=None, callback=None, install=None, msg=None)

GitHub

Bases: LazyDependencyManager

Um testador de dependência preguiçoso para módulos importáveis do Python. Todos os objetos necessários serão importados somente no momento em que esse objeto for testado quanto ao seu valor booleano.

Parâmetros

  • name_map_or_modules (str |dict[str, Iterable[str]] | Iterable[str]) – se for um mapa de nomes, então um dicionário em que as chaves são módulos ou pacotes, e os valores são iteráveis de nomes a serem importados desse módulo. Deveria ser válido escrever from <module> import <name1>, <name2>, .... Se for apenas uma sequência de caracteres ou um objeto iterável de sequências de caracteres, então deve ser válido escrever import <module> para cada uma delas.
  • name (str | None)
  • callback (Callable[[bool], None] | None)
  • install (str | None)
  • msg (str | None)

Aumentos

ValueError - se nenhum módulo for fornecido.

LazySubprocessTester

class qiskit.utils.LazySubprocessTester(command, *, name=None, callback=None, install=None, msg=None)

GitHub

Bases: LazyDependencyManager

Um verificador preguiçoso de que uma ferramenta de linha de comando está disponível. O comando será executado apenas uma vez, no momento em que esse objeto for verificado quanto ao seu valor booleano.

Parâmetros

  • command (str |Iterable[str]) – as sequências de caracteres que compõem o comando a ser executado. Por exemplo, ["pdflatex", "-version"].
  • name (str | None)
  • callback (Callable[[bool], None] | None)
  • install (str | None)
  • msg (str | None)

Aumentos

ValueError - se for fornecido um comando vazio.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.