Skip to main content
logo

PyPi version

Circlecore (documentation)

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).

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!

Metadata

Release files for circleguard 5.4.3

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

Source distribution (sdist)

Source distribution for circleguard 5.4.3
File Size Uploaded Provenance Actions
circleguard-5.4.3.tar.gz 66.0 kB Without provenance Details for circleguard-5.4.3.tar.gz

Built distribution (wheel)

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

Total release size: 139.0 kB

Release files / circleguard-5.4.3.tar.gz

Download URL circleguard-5.4.3.tar.gz
Size 66.0 kB
Tags Source
SHA-256 checksum
How to use checksums
500707164727b29991f6ac024f80439a004503416d5bcade8c17ec3178ccdc75
BLAKE2b-256 checksum
How to use checksums
8b824b3690975ac7ec39268b8dfb3565e9538885621622926eaac68b52fd0333
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / circleguard-5.4.3-py3-none-any.whl

Download URL circleguard-5.4.3-py3-none-any.whl
Size 73.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
514a831e3fb962abe9fc3f58f8073446ec0b555f7ba2587e73e86c17e5c08eb7
BLAKE2b-256 checksum
How to use checksums
c4396a362c577ebb38db7b7c1a6f8de9b700104ee42d6f7f2618b3ab21815789
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Security for circleguard 5.4.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

5.4.3 This release

2 release files No provenance

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