Circleguard

Latest version: v5.4.3

Safety actively analyzes 682244 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 8 of 16

3.2.0

* rename `ReplayStealingResult` to `StealResult` (for consistency with `Result` names matching their respective `Detect` names). `ReplayStealingResult` left available as deprecated.
* mods can now be instantiated through `Mod`. Instantiation through `ModCombination` is highly discouraged.
* mods can now be instantiated with a string, as well as an int. The string must be a combination, in any order, of the two length strings that represent mods. For instance, `Mod("HDHR")` is valid, and `Mod("HDHR") == Mod.HDHR` is `True`.
* use `np.interp` instead of a homebrew interpolation.
* changes similarity values slightly, both increasing and decreasing simvals for legit and stolen replays.
* no measurable impact on the effectiveness of circlecore to detect stolen replays.
* increases comparison speed.
* use only unique timestamps when interpolating (also changes similarity values slightly)

3.1.0

* fix `MapUser` inheritence (now properly inherits from `ReplayContainer`)
* fix incorrect `__add__` method for `Check`
* rename `Keys` to `Key` (`Keys` left available as deprecated)
* don't double load `ReplayInfo` when using `Map`
* fix mod subtraction not being commutative (eg `Mod.HDHR - Mod.HR` has a different meaning from `Mod.HR - Mod.HDHR`)
* store beatmap hash in `ReplayPath`
* properly check response for `map_id`, `user_id`, and `username` functions
* enforce ratelimit to all Loader functions
* don't reraise `InvalidKeyException` as a `CircleguardException`
* add CHANGELOG file to both track unreleased changes and past changes
* various documentation links and wording fixes

3.0.0

Important

* add aim correction detection
* new forward-facing documentation built with sphinx, including a comprehensive introduction on how to use circlecore (https://docs.circleguard.dev/)
* new `User` class which represents a user's top plays
* new `MapUser` class which represents all of a user's plays on a map
* new `Mod` and `ModCombination` class which represent mods
* restructure `replay.py` and inheritance of `loadables`. `Container` is (roughly) replaced with `InfoLoadable`, and `Check` is the only entry point for `Detect`.
* major `Detect` restructure; split into subclasses per cheat type. A `Detect` is instantiated with its respective thresholds(steal, ur, etc) instead of thresholds being global settings
* `Map` and `User` are now iterable and indexable, referencing `Replay`s in the `Map` or `User`
* rewrite and update all internal documentation
* `Circleguard` now takes a `cache` argument, which can make the database effectively read-only


Not so Important

* switch documentation style from google to numpy (<https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard>)
* new method `cg.load_info` that loads the info for `ReplayContainer`s
* global settings almost entirely removed, save for `loglevel`
* instance settings almost entirely removed, save for `cache`
- rename `replay.py` to `loadable.py`
- rename `UserInfo` to `ReplayInfo`
- `Options` class removed
- add a `loaderusername` function which retrieves a username from a user id. See also https://github.com/ppy/osu-api/issues/281
- add an `lru_cache` to `loadermap_id`, `user_id`, and `username` functions
- `loaderget_user_best` now returns a list of `UserInfo`, and accepts a `mods` argument.
- `cg.run` now only accepts a `Check`
- replace int mods with `ModCombination` in most places
- add ScoreV2 mod. Fixes not being able to process ScoreV2 replays.
- create a slider `Library` every time `run` is called if `slider_dir` is not passed. Fixes `PermissionError`s on windows.
- remove convenience methods (`user_check`, `map_check`, etc). These have been replaced by `Map` and `User` (new)
- update STYLE document
- all Circleguard instances now use the same logger
- `filter` argument removed throughout the codebase
- `RatelimitWeight` and `ResultType` enum string values capitalized
- `ResultType.AIM_CORRECTION` renamed to `CORRECTION`
- `ur` is now a staticmethod in `Investigator`

2.15.6

* add `Open Circleguard Folder` button to settings
* skip Unstable Rate investigations when there are less than three hits in the replay
* update to PyQt6
* add support for postgres-backed caches (not intended to be used by general users)

2.15.5

* fix error when similarity result is found

2.15.4

* accept direct drag and drops in loadable selection:

https://user-images.githubusercontent.com/31628143/150651737-39aadbab-c9e3-4cf3-8f53-ac9954e61cc2.mov

Works with folders as well.

* update run status when coming out of ratelimit
* show all four keys in the visualizer
* adjusting mods in the visualizer now changes all related values (AR, OD, CS)
* fix rare out of bounds crash in the visualizer when retreating frames at the beginning of a replay

Page 8 of 16

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.