bokeh.core.query

問合せモジュールは,Bokehモデル集合において指定された条件を満たす事例を探索する機能を提供する.

class EQ[ソース]

述語は属性値がある値に等しいかどうかをテストする.

構造と EQ 述語は辞書として使う EQ キーワードとして比較する値とする.

# matches any models with .size == 10
dict(size={ EQ: 10 })
class GEQ[ソース]

属性値がある値以上であるかどうかをテストするための述語.

構造と GEQ 述語は辞書として使う GEQ キーワードとして比較する値とする.

# matches any models with .size >= 10
dict(size={ GEQ: 10 })
class GT[ソース]

属性値がある値より大きいかどうかをテストするための述語.

構造と GT 述語は辞書として使う GT キーワードとして比較する値とする.

# matches any models with .size > 10
dict(size={ GT: 10 })
class IN[ソース]

述語は属性値がある集合にあるかどうかをテストする.

構造と IN 述語は辞書として使う IN キーワードとして,および検査する値リスト.

# matches any models with .name in ['a', 'mycircle', 'myline']
dict(name={ IN: ['a', 'mycircle', 'myline'] })
class LEQ[ソース]

属性値がある値以下であるかどうかをテストするための述語.

構造と LEQ 述語は辞書として使う LEQ キーワードとして比較する値とする.

# matches any models with .size <= 10
dict(size={ LEQ: 10 })
class LT[ソース]

述語は属性値がある値より小さいかどうかをテストする.

構造と LT 述語は辞書として使う LT キーワードとして比較する値とする.

# matches any models with .size < 10
dict(size={ LT: 10 })
class NEQ[ソース]

述語は属性値がある値に等しくないかどうかをテストする.

構造と NEQ 述語は辞書として使う NEQ キーワードとして比較する値とする.

# matches any models with .size != 10
dict(size={ NEQ: 10 })
class OR[ソース]

他のクエリ述語との選言を形成する.

構造1つ OR …を使うことで辞書を作って表現する OR キーとして,他のクエリーリストを値とする:

# matches any Axis subclasses or models with .name == "mycircle"
{ OR: [dict(type=Axis), dict(name="mycircle")] }
find(objs: Iterator[bokeh.model.Model], selector: Dict[Union[str, Type[bokeh.core.query._Operator]], Any], context: Optional[Dict[str, Any]] = None) → Iterator[bokeh.model.Model][ソース]

Bokehモデル集合を調べ,aセレクタにマッチする任意のモデルを生成する.

パラメータ
  • obj (Model) -- テストの対象

  • selector (JSON-like) -- 問い合わせセレクタ

  • context (dict) -- 呼び出し可能なクエリ属性を提供するためのKwargs

収率.

模型 --クエリに一致するオブジェクト

クエリは、MongoDBスタイルクエリセレクタと同様のセレクタとして指定される。 match() それがそうです。

サンプル

# find all objects with type Grid
find(p.references(), {'type': Grid})

# find all objects with type Grid or Axis
find(p.references(), {OR: [
    {'type': Grid}, {'type': Axis}
]})

# same query, using IN operator
find(p.references(), {'type': {IN: [Grid, Axis]}})

# find all plot objects on the 'left' layout of the Plot
# here layout is a method that takes a plot as context
find(p.references(), {'layout': 'left'}, {'plot': p})
match(obj: bokeh.model.Model, selector: Dict[Union[str, Type[bokeh.core.query._Operator]], Any], context: Optional[Dict[str, Any]] = None)bool[ソース]

所与のBokehモデルが所与のセレクタに一致するかどうかをテストする。

パラメータ
  • obj (Model) -- テストの対象

  • selector (JSON-like) -- 問い合わせセレクタ

  • context (dict) -- 呼び出し可能なクエリ属性を提供するためのKwargs

戻り値

対象がマッチすればTrue,そうでなければFalseとなる.

戻り値の型

bool

一般に、セレクタの形式は、以下のようになる。

{ attrname : predicate }

Where a predicate is constructed from the operators EQ, GT, etc. and is used to compare against values of model attributes named attrname.

例:

>>> from bokeh.plotting import figure
>>> p = figure(plot_width=400)

>>> match(p, {'plot_width': {EQ: 400}})
True

>>> match(p, {'plot_width': {GT: 500}})
False

特別処理の選択キーが2つあります。1つ目は“type”でisinstanceチェックを実行します

>>> from bokeh.plotting import figure
>>> from bokeh.models import Axis
>>> p = figure()

>>> match(p.xaxis[0], {'type': Axis})
True

>>> match(p.title, {'type': Axis})
False

一つもあります 'tags' 属性、その属性 Model オブジェクトは,これがユーザが提供する値のリストである.♪the 'tags' セレクタキーは、このタグリストを問い合わせるために使用されてもよい。セレクタ内の任意のラベルがオブジェクト上の任意のラベルと一致する場合、オブジェクトは一致する:

>>> from bokeh.plotting import figure
>>> p = figure(tags = ["my plot", 10])

>>> match(p, {'tags': "my plot"})
True

>>> match(p, {'tags': ["my plot", 10]})
True

>>> match(p, {'tags': ["foo"]})
False