matplotlib._api
#
Funciones auxiliares para administrar la API de Matplotlib.
Esta documentación solo es relevante para los desarrolladores de Matplotlib, no para los usuarios.
Advertencia
Este módulo y sus submódulos son solo para uso interno. No los utilice en su propio código. Podemos cambiar la API en cualquier momento sin previo aviso.
- matplotlib._api. caching_module_getattr ( cls ) [fuente] #
Decorador auxiliar para implementar el nivel de módulo
__getattr__
como una clase.Este decorador debe usarse en el nivel superior del módulo de la siguiente manera:
@caching_module_getattr class __getattr__: # The class *must* be named ``__getattr__``. @property # Only properties are taken into account. def name(self): ...
La
__getattr__
clase será reemplazada por una__getattr__
función tal que intentar accedername
al módulo resolverá la propiedad correspondiente (que puede estar decorada, por ejemplo, con_api.deprecated
para desaprobar los globales del módulo). Todas las propiedades se almacenan implícitamente en caché. Además, se genera y genera un AttributeError adecuado si no existe ninguna propiedad con el nombre dado.
- matplotlib._api. check_getitem ( _mapping , ** kwargs ) [fuente] #
kwargs debe constar de una sola clave, par de valores. Si la clave está en _mapping , devuelve
_mapping[value]
; de lo contrario, genere un ValueError apropiado.Ejemplos
>>> _api.check_getitem({"foo": "bar"}, arg=arg)
- matplotlib._api. check_in_list ( _values , * , _print_supported_values = True , ** kwargs ) [fuente] #
Para cada clave, par de valores en kwargs , verifique que el valor esté en _values .
- Parámetros :
- _valores iterables
Secuencia de valores a comprobar.
- _print_supported_values booleano , predeterminado: Verdadero
Ya sea para imprimir _valores al generar ValueError.
- ** dictado de los kwargs
clave, pares de valores como argumentos de palabras clave para encontrar en _values .
- aumenta :
- ValorError
Si algún valor en kwargs no se encuentra en _values .
Ejemplos
>>> _api.check_in_list(["foo", "bar"], arg=arg, other_arg=other_arg)
- matplotlib._api. check_isinstance ( _tipos , ** kwargs ) [fuente] #
Para cada clave, par de valores en kwargs , verifique que el valor sea una instancia de uno de _types ; si no, genere un TypeError apropiado.
Como caso especial, una
None
entrada en _types se trata como NoneType.Ejemplos
>>> _api.check_isinstance((SomeClass, None), arg=arg)
- matplotlib._api. check_shape ( _shape , ** kwargs ) [fuente] #
Para cada clave, par de valores en kwargs , verifique que el valor tenga la forma _shape , si no, genere un ValueError apropiado.
Ninguno en la forma se trata como un tamaño "libre" que puede tener cualquier longitud. por ejemplo (Ninguno, 2) -> (N, 2)
Los valores marcados deben ser matrices numpy.
Ejemplos
Para verificar matrices con forma (N, 2)
>>> _api.check_shape((None, 2), arg=arg, other_arg=other_arg)
- clase matplotlib._api. classproperty ( fget , fset = Ninguno , fdel = Ninguno , doc = Ninguno ) [fuente] #
Bases:
object
Me gusta
property
, pero también se activa al acceder a través de la clase, y es la clase la que se pasa como argumento.Ejemplos
class C: @classproperty def foo(cls): return cls.__name__ assert C.foo == "C"
- propiedad fget #
- matplotlib._api. define_aliases ( alias_d , cls = Ninguno ) [fuente] #
Decorador de clase para definir alias de propiedad.
Usar como
@_api.define_aliases({"property": ["alias", ...], ...}) class C: ...
Para cada propiedad, si la correspondiente está definida en la clase hasta el momento, se definirá
get_property
un alias named ;get_alias
lo mismo se hará con los setters. Si no existe ni el getter ni el setter, se generará una excepción.El mapa de alias se almacena como el
_alias_map
atributo en la clase y puede ser utilizado pornormalize_kwargs
(lo que supone que los alias de mayor prioridad son los últimos).
- matplotlib._api. recursive_subclasses ( cls ) [fuente] #
Rendimiento cls y subclases directas e indirectas de cls .
- matplotlib._api. select_matching_signature ( funciones , * argumentos , ** kwargs ) [fuente] #
Seleccione y llame a la función que acepta .
*args, **kwargs
funcs es una lista de funciones que no deberían generar ninguna excepción (excepto
TypeError
si los argumentos pasados no coinciden con su firma).select_matching_signature
intenta llamar a cada una de las funciones en funciones con (en el orden en que se dan). Las llamadas que fallan con un se saltan silenciosamente. Tan pronto como una llamada tiene éxito, devuelve su valor de retorno. Si ninguna función acepta , entonces se vuelve a generar la planteada por la última llamada fallida.*args, **kwargs
TypeError
select_matching_signature
*args, **kwargs
TypeError
Las personas que llaman normalmente deben asegurarse de que cualquiera solo pueda vincular una sola función (para evitar cualquier ambigüedad), aunque esto no lo comprueba .
*args, **kwargs
select_matching_signature
notas
select_matching_signature
está destinado a ayudar a implementar funciones sobrecargadas de firmas. En general, tales funciones deben evitarse, excepto por problemas de compatibilidad con versiones anteriores. Un patrón de uso típico esdef 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
lo que permite llamar a my_func con dos parámetros ( old1 y old2 ) o uno solo ( new ). Tenga en cuenta que la nueva firma se proporciona en último lugar, de modo que las personas que llaman obtienen una
TypeError
correspondiente a la nueva firma si los argumentos que pasaron no coinciden con ninguna firma.
- matplotlib._api. warn_external ( mensaje , categoría = Ninguno ) [fuente] #
warnings.warn
contenedor que establece el nivel de pila en "fuera de Matplotlib".El emisor original de la advertencia se puede obtener parcheando esta función de nuevo a
warnings.warn
, es decir (o , etc.)._api.warn_external = warnings.warn
functools.partial(warnings.warn, stacklevel=2)
Funciones auxiliares para desaprobar partes de la API de Matplotlib.
Esta documentación solo es relevante para los desarrolladores de Matplotlib, no para los usuarios.
Advertencia
Este módulo es solo para uso interno. No lo use en su propio código. Podemos cambiar la API en cualquier momento sin previo aviso.
- excepción matplotlib._api.deprecation. MatplotlibDeprecationWarning [fuente] #
Bases:
DeprecationWarning
Una clase para emitir advertencias de obsolescencia para los usuarios de Matplotlib.
- matplotlib._api.deprecación. delete_parameter ( desde , nombre , función = Ninguno , ** kwargs ) [fuente] #
Decorator que indica que el nombre de parámetro de func está en desuso.
La implementación real de func debería mantener el parámetro de nombre
**kwargs
en su firma o aceptar un argumento (a través del cual se pasaría el nombre ).Los parámetros que vienen después del parámetro en desuso se convierten efectivamente en solo palabras clave (ya que no se pueden pasar posicionalmente sin activar DeprecationWarning en el parámetro en desuso), y deben marcarse como tales después de que haya pasado el período de desuso y se elimine el parámetro en desuso.
Los parámetros que no sean since , name y func son solo palabras clave y se reenvían a
warn_deprecated
.Ejemplos
@_api.delete_parameter("3.1", "unused") def func(used_arg, other_arg, unused, more_args): ...
- matplotlib._api.deprecación. deprecate_method_override ( método , obj , * , allow_empty = False , ** kwargs ) [fuente] #
Regrese
obj.method
con una desaprobación si se anuló, de lo contrario, Ninguno.- Parámetros :
- método
Un método independiente, es decir, una expresión de la forma
Class.method_name
. Recuerde que dentro del cuerpo de un método, uno siempre puede usar__class__
para referirse a la clase que se está definiendo actualmente.- objeto
Ya sea un objeto de la clase donde se define el método , o una subclase de esa clase.
- allow_empty bool, predeterminado: Falso
Si permitir anulaciones por métodos "vacíos" sin emitir una advertencia.
- **kwargs
Parámetros adicionales pasados para
warn_deprecated
generar la advertencia de obsolescencia; debe incluir al menos la clave "since".
- clase matplotlib._api.deprecation. deprecate_privatize_attribute ( * argumentos , ** kwargs ) [fuente] #
Bases:
object
Ayudante para desaprobar el acceso público a un atributo (o método).
Este ayudante solo debe usarse en el ámbito de la clase, de la siguiente manera:
class Foo: attr = _deprecate_privatize_attribute(*args, **kwargs)
donde se reenvían todos los
deprecated
parámetros . Este formulario creaattr
una propiedad que reenvía el acceso de lectura y escritura aself._attr
(mismo nombre pero con un guión bajo al principio), con una advertencia de obsolescencia. Tenga en cuenta que el nombre del atributo se deriva del nombre al que está asignado este ayudante . Este ayudante también funciona para métodos en desuso.
- matplotlib._api.deprecación. en desuso ( desde , * , mensaje = '' , nombre = '' , alternativa = '' , pendiente = Falso , obj_type = Ninguno , anexo = '' , eliminación = '' ) [fuente] #
Decorador para marcar una función, una clase o una propiedad como obsoleta.
Al desaprobar un método de clase, un método estático o una propiedad, el
@deprecated
decorador debe pasar por debajo@classmethod
y@staticmethod
(es decir,deprecated
debe decorar directamente el invocable subyacente), pero por encima@property
.Al desaprobar una clase
C
destinada a ser utilizada como clase base en una jerarquía de herencia múltiple, seC
debe definir un__init__
método (si,C
en cambio, se hereda__init__
de su propia clase base,@deprecated
se estropearía la__init__
herencia al instalar la suya propia (emisión de desaprobación)C.__init__
).Los parámetros son los mismos que para
warn_deprecated
, excepto que obj_type por defecto es 'clase' si decora una clase, 'atributo' si decora una propiedad y 'función' de lo contrario.Ejemplos
@deprecated('1.4.0') def the_function_to_deprecate(): pass
- matplotlib._api.deprecación. make_keyword_only ( desde , nombre , función = Ninguno ) [fuente] #
El decorador que indica que pasar el nombre del parámetro (o cualquiera de los siguientes) posicionalmente a func está en desuso.
Cuando se usa en un método que tiene un contenedor de pyplot, este debe ser el decorador más externo, para que
boilerplate.py
pueda acceder a la firma original.
- matplotlib._api.deprecación. rename_parameter ( desde , antiguo , nuevo , función = Ninguno ) [fuente] #
Decorator que indica que el parámetro old of func se renombra a new .
La implementación real de func debe usar new , no old . Si se pasa old a func , se emite un DeprecationWarning y se usa su valor, incluso si new también se pasa por palabra clave (esto es para simplificar las funciones de envoltura de pyplot, que siempre pasan new explícitamente al método Axes). Si también se pasa new pero posicionalmente, la función subyacente generará un TypeError durante el enlace del argumento.
Ejemplos
@_api.rename_parameter("3.1", "bad_name", "good_name") def func(good_name): ...
- matplotlib._api.deprecación. warn_deprecated ( desde , * , mensaje = '' , nombre = '' , alternativa = '' , pendiente = False , obj_type = '' , addendum = '' , eliminación = '' ) [fuente] #
Mostrar una desaprobación estandarizada.
- Parámetros :
- desde la calle
La versión en la que esta API quedó obsoleta.
- cadena de mensaje , opcional
Anule el mensaje de desuso predeterminado. Los especificadores de formato
%(since)s
,%(name)s
,%(alternative)s
,%(obj_type)s
,%(addendum)s
y%(removal)s
serán reemplazados por los valores de los respectivos argumentos pasados a esta función.- cadena de nombre , opcional
El nombre del objeto obsoleto.
- calle alternativa , opcional
Una API alternativa que el usuario puede usar en lugar de la API obsoleta. La advertencia de obsolescencia le informará al usuario sobre esta alternativa, si se proporciona.
- bool pendiente , opcional
Si es True, utiliza una advertencia de depreciación pendiente en lugar de una advertencia de depreciación. No se puede utilizar junto con la eliminación .
- obj_type str, opcional
El tipo de objeto que está en desuso.
- addendum str, opcional
Texto adicional adjunto directamente al mensaje final.
- eliminación str, opcional
La versión de eliminación esperada. Con el valor predeterminado (una cadena vacía), se calcula automáticamente una versión de eliminación desde . Establezca otros valores falsos para no programar una fecha de eliminación. No se puede utilizar junto con la pendiente .
Ejemplos
# To warn of the deprecation of "matplotlib.name_of_module" warn_deprecated('1.4.0', name='matplotlib.name_of_module', obj_type='module')