matplotlib._api#
Funções auxiliares para gerenciar a API Matplotlib.
Esta documentação é relevante apenas para desenvolvedores Matplotlib, não para usuários.
Aviso
Este módulo e seus submódulos são apenas para uso interno. Não os use em seu próprio código. Podemos alterar a API a qualquer momento sem aviso prévio.
- matplotlib._api. caching_module_getattr ( cls ) [fonte] #
Decorador auxiliar para implementar o nível do módulo
__getattr__como uma classe.Este decorador deve ser utilizado no nível superior do módulo da seguinte forma:
@caching_module_getattr class __getattr__: # The class *must* be named ``__getattr__``. @property # Only properties are taken into account. def name(self): ...
A
__getattr__classe será substituída por uma__getattr__função de modo que tentar acessarnameo módulo resolva a propriedade correspondente (que pode ser decorada, por exemplo_api.deprecated, para depreciar globals do módulo). As propriedades são todas armazenadas em cache implicitamente. Além disso, um AttributeError adequado é gerado e levantado se não existir nenhuma propriedade com o nome fornecido.
- matplotlib._api. check_getitem ( _mapping , ** kwargs ) [fonte] #
kwargs deve consistir em uma única chave, par de valores. Se a chave estiver em _mapping , retorne
_mapping[value]; caso contrário, gere um ValueError apropriado.Exemplos
>>> _api.check_getitem({"foo": "bar"}, arg=arg)
- matplotlib._api. check_in_list ( _values , * , _print_supported_values = True , ** kwargs ) [source] #
Para cada chave, par de valor em kwargs , verifique se o valor está em _values .
- Parâmetros :
- _valores iteráveis
Sequência de valores a serem verificados.
- _print_supported_values bool, padrão: True
Se deve imprimir _values ao aumentar ValueError.
- ** ditado dos kwargs
chave, pares de valor como argumentos de palavra-chave para localizar em _values .
- Aumentos :
- ValueError
Se algum valor em kwargs não for encontrado em _values .
Exemplos
>>> _api.check_in_list(["foo", "bar"], arg=arg, other_arg=other_arg)
- matplotlib._api. check_isinstance ( _types , ** kwargs ) [fonte] #
Para cada chave, par de valor em kwargs , verifique se value é uma instância de um dos _types ; caso contrário, gere um TypeError apropriado.
Como um caso especial, uma
Noneentrada em _types é tratada como NoneType.Exemplos
>>> _api.check_isinstance((SomeClass, None), arg=arg)
- matplotlib._api. check_shape ( _shape , ** kwargs ) [fonte] #
Para cada chave, par de valor em kwargs , verifique se o valor tem a forma _shape , caso contrário, gere um ValueError apropriado.
Nenhum na forma é tratado como um tamanho "livre" que pode ter qualquer comprimento. por exemplo (Nenhum, 2) -> (N, 2)
Os valores verificados devem ser matrizes numpy.
Exemplos
Para verificar matrizes em forma de (N, 2)
>>> _api.check_shape((None, 2), arg=arg, other_arg=other_arg)
- classe matplotlib._api. classproperty ( fget , fset = Nenhum , fdel = Nenhum , doc = Nenhum ) [fonte] #
Bases:
objectComo
property, mas também dispara no acesso por meio da classe, e é a classe que é passada como argumento.Exemplos
class C: @classproperty def foo(cls): return cls.__name__ assert C.foo == "C"
- propriedade fget #
- matplotlib._api. define_aliases ( alias_d , cls = Nenhum ) [fonte] #
Decorador de classe para definir aliases de propriedade.
Usar como
@_api.define_aliases({"property": ["alias", ...], ...}) class C: ...
Para cada propriedade, se a correspondente
get_propertyestiver definida na classe até o momento,get_aliasserá definido um alias nomeado; o mesmo será feito para os setters. Se nem o getter nem o setter existirem, uma exceção será gerada.O mapa de alias é armazenado como o
_alias_mapatributo na classe e pode ser usado pornormalize_kwargs(o que assume que os aliases de prioridade mais alta vêm por último).
- matplotlib._api. recursive_subclasses ( cls ) [fonte] #
Rendimento cls e subclasses diretas e indiretas de cls .
- matplotlib._api. select_matching_signature ( funcs , * args , ** kwargs ) [fonte] #
Selecione e chame a função que aceita .
*args, **kwargsfuncs é uma lista de funções que não devem gerar nenhuma exceção (exceto
TypeErrorse os argumentos passados não corresponderem à sua assinatura).select_matching_signaturetenta chamar cada uma das funções em funcs com (na ordem em que são dadas). As chamadas que falham com um são ignoradas silenciosamente. Assim que uma chamada for bem-sucedida, retorna seu valor de retorno. Se nenhuma função aceitar , então o levantado pela última chamada com falha é levantado novamente.*args, **kwargsTypeErrorselect_matching_signature*args, **kwargsTypeErrorNormalmente, os chamadores devem garantir que any possa vincular apenas uma única função (para evitar qualquer ambiguidade), embora isso não seja verificado por .
*args, **kwargsselect_matching_signatureNotas
select_matching_signaturedestina-se a ajudar na implementação de funções com sobrecarga de assinatura. Em geral, essas funções devem ser evitadas, exceto por questões de retrocompatibilidade. Um padrão de uso típico édef my_func(*args, **kwargs): params = select_matching_signature( [lambda old1, old2: locals(), lambda new: locals()], *args, **kwargs) if "old1" in params: warn_deprecated(...) old1, old2 = params.values() # note that locals() is ordered. else: new, = params.values() # do things with params
que permite que my_func seja chamado com dois parâmetros ( old1 e old2 ) ou um único ( new ). Observe que a nova assinatura é fornecida por último, para que os chamadores obtenham uma
TypeErrorcorrespondência com a nova assinatura se os argumentos que eles transmitiram não corresponderem a nenhuma assinatura.
- matplotlib._api. warning_external ( mensagem , categoria = Nenhum ) [fonte] #
warnings.warnwrapper que define stacklevel como "fora do Matplotlib".O emissor original do aviso pode ser obtido corrigindo esta função de volta para
warnings.warn, ou seja, (ou , etc.)._api.warn_external = warnings.warnfunctools.partial(warnings.warn, stacklevel=2)
Funções auxiliares para depreciar partes da API Matplotlib.
Esta documentação é relevante apenas para desenvolvedores Matplotlib, não para usuários.
Aviso
Este módulo é apenas para uso interno. Não o use em seu próprio código. Podemos alterar a API a qualquer momento sem aviso prévio.
- exceção matplotlib._api.deprecation. MatplotlibDeprecationWarning [fonte] #
Bases:
DeprecationWarningUma classe para emitir avisos de descontinuação para usuários do Matplotlib.
- matplotlib._api.deprecation. delete_parameter ( since , name , func = None , ** kwargs ) [source] #
Decorador indicando que o nome do parâmetro de func está sendo obsoleto.
A implementação real de func deve manter o parâmetro name em sua assinatura ou aceitar um
**kwargsargumento (através do qual name seria passado).Os parâmetros que vêm após o parâmetro obsoleto tornam-se efetivamente apenas palavras-chave (já que não podem ser transmitidos posicionalmente sem acionar o DeprecationWarning no parâmetro obsoleto) e devem ser marcados como tal após o período de obsolescência ter passado e o parâmetro obsoleto ser removido.
Parâmetros diferentes de since , name e func são apenas palavras-chave e encaminhados para
warn_deprecated.Exemplos
@_api.delete_parameter("3.1", "unused") def func(used_arg, other_arg, unused, more_args): ...
- matplotlib._api.deprecation. deprecate_method_override ( method , obj , * , allow_empty = False , ** kwargs ) [source] #
Retorne
obj.methodcom uma depreciação se tiver sido substituído, caso contrário, None.- Parâmetros :
- método
Um método não vinculado, ou seja, uma expressão da forma
Class.method_name. Lembre-se que dentro do corpo de um método, pode-se sempre usar__class__para se referir à classe que está sendo definida no momento.- obj
Um objeto da classe onde o método é definido ou uma subclasse dessa classe.
- allow_empty bool, padrão: False
Se deve permitir substituições por métodos "vazios" sem emitir um aviso.
- ** kwargs
Parâmetros adicionais passados para
warn_deprecatedgerar o aviso de descontinuação; deve incluir pelo menos a chave "desde".
- classe matplotlib._api.deprecation. deprecate_privatize_attribute ( * args , ** kwargs ) [fonte] #
Bases:
objectAuxiliar para depreciar o acesso público a um atributo (ou método).
Este helper deve ser utilizado apenas no escopo da classe, conforme abaixo:
class Foo: attr = _deprecate_privatize_attribute(*args, **kwargs)
onde todos os parâmetros são encaminhados para
deprecated. Este formulário criaattruma propriedade que encaminha o acesso de leitura e gravação paraself._attr(mesmo nome, mas com um sublinhado à esquerda), com um aviso de descontinuação. Observe que o nome do atributo é derivado do nome atribuído a este auxiliar . Este auxiliar também funciona para métodos obsoletos.
- matplotlib._api.deprecation. obsoleto ( desde , * , mensagem = '' , nome = '' , alternativa = '' , pendente = False , obj_type = Nenhum , adendo = '' , remoção = '' ) [source] #
Decorator para marcar uma função, uma classe ou uma propriedade como obsoleta.
Ao depreciar um método de classe, um método estático ou uma propriedade, o
@deprecateddecorador deve ir para baixo@classmethode@staticmethod(ou seja,deprecateddeve decorar diretamente o callable subjacente), mas para cima@property.Ao depreciar uma classe
Cdestinada a ser usada como uma classe base em uma hierarquia de herança múltipla,Cdeve -se definir um__init__método (seC, em vez disso, for herdado__init__de sua própria classe base,@deprecatedisso atrapalharia a__init__herança ao instalar seu próprio (emissão de depreciação)C.__init__).Os parâmetros são os mesmos de
warn_deprecated, exceto que o padrão obj_type é 'class' se estiver decorando uma classe, 'attribute' se decorando uma propriedade e 'function' caso contrário.Exemplos
@deprecated('1.4.0') def the_function_to_deprecate(): pass
- matplotlib._api.deprecation. make_keyword_only ( since , name , func = None ) [source] #
Decorador indicando que passar o nome do parâmetro (ou qualquer um dos seguintes) posicionalmente para func está sendo obsoleto.
Quando usado em um método que possui um wrapper pyplot, este deve ser o decorador mais externo, para que
boilerplate.pypossa acessar a assinatura original.
- matplotlib._api.deprecation. rename_parameter ( since , old , new , func = None ) [source] #
Decorador indicando que o parâmetro old de func foi renomeado para new .
A implementação real de func deve usar new , não old . Se old for passado para func , um DeprecationWarning é emitido e seu valor é usado, mesmo que new também seja passado por palavra-chave (isso é para simplificar as funções wrapper pyplot, que sempre passam new explicitamente para o método Axes). Se new também for passado, mas posicionalmente, um TypeError será levantado pela função subjacente durante a ligação do argumento.
Exemplos
@_api.rename_parameter("3.1", "bad_name", "good_name") def func(good_name): ...
- matplotlib._api.deprecation. warning_deprecated ( desde , * , mensagem = '' , nome = '' , alternativa = '' , pendente = False , obj_type = '' , adendo = '' , remoção = '' ) [fonte] #
Exibir uma depreciação padronizada.
- Parâmetros :
- desde str
A versão na qual esta API foi preterida.
- mensagem str, opcional
Substitua a mensagem de descontinuação padrão. Os especificadores de formato
%(since)s,%(name)s,%(alternative)s,%(obj_type)s,%(addendum)se%(removal)sserão substituídos pelos valores dos respectivos argumentos passados para esta função.- nome str, opcional
O nome do objeto obsoleto.
- str alternativo , opcional
Uma API alternativa que o usuário pode usar no lugar da API obsoleta. O aviso de descontinuação informará o usuário sobre essa alternativa, se fornecida.
- bool pendente , opcional
Se for True, usa um PendingDeprecationWarning em vez de um DeprecationWarning. Não pode ser usado em conjunto com a remoção .
- obj_type str, opcional
O tipo de objeto sendo obsoleto.
- adendo str, opcional
Texto adicional anexado diretamente à mensagem final.
- linha de remoção , opcional
A versão de remoção esperada. Com o padrão (uma string vazia), uma versão de remoção é calculada automaticamente desde . Defina outros valores Falsy para não agendar uma data de remoção. Não pode ser usado junto com pendentes .
Exemplos
# To warn of the deprecation of "matplotlib.name_of_module" warn_deprecated('1.4.0', name='matplotlib.name_of_module', obj_type='module')