Skip to main content

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


๐Ÿ“ 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
โ”‚   โ”œโ”€โ”€ 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 
โ”‚   โ”œโ”€โ”€ utility/            # Utilities for other modules
โ”‚   โ””โ”€โ”€ important_consts.py # Common important constants
โ”œโ”€โ”€ 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


Download files

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

Source Distribution

py_pmp_manip-1.1.0.tar.gz (129.2 kB view details)

Uploaded Source

Built Distribution

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

py_pmp_manip-1.1.0-py3-none-any.whl (150.7 kB view details)

Uploaded Python 3

File details

Details for the file py_pmp_manip-1.1.0.tar.gz.

File metadata

  • Download URL: py_pmp_manip-1.1.0.tar.gz
  • Upload date:
  • Size: 129.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for py_pmp_manip-1.1.0.tar.gz
Algorithm Hash digest
SHA256 167b19ac5555f0a44470659d326a4a160eddfb4d039d4ef8f5005592791dee56
MD5 b7209a1fe53cae0c8020abcaa2a1f498
BLAKE2b-256 1abf3afc2f417cc1b401ac0d6b5681ab27ac225955f3126bd503a39fe16c71c2

See more details on using hashes here.

File details

Details for the file py_pmp_manip-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: py_pmp_manip-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 150.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for py_pmp_manip-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff2cdbc63ba7ca9f6f5a07d200b82d44d080d128c7896948194542bc642dbca8
MD5 02510408e1676c497020d4bfe05a076d
BLAKE2b-256 3dcb198a38b67958fa010c9efd82b3fc7aa31d1dd01a14a151cf4dbbee44de4b

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