Metadata-Version: 2.1
Name: circleparse
Version: 6.3.0
Summary: Parser for osr files and lzma replay streams for osu!
Home-page: https://github.com/circleguard/circleparse
Author: Liam DeVoe
Author-email: orionldevoe@gmail.com
License: MIT
Download-URL: https://github.com/circleguard/circleparse/tarball/v6.3.0
Description: 
        [![PyPi version](https://badge.fury.io/py/circleparse.svg)](https://pypi.org/project/circleparse/)
        
        # circleparse, a .osr and lzma parser
        
        This fork is designed specifically for [Circlecore](https://github.com/circleguard/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:
        
        ```python
        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](https://osu.ppy.sh/help/wiki/osu%21_File_Formats/Osr_%28file_format%29).
        
        ## Installation
        
        To install, simply
        
        ```sh
        pip install circleparse
        ```
        
        ## Documentation
        
        To parse a replay from a filepath:
        
        ```python
        from circleparse import parse_replay_file
        
        #returns instance of Replay
        parse_replay_file("path/to/osr.osr")
        ```
        
        To parse a replay from a bytestring:
        
        ```python
        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
        
        ```python
        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
        
        ```python
        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
        ```
        
Keywords: osu!, osr, replay, replays, parsing, parser, python
Platform: UNKNOWN
Classifier: Topic :: Games/Entertainment
Classifier: Topic :: Software Development :: Libraries
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
