MergeStrategy

class astropy.utils.metadata.MergeStrategy[ソース]

ベースクラス: object

左および右の2つのソースからのメタデータを単一の出力に統合するポリシーを定義するための基本クラスを定義する。

クラスの主な機能は merge(cls, left, right) 種類の方法。これには left そして right エンドパラメータは、単一のマージ出力に戻ります。

1つ目のクラス属性は types それがそうです。これは、合成ポリシーを適用する入力タイプを示す(LEFT_TYPE、RIGHT_TYPE)タプルリストとして定義される。この統合ポリシーをペア(左、右)オブジェクトに適用するかどうかを決定する際には、テストを行う必要がある。 isinstance(left, left_types) and isinstance(right, right_types) それがそうです。例えば:

types = [(np.ndarray, np.ndarray),  # Two ndarrays
         (np.ndarray, (list, tuple)),  # ndarray and (list or tuple)
         ((list, tuple), np.ndarray)]  # (list or tuple) and ndarray

便宜上。 types 例えば、二値グループリストではなく、単一の二値グループとして定義することができる types = (np.ndarray, np.ndarray) それがそうです。

もう1つのクラス属性は enabled これは黙認しています False 基底類では。定義することで MergeStrategy 新しい統合ポリシーは、統合のために使用可能であるように自動的に登録される。ただし,デフォルトの場合,新たな統合ポリシーは 未起用 それがそうです。これは,メタデータ統合操作を実行している無関係なコードの振舞いを無意識に変更することを防ぐことができる.

多くの場合(特に他の人が使用可能なライブラリコードでは)、カスタムポリシーを無効にし、使用することを提案します。 enable_merge_strategies コンテキストマネージャは、ローカルで必要なポリシーを有効にする。しかし,新しい戦略に意外な行動が生じないと確信すれば,設定することで可能である. enabled クラス属性は True それがそうです。

実例.

ここでは,左右にそれぞれ整型または浮動点型を採用し,この2つの値を含むリストを返すカスタマイズされた統合戦略を定義する.

>>> from astropy.utils.metadata import MergeStrategy
>>> class MergeNumbersAsList(MergeStrategy):
...     types = ((int, float), (int, float))  # (left_types, right_types)
...
...     @classmethod
...     def merge(cls, left, right):
...         return [left, right]

属性要約

enabled \

属性文書

enabled = False