matplotlib._api#

Matplotlib API를 관리하기 위한 도우미 함수입니다.

이 문서는 사용자가 아닌 Matplotlib 개발자에게만 해당됩니다.

경고

이 모듈과 해당 하위 모듈은 내부 전용입니다. 자신의 코드에서 사용하지 마십시오. 경고 없이 언제든지 API를 변경할 수 있습니다.

matplotlib._api. caching_module_getattr ( cls ) [출처] #

모듈 수준 __getattr__을 클래스로 구현하기 위한 도우미 데코레이터.

이 데코레이터는 다음과 같이 모듈 최상위 수준에서 사용해야 합니다.

@caching_module_getattr
class __getattr__:  # The class *must* be named ``__getattr__``.
    @property  # Only properties are taken into account.
    def name(self): ...

클래스 는 모듈에 대한 액세스 시도가 해당 속성을 해결 __getattr__하는 함수로 대체될 것 입니다(예: 모듈 전역을 더 이상 사용하지 않도록 데코레이션될 수 있음). 속성은 모두 암시적으로 캐시됩니다. 게다가 주어진 이름을 가진 속성이 존재하지 않으면 적절한 AttributeError가 생성되고 발생합니다.__getattr__name_api.deprecated

matplotlib._api. check_getitem ( _mapping , ** kwargs ) [출처] #

kwargs 는 단일 키, 값 쌍으로 구성되어야 합니다. _mapping 에 있으면 _mapping[value]; 그렇지 않으면 적절한 ValueError를 발생시킵니다.

>>> _api.check_getitem({"foo": "bar"}, arg=arg)
matplotlib._api. check_in_list ( _values ​​, * , _print_supported_values ​​= True , ** kwargs ) [출처] #

kwargs 의 각 키, 값 쌍에 대해 _values ​​에 있는지 확인합니다 .

매개변수 :
_값 반복 가능

확인할 값의 시퀀스입니다.

_print_supported_values ​​부울, 기본값: True

ValueError 발생 시 _values 를 인쇄할지 여부 .

**kwargs 사전

키, 값 쌍을 _values ​​에서 찾을 키워드 인수로 사용 합니다.

레이즈 :
값 오류

kwargs 의 _values 에서 발견되지 않는 경우 .

>>> _api.check_in_list(["foo", "bar"], arg=arg, other_arg=other_arg)
matplotlib._api. check_isinstance ( _types , ** kwargs ) [출처] #

kwargs 의 각 키, 값 쌍에 대해 값 이 _types 중 하나의 인스턴스인지 확인합니다 . 그렇지 않은 경우 적절한 TypeError를 발생시킵니다.

특수한 경우 로 _typesNone 의 항목은 NoneType으로 처리됩니다.

>>> _api.check_isinstance((SomeClass, None), arg=arg)
matplotlib._api. check_shape ( _shape , ** kwargs ) [출처] #

kwargs 의 각 키, 값 쌍에 대해 값 이 _shape 모양 인지 확인하고 , 그렇지 않은 경우 적절한 ValueError를 발생시킵니다.

모양의 어떤 것도 길이를 가질 수 있는 "자유로운" 크기로 처리됩니다. 예: (없음, 2) -> (N, 2)

확인된 값은 numpy 배열이어야 합니다.

(N, 2) 모양의 배열을 확인하려면

>>> _api.check_shape((None, 2), arg=arg, other_arg=other_arg)
클래스 matplotlib._api. 클래스 속성 ( fget , fset = 없음 , fdel = 없음 , doc = 없음 ) [출처] #

베이스:object

property비슷하지만 클래스를 통한 액세스에서도 트리거 되며 인수로 전달되는 클래스 입니다.

class C:
    @classproperty
    def foo(cls):
        return cls.__name__

assert C.foo == "C"
속성 fget #
matplotlib._api. define_aliases ( alias_d , cls = 없음 ) [소스] #

속성 별칭을 정의하기 위한 클래스 데코레이터.

로 사용

@_api.define_aliases({"property": ["alias", ...], ...})
class C: ...

각 속성에 대해 해당 항목 get_property이 지금까지 클래스에 정의되어 있으면 명명된 별칭 get_alias이 정의됩니다. 세터도 마찬가지입니다. getter와 setter가 모두 존재하지 않으면 예외가 발생합니다.

앨리어스 맵은 _alias_map클래스의 속성으로 저장되며 에서 사용할 수 있습니다 normalize_kwargs(우선 순위가 높은 앨리어스가 마지막이라고 가정).

matplotlib._api. recursive_subclasses ( cls ) [출처] #

cls 및 cls 의 직접 및 간접 하위 클래스를 생성 합니다.

matplotlib._api. select_matching_signature ( funcs , * args , ** kwargs ) [소스] #

를 수락하는 함수를 선택하고 호출합니다 .*args, **kwargs

funcs 는 예외를 발생시키지 않아야 하는 함수 목록입니다( TypeError전달된 인수가 서명과 일치하지 않는 경우 제외).

select_matching_signaturefuncs 의 각 함수를 (주어진 순서대로) 호출하려고 시도 합니다 . 실패하는 호출 은 자동으로 건너뜁니다. 호출이 성공하는 즉시 반환 값을 반환합니다. 어떤 함수도 받아들이지 않으면 마지막 실패한 호출에 의해 발생한 가 다시 발생합니다.*args, **kwargsTypeErrorselect_matching_signature*args, **kwargsTypeError

호출자는 일반적으로 any 가 단일 func 만 바인딩할 수 있는지 확인해야 합니다 (모호함을 방지하기 위해). 에서 확인하지는 않습니다 .*args, **kwargsselect_matching_signature

메모

select_matching_signature시그니처 오버로드 기능을 구현하는 데 도움이 됩니다. 일반적으로 이전 버전과의 호환성 문제를 제외하고 이러한 기능은 피해야 합니다. 일반적인 사용 패턴은

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

두 개의 매개변수( old1old2 ) 또는 단일 매개변수( new ) 를 사용 하여 my_func 를 호출할 수 있습니다 . 새 서명은 마지막에 제공되므로 호출자가 전달한 인수가 서명과 일치하지 않는 경우 새 서명에 해당하는 서명을 얻습니다.TypeError

matplotlib._api. warn_external ( 메시지 , 카테고리 = 없음 ) [출처] #

warnings.warnstacklevel 을 "외부 Matplotlib"로 설정하는 래퍼 .

경고의 원래 발신자는 이 기능을 warnings.warn, 즉 (또는 등)에 다시 패치하여 얻을 수 있습니다._api.warn_external = warnings.warnfunctools.partial(warnings.warn, stacklevel=2)

Matplotlib API의 일부를 지원 중단하기 위한 도우미 함수.

이 문서는 사용자가 아닌 Matplotlib 개발자에게만 해당됩니다.

경고

이 모듈은 내부 전용입니다. 자신의 코드에서 사용하지 마십시오. 경고 없이 언제든지 API를 변경할 수 있습니다.

예외 matplotlib._api.deprecation. MatplotlibDeprecationWarning [출처] #

베이스:DeprecationWarning

Matplotlib 사용자에 대한 지원 중단 경고를 발행하는 클래스입니다.

matplotlib._api.deprecation. delete_parameter ( 이후 , 이름 , func = 없음 , ** kwargs ) [소스] #

func 의 매개변수 이름 이 더 이상 사용되지 않음 을 나타내는 데코레이터 입니다.

func 의 실제 구현은 서명에 이름 매개변수를 유지 하거나 **kwargs인수( 이름 이 전달되는)를 수락해야 합니다.

사용되지 않는 매개변수 뒤에 오는 매개변수는 실질적으로 키워드 전용이 되며(사용되지 않는 매개변수에 대한 DeprecationWarning을 트리거하지 않고는 위치적으로 전달될 수 없기 때문에) 사용되지 않는 기간이 경과하고 사용되지 않는 매개변수가 제거된 후에 그렇게 표시되어야 합니다.

이후 , namefunc 이외의 매개변수 는 키워드 전용이며 에 전달됩니다 warn_deprecated.

@_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 ) [출처] #

obj.method재정의된 경우 지원 중단으로 반환 하고 그렇지 않으면 없음으로 반환합니다.

매개변수 :
방법

바인딩되지 않은 메서드, 즉 Class.method_name. 메서드 본문 내에서 __class__현재 정의 중인 클래스를 참조하기 위해 항상 를 사용할 수 있음을 기억하십시오.

객체

메서드 가 정의된 클래스의 객체 이거나 해당 클래스의 하위 클래스입니다.

allow_empty 부울, 기본값: 거짓

경고를 표시하지 않고 "빈" 메서드에 의한 재정의를 허용할지 여부입니다.

**kwargs

warn_deprecated지원 중단 경고를 생성 하기 위해 전달된 추가 매개변수 입니다. 최소한 "since" 키를 포함해야 합니다.

클래스 matplotlib._api.deprecation. deprecate_privatize_attribute ( * args , ** kwargs ) [출처] #

베이스:object

속성(또는 메소드)에 대한 공개 액세스를 더 이상 사용하지 않는 헬퍼.

이 도우미는 다음과 같이 클래스 범위에서만 사용해야 합니다.

class Foo:
    attr = _deprecate_privatize_attribute(*args, **kwargs)

여기서 모든 매개변수는 로 전달됩니다 deprecated. 이 형식은 사용 중단 경고와 함께 attr읽기 및 쓰기 액세스를 전달하는 속성 self._attr (동일한 이름이지만 앞에 밑줄이 있음)을 만듭니다. 속성 이름은 이 도우미가 할당된 이름 에서 파생 됩니다 . 이 도우미는 사용 중단 메서드에도 작동합니다.

matplotlib._api.deprecation. 더 이상 사용되지 않음 ( , * , 메시지 = '' , 이름 = '' , 대안 = '' , 보류 중 = False , obj_type = None , addendum = '' , 제거 = '' ) [소스 ] #

함수, 클래스 또는 속성을 더 이상 사용되지 않는 것으로 표시하는 데코레이터입니다.

classmethod, staticmethod 또는 속성을 더 이상 사용하지 않을 때 @deprecated데코레이터는 and 로 이동해야 하지만 @classmethod ( @staticmethod즉, 기본 콜러블 deprecated 직접 장식해야 함) . @property

C다중 상속 계층 구조에서 기본 클래스로 사용하려는 클래스를 폐기할 때 메서드 를 정의 C 해야 합니다 ( 대신 자체 기본 클래스에서 상속하는 경우 자체 설치 시 상속 이 엉망이 됨(사용 중단됨) ).__init__C__init__@deprecated__init__C.__init__

매개변수는 클래스를 장식하는 경우 obj_type 이 'class'로, 속성을 장식하는 경우 'attribute'로, 그렇지 않으면 'function'으로 기본 설정 warn_deprecated된다는 점을 제외하면 for 와 동일합니다.

@deprecated('1.4.0')
def the_function_to_deprecate():
    pass
matplotlib._api.deprecation. make_keyword_only ( 이후 , 이름 , func = 없음 ) [소스] #

매개 변수 이름 (또는 다음 중 하나)을 func 에 전달하는 것이 더 이상 사용되지 않음을 나타내는 데코레이터 입니다.

pyplot 래퍼가 있는 메서드에서 사용하는 boilerplate.py경우 원래 서명에 액세스할 수 있도록 가장 바깥쪽 데코레이터여야 합니다.

matplotlib._api.deprecation. rename_parameter ( 이후 , old , new , func = None ) [소스] #

funcold 매개변수가 new 로 이름이 바뀌었음을 나타내는 데코레이터 .

func 의 실제 구현은 old 가 아니라 new 를 사용해야 합니다 . oldfunc 에 전달 되면 DeprecationWarning이 발생하고 new 도 키워드로 전달 되더라도 해당 값이 사용됩니다 (이는 항상 Axes 메서드에 명시적으로 new 를 전달하는 pyplot 래퍼 함수를 ​​단순화하기 위한 것입니다). new 도 전달되지만 위치적으로 전달 되면 인수 바인딩 중에 기본 함수에 의해 TypeError가 발생합니다.

@_api.rename_parameter("3.1", "bad_name", "good_name")
def func(good_name): ...
matplotlib._api.deprecation. suppress_matplotlib_deprecation_warning ( ) [출처] #
matplotlib._api.deprecation. warn_deprecated ( 이후 , * , 메시지 = '' , 이름 = '' , 대안 = '' , 보류 중 = False , obj_type = '' , addendum = '' , 제거 = '' ) [출처] #

표준화된 지원 중단을 표시합니다.

매개변수 :
이후 str

이 API가 더 이상 사용되지 않는 릴리스입니다.

메시지 문자열, 선택 사항

기본 지원 중단 메시지를 재정의합니다. , %(since)s, %(name)s, %(alternative)s, 형식 지정자는 이 함수 %(obj_type)s에 전달된 각 인수의 값으로 대체됩니다.%(addendum)s%(removal)s

이름 문자열, 선택 사항

사용되지 않는 개체의 이름입니다.

대체 str, 선택 사항

사용되지 않는 API 대신 사용자가 사용할 수 있는 대체 API입니다. 사용 중단 경고는 제공되는 경우 이 대안에 대해 사용자에게 알려줍니다.

보류 중인 부울, 선택 사항

True인 경우 DeprecationWarning 대신 PendingDeprecationWarning을 사용합니다. 제거 와 함께 사용할 수 없습니다 .

obj_type 문자열 , 선택 사항

더 이상 사용되지 않는 개체 유형입니다.

부록 str, 선택사항

최종 메시지에 직접 추가되는 추가 텍스트입니다.

제거 문자열, 선택 사항

예상 제거 버전입니다. 기본값(빈 문자열)을 사용하면 제거 버전이 이후부터 자동으로 계산됩니다 . 제거 날짜를 예약하지 않으려면 다른 Falsy 값으로 설정하십시오. pending 과 함께 사용할 수 없습니다 .

# To warn of the deprecation of "matplotlib.name_of_module"
warn_deprecated('1.4.0', name='matplotlib.name_of_module',
                obj_type='module')