Skip to main content

A utilities library for osu!. Provides support for parsing replays from a file or from the api, as well as support for unstable rate, hits, similarity, and frametime calculations.

Project description

logo

PyPi version CodeFactor

Circlecore

Circlecore is a utilities library for osu!. Features include:

  • Unstable Rate calculation
  • Judgments calculation (classifying all hitobjects into misses, hit300s, hit100s, hit50s, or sliderbreaks)
  • Similarity calculation between two replays, for replay stealing detection
  • Frametime calculation, for timewarp detection
  • Jerky, suspicious movement detection (called Snaps)

Circlecore is used by Circleguard, a replay analysis tool.

Circlecore is developed and maintained by:

Installation

Circlecore can be installed from pip:

pip install circleguard

This documentation refers to the project as circlecore to differentiate it from our organization Circleguard and the replay analysis tool Circleguard. However, circlecore is installed from pypi with the name circleguard, and is imported as such in code (import circleguard).

Links

Github: https://github.com/circleguard/circlecore
Documentation: https://circleguard.github.io/circlecore/
Discord: https://discord.gg/VNnkTjm

Usage

We have a full tutorial and documentation at https://circleguard.github.io/circlecore/. If you really want to jump right in, below is a quickstart guide:

from circleguard import *

# replace "key" with your api key
cg = Circleguard("key")
# replay on http://osu.ppy.sh/b/221777 by http://osu.ppy.sh/u/2757689
replay = ReplayMap(221777, 2757689)

print(cg.ur(replay)) # unstable rate
print(cg.frametime(replay)) # average frametime
print(cg.frametimes(replay)) # full frametime list
print(cg.hits(replay)) # where the replay hits hitobjects
print(cg.snaps(replay)) # any jerky/suspicious movement

replay2 = ReplayMap(221777, 4196808)
print(cg.similarity(replay, replay2)) # how similar the replays are

# ReplayMap isn't the only way to represent replays; we can also
# get a beatmap's top 3 plays
map_ = cg.Map(221777, span="1-3")
# or a User's fifteenth and twentieth best plays
user = cg.User(124493, span="15, 20")
# or a local replay
replay3 = ReplayPath("/path/to/local/osr/replay.osr")
# and more. You can find them all at
# https://circleguard.github.io/circlecore/appendix.html#circleguard.loadables.Loadable

# maps and users can be iterated over
for r in map_:
    print(cg.ur(r))

Contributing

Join our discord and ask how you can help, or look around for open issues which interest you and tackle those. Pull requests are welcome!

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

circleguard-5.2.2.tar.gz (57.5 kB view details)

Uploaded Source

Built Distribution

circleguard-5.2.2-py3-none-any.whl (84.8 kB view details)

Uploaded Python 3

File details

Details for the file circleguard-5.2.2.tar.gz.

File metadata

  • Download URL: circleguard-5.2.2.tar.gz
  • Upload date:
  • Size: 57.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.0

File hashes

Hashes for circleguard-5.2.2.tar.gz
Algorithm Hash digest
SHA256 37e030f6d9d157d8e7fa2411f5249863d4915c8c86cc5b29bc790600fdb36255
MD5 b8ddb4453c6f894d07e7b575e30548c7
BLAKE2b-256 116b2c092c266cb79bcfcf84c4deaac024fe24d2a54845fb4567f9fa7a268966

See more details on using hashes here.

File details

Details for the file circleguard-5.2.2-py3-none-any.whl.

File metadata

  • Download URL: circleguard-5.2.2-py3-none-any.whl
  • Upload date:
  • Size: 84.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.0

File hashes

Hashes for circleguard-5.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cb1ab9d240eaedeef723c61347c50329868ff2937bc5e01da2d4c1392f6a17d6
MD5 12aa6887fbf9a916bc64c76ac884687e
BLAKE2b-256 cca7a5125e6e166dd7c1d2e38c5da36945a2b7c3091c5618d91535d2a11f07c7

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