Skip to main content

PyPi version

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

Metadata

Release files for circleparse 6.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for circleparse 6.4.1
File Size Uploaded
circleparse-6.4.1.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for circleparse 6.4.1
File Interpreter ABI Platform
circleparse-6.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 33.5 kB

Release files / circleparse-6.4.1.tar.gz

Download URL circleparse-6.4.1.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3448638771dcab2317e976388d9c31252bab6e497874f67746676f6ae47e05a2
BLAKE2b-256 checksum
How to use checksums
cb5e18a1d9f30b22207f85e8fc3382fb2ea4ed87903aa6fa3fb9226d9f22549d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

Release files / circleparse-6.4.1-py3-none-any.whl

Download URL circleparse-6.4.1-py3-none-any.whl
Size 28.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2cbb2fc47cd63fffdbccbb7d6307d1a46fcb723ca7b29105ac18eeabdae8bc0b
BLAKE2b-256 checksum
How to use checksums
6c4ec7ef6555960bb77697179941f9aaf1ca8b79d597d5af7e1febf68f284d96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

Release history Release notifications | RSS feed

This release

6.4.1 This release

2 release files

6.4.0

2 release files

6.3.0

2 release files

6.2.0

2 release files

6.1.0

2 release files

6.0.0

2 release files

5.0.1

2 release files

5.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page