Skip to main content

Python client for Programming Zemi API

Project description

ProzemiRune 🌀

PyPI version Python Version

ビジュアルプログラミングアプリ「プログラミングゼミ(プロゼミ)」の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)とは一切関係のない非公式なものです。
サーバーに過度な負荷をかけるスクレイピングや、スパム投稿などの迷惑行為には使用しないでください。利用規約を遵守し、教育的・研究的な目的でご利用ください。

📄 ライセンス

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prozemi_rune-0.9.7.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prozemi_rune-0.9.7-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

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

Hashes for prozemi_rune-0.9.7.tar.gz
Algorithm Hash digest
SHA256 50c19ff9d9bde355ec70d2ffdb69c5871670c6cd7bbb06a4faf6a41f0e77ab4a
MD5 7568f8066814fcddecde5fdb8d7eb8bf
BLAKE2b-256 c3598606ca4b204b3d2660410e45bb4bb1549b488fde033d66189ac443695572

See more details on using hashes here.

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

Hashes for prozemi_rune-0.9.7-py3-none-any.whl
Algorithm Hash digest
SHA256 e2d2e9120fa95945f638d840531f9bbe8fed63b0d068aa52c8a72c017d5ab586
MD5 ddaed6ddaf79e2d54f2d9144d24abcf9
BLAKE2b-256 dd11da245b2cdf4f74acb3aa990614953e19b406ca3f3c5a63071932a1df9d83

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page