{ "info": { "author": "Leopold Talirz", "author_email": "leopold.talirz@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python" ], "description": "[![Build Status](https://travis-ci.org/ltalirz/jsmol-bokeh-extension.svg?branch=master)](https://travis-ci.org/ltalirz/jsmol-bokeh-extension)\n\n# JSmol bokeh extension\n\nThis extension lets you visualize atomic structures in [bokeh](https://bokeh.pydata.org/en/latest/) using [JSmol](https://sourceforge.net/projects/jsmol/).\n\n## Features\n\n * Works both using bokeh and bokeh server\n * See [example.html](https://rawcdn.githack.com/ltalirz/jsmol-bokeh-extension/f0d16dc8f330ab79dc8882c4d1fcfed268050893/example.html). Structure displays in standalone html, button will start working in bokeh server\n\n## Prerequisites\n\n * python 2.7 or later\n * NodeJS 6.10 or later (see the [bokeh developer documentation](https://bokeh.pydata.org/en/1.0.4/docs/dev_guide/setup.html) for instructions)\n\nNote: As of 2019-06, NodeJS is required to compile the `.ts` / `.coffee` files.\nOnce bokeh provides guidelines on [how to bundle compiled javascript](https://github.com/bokeh/bokeh/issues/5345), the NodeJS dependency may be dropped.\n\n## Installation\n#### Versioning\n\n * jsmol-bokeh-extension 0.1.x works with bokeh < 1.1 (written in CoffeScript)\n * jsmol-bokeh-extension 0.2 and above works with bokeh >= 1.1 (written in TypeScript)\n\n```\npip install jsmol-bokeh-extension\n```\n\n## Usage\n\nBelow a complete `example.py` demonstrating how to use the jsmol bokeh extension:\n```python\nrom bokeh.models import ColumnDataSource\nfrom bokeh.io import show, curdoc\nfrom bokeh.models.widgets import Button, TextInput\nfrom bokeh.layouts import layout, widgetbox\n\nfrom jsmol_bokeh_extension import JSMol\n\nscript_source = ColumnDataSource()\n\ninfo = dict(\n height=\"100%\",\n width=\"100%\",\n serverURL=\"https://chemapps.stolaf.edu/jmol/jsmol/php/jsmol.php\",\n use=\"HTML5\",\n j2sPath=\"https://chemapps.stolaf.edu/jmol/jsmol/j2s\",\n script=\n \"background black;load https://chemapps.stolaf.edu/jmol/jsmol-2013-09-18/data/caffeine.mol\",\n)\n\napplet = JSMol(\n width=600,\n height=600,\n script_source=script_source,\n info=info,\n)\n\nbutton = Button(label='Execute')\ninp_script = TextInput(value='background white;')\n\n\ndef run_script():\n script_source.data['script'] = [inp_script.value]\n\n\nbutton.on_click(run_script)\n\nly = layout([applet, widgetbox(button, inp_script)])\n\nshow(ly)\ncurdoc().add_root(ly)\n```\n\nNote: The example can be run both using bokeh and bokeh server:\n```\n# run locally (displays structure but button won't work)\npython example.py\n\n# run using bokeh server (displays structure and button should work)\nbokeh serve example.py --show\n```\n\n## Links\n\n * This bokeh extension is based on the [surface3d example](https://bokeh.pydata.org/en/latest/docs/user_guide/extensions_gallery/wrapping.html)\nand [extension widget](https://bokeh.pydata.org/en/latest/docs/user_guide/extensions_gallery/widget.html#userguide-extensions-examples-widget)\n * See also the [JSmol Info dict](http://wiki.jmol.org/index.php/Jmol_JavaScript_Object/Info)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ltalirz/jsmol-bokeh-extension", "keywords": "", "license": "Creative Commons", "maintainer": "", "maintainer_email": "", "name": "jsmol-bokeh-extension", "package_url": "https://pypi.org/project/jsmol-bokeh-extension/", "platform": "", "project_url": "https://pypi.org/project/jsmol-bokeh-extension/", "project_urls": { "Homepage": "https://github.com/ltalirz/jsmol-bokeh-extension" }, "release_url": "https://pypi.org/project/jsmol-bokeh-extension/0.2.1/", "requires_dist": null, "requires_python": "", "summary": "bokeh extension for jsmol", "version": "0.2.1", "yanked": false, "yanked_reason": null }, "last_serial": 6013335, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7b8fadaead32cdd92b5e2eab1e736483", "sha256": "88f55322c8a8a684b9aca963df7516556fabd7932905db3c7c2a259aa409c151" }, "downloads": -1, "filename": "jsmol_bokeh_extension-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7b8fadaead32cdd92b5e2eab1e736483", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3545, "upload_time": "2019-01-08T12:10:19", "upload_time_iso_8601": "2019-01-08T12:10:19.347433Z", "url": "https://files.pythonhosted.org/packages/80/22/223b8c54be6cafeca4fb54f87b08e9ef9b3ddfa9adff721976bb1276d7d2/jsmol_bokeh_extension-0.1.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a7c14af1dbd6d796265d47bcb31e5cc7", "sha256": "51cdd4da3477a430cad0abff14b3491ac1bbc4a463a050fbf2cab5f9f3a892f3" }, "downloads": -1, "filename": "jsmol-bokeh-extension-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a7c14af1dbd6d796265d47bcb31e5cc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3273, "upload_time": "2019-01-08T12:10:21", "upload_time_iso_8601": "2019-01-08T12:10:21.928541Z", "url": "https://files.pythonhosted.org/packages/34/1f/c894dce7e2917f698a98312ff638c4193ebedad59d24b64ff3f6b8f7c9c7/jsmol-bokeh-extension-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0.1": [ { "comment_text": "", "digests": { "md5": "a2fad95e0ce7bf40261be8872c5dbf09", "sha256": "8d0a9aa5d1c80f0b2749234d296d6ffc92d627eb70a3e488c6d337120f6392ca" }, "downloads": -1, "filename": "jsmol_bokeh_extension-0.1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a2fad95e0ce7bf40261be8872c5dbf09", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5697, "upload_time": "2019-01-08T12:44:42", "upload_time_iso_8601": "2019-01-08T12:44:42.146801Z", "url": "https://files.pythonhosted.org/packages/17/31/bef41e07494b9b02dc3005784a52febd30995ed83c7a222ac65ad2559512/jsmol_bokeh_extension-0.1.0.1-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e4375d18af1f1b79b038f89b27ecba7a", "sha256": "7d6050eb0d06828e41b313168cdc3b1e643320fcb6d0de23b32ab9e208b0c250" }, "downloads": -1, "filename": "jsmol-bokeh-extension-0.1.0.1.tar.gz", "has_sig": false, "md5_digest": "e4375d18af1f1b79b038f89b27ecba7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5739, "upload_time": "2019-01-08T12:44:43", "upload_time_iso_8601": "2019-01-08T12:44:43.539963Z", "url": "https://files.pythonhosted.org/packages/d3/07/5d6923f3dc8d109586bca82fe522b0e53b99878f0556beb0affe124e0628/jsmol-bokeh-extension-0.1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0.2": [ { "comment_text": "", "digests": { "md5": "0f5c54f5577ffcead48145d82ee8a970", "sha256": "71dbcaafdab26181b86bfcb328446915205982fff074ab12245801f2a131c6df" }, "downloads": -1, "filename": "jsmol_bokeh_extension-0.1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f5c54f5577ffcead48145d82ee8a970", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5707, "upload_time": "2019-06-08T09:16:22", "upload_time_iso_8601": "2019-06-08T09:16:22.962363Z", "url": "https://files.pythonhosted.org/packages/f8/44/fe2b71e2c2b90e1d6123fb09234605fd421953e44b72f22a6ec247b5b48a/jsmol_bokeh_extension-0.1.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3c8664a134d18aab0ce6d6d15c8f4967", "sha256": "540548dd29488fa9a8d88eb6fbfb782a4d2debc26e76e81b6a0b1dd6d2c3a6d4" }, "downloads": -1, "filename": "jsmol-bokeh-extension-0.1.0.2.tar.gz", "has_sig": false, "md5_digest": "3c8664a134d18aab0ce6d6d15c8f4967", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4985, "upload_time": "2019-06-08T09:16:24", "upload_time_iso_8601": "2019-06-08T09:16:24.518787Z", "url": "https://files.pythonhosted.org/packages/b4/7e/87c8cbac590ff503194bb46c4e337c397bc31d0b88e4d693e43963e4507e/jsmol-bokeh-extension-0.1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "89536ec51b214eb18273a01be66173b1", "sha256": "3f25ae342817391a0a74ce204ffafe2e270ab42e12c997b5245cb4e27601fa46" }, "downloads": -1, "filename": "jsmol_bokeh_extension-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "89536ec51b214eb18273a01be66173b1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6200, "upload_time": "2019-06-09T17:00:51", "upload_time_iso_8601": "2019-06-09T17:00:51.731766Z", "url": "https://files.pythonhosted.org/packages/78/a1/4f510551787fcf2bb84f6453ea9d1ef27b66bf627674fe41f36d67912753/jsmol_bokeh_extension-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c65dbca34c23eb6048523cb51e222355", "sha256": "9169541266859b55ba9e8905ab27016b3ab7df60dd76f203d0e72bda672073dc" }, "downloads": -1, "filename": "jsmol-bokeh-extension-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c65dbca34c23eb6048523cb51e222355", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5582, "upload_time": "2019-06-09T17:01:53", "upload_time_iso_8601": "2019-06-09T17:01:53.919268Z", "url": "https://files.pythonhosted.org/packages/2b/9d/05ba001d7a0faa5a12de66358f77b6e25ac0813e4b1a52e0680e3fe32b74/jsmol-bokeh-extension-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "8ce561b9fc4d999ab37bd084b0eed663", "sha256": "e48b141fb310c354c6447b0a9792b4e29253fa7f98ed2b8fae6c825758147b67" }, "downloads": -1, "filename": "jsmol-bokeh-extension-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8ce561b9fc4d999ab37bd084b0eed663", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5650, "upload_time": "2019-10-22T15:01:34", "upload_time_iso_8601": "2019-10-22T15:01:34.961291Z", "url": "https://files.pythonhosted.org/packages/d3/21/3bdc445ecc14e54e8c56fdd2ecc68ccc0959c126a41449a6fe62f609d0c8/jsmol-bokeh-extension-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ce561b9fc4d999ab37bd084b0eed663", "sha256": "e48b141fb310c354c6447b0a9792b4e29253fa7f98ed2b8fae6c825758147b67" }, "downloads": -1, "filename": "jsmol-bokeh-extension-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8ce561b9fc4d999ab37bd084b0eed663", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5650, "upload_time": "2019-10-22T15:01:34", "upload_time_iso_8601": "2019-10-22T15:01:34.961291Z", "url": "https://files.pythonhosted.org/packages/d3/21/3bdc445ecc14e54e8c56fdd2ecc68ccc0959c126a41449a6fe62f609d0c8/jsmol-bokeh-extension-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }