• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

kikocorreoso/brythonmagic: Brython magic for the Jupyter notebook.

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

kikocorreoso/brythonmagic

开源软件地址:

https://github.com/kikocorreoso/brythonmagic

开源编程语言:

Jupyter Notebook 94.4%

开源软件介绍:

Brythonmagic

Brython magic for the Jupyter notebook.

The brythonmagic provides you a cell magic, %%brython, to run brython code and show the results in a html div tag below the code cell. Best way to start with Brython is to check the Brython docs in their home page.

Tested on

The master branch of brythonmagic extension has been tested on:

  • Jupyter notebook >= 6.1.4

  • Python version >= 3.6

  • Brython versions <= 3.6.x

Installation

You should have Jupyter (notebook) already installed in order to use Brythonmagic. In case you don't have Jupyter installed you can follow the instructions on the Jupyter official page.

Method 1) - Download this repo and on the brythonmagic downloaded folder type:

python setup.py install

Method 2) - Use pip (you will need to install git):

python -m pip install git+https://github.com/kikocorreoso/brythonmagic.git

Then, load the extension in the notebook:

```python
%load_ext brythonmagic

And, finally, load a stable brython js lib in the notebook using the following code:

from brythonmagic import load_brython_stable
load_brython_stable()

If you have any problem with the installation, please, open an issue.

WARNING

In order to load javascript libraries in a safety way you should try to use https instead of http when possible (read more here). If you don't trust the source and/or the source cannot be loaded using https then you could download the javascript library and load it from a local location.

Brythonmagic doesn't load any javascript library and the user should take care about the security and should use trusted sources.

You can load third party javascript libraries using the following code:

from brythonmagic import load_js_lib
load_js_lib("https://url/to/your/lib.js")

Usage

example:

%%brython -c zone
# First of all, the import of some libraries
from browser import document, html

# All the elements will be inserted in the div with the "zone" id
zone = document['zone']

# We create a new div element
newdiv = html.DIV(Id = "new-div")
# Now we add some style
newdiv.style = {"padding": "5px", 
           "backgroundColor": "#ADD8E6"}

# We create a new link and add the link to a string
blink = html.A('brython',href="http://brython.info")
text = "Brython is really cool, look at "+ blink + " for more"

# Now we add the text to the div with id="new-div"
newdiv <= html.DIV(text)

# Finally, we add the newdiv to the outer div with id="zone"
zone <= newdiv

You can use several options:

  • -p, --print: will show you the generated html code below the results obtained from the brython code.

  • -c, --container: you can define the name of the div container in case you want to 'play' with it in other cell. If you don't define an output the div will have an id with the following format 'brython-container-[random number between 0 and 999999]'. Just one container name is accepted. If you pass more than one only the first one will be used and a warning will raise.

  • -i, --input: you can pass variables defined in the Python namespace separated by whitespaces. If you pass a python list it will be converted to a brython list, a python tuple will be converted to a brython tuple, a python dict will be converted to a brython dict, a python string will be converted to a brython string.

  • -h, --html: you can pass a string with html markup code. This html code will be inserted inside the div container. In this way you can avoid the generation of HTML markup code via a Brython script so you can separate the layout from the 'action'. Just one html markup code string name is accepted. If you pass more than one only the first one will be used and a warning will raise.

  • -s, --script: Use this option to provide an id to the script defined in the Brython code cell. Also, this value could be used to run the code of this cell in other brython cells. Just one script name is accepted. If you pass more than one only the first one will be used and a warning will raise.

  • -S, --scripts: Use this option to run code previously defined in other Brython code cells. The values should be the provided values in the -s/--script option in other Brython code cells.

[WARNING] This options may change as the brythonmagic depending the development of Brython and/or Jupyter.

To see some examples download the notebooks available in the repository and run it locally or see it in the nbviewer (you will loose the interactivity if you choose the second option). Also, you can take a look on the following video: http://youtu.be/adQzjuUX0kw

Example notebooks (some options will not work due to changes in APIs)

Support

If you need Brython support, please, ask here: https://groups.google.com/forum/?fromgroups=#!forum/brython

If you need IPython support, please, ask here: http://mail.scipy.org/mailman/listinfo/ipython-dev

If you find a bug or want to propose a new feature open a new issue here: https://github.com/kikocorreoso/brythonmagic/issues

If you want to improve the code, fork, commit and send a PR ;·D

IDEAS

Add an option to include *.py scripts? These *.py scripts should be Brython compatible. (this could be made via imports with the py script in the same folder as the notebook)

Add an option to include a HTML structure so you don't have to create the structure via Brython code? (did it)

Add an option to run more than one Brython script in a code cell? Right now, if you run a Brython code cell, the code in other cells will not work anymore. (did it)

Make it python 2.7 compatible. (did it)

Create a setup.py to make it available via pip. (did it)

CONTRIBUTORS

  • Kikocorreoso (pybonacci blog, twitter)
  • baoboa (github) for some insightful comments and code.
  • Roger Veciana (github, twitter) for the review of the Openlayers tutorial.
  • Pierre Quentel and all the Brython committers for their work and their invaluable suggestions and help.



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap