Skip to main content

Python wrapper around MAME frontend commands and XML files.

Project description

pymame

pymame is a Python wrapper around MAME, including frontend commands from the executable, reading "support files" such as categories and history, parsing software lists to help identify files, provide a nicer/type-hintier wrapper around XML elements, and other related things. At the present time of writing, it is written primarily for my own mysterious personal use, and should not be relied on for anything important.

The intended use case is making it easier to develop Python tools that do MAME-related things.

Everything involving I/O should have an async version so you can more effectively use it from async code (some things are going to be missing right now, but this is the goal).

Requirements

python >=3.13 (sorry if you are on an older OS where this is unavailable, as I haven't had enough of a reason to check that it works with older Python yet), only been tested on Linux so far but probably works on Windows and macOS and whatever else.

Uses pydantic-settings and async-lru. In theory, everything else should be optional (e.g. you can get away with not having MAME actually installed, if you have the output of -listxml saved to a file), in the likely event that this doesn't work, this is a bug.

If lxml is installed, it will be used to parse XML files faster.

Example usage

import pymame
settings = pymame.MAMESettings.autodetect('/usr/bin/mame')
mame = pymame.MAME(settings)
for machine in mame.iter_runnable_machines():
	if mame.machine.verifyroms(machine.basename):
		print(machine.name, machine.platform)

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

pymame-0.0.1.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

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

pymame-0.0.1-py3-none-any.whl (46.5 kB view details)

Uploaded Python 3

File details

Details for the file pymame-0.0.1.tar.gz.

File metadata

  • Download URL: pymame-0.0.1.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pymame-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ba231e2b8c951b13ec6003fb3020a1f013c5919d5d0f221614df3233495c9b29
MD5 0ab39ab7d274892956f812ac7396aabe
BLAKE2b-256 c1ee9ee6b058336276dc5c0055a928750d3355a1cd48b6dee07ffce06110bdfb

See more details on using hashes here.

File details

Details for the file pymame-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pymame-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 46.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for pymame-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 431960391ccfb8af73236cedfb8cf6df74e1b0241ad708387120ef0d748950b2
MD5 fbbf7738e35065a9118b82a583e5741f
BLAKE2b-256 1f0f77079f021654faf001d24c02d4bcae1def274460a26ff97bf1b8d7abebb5

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