Python tool for creating, editing and inspecting Penguinmod(.pmp) and Scratch(.sb3) files.
Project description
๐ง py-pmp-manip
A modular python tool for creating, editing and inspecting Penguinmod(.pmp) and Scratch(.sb3) project files.
๐ Features
- Loading and Creating Projects
- Editing Projects
- Inspecting Projects
For a documentation overview and a broader usage tutorial, see docs/index.md
๐ฆ Installation
pip install py-pmp-manip
Or clone directly. Do not forget to include submodules:
git clone --recurse-submodules https://github.com/GermanCodeEngineer/py-pmp-manip.git
cd py-pmp-manip
pip install -e .
๐งฐ Basic Usage
Before using most parts of pmp_manip, you must initialize the configuration once:
from pmp_manip import init_config, get_default_config
# Start from defaults and override what you need
cfg = get_default_config()
cfg.ext_info_gen.gen_opcode_info_dir = "output/gen_opcode_info"
init_config(cfg)
References
- For more config details, see docs/config.md
- For a documentation overview and a broader usage tutorial, see docs/index.md
๐ Project Structure
py-pmp-manip/
โโโ pmp_manip/ # Source Code
โ โโโ config/ # Configuration schema and lifecycle
โ โโโ core/ # Core functionality
โ โโโ ext_info_gen/ # Information generator for custom extensions
โ โโโ important_consts.py # Common important constants
โ โโโ opcode_info/ # Contains an API for and the information about all the blocks
โ โ โโโ api/ # Theoretical structure of the API
โ โ โโโ data/ # Actual data for the API
โ โ โโโ doc_api/ # A seperate API, which gives information about blocks and monitors in a human-readable way
โ โโโ builtin_extension_source/ # Resource Submodule: Adapted Built-in PenguinMod Extensions
โ โโโ utility/ # Utilities for other modules
โโโ docs/ # Documentation
โโโ scripts/ # Independent project-related scripts for developers
โ โโโ check_for_updates.py # Checks for updates in foreign code files, from which e.g. constants are derived
โ โโโ make_uml.py # Generates a UML-Diagram for Second Representation
โ โโโ update_pyproject_toml.py # Updates pyproject.toml with version and dependencies
โโโ tests/ # Unit tests
๐งช Running Tests
Just run:
pytest tests/
๐ License
GPLv3
๐ค Contributing
Pull requests, issues, and feedback are welcome! Please read the CONTRIBUTING.md guide before submitting code.
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 py_pmp_manip-1.1.2.tar.gz.
File metadata
- Download URL: py_pmp_manip-1.1.2.tar.gz
- Upload date:
- Size: 295.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7f17cd4608e68a5e1de5bc2f8a9e18603d636538884a879b0e909f49475c466
|
|
| MD5 |
5d72264f4b7e10f0eb3e118fa35cd797
|
|
| BLAKE2b-256 |
f927b52ad24391fd94688c9ad01af197b8499f1b0daf372f06baee23a47d5eb0
|
File details
Details for the file py_pmp_manip-1.1.2-py3-none-any.whl.
File metadata
- Download URL: py_pmp_manip-1.1.2-py3-none-any.whl
- Upload date:
- Size: 369.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58123b5063bfddaf0d7c68dd039ef171038b9e534edbf1dbb36236b48890dd3a
|
|
| MD5 |
1b8cf1e34403bdfcefa06a07eeb66f46
|
|
| BLAKE2b-256 |
db237228877f38f8700033f597424b12b83d4ba487782a33e234c9a0fb7e81bc
|