Skip to main content

Parser for osr files and lzma replay streams for osu!

Project description

PyPi version Build Status

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://kevin-lim.ca/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-6.0.2.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

osrparse-6.0.2-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for osrparse-6.0.2.tar.gz
Algorithm Hash digest
SHA256 7415faee6d2eeabb29dbd85b3a15c4ac960a6b5acb7b757ff503f215e7ef7ebb
MD5 1852ec166376eb9f9f94b2b331431455
BLAKE2b-256 e48422fad6d5a50c5ae1d1c802a6ca1bca465e966e1961c97664e9e104696fea

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for osrparse-6.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fb80796621d0c1c2f4ff53d6a0468cf5cec9b11c5e01d479f170bdfd00549044
MD5 5e447b2cf9018bbd2301ecdb153e7a1b
BLAKE2b-256 684a91226f5dc3d19cb7d5ea6b1818e533806056932f904b72910019bbd9e46a

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