matplotlib._api
#
Hilfsfunktionen zum Verwalten der Matplotlib-API.
Diese Dokumentation ist nur für Matplotlib-Entwickler relevant, nicht für Benutzer.
Warnung
Dieses Modul und seine Submodule sind nur für den internen Gebrauch bestimmt. Verwenden Sie sie nicht in Ihrem eigenen Code. Wir können die API jederzeit ohne Vorankündigung ändern.
- matplotlib._api. caching_module_getattr ( cls ) [Quelle] #
Hilfsdekorateur zum Implementieren der Modulebene
__getattr__
als Klasse.Dieser Decorator muss auf der obersten Ebene des Moduls wie folgt verwendet werden:
@caching_module_getattr class __getattr__: # The class *must* be named ``__getattr__``. @property # Only properties are taken into account. def name(self): ...
Die
__getattr__
Klasse wird durch eine__getattr__
Funktion ersetzt, so dass der Versuch,name
auf das Modul zuzugreifen, die entsprechende Eigenschaft auflöst (die z. B. mit dekoriert werden kann, um_api.deprecated
Modul-Globals zu verwerfen). Die Eigenschaften werden alle implizit zwischengespeichert. Außerdem wird ein passender AttributeError generiert und ausgelöst, wenn keine Property mit dem angegebenen Namen existiert.
- matplotlib._api. check_getitem ( _mapping , ** kwargs ) [Quelle] #
kwargs muss aus einem einzigen Schlüssel-Wert -Paar bestehen. Wenn der Schlüssel in _mapping ist, geben Sie zurück
_mapping[value]
; lösen Sie andernfalls einen entsprechenden ValueError aus.Beispiele
>>> _api.check_getitem({"foo": "bar"}, arg=arg)
- matplotlib._api. check_in_list ( _values , * , _print_supported_values = True , ** kwargs ) [Quelle] #
Überprüfen Sie für jedes Schlüssel-Wert -Paar in kwargs , ob sich der Wert in _values befindet .
- Parameter :
- _values iterierbar
Sequenz von Werten, die überprüft werden sollen.
- _print_supported_values bool, Standard: True
Ob _values ausgegeben werden , wenn ValueError ausgelöst wird.
- **Kwargs Diktat
Schlüssel-Wert - Paare als Schlüsselwortargumente, die in _values zu finden sind .
- Erhöhungen :
- WertFehler
Wenn irgendein Wert in kwargs nicht in _values gefunden wird .
Beispiele
>>> _api.check_in_list(["foo", "bar"], arg=arg, other_arg=other_arg)
- matplotlib._api. check_isinstance ( _types , ** kwargs ) [Quelle] #
Prüfen Sie für jedes Schlüssel-Wert -Paar in kwargs , ob value eine Instanz von einem der _types ist ; Wenn nicht, lösen Sie einen entsprechenden TypeError aus.
Als Sonderfall wird ein
None
Eintrag in _types als NoneType behandelt.Beispiele
>>> _api.check_isinstance((SomeClass, None), arg=arg)
- matplotlib._api. check_shape ( _shape , ** kwargs ) [Quelle] #
Überprüfen Sie für jedes Schlüssel/Wert -Paar in kwargs , ob der Wert die Form _shape hat, wenn nicht, lösen Sie einen entsprechenden ValueError aus.
Keine in der Form wird als "freie" Größe behandelt, die eine beliebige Länge haben kann. zB (Keine, 2) -> (N, 2)
Die überprüften Werte müssen numpy-Arrays sein.
Beispiele
Um nach (N, 2) geformten Arrays zu suchen
>>> _api.check_shape((None, 2), arg=arg, other_arg=other_arg)
- Klasse matplotlib._api. classproperty ( fget , fset = None , fdel = None , doc = None ) [Quelle] #
Basen:
object
Wie
property
, wird aber auch beim Zugriff über die Klasse ausgelöst, und es ist die Klasse , die als Argument übergeben wird.Beispiele
class C: @classproperty def foo(cls): return cls.__name__ assert C.foo == "C"
- Eigenschaft fget #
- matplotlib._api. define_aliases ( alias_d , cls = None ) [Quelle] #
Klassendekorator zum Definieren von Eigenschaftsaliasen.
Benutzen als
@_api.define_aliases({"property": ["alias", ...], ...}) class C: ...
Für jede Eigenschaft wird, wenn die entsprechende
get_property
bisher in der Klasse definiert ist, ein Alias namensget_alias
definiert; das gleiche wird für Setter gemacht. Wenn weder Getter noch Setter vorhanden sind, wird eine Ausnahme ausgelöst.Die Alias-Map wird als
_alias_map
Attribut der Klasse gespeichert und kann von verwendet werdennormalize_kwargs
(was davon ausgeht, dass Aliase mit höherer Priorität zuletzt kommen).
- matplotlib._api. recursive_subclasses ( cls ) [Quelle] #
Ertrag cls und direkte und indirekte Unterklassen von cls .
- matplotlib._api. select_matching_signature ( funcs , * args , ** kwargs ) [Quelle] #
Wählen Sie die Funktion aus, die akzeptiert, und rufen Sie sie auf .
*args, **kwargs
funcs ist eine Liste von Funktionen, die keine Ausnahme auslösen sollten (außer
TypeError
wenn die übergebenen Argumente nicht mit ihrer Signatur übereinstimmen).select_matching_signature
versucht, jede der Funktionen in funcs mit aufzurufen (in der Reihenfolge, in der sie angegeben sind). Anrufe, die mit einem fehlschlagen, werden stillschweigend übersprungen. Sobald ein Aufruf erfolgreich ist, gibt es seinen Rückgabewert zurück. Wenn keine Funktion akzeptiert , wird der vom letzten fehlgeschlagenen Aufruf ausgelöste erneut ausgelöst.*args, **kwargs
TypeError
select_matching_signature
*args, **kwargs
TypeError
Aufrufer sollten normalerweise sicherstellen, dass any nur eine einzige Funktion binden kann ( um Mehrdeutigkeiten zu vermeiden), obwohl dies nicht von überprüft wird .
*args, **kwargs
select_matching_signature
Anmerkungen
select_matching_signature
soll helfen, signaturüberladene Funktionen zu implementieren. Im Allgemeinen sollten solche Funktionen vermieden werden, außer aus Gründen der Abwärtskompatibilität. Ein typisches Nutzungsmuster istdef 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
wodurch my_func entweder mit zwei Parametern ( old1 und old2 ) oder einem einzigen ( new ) aufgerufen werden kann. Beachten Sie, dass die neue Signatur zuletzt angegeben wird, sodass Aufrufer eine
TypeError
Entsprechung zur neuen Signatur erhalten, wenn die übergebenen Argumente mit keiner Signatur übereinstimmen.
- matplotlib._api. warn_external ( Nachricht , Kategorie = Keine ) [Quelle] #
warnings.warn
Wrapper, der Stacklevel auf "außerhalb von Matplotlib" setzt.Der ursprüngliche Sender der Warnung kann erhalten werden, indem diese Funktion zurück zu gepatcht wird
warnings.warn
, dh (oder usw.)._api.warn_external = warnings.warn
functools.partial(warnings.warn, stacklevel=2)
Hilfsfunktionen zum Verwerfen von Teilen der Matplotlib-API.
Diese Dokumentation ist nur für Matplotlib-Entwickler relevant, nicht für Benutzer.
Warnung
Dieses Modul ist nur für den internen Gebrauch bestimmt. Verwenden Sie es nicht in Ihrem eigenen Code. Wir können die API jederzeit ohne Vorankündigung ändern.
- Ausnahme matplotlib._api.deprecation. MatplotlibDeprecationWarning [Quelle] #
Basen:
DeprecationWarning
Eine Klasse zum Ausgeben von Verfallswarnungen für Matplotlib-Benutzer.
- matplotlib._api.deprecation. delete_parameter ( since , name , func = None , ** kwargs ) [Quelle] #
Decorator, der angibt, dass der Parametername von func veraltet ist.
Die eigentliche Implementierung von func sollte den name
**kwargs
-Parameter in ihrer Signatur behalten oder ein Argument akzeptieren (durch das name übergeben würde).Parameter, die nach dem veralteten Parameter kommen, werden effektiv zu reinen Schlüsselwörtern (da sie nicht positionsbezogen übergeben werden können, ohne die DeprecationWarning für den veralteten Parameter auszulösen) und sollten als solche gekennzeichnet werden, nachdem die Verfallszeit verstrichen ist und der veraltete Parameter entfernt wurde.
Andere Parameter als since , name und func sind nur Schlüsselworte und werden an weitergeleitet
warn_deprecated
.Beispiele
@_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 ) [Quelle] #
Rückgabe
obj.method
mit einer Verwerfung, wenn sie überschrieben wurde, sonst Keine.- Parameter :
- Methode
Eine ungebundene Methode, dh ein Ausdruck der Form
Class.method_name
. Denken Sie daran, dass man innerhalb des Hauptteils einer Methode immer verwenden kann__class__
, um auf die Klasse zu verweisen, die gerade definiert wird.- obj
Entweder ein Objekt der Klasse, in der die Methode definiert ist, oder eine Unterklasse dieser Klasse.
- allow_empty bool, Standard: False
Ob Überschreibungen durch „leere“ Methoden zugelassen werden sollen, ohne dass eine Warnung ausgegeben wird.
- **Kwarg
Zusätzliche Parameter, die an übergeben werden
warn_deprecated
, um die Verfallswarnung zu generieren; muss mindestens den „sind“-Schlüssel enthalten.
- Klasse matplotlib._api.deprecation. deprecate_privatize_attribute ( * args , ** kwargs ) [Quelle] #
Basen:
object
Helfer, um den öffentlichen Zugriff auf ein Attribut (oder eine Methode) zu verwerfen.
Dieser Helfer sollte nur im Klassenbereich wie folgt verwendet werden:
class Foo: attr = _deprecate_privatize_attribute(*args, **kwargs)
wo alle Parameter weitergeleitet werden
deprecated
. Dieses Formular erstelltattr
eine Eigenschaft, die den Lese- und Schreibzugriff aufself._attr
(denselben Namen, aber mit einem vorangestellten Unterstrich) mit einer Verfallswarnung weiterleitet. Beachten Sie, dass der Attributname von dem Namen abgeleitet wird, dem dieser Helfer zugewiesen ist . Dieser Helfer funktioniert auch für veraltete Methoden.
- matplotlib._api.deprecation. veraltet ( seit , * , Nachricht = '' , Name = '' , Alternative = '' , ausstehend = False , obj_type = None , Nachtrag = '' , Entfernung = '' ) [Quelle] #
Decorator, um eine Funktion, eine Klasse oder eine Eigenschaft als veraltet zu markieren.
Wenn eine Klassenmethode, eine statische Methode oder eine Eigenschaft veraltet ist,
@deprecated
sollte der Dekorator unter@classmethod
und gehen@staticmethod
(dhdeprecated
sollte direkt das zugrunde liegende Callable dekorieren), aber über@property
.Beim Verwerfen einer Klasse
C
, die als Basisklasse in einer Mehrfachvererbungshierarchie verwendet werden soll,C
muss eine__init__
Methode definiert werden (wenn sieC
stattdessen__init__
von ihrer eigenen Basisklasse geerbt wird, dann würde die Vererbung beim Installieren ihrer eigenen (veraltendes Ausgeben)@deprecated
durcheinander gebracht ).__init__
C.__init__
Die Parameter sind dieselben wie für
warn_deprecated
, außer dass obj_type standardmäßig „class“ ist, wenn eine Klasse dekoriert wird, „attribute“, wenn eine Eigenschaft dekoriert wird, und ansonsten „function“.Beispiele
@deprecated('1.4.0') def the_function_to_deprecate(): pass
- matplotlib._api.deprecation. make_keyword_only ( seit , name , func = None ) [source] #
Decorator, der angibt, dass die Übergabe des Parameternamens (oder eines der folgenden) positionell an func veraltet ist.
Bei Verwendung in einer Methode mit einem Pyplot-Wrapper sollte dies der äußerste Decorator sein, damit
boilerplate.py
auf die Originalsignatur zugegriffen werden kann.
- matplotlib._api.deprecation. rename_parameter ( seit , alt , neu , func = None ) [source] #
Decorator, der angibt, dass der Parameter old von func in new umbenannt wird .
Die eigentliche Implementierung von func sollte new und nicht old verwenden . Wenn old an func übergeben wird, wird eine DeprecationWarning ausgegeben und ihr Wert verwendet, selbst wenn new auch per Schlüsselwort übergeben wird (dies dient der Vereinfachung von Pyplot-Wrapper-Funktionen, die new immer explizit an die Axes-Methode übergeben). Wenn new ebenfalls übergeben wird, aber positionsbezogen, wird während der Argumentbindung ein TypeError von der zugrunde liegenden Funktion ausgelöst.
Beispiele
@_api.rename_parameter("3.1", "bad_name", "good_name") def func(good_name): ...
- matplotlib._api.deprecation. warn_deprecated ( seit , * , Nachricht = '' , Name = '' , Alternative = '' , ausstehend = False , obj_type = '' , Nachtrag = '' , Entfernung = '' ) [Quelle] #
Zeigen Sie eine standardisierte Abwertung an.
- Parameter :
- seit Str
Die Version, ab der diese API veraltet ist.
- Nachrichtenzeichenfolge , optional
Überschreiben Sie die standardmäßige Verwerfungsmeldung. Die Formatbezeichner , , , , und werden durch die Werte der entsprechenden Argumente ersetzt, die an
%(since)s
diese%(name)s
Funktion%(alternative)s
übergeben%(obj_type)s
werden%(addendum)s
.%(removal)s
- Namensstr , optional
Der Name des veralteten Objekts.
- alternative str, optional
Eine alternative API, die der Benutzer anstelle der veralteten API verwenden kann. Die Verfallswarnung informiert den Benutzer über diese Alternative, falls vorhanden.
- ausstehender boolescher Wert, optional
Wenn True, wird eine PendingDeprecationWarning anstelle einer DeprecationWarning verwendet. Kann nicht zusammen mit Entfernung verwendet werden .
- obj_type str, optional
Der veraltete Objekttyp.
- Nachtrag str, optional
Zusätzlicher Text, der direkt an die letzte Nachricht angehängt wird.
- Entfernungsstr , optional
Die erwartete Entfernungsversion. Mit dem Standardwert (einer leeren Zeichenfolge) wird eine Entfernungsversion automatisch von seit berechnet . Legen Sie andere falsche Werte fest, um kein Entfernungsdatum zu planen. Kann nicht zusammen mit ausstehend verwendet werden .
Beispiele
# To warn of the deprecation of "matplotlib.name_of_module" warn_deprecated('1.4.0', name='matplotlib.name_of_module', obj_type='module')