Skip to main content

A Scratch parser that can generate Python code, ensuring that the logic remains as it is, only unable to run.

Project description

scratch-analyzer

English version README.md: README.english.md

Scratch 解析库。一个使用Python制作的能够分析Python代码的软件包。

介绍

历史

基础代码再2025年(发布仓库的1年前)编写,当时我有一个梦想,将Scratch翻译成一个Python上能够运行的程序,于是我写下了这个程序,原名Scratch2Python

凭借着我惊人的智慧写出了Scratch2Python的Scratch转换Python代码功能,虽然代码有一丢烂,但是转换相当成功。

然而,接下来的问题是,Scratch运行时阻挠了我。从代码历史你能看到,本项目最终使用Scratch4Python作为运行时库,但是很可惜,我跟他耗了几个月,最终失败。

那么此库为何而在

因为我的这个翻译器还是太好了,理论上还可以做到翻译成各种语言,虽然目前仅保证转换为Python是正常的。

我认为这个功能很不错,于是建立存储库并单独提取其代码转换功能。

那Scratch4Python呢

我不打算完全放弃他,但是请等我深造几年,吃透OpenGL后,再管它吧。我想到时候将他作为独立库发布,同时更名python-scratch-vm。到时候可以两个库结合使用。

目录结构

├── docs # 文档注释文件夹
│   ├── README.chinese.md # 中文文档
│   └── README.english.md # 英文文档
├── LICENSE # MIT
├── pyproject.toml # 项目配置
├── README.md -> docs/README.chinese.md # 自述文件符号链接
├── requirements.txt # 需求文件
└── src # 源代码
    └── ScratchAnalyzer # 软件包目录

使用

首先下载软件包。注意使用时软件包名为ScratchAnalyzer

准备

首先,请准备好Scratch项目的project.json,将Scratch文件的后缀名更改为.zip,然后解压,即可得到素材文件和project.json。分析文件只需要project.json,但是如果需要运行等,请加上素材文件。

分析

假设已经准备好环境,使用方法如下:

from ScratchAnalyzer import Project, Scratch
import json
from pathlib import Path

# 1.读取文件,需要解析为字典
with open("project.json", "r", encoding="utf-8") as file: # 使用UTF-8确保不会编码错误
    data = json.load(file)

# 2.创建Project对象,自动建立代码分析树,并存储项目元数据
project = Project(data)

# 3.创建Scratch对象,自动分析素材列表等元数据
scratch = Scratch(project) # 要传入project,这样就能得到所有数据

# 4.生产,由于生产的是多文件,所以要指定输出目录
scratch.generate(Path("output"), language="python") # 第一个参数为输出目录,language为可选参数,默认为"python",暂不支持其他语言,在此留个TODO

# 5.output下即生产结果,对象析构安全,不需要手动管理

注意

目前我还没有修改软件包接口,因此用起来有些困难。请等待我重构接口,以让这个软件包更好使用。

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

scratchanalyzer-0.1.1.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

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

scratchanalyzer-0.1.1-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

Details for the file scratchanalyzer-0.1.1.tar.gz.

File metadata

  • Download URL: scratchanalyzer-0.1.1.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for scratchanalyzer-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f59a8091771cfca5174255dcc4e105b3c461754c776a6fa0473f42745a3c2233
MD5 53fa9d35eb32e716ad845d8cc3d16773
BLAKE2b-256 4fc03e9c21df581db1c9b2886f52c6304e4ddf22bba2ec954d996a824f0fa4e8

See more details on using hashes here.

File details

Details for the file scratchanalyzer-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for scratchanalyzer-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ee8136dea08965b88ca2215508bc370f050cc4e63ce443ad99a40766e088efc
MD5 9f30075e75fa0255d91e9e511711143c
BLAKE2b-256 1b72325e2f3ec7f1ae8147bee54e9b6c1f650953e342d0df7b948a25e866a0d1

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