Skip to main content

Parser for osr files and lzma replay streams for osu!

Project description

PyPi version

osrparse, a python parser for osu! replays

This is a parser for the .osr format for osu! replay files, as described by the wiki.

Installation

To install, simply:

pip install osrparse

Documentation

Please see the full documentation for a comprehensive guide: https://kszlim.github.io/osu-replay-parser. A quickstart follows below for the impatient, but you should read the full documentation if you are at all confused.

Quickstart

from osrparse import Replay, parse_replay_data
# parse from a path
replay = Replay.from_path("path/to/osr.osr")

# or from an opened file object
with open("path/to/osr.osr") as f:
    replay = Replay.from_file(f)

# or from a string
with open("path/to/osr.osr") as f:
    replay_string = f.read()
replay = Replay.from_string(replay_string)

# a replay has various attributes
r = replay
print(r.mode, r.game_version, r.beatmap_hash, r.username,
    r.replay_hash, r.count_300, r.count_100, r.count_50,
    r.count_geki, r.count_miss, r.score, r.max_combo, r.perfect,
    r.mods, r.life_bar_graph, r.timestamp, r.replay_data,
    r.replay_id, r.rng_seed)

# parse the replay data from api v1's /get_replay endpoint
lzma_string = retrieve_from_api()
replay_data = parse_replay_data(lzma_string)
# replay_data is a list of ReplayEvents

# write a replay back to a path
replay.write_path("path/to/osr.osr")

# or to an opened file object
with open("path/to/osr.osr") as f:
    replay.write_file(f)

# or to a string
packed = replay.pack()

# edited attributes are saved
replay.username = "fake username"
replay.write_path("path/to/new_osr.osr")

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

osrparse-7.0.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

osrparse-7.0.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file osrparse-7.0.0.tar.gz.

File metadata

  • Download URL: osrparse-7.0.0.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.10

File hashes

Hashes for osrparse-7.0.0.tar.gz
Algorithm Hash digest
SHA256 5c7b61f73bede496d92357b2c6299613c07ee5baf1b37be318a60306db3812a5
MD5 51353e97c7e3e45a7bcee6cc4be61860
BLAKE2b-256 bf67f9839c9149dabf7d4ca485d0a5e86758842f9b41ed4f3e4e97b52cd3530e

See more details on using hashes here.

File details

Details for the file osrparse-7.0.0-py3-none-any.whl.

File metadata

  • Download URL: osrparse-7.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.10

File hashes

Hashes for osrparse-7.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 562dd4d53bb0c9cb00ac17269822da57e9d2712b06af4ecd8f665b9335b161e2
MD5 d1848be4e09978a32c2ece3bfac52313
BLAKE2b-256 168f8eed1611932773b38d7dc5fe319889f7bd6e9305ea870eb6795d996aa651

See more details on using hashes here.

Supported by

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