Name | runservermagic JSON |
Version |
3.0.1
JSON |
| download |
home_page | None |
Summary | Magic command to run Juypter's code cell on the server. |
upload_time | 2024-11-09 20:06:58 |
maintainer | None |
docs_url | None |
author | Uniras |
requires_python | None |
license | MIT License |
keywords |
server
jupyter
magic
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# RunServer Magic Command
## 概要
Jypyter(notebook/lab)・VSCodeまたはGoogle ColabでコードセルのPythonコードをサーバーとして起動するマジックコマンドです。
## 使い方
### マジックコマンドの追加
コードセルに以下のコードを貼り付けて実行しマジックコマンドを登録してください。カーネルやランタイムを再起動する度に再実行する必要があります。
```python
%pip install -q runservermagic
from runserver import register_run_server
register_run_server()
```
### マジックコマンドの使い方
コードセルの冒頭に`%%runserv`マジックコマンドを記述してください。実行するとコードセルのコードがサーバーとして実行されます。
以下はFlaskでHello Worldを表示するサーバーの例です。
実行するとサーバーを起動し、IFrameでサーバーにアクセスし出力されたwebページを表示します。
```python
%%runserv 8000
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
app.run(port={{server_port}})
```
`{{server_port}}` はマジックコマンドの引数で指定したポート番号に置き換えられます。
起動したサーバーを停止するには`%endserv`マジックコマンドを別のコードセルから実行してください。
同じポート番号でサーバーを起動した場合は、自動的に古いサーバーを停止してから新しいサーバーを起動します。
別のセルから`IPython.display.IFrame`を使用してwebページを表示することもできます。`server_url`には直前に`%%runserv`で起動したサーバーのURLが格納されています。
```python
import IPython
IPython.display.IFrame(src=f"{server_url}/", width="100%", height=500) # type: ignore
```
### マジックコマンド
#### %%runserv
セル内のPythonコードをサーバーとして起動します。
```jupyter
%%runserv [port] [show_iframe] [width] [height]
```
- `port`: サーバーのポート番号を指定します。デフォルトは `8000` です。
- `show_iframe`: 起動したサーバーにアクセスするIFrameを表示するかどうかを指定します。デフォルトは `False` です。
- `width`: IFrameの幅を指定します。デフォルトは `500` です。
- `height`: IFrameの高さを指定します。デフォルトは `500` です。
#### %endserv
起動したサーバーを停止します。
```jupyter
%endserv [port]
```
- `port`: 停止するサーバーのポート番号を指定します。デフォルトは `8000` です。
## グローバル変数
run_serverマジックコマンドがあるセルを実行した後には以下のグローバル変数が登録されています
- `server_url`: 直前に起動したサーバーのURLが格納されています。
- `server_url_{port番号}`: 指定のポート番号で起動したサーバーのURLが格納されています。
Raw data
{
"_id": null,
"home_page": null,
"name": "runservermagic",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "server, jupyter, magic",
"author": "Uniras",
"author_email": "tkappeng@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/2e/8e/f94f77100730b5332506dd31c1fb5c5e334868cd64232456c731cd828a94/runservermagic-3.0.1.tar.gz",
"platform": null,
"description": "# RunServer Magic Command\r\n\r\n## \u6982\u8981\r\n\r\nJypyter(notebook/lab)\u30fbVSCode\u307e\u305f\u306fGoogle Colab\u3067\u30b3\u30fc\u30c9\u30bb\u30eb\u306ePython\u30b3\u30fc\u30c9\u3092\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u8d77\u52d5\u3059\u308b\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3067\u3059\u3002\r\n\r\n## \u4f7f\u3044\u65b9\r\n\r\n### \u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u306e\u8ffd\u52a0\r\n\r\n\u30b3\u30fc\u30c9\u30bb\u30eb\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u8cbc\u308a\u4ed8\u3051\u3066\u5b9f\u884c\u3057\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3092\u767b\u9332\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30ab\u30fc\u30cd\u30eb\u3084\u30e9\u30f3\u30bf\u30a4\u30e0\u3092\u518d\u8d77\u52d5\u3059\u308b\u5ea6\u306b\u518d\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\r\n\r\n```python\r\n%pip install -q runservermagic\r\nfrom runserver import register_run_server\r\nregister_run_server()\r\n```\r\n\r\n### \u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u306e\u4f7f\u3044\u65b9\r\n\r\n\u30b3\u30fc\u30c9\u30bb\u30eb\u306e\u5192\u982d\u306b`%%runserv`\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3092\u8a18\u8ff0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u5b9f\u884c\u3059\u308b\u3068\u30b3\u30fc\u30c9\u30bb\u30eb\u306e\u30b3\u30fc\u30c9\u304c\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002 \r\n\u4ee5\u4e0b\u306fFlask\u3067Hello World\u3092\u8868\u793a\u3059\u308b\u30b5\u30fc\u30d0\u30fc\u306e\u4f8b\u3067\u3059\u3002\r\n\r\n\u5b9f\u884c\u3059\u308b\u3068\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u3001IFrame\u3067\u30b5\u30fc\u30d0\u30fc\u306b\u30a2\u30af\u30bb\u30b9\u3057\u51fa\u529b\u3055\u308c\u305fweb\u30da\u30fc\u30b8\u3092\u8868\u793a\u3057\u307e\u3059\u3002\r\n\r\n```python\r\n%%runserv 8000\r\n\r\nfrom flask import Flask\r\n\r\napp = Flask(__name__)\r\n\r\n\r\n@app.route(\"/\")\r\ndef hello():\r\n return \"Hello World!\"\r\n\r\n\r\napp.run(port={{server_port}})\r\n```\r\n\r\n`{{server_port}}` \u306f\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u306e\u5f15\u6570\u3067\u6307\u5b9a\u3057\u305f\u30dd\u30fc\u30c8\u756a\u53f7\u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3059\u3002\r\n\r\n\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u3092\u505c\u6b62\u3059\u308b\u306b\u306f`%endserv`\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u3092\u5225\u306e\u30b3\u30fc\u30c9\u30bb\u30eb\u304b\u3089\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \r\n\u540c\u3058\u30dd\u30fc\u30c8\u756a\u53f7\u3067\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u305f\u5834\u5408\u306f\u3001\u81ea\u52d5\u7684\u306b\u53e4\u3044\u30b5\u30fc\u30d0\u30fc\u3092\u505c\u6b62\u3057\u3066\u304b\u3089\u65b0\u3057\u3044\u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u307e\u3059\u3002\r\n\r\n\u5225\u306e\u30bb\u30eb\u304b\u3089`IPython.display.IFrame`\u3092\u4f7f\u7528\u3057\u3066web\u30da\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002`server_url`\u306b\u306f\u76f4\u524d\u306b`%%runserv`\u3067\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\r\n```python\r\nimport IPython\r\n\r\nIPython.display.IFrame(src=f\"{server_url}/\", width=\"100%\", height=500) # type: ignore\r\n```\r\n\r\n### \u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\r\n\r\n#### %%runserv\r\n\r\n\u30bb\u30eb\u5185\u306ePython\u30b3\u30fc\u30c9\u3092\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u8d77\u52d5\u3057\u307e\u3059\u3002\r\n\r\n```jupyter\r\n%%runserv [port] [show_iframe] [width] [height]\r\n```\r\n\r\n- `port`: \u30b5\u30fc\u30d0\u30fc\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `8000` \u3067\u3059\u3002\r\n- `show_iframe`: \u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308bIFrame\u3092\u8868\u793a\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `False` \u3067\u3059\u3002\r\n- `width`: IFrame\u306e\u5e45\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `500` \u3067\u3059\u3002\r\n- `height`: IFrame\u306e\u9ad8\u3055\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `500` \u3067\u3059\u3002\r\n\r\n#### %endserv\r\n\r\n\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u3092\u505c\u6b62\u3057\u307e\u3059\u3002\r\n\r\n```jupyter\r\n%endserv [port]\r\n```\r\n\r\n- `port`: \u505c\u6b62\u3059\u308b\u30b5\u30fc\u30d0\u30fc\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `8000` \u3067\u3059\u3002\r\n\r\n## \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\r\n\r\nrun_server\u30de\u30b8\u30c3\u30af\u30b3\u30de\u30f3\u30c9\u304c\u3042\u308b\u30bb\u30eb\u3092\u5b9f\u884c\u3057\u305f\u5f8c\u306b\u306f\u4ee5\u4e0b\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\r\n\r\n- `server_url`: \u76f4\u524d\u306b\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n- `server_url_{port\u756a\u53f7}`: \u6307\u5b9a\u306e\u30dd\u30fc\u30c8\u756a\u53f7\u3067\u8d77\u52d5\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306eURL\u304c\u683c\u7d0d\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n",
"bugtrack_url": null,
"license": "MIT License",
"summary": "Magic command to run Juypter's code cell on the server.",
"version": "3.0.1",
"project_urls": {
"Homepage": "https://github.com/uniras/RunServerMagic",
"Repository": "https://github.com/uniras/RunServerMagic"
},
"split_keywords": [
"server",
" jupyter",
" magic"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0d9d4d334a790aa32dbbb0aef3ebb2741d518b5d79122bb3d0da121c10dfbecb",
"md5": "ed0dc416f8b90e331abac89dc116b0e7",
"sha256": "65a5333d94da2572fc27dfde4b0fa6f77b3be6162b212fdafbb990b3715966fe"
},
"downloads": -1,
"filename": "runservermagic-3.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ed0dc416f8b90e331abac89dc116b0e7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5059,
"upload_time": "2024-11-09T20:06:56",
"upload_time_iso_8601": "2024-11-09T20:06:56.960327Z",
"url": "https://files.pythonhosted.org/packages/0d/9d/4d334a790aa32dbbb0aef3ebb2741d518b5d79122bb3d0da121c10dfbecb/runservermagic-3.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2e8ef94f77100730b5332506dd31c1fb5c5e334868cd64232456c731cd828a94",
"md5": "59f438218a3430c8980b08335faee2f2",
"sha256": "73c946fbc2a737e1f6ddaaf255787cfdabee6a453ea4560f5d3ca8f61cca452c"
},
"downloads": -1,
"filename": "runservermagic-3.0.1.tar.gz",
"has_sig": false,
"md5_digest": "59f438218a3430c8980b08335faee2f2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4533,
"upload_time": "2024-11-09T20:06:58",
"upload_time_iso_8601": "2024-11-09T20:06:58.732896Z",
"url": "https://files.pythonhosted.org/packages/2e/8e/f94f77100730b5332506dd31c1fb5c5e334868cd64232456c731cd828a94/runservermagic-3.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-09 20:06:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "uniras",
"github_project": "RunServerMagic",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "runservermagic"
}