Name | runservermagic JSON |
Version |
1.0.3
JSON |
| download |
home_page | None |
Summary | Magic command to run Juypter's code cell on the server. |
upload_time | 2024-08-18 07:28:35 |
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()
```
### マジックコマンドの使い方
コードセルの冒頭に`%%run_server`マジックコマンドを記述してください。実行するとコードセルのコードがサーバーとして実行されます。
以下はFlaskでHello Worldを表示するサーバーの例です。
```python
%%run_server 8000 flask_app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
app.run(port={{server_port}})
```
`{{server_port}}` はマジックコマンドの引数で指定したポート番号に置き換えられます。
起動したサーバーを停止するには`%stop_server`マジックコマンドを別のコードセルから実行してください。
同じポート番号でサーバーを起動した場合は、自動的に古いサーバーを停止してから新しいサーバーを起動します。
ノートブック内でサーバーにアクセスしてwebページを表示する場合は、`IPython.display.IFrame`を使用します。
`server_url`には直前に`%%run server`で起動したサーバーのURLが格納されています。
```python
import IPython
IPython.display.IFrame(src=f"{server_url}/", width="100%", height=500) # type: ignore
```
### マジックコマンド
#### %%run_server
セル内のPythonコードをサーバーとして起動します。
```jupyter
%%run_server [port] [file] [remove]
```
- `port`: サーバーのポート番号を指定します。デフォルトは `8000` です。
- `file`: サーバーとして起動するために書き出すPythonファイル名を指定します。デフォルトは `server.py` です。
- `remove`: サーバーを起動した後に書き出したファイルを削除するかどうかを指定します。デフォルトは `True` です。
#### %stop_server
起動したサーバーを停止します。
```jupyter
%stop_server [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/6a/a0/175f6bc6905ba54b396f4c25e5ccf61a4ec1344f61efe879414bb7137a7b/runservermagic-1.0.3.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`%%run_server`\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```python\r\n%%run_server 8000 flask_app.py\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`%stop_server`\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\u30ce\u30fc\u30c8\u30d6\u30c3\u30af\u5185\u3067\u30b5\u30fc\u30d0\u30fc\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066web\u30da\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u5834\u5408\u306f\u3001`IPython.display.IFrame`\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 \r\n`server_url`\u306b\u306f\u76f4\u524d\u306b`%%run server`\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#### %%run_server\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%%run_server [port] [file] [remove]\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- `file`: \u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u8d77\u52d5\u3059\u308b\u305f\u3081\u306b\u66f8\u304d\u51fa\u3059Python\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `server.py` \u3067\u3059\u3002\r\n- `remove`: \u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u305f\u5f8c\u306b\u66f8\u304d\u51fa\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306f `True` \u3067\u3059\u3002\r\n\r\n#### %stop_server\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%stop_server [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": "1.0.3",
"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": "4df0e7a0ee1862776dffa40050eb2b2b1ca3d8be30fdbe5ee5801bd8bd89d6f1",
"md5": "d1da29f81c6aee732bfc55691d8bc8de",
"sha256": "7f59a3acb9747cf366f2211dc92f8ce0aa874924eee073ef751bb285fef95b3a"
},
"downloads": -1,
"filename": "runservermagic-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d1da29f81c6aee732bfc55691d8bc8de",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 4244,
"upload_time": "2024-08-18T07:28:34",
"upload_time_iso_8601": "2024-08-18T07:28:34.218919Z",
"url": "https://files.pythonhosted.org/packages/4d/f0/e7a0ee1862776dffa40050eb2b2b1ca3d8be30fdbe5ee5801bd8bd89d6f1/runservermagic-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6aa0175f6bc6905ba54b396f4c25e5ccf61a4ec1344f61efe879414bb7137a7b",
"md5": "25b588569fa55f305bbeee613d1e0eae",
"sha256": "2af4e2e5a48986571a98355f7d056c0931381257c967ee63d500c3af793369f9"
},
"downloads": -1,
"filename": "runservermagic-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "25b588569fa55f305bbeee613d1e0eae",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3995,
"upload_time": "2024-08-18T07:28:35",
"upload_time_iso_8601": "2024-08-18T07:28:35.696655Z",
"url": "https://files.pythonhosted.org/packages/6a/a0/175f6bc6905ba54b396f4c25e5ccf61a4ec1344f61efe879414bb7137a7b/runservermagic-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-18 07:28:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "uniras",
"github_project": "RunServerMagic",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "runservermagic"
}