Python client for Programming Zemi API
Project description
ProzemiRune 🌀
ビジュアルプログラミングアプリ「プログラミングゼミ(プロゼミ)」のAPIをPythonから操作するための非公式クライアントライブラリです。
作品の収集、解析、そしてPythonからの作品投稿(シェア)をサポートしています。
✨ 特徴
- 認証・セッション管理: キャッシュ機能付きのログイン・トークン自動更新。
- トークン自動発行:
sign_upメソッドによる新規アカウントの即時作成。 - 作品収集 (Scraping): 「みんなの作品」からプロジェクト一覧を取得し、
.prozemiprojを一括ダウンロード。 - 作品投稿 (Sharing):
multipart/form-data形式に対応し、自作のプロジェクトファイルを直接シェア可能。 - 機械学習フレンドリー: ダウンロードしたプロジェクトを解凍し、JSONデータを抽出してPyTorch等の学習データセットに活用できます。
🚀 インストール
pip install prozemi-rune
🛠 使い方
1. 初期化とログイン
from prozemi_rune import ProzemiRune
# 初期化 (session.json に認証情報がキャッシュされます)
rune = ProzemiRune()
# ログイン (アカウントがない場合は自動で新規作成)
rune.sign_in()
2. 作品の一覧取得とダウンロード
# 「みんなの作品」の1ページ目を取得
works = rune.get_public_works(page=1)
for work in works:
print(f"作品名: {work['name']}")
# プロジェクトファイルをダウンロード
rune.download_project(work['url'], save_dir="my_dataset")
3. 作品をシェア(投稿)する
自分で作成した、あるいはPythonで生成した .prozemiproj ファイルを投稿します。
# ローカルのファイルを投稿
rune.share_work(
file_path="generated_project.prozemiproj",
project_name="AI生成プログラム",
allow_remix=True
)
🤖 PyTorch勢の方へ
.prozemiproj ファイルは実態がZIPアーカイブです。中身の project.json をパースして、ブロックの配列をトークン化することで、LLMやTransformerを用いたプログラム生成モデルの学習が可能です。
import zipfile
import json
def load_blocks(file_path):
with zipfile.ZipFile(file_path, 'r') as z:
project_data = json.loads(z.read('project.json'))
# scripts 構造をパースして学習データセットへ
return project_data
⚠️ 免責事項
このプロジェクトは公式(DeNA)とは一切関係のない非公式なものです。
サーバーに過度な負荷をかけるスクレイピングや、スパム投稿などの迷惑行為には使用しないでください。利用規約を遵守し、教育的・研究的な目的でご利用ください。
📄 ライセンス
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prozemi_rune-0.9.7.tar.gz.
File metadata
- Download URL: prozemi_rune-0.9.7.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50c19ff9d9bde355ec70d2ffdb69c5871670c6cd7bbb06a4faf6a41f0e77ab4a
|
|
| MD5 |
7568f8066814fcddecde5fdb8d7eb8bf
|
|
| BLAKE2b-256 |
c3598606ca4b204b3d2660410e45bb4bb1549b488fde033d66189ac443695572
|
File details
Details for the file prozemi_rune-0.9.7-py3-none-any.whl.
File metadata
- Download URL: prozemi_rune-0.9.7-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2d2e9120fa95945f638d840531f9bbe8fed63b0d068aa52c8a72c017d5ab586
|
|
| MD5 |
ddaed6ddaf79e2d54f2d9144d24abcf9
|
|
| BLAKE2b-256 |
dd11da245b2cdf4f74acb3aa990614953e19b406ca3f3c5a63071932a1df9d83
|