Как реализовать собственное расширение bokehjs, которое использует источник, как image_rgba? - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю собственное расширение для боке.Это все работает, и пример в документации был полезен.Однако я пытаюсь отразить то, что делает image_rgba, а именно с изображениями, которые вы можете сделать:

figure.image_rgba(
  image="image_path_in_source", 
  source=ColumnDataSource(dict(image_path_in_source=[np.array(...)]))
)
# or
figure.image_rgba(image=[np.array(...)])

Я изучил исходный код, чтобы воссоздать официальный способ реализации этого, но я получаю ошибку,Позвольте мне объяснить в коде:

Моя пользовательская модель определяет:

CustomModel.define({
    source: [p.Instance],
    dx: [p.NumberSpec],
    dy: [p.NumberSpec]
});

И план заключается в использовании конструкции dataspec при изменении источника:

const data = this.model.materialize_dataspecs(source);

Но когдаЯ посылаю string для dx со стороны Python, он жалуется:

Number property 'dx' given invalid value: "path_to_dx"
    at e.validate (properties.js:134)
    at e.t._init (properties.js:112)
    at e.t.update (properties.js:46)

Что, очевидно, верно, поскольку я сказал, что это будет NumberSpec, а я отправил string.Но как мне сделать это правильно?

1 Ответ

0 голосов
/ 14 февраля 2019

Ах, я забыл изменить свойство модели python на NumberSpec:

class CustomModel(LayoutDOM):
    __implementation__ = '...'

    source = Instance(ColumnDataSource)
    dx = NumberSpec()
    dy = NumberSpec()
...