{"action":"created","issue":{"url":"https://api.github.com/repos/bokeh/bokeh/issues/5015","repository_url":"https://api.github.com/repos/bokeh/bokeh","labels_url":"https://api.github.com/repos/bokeh/bokeh/issues/5015/labels{/name}","comments_url":"https://api.github.com/repos/bokeh/bokeh/issues/5015/comments","events_url":"https://api.github.com/repos/bokeh/bokeh/issues/5015/events","html_url":"https://github.com/bokeh/bokeh/issues/5015","id":172578299,"number":5015,"title":"CustomJSTransform","user":{"login":"birdsarah","id":1796208,"avatar_url":"https://avatars.githubusercontent.com/u/1796208?v=3","gravatar_id":"","url":"https://api.github.com/users/birdsarah","html_url":"https://github.com/birdsarah","followers_url":"https://api.github.com/users/birdsarah/followers","following_url":"https://api.github.com/users/birdsarah/following{/other_user}","gists_url":"https://api.github.com/users/birdsarah/gists{/gist_id}","starred_url":"https://api.github.com/users/birdsarah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/birdsarah/subscriptions","organizations_url":"https://api.github.com/users/birdsarah/orgs","repos_url":"https://api.github.com/users/birdsarah/repos","events_url":"https://api.github.com/users/birdsarah/events{/privacy}","received_events_url":"https://api.github.com/users/birdsarah/received_events","type":"User","site_admin":false},"labels":[{"id":165234083,"url":"https://api.github.com/repos/bokeh/bokeh/labels/tag:%20component:%20bokehjs","name":"tag: component: bokehjs","color":"D0CBB8","default":false},{"id":172398780,"url":"https://api.github.com/repos/bokeh/bokeh/labels/tag:%20starter","name":"tag: starter","color":"D0CBB8","default":false},{"id":2031797,"url":"https://api.github.com/repos/bokeh/bokeh/labels/type:%20feature","name":"type: feature","color":"53777A","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/bokeh/bokeh/milestones/29","html_url":"https://github.com/bokeh/bokeh/milestone/29","labels_url":"https://api.github.com/repos/bokeh/bokeh/milestones/29/labels","id":2104947,"number":29,"title":"0.12.5","description":"","creator":{"login":"mattpap","id":27475,"avatar_url":"https://avatars.githubusercontent.com/u/27475?v=3","gravatar_id":"","url":"https://api.github.com/users/mattpap","html_url":"https://github.com/mattpap","followers_url":"https://api.github.com/users/mattpap/followers","following_url":"https://api.github.com/users/mattpap/following{/other_user}","gists_url":"https://api.github.com/users/mattpap/gists{/gist_id}","starred_url":"https://api.github.com/users/mattpap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattpap/subscriptions","organizations_url":"https://api.github.com/users/mattpap/orgs","repos_url":"https://api.github.com/users/mattpap/repos","events_url":"https://api.github.com/users/mattpap/events{/privacy}","received_events_url":"https://api.github.com/users/mattpap/received_events","type":"User","site_admin":false},"open_issues":28,"closed_issues":0,"state":"open","created_at":"2016-10-31T17:53:39Z","updated_at":"2016-12-20T23:28:42Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2016-08-22T23:25:39Z","updated_at":"2016-12-20T23:29:02Z","closed_at":null,"body":"Adding new transforms is easy, but people should be able to self serve something like this:\n\n``` python\nfrom bokeh.models import CustomJSTransform\n\ntransform = CustomJSTransform.from_coffeescript(\n    compute=\"\"\"return 2*x\"\"\",\n    v_compute=\"\"\"\n        vals = []\n        for x in xs:\n            vals.push(2*x)\n        return vals\n    \"\"\"\n)\n\n.....\n\np.circle(x='x', y='y', size={field: 'x', transform: transform})\n```\n\nJust like https://github.com/bokeh/bokeh/pull/4659, user would _know_ that single `x` is passed to compute and array `xs` is passed to v_compute. User would specify a return value and would also be able to pass in args - like for CustomJS.\n"},"comment":{"url":"https://api.github.com/repos/bokeh/bokeh/issues/comments/268389541","html_url":"https://github.com/bokeh/bokeh/issues/5015#issuecomment-268389541","issue_url":"https://api.github.com/repos/bokeh/bokeh/issues/5015","id":268389541,"user":{"login":"bryevdv","id":1078448,"avatar_url":"https://avatars.githubusercontent.com/u/1078448?v=3","gravatar_id":"","url":"https://api.github.com/users/bryevdv","html_url":"https://github.com/bryevdv","followers_url":"https://api.github.com/users/bryevdv/followers","following_url":"https://api.github.com/users/bryevdv/following{/other_user}","gists_url":"https://api.github.com/users/bryevdv/gists{/gist_id}","starred_url":"https://api.github.com/users/bryevdv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bryevdv/subscriptions","organizations_url":"https://api.github.com/users/bryevdv/orgs","repos_url":"https://api.github.com/users/bryevdv/repos","events_url":"https://api.github.com/users/bryevdv/events{/privacy}","received_events_url":"https://api.github.com/users/bryevdv/received_events","type":"User","site_admin":false},"created_at":"2016-12-20T23:29:02Z","updated_at":"2016-12-20T23:29:02Z","body":"This seems low-effort / high value so scheduling it for `0.12.5`"}}
{"actor":{"display_login":"bryevdv"}}