bokeh.core.property.descriptors

Bokeh属性を依頼するためのPython記述子を提供します。

巨漢. descriptor protocol インスタンス上のすべての属性へのアクセスを細粒度制御(“ドットを制御します”)を可能にします。Bokehは、記述子プロトコルを使用して、それらの値を自動的に検証および直列化することができ、複雑な文書の提供を容易にすることができる、使いやすい宣言的でタイプベースのクラス属性を提供する。

A Bokeh property really consist of two parts: a familiar "property" portion, such as Int, String, etc., as well as an associated Python descriptor that delegates attribute access to the property instance.

例えば、同様の範囲のオブジェクトの非常に簡略化された定義は、:

from bokeh.model import Model
from bokeh.core.properties import Float

class Range(Model):
    start = Float(help="start point")
    end   = Float(help="end point")

このようなものを作成する際には MetaHasProps メタクラス線は2つ start そして end 属性を追加する Float 財産です。そして,ユーザがこれらの属性にアクセスすると,ディスクリプタはすべてのGETとSET操作を依頼する. Float 財産です。

rng = Range()

# The descriptor __set__ method delegates to Float, which can validate
# the value 10.3 as a valid floating point value
rng.start = 10.3

# But can raise a validation exception if an attempt to set to a list
# is made
rng.end = [1,2,3]   # ValueError !

より複雑な属性は DataSpec そのサブクラスは値の直列化方式を制御することができる.この例を考慮して、この例で使用してください Circle 字形とその応用 x 属性、この属性は NumberSpec

from bokeh.models import Circle

c = Circle()

c.x = 10      # serializes to {'value': 10}

c.x = 'foo'   # serializes to {'field': 'foo'}

Bokeh全体には他にも似たような例が多い。このようにして、ユーザは、検証、直列化、および文書に関する下位の詳細に関心を持たずに、簡単かつ自然に操作することができる。

このモジュールはクラスを提供します PropertyDescriptor また,Bokeh属性をBokehモデルに付加するために利用可能な様々なサブクラスがある.

注釈

これらのクラスは,Bokehモデルと属性システムを実現する非常に下位の機器の一部を構成している.これらのクラスまたはそれらの方法のいずれも、任意の標準的な用法に適用される可能性はあまりなく、またはBokeh自身のインフラ上で直接開発された誰でもない。

class BasicPropertyDescriptor(name, property)[ソース]

A PropertyDescriptor for basic Bokeh properties (e.g, Int, String, Float, etc.) with simple get/set and serialization behavior.

__init__(name, property)[ソース]

基本Bokeh属性のためのPropertyDescriptorを作成します。

パラメータ
  • name (str) -- この属性が用いる属性名

  • property (Property) -- 記述子の基本属性を作成する

__str__()[ソース]

の基本文字列表現形式 BasicPropertyDescriptor それがそうです。

代表が到着する. self.property.__str__

__get__(obj, owner)[ソース]

Pythonを実現するgetter descriptor protocol それがそうです。

例えば属性アクセスは Property それがそうです。クラス属性アクセスに対して、私たちは私たち自身に戻ります。

パラメータ
  • obj (HasProps or None) -- 新しい属性値のインスタンス(例えば、属性アクセス)またはなし(クラス属性アクセスのため)を設定する

  • owner (obj) -- 属性を新しい値に設定する

戻り値

なし

サンプル

>>> from bokeh.models import Range1d

>>> r = Range1d(start=10, end=20)

# instance attribute access, returns the property value
>>> r.start
10

# class attribute access, returns the property descriptor
>>> Range1d.start
<bokeh.core.property.descriptors.BasicPropertyDescriptor at 0x1148b3390>
__set__(obj, value, setter=None)[ソース]

Pythonのsetterを実現する descriptor protocol それがそうです。

注釈

オプションのパラメータ setter 標準setterパラメータに追加されました。必要な場合は,明示的に呼び出すことで __set__ それがそうです。詳細については、以下を参照されたい。

パラメータ
  • obj (HasProps) -- その上に新しい属性値のインスタンスを設定する

  • value (obj) -- 属性を新しい値に設定する

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし

__delete__(obj)[ソース]

Pythonを実現するDeleter descriptor protocol それがそうです。

パラメータ

obj (HasProps) -- その中からこの属性のインスタンスを削除する

class_default(cls)[ソース]

特定固定子タイプのデフォルト値の取得 HasProps これは,単一のインスタンスには利用できない.

パラメータ

cls (class) -- デフォルト値のクラスを得る.

戻り値

客体.

instance_default(obj)[ソース]

特定のインスタンスに使用されるデフォルト値を取得します。

パラメータ

obj (HasProps) -- デフォルト値のインスタンスを得る.

戻り値

客体.

set_from_json(obj, json, models=None, setter=None)[ソース]

JSON値に応じてこの属性の値を設定する.

この方法はまず

パラメータ
  • obj (HasProps) --

  • json (JSON-dict) --

  • models (seq[Model], optional) --

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし

trigger_if_changed(obj, old)[ソース]

この属性が設定された値に等しくない場合には、変更イベント通知を送信する old それがそうです。

パラメータ
  • obj (HasProps) -- その上に属性のオブジェクトを設定している.

  • old (obj) -- 比較する属性の上位値

戻り値

なし

property has_ref

この属性が別のものを参照できるかどうか HasProps 例を挙げましょう

基本属性については、依頼してください has_ref 属性上の Property それがそうです。

property readonly

この属性は読みのみであるかどうかである.

読み取り専用属性は、クライアントによってのみ修正される(すなわち、ブラウザ内のBokehJSによって修正される)。

property serialized

オブジェクトを直列化する際に属性を直列化すべきかどうか.

たとえば,他の属性に既存の情報を繰り返す“仮想”や“便利”属性については偽である.

class ColumnDataPropertyDescriptor(name, property)[ソース]

A PropertyDescriptor 運搬を専攻する ColumnData 財産です。

__set__(obj, value, setter=None)[ソース]

Pythonのsetterを実現する descriptor protocol それがそうです。

この方法はまず単独ですべてを抽出して除去する units フィールドは、関連する単位属性を直接設定する。そして残りの値をスーパークラスに渡します __set__ 処理を待つ。

注釈

オプションのパラメータ setter 標準setterパラメータに追加されました。必要な場合は,明示的に呼び出すことで __set__ それがそうです。詳細については、以下を参照されたい。

パラメータ
  • obj (HasProps) -- その上に新しい属性値のインスタンスを設定する

  • value (obj) -- 属性を新しい値に設定する

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし

class DataSpecPropertyDescriptor(name, property)[ソース]

A PropertyDescriptor Bokehにとっては DataSpec フィールド/値辞書の属性に直列化する.

serializable_value(obj)[ソース]
set_from_json(obj, json, models=None, setter=None)[ソース]

JSON値に応じてこの属性の値を設定する.

この方法はまず

パラメータ
  • obj (HasProps) --

  • json (JSON-dict) --

  • models (seq[Model], optional) --

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし

class PropertyDescriptor(name)[ソース]

命名属性へのアクセスをBokehのpython記述子の基底クラスに依頼する Property 例を挙げましょう

__init__(name)[ソース]

フックのために命名されたBokeh属性は、記述子として作成されます。 HasProps 級友たち。

パラメータ

name (str) -- この記述子が用いた属性名

__str__()[ソース]

の基本文字列表現形式 PropertyDescriptor それがそうです。

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

__get__(obj, owner)[ソース]

Pythonを実現するgetter descriptor protocol それがそうです。

パラメータ
  • obj (HasProps or None) -- 新しい属性値のインスタンス(例えば、属性アクセス)またはなし(クラス属性アクセスのため)を設定する

  • owner (obj) -- 属性を新しい値に設定する

戻り値

なし

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

__set__(obj, value, setter=None)[ソース]

Pythonのsetterを実現する descriptor protocol それがそうです。

注釈

オプションのパラメータ setter 標準setterパラメータに追加されました。必要な場合は,明示的に呼び出すことで __set__ それがそうです。詳細については、以下を参照されたい。

パラメータ
  • obj (HasProps) -- その上に新しい属性値のインスタンスを設定する

  • value (obj) -- 属性を新しい値に設定する

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

__delete__(obj)[ソース]

Pythonを実現するDeleter descriptor protocol それがそうです。

パラメータ

obj (HasProps) -- その中からこの属性のインスタンスを削除する

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

add_prop_descriptor_to_class(class_name, new_class_attrs, names_with_refs, container_names, dataspecs)[ソース]

MetaHasProps クラス作成中に、この方法は、追加されるべき属性がその新しい属性のレジストリを更新するために反復されるときに呼び出される。

入力されたパラメータは可変であり,この関数はそれに応じて更新されると予想される.

パラメータ
  • class_name (str) -- この記述子が追加されたクラスの名前

  • new_class_attrs (dict[str, PropertyDescriptor]) -- この関数に属性名をマッピングすると更新されるPropertyDescriptor

  • names_with_refs (set[str]) -- この関数は,参照する属性も持つすべての属性名の集合を更新する.

  • container_names (set[str]) -- この関数は,更新されたコンテナ道具属性のすべての属性名の集合を持つ.

  • dataspecs (dict[str, PropertyDescriptor]) -- この関数に属性名をマッピングして更新するDataSpec属性のPropertyDescriptor

戻り値

なし

class_default(cls)[ソース]

あるクラス計算のデフォルト値のために、どのインスタンスのトピックも無視します。

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

serializable_value(obj)[ソース]

直列化すべき方式で値を生成する.

場合によっては,直列化された値は異なることが望ましい __get__ そのためには __get__ ユーザや開発者を容易にするために、値がより簡単に見えるようにする。

パラメータ

obj (HasProps) -- その直列化された属性を取得するオブジェクト

戻り値

類JSON

set_from_json(obj, json, models=None, setter=None)[ソース]

JSON値に応じてこの属性の値を設定する.

パラメータ
  • obj -- (HasProps):属性値を設定するインスタンス

  • json -- (json-value):設定する属性の値

  • models (dict or None, optional) -- モデルIDからモデルへのマッピング(デフォルト値:なし)更新する属性も参照する値を持つ場合には,このオプションが必要となる.

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし

trigger_if_changed(obj, old)[ソース]

この属性が設定された値に等しくない場合には、変更イベント通知を送信する old それがそうです。

パラメータ
  • obj (HasProps) -- その上に属性のオブジェクトを設定している.

  • old (obj) -- 比較する属性の上位値

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

property has_ref

この属性が別のものを参照できるかどうか HasProps 例を挙げましょう

これは容器の属性にとっては通常本物です Instance ちょっ.。

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

property readonly

この属性は読みのみであるかどうかである.

読み取り専用属性は、クライアントによってのみ修正される(すなわち、ブラウザ内のBokehJSによって修正される)。読み取り専用特性は、例えば、現在のレイアウト状態に応じた印刷領域の内部印刷サイズなど、ブラウザでしか計算できない数に非常に有用である。Pythonコールバックはこれらの値が有用であることを知ることができますが、それらは実際のブラウザでしか計算できません。

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

property serialized

オブジェクトを直列化する際に属性を直列化すべきかどうか.

たとえば,他の属性に既存の情報を繰り返す“仮想”や“便利”属性については偽である.

例外

NotImplementedError --

サブクラスは,その特定のニーズを満たすためにこの機能を実現しなければならない.

class UnitsSpecPropertyDescriptor(name, property, units_property)[ソース]

A PropertyDecscriptor Bokehにとっては UnitsSpec 関連に役立つ属性 _units 属性は副作用とする.

__init__(name, property, units_property)[ソース]
パラメータ
  • name (str) -- この属性が用いる属性名

  • property (Property) -- 記述子の基本属性を作成する

  • units_property (Property) -- 単位情報を保存するための関連属性

__set__(obj, value, setter=None)[ソース]

Pythonのsetterを実現する descriptor protocol それがそうです。

この方法はまず単独ですべてを抽出して除去する units フィールドは、関連する単位属性を直接設定する。そして残りの値をスーパークラスに渡します __set__ 処理を待つ。

注釈

オプションのパラメータ setter 標準setterパラメータに追加されました。必要な場合は,明示的に呼び出すことで __set__ それがそうです。詳細については、以下を参照されたい。

パラメータ
  • obj (HasProps) -- その上に新しい属性値のインスタンスを設定する

  • value (obj) -- 属性を新しい値に設定する

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし

set_from_json(obj, json, models=None, setter=None)[ソース]

JSON値に応じてこの属性の値を設定する.

この方法はまず単独ですべてを抽出して除去する units フィールドは、関連する単位属性を直接設定する。残りのJSONをスーパークラスに渡します set_from_json 処理を待つ。

パラメータ
  • obj -- (HasProps):属性値を設定するインスタンス

  • json -- (json-value):設定する属性の値

  • models (dict or None, optional) -- モデルIDからモデルへのマッピング(デフォルト値:なし)更新する属性も参照する値を持つ場合には,このオプションが必要となる.

  • setter (ClientSession or ServerSession or None, optional) -- これはBokehアプリケーションの“ブーメラン”の更新を阻止するためのものです。(デフォルト値:なし)Bokehサーバアプリケーションのコンテキストでは、入力された属性更新は、更新を実行するセッションを使用して注釈される。この値は、更新によってトリガされた任意の後続の変更通知によって伝播される。セッションは、イベント設定器自身と比較し、自身からの任意の更新を抑制することができる。

戻り値

なし