Parser for osr files and lzma replay streams for osu!
Project description
circleparse, a .osr and lzma parser
This fork is designed specifically for Circlecore, and extends the functionality of the upstream repo by allowing parsing of a pure lzma bytestring, instead of the bytestring contents of an entire .osr file. Usage:
from circleparse import parse_replay
# returns instance of Replay from an lzma bytestring with only the play_data field nonnull.
parse_replay(lzma_byte_string, pure_lzma=True)
Note that only information stored in the lzma bytestring is stored in the Replay instance. When pure_lzma is true, replay_data is the only populated field because lzma only contains cursor positioning and key presses. For more information, see the wiki.
Installation
To install, simply
pip install circleparse
Documentation
To parse a replay from a filepath:
from circleparse import parse_replay_file
#returns instance of Replay
parse_replay_file("path/to/osr.osr")
To parse a replay from a bytestring:
from circleparse import parse_replay
#returns instance of Replay given the replay data encoded as a bytestring
parse_replay(byte_string)
Replay instances provide these fields
self.game_mode #GameMode enum
self.game_version #Integer
self.beatmap_hash #String
self.player_name #String
self.replay_hash #String
self.number_300s #Integer
self.number_100s #Integer
self.number_50s #Integer
self.gekis #Integer
self.katus #Integer
self.misses #Integer
self.score #Integer
self.max_combo #Integer
self.is_perfect_combo #Boolean
self.mod_combination #frozenset of Mods
self.life_bar_graph #String, unparsed as of now
self.timestamp #Python Datetime object
self.play_data #List of ReplayEvent instances
ReplayEvent instances provide these fields
self.time_since_previous_action #Integer representing time in milliseconds
self.x #x axis location
self.y #y axis location
self.keys_pressed #bitwise sum of keys pressed, documented in OSR format page
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
Built Distribution
File details
Details for the file circleparse-6.3.0.tar.gz
.
File metadata
- Download URL: circleparse-6.3.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d366f1eed3c5332abd65f6a8de900bd316a5c8c401e39e9aa1ca4c90d928fc0 |
|
MD5 | 349242ea60dcbc0804c0ec7d5f61745a |
|
BLAKE2b-256 | c043bc1dc5343b6abc8e62c5d9bd229736037b48738ca3eefab4e2aadf90501e |
File details
Details for the file circleparse-6.3.0-py3-none-any.whl
.
File metadata
- Download URL: circleparse-6.3.0-py3-none-any.whl
- Upload date:
- Size: 28.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3487d1f0ddbe840996f9235b5988a659e8279c3ce7ed89e371e8141d81aac4b |
|
MD5 | 2f2b70379f9b7684d66861dd821f311d |
|
BLAKE2b-256 | 5798a5077668c9d7570b4bf6bf5ae2452b39bd7775f85d142ab6a067387f6cd3 |