Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 642491f410 | |||
| c9f1a72dc8 | |||
| d4f712e826 | |||
| a8cd1bc89d | |||
| e5bd157c62 | |||
| 63e32758c4 | |||
| 4b2f5f5ba7 | |||
| 068f538643 | |||
| b1b647d1ea | |||
| fdd668da2b | |||
| 618c33486d | |||
| cc222094b6 | |||
| c881e301a4 |
@@ -17,7 +17,7 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Python setup
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5.1.1
|
||||
with:
|
||||
python-version: ${{ matrix.python_version }}
|
||||
architecture: x64
|
||||
@@ -63,7 +63,7 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Python setup
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5.1.1
|
||||
with:
|
||||
python-version: ${{ matrix.python_version }}
|
||||
architecture: ${{ matrix.target }}
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Python setup
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5.1.1
|
||||
with:
|
||||
python-version: ${{ matrix.python_version }}
|
||||
architecture: x64
|
||||
@@ -137,7 +137,7 @@ jobs:
|
||||
name: wheels
|
||||
|
||||
- name: Python setup
|
||||
uses: actions/setup-python@v4
|
||||
uses: actions/setup-python@v5.1.1
|
||||
with:
|
||||
python-version: ${{ matrix.python_version }}
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
* @tsunyoku @cmyui
|
||||
|
||||
# Infrastructure
|
||||
/.github/* @cmyui
|
||||
/tf/* @cmyui
|
||||
/chart/* @cmyui
|
||||
Generated
+3
-3
@@ -4,12 +4,12 @@ version = 3
|
||||
|
||||
[[package]]
|
||||
name = "akatsuki-pp"
|
||||
version = "0.9.4"
|
||||
source = "git+https://github.com/osuAkatsuki/akatsuki-pp-rs?rev=764da0dbf42ed80441acf99d070aaedabaed4b75#764da0dbf42ed80441acf99d070aaedabaed4b75"
|
||||
version = "1.0.1"
|
||||
source = "git+https://github.com/osuAkatsuki/akatsuki-pp-rs?rev=b96019f50aa7d09bcbde60016481a69df04315e4#b96019f50aa7d09bcbde60016481a69df04315e4"
|
||||
|
||||
[[package]]
|
||||
name = "akatsuki-pp-py"
|
||||
version = "0.9.4"
|
||||
version = "1.0.5"
|
||||
dependencies = [
|
||||
"akatsuki-pp",
|
||||
"pyo3",
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "akatsuki-pp-py"
|
||||
version = "0.9.6"
|
||||
version = "1.0.5"
|
||||
description = "osu! difficulty and pp calculation for all modes"
|
||||
authors = ["Max Ohn <ohn.m@hotmail.de>", "tsunyoku <tsunyoku@gmail.com>"]
|
||||
license = "MIT"
|
||||
@@ -12,7 +12,7 @@ crate-type = ["cdylib"]
|
||||
|
||||
[dependencies]
|
||||
pyo3 = { version = "0.17", features = ["extension-module", "macros"] }
|
||||
akatsuki-pp = { git = "https://github.com/osuAkatsuki/akatsuki-pp-rs", rev = "764da0dbf42ed80441acf99d070aaedabaed4b75" }
|
||||
akatsuki-pp = { git = "https://github.com/osuAkatsuki/akatsuki-pp-rs", rev = "b96019f50aa7d09bcbde60016481a69df04315e4" }
|
||||
|
||||
[profile.release]
|
||||
lto = "fat"
|
||||
|
||||
+162
-54
@@ -233,19 +233,45 @@ class BeatmapAttributes:
|
||||
`'n_spinners': int`
|
||||
Amount of spinners
|
||||
"""
|
||||
ar: float
|
||||
cs: float
|
||||
hp: float
|
||||
od: float
|
||||
ar_hit_window: float
|
||||
od_hit_window: float
|
||||
clock_rate: float
|
||||
bpm: float
|
||||
mode: int
|
||||
version: int
|
||||
n_circles: int
|
||||
n_sliders: int
|
||||
n_spinners: int
|
||||
|
||||
@property
|
||||
def ar(self) -> float: ...
|
||||
|
||||
@property
|
||||
def cs(self) -> float: ...
|
||||
|
||||
@property
|
||||
def hp(self) -> float: ...
|
||||
|
||||
@property
|
||||
def od(self) -> float: ...
|
||||
|
||||
@property
|
||||
def ar_hit_window(self) -> float: ...
|
||||
|
||||
@property
|
||||
def od_hit_window(self) -> float: ...
|
||||
|
||||
@property
|
||||
def clock_rate(self) -> float: ...
|
||||
|
||||
@property
|
||||
def bpm(self) -> float: ...
|
||||
|
||||
@property
|
||||
def mode(self) -> int: ...
|
||||
|
||||
@property
|
||||
def version(self) -> int: ...
|
||||
|
||||
@property
|
||||
def n_circles(self) -> int: ...
|
||||
|
||||
@property
|
||||
def n_sliders(self) -> int: ...
|
||||
|
||||
@property
|
||||
def n_spinners(self) -> int: ...
|
||||
|
||||
|
||||
class DifficultyAttributes:
|
||||
@@ -299,27 +325,69 @@ class DifficultyAttributes:
|
||||
`'n_tiny_droplets': Optional[int]`
|
||||
Amount of tiny droplets (C)
|
||||
"""
|
||||
mode: int
|
||||
stars: float
|
||||
max_combo: int
|
||||
aim: Optional[float]
|
||||
speed: Optional[float]
|
||||
flashlight: Optional[float]
|
||||
slider_factor: Optional[float]
|
||||
speed_note_count: Optional[float]
|
||||
ar: Optional[float]
|
||||
od: Optional[float]
|
||||
n_circles: Optional[int]
|
||||
n_sliders: Optional[int]
|
||||
n_spinners: Optional[int]
|
||||
stamina: Optional[float]
|
||||
color: Optional[float]
|
||||
rhythm: Optional[float]
|
||||
peak: Optional[float]
|
||||
hit_window: Optional[float]
|
||||
n_fruits: Optional[int]
|
||||
n_droplets: Optional[int]
|
||||
n_tiny_droplets: Optional[int]
|
||||
|
||||
@property
|
||||
def mode(self) -> int: ...
|
||||
|
||||
@property
|
||||
def stars(self) -> float: ...
|
||||
|
||||
@property
|
||||
def max_combo(self) -> int: ...
|
||||
|
||||
@property
|
||||
def aim(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def speed(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def flashlight(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def slider_factor(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def speed_note_count(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def ar(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def od(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def n_circles(self) -> Optional[int]: ...
|
||||
|
||||
@property
|
||||
def n_sliders(self) -> Optional[int]: ...
|
||||
|
||||
@property
|
||||
def n_spinners(self) -> Optional[int]: ...
|
||||
|
||||
@property
|
||||
def stamina(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def color(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def rhythm(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def peak(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def hit_window(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def n_fruits(self) -> Optional[int]: ...
|
||||
|
||||
@property
|
||||
def n_droplets(self) -> Optional[int]: ...
|
||||
|
||||
@property
|
||||
def n_tiny_droplets(self) -> Optional[int]: ...
|
||||
|
||||
|
||||
class PerformanceAttributes:
|
||||
@@ -349,15 +417,33 @@ class PerformanceAttributes:
|
||||
`'pp_difficulty': Optional[float]`
|
||||
Difficulty based portion of the performance points (T, M)
|
||||
"""
|
||||
mode: int
|
||||
pp: float
|
||||
difficulty: DifficultyAttributes
|
||||
pp_acc: Optional[float]
|
||||
pp_aim: Optional[float]
|
||||
pp_speed: Optional[float]
|
||||
pp_flashlight: Optional[float]
|
||||
effective_miss_count: Optional[float]
|
||||
pp_difficulty: Optional[float]
|
||||
|
||||
@property
|
||||
def mode(self) -> int: ...
|
||||
|
||||
@property
|
||||
def pp(self) -> float: ...
|
||||
|
||||
@property
|
||||
def difficulty(self) -> DifficultyAttributes: ...
|
||||
|
||||
@property
|
||||
def pp_acc(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def pp_aim(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def pp_speed(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def pp_flashlight(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def effective_miss_count(self) -> Optional[float]: ...
|
||||
|
||||
@property
|
||||
def pp_difficulty(self) -> Optional[float]: ...
|
||||
|
||||
|
||||
class Strains:
|
||||
@@ -391,14 +477,36 @@ class Strains:
|
||||
`'strains': Optional[List[float]]`
|
||||
Strain values (M)
|
||||
"""
|
||||
mode: int
|
||||
section_len: float
|
||||
aim: Optional[List[float]]
|
||||
aim_no_sliders: Optional[List[float]]
|
||||
speed: Optional[List[float]]
|
||||
flashlight: Optional[List[float]]
|
||||
color: Optional[List[float]]
|
||||
stamina: Optional[List[float]]
|
||||
rhythm: Optional[List[float]]
|
||||
movement: Optional[List[float]]
|
||||
strains: Optional[List[float]]
|
||||
|
||||
@property
|
||||
def mode(self) -> int: ...
|
||||
|
||||
@property
|
||||
def section_len(self) -> float: ...
|
||||
|
||||
@property
|
||||
def aim(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def aim_no_sliders(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def speed(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def flashlight(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def color(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def stamina(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def rhythm(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def movement(self) -> Optional[List[float]]: ...
|
||||
|
||||
@property
|
||||
def strains(self) -> Optional[List[float]]: ...
|
||||
|
||||
+5
-2
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
||||
|
||||
[project]
|
||||
name = "akatsuki-pp-py"
|
||||
version = "0.9.6"
|
||||
version = "1.0.5"
|
||||
requires-python = ">=3.7"
|
||||
description = "osu! difficulty and pp calculation for all modes"
|
||||
classifiers = [
|
||||
@@ -17,7 +17,10 @@ classifiers = [
|
||||
"Programming Language :: Python :: Implementation :: PyPy",
|
||||
]
|
||||
packages = [{ include = "akatsuki_pp_py" }]
|
||||
authors = [{ name = "Max Ohn", email = "ohn.m@hotmail.de" }, { name = "tsunyoku", email = "tsunyoku@gmail.com" }]
|
||||
authors = [
|
||||
{ name = "Max Ohn", email = "ohn.m@hotmail.de" },
|
||||
{ name = "tsunyoku", email = "tsunyoku@gmail.com" },
|
||||
]
|
||||
readme = "README.md"
|
||||
license = { file = "LICENSE" }
|
||||
repository = "https://github.com/osuAkatsuki/akatsuki-pp-py"
|
||||
|
||||
@@ -268,6 +268,8 @@ impl PyCalculator {
|
||||
n_spinners: attrs.difficulty.n_spinners,
|
||||
stars: attrs.difficulty.stars,
|
||||
max_combo: attrs.difficulty.max_combo,
|
||||
aim_difficult_strain_count: 0.0,
|
||||
speed_difficult_strain_count: 0.0,
|
||||
},
|
||||
pp: attrs.pp,
|
||||
pp_acc: attrs.pp_acc,
|
||||
|
||||
+7
-1
@@ -1,10 +1,10 @@
|
||||
use std::fmt::{Debug, Display, Formatter, Result as FmtResult};
|
||||
|
||||
use pyo3::{pyclass, pymethods};
|
||||
use akatsuki_pp::{
|
||||
catch::CatchDifficultyAttributes, mania::ManiaDifficultyAttributes,
|
||||
osu::OsuDifficultyAttributes, taiko::TaikoDifficultyAttributes, DifficultyAttributes,
|
||||
};
|
||||
use pyo3::{pyclass, pymethods};
|
||||
|
||||
#[pyclass(name = "DifficultyAttributes")]
|
||||
#[derive(Clone, Debug)]
|
||||
@@ -91,6 +91,8 @@ impl Debug for BorrowedDifficultyAttributes<'_> {
|
||||
n_spinners,
|
||||
stars,
|
||||
max_combo,
|
||||
aim_difficult_strain_count,
|
||||
speed_difficult_strain_count,
|
||||
} = attrs;
|
||||
|
||||
debug.field("mode", &0_u8);
|
||||
@@ -109,6 +111,8 @@ impl Debug for BorrowedDifficultyAttributes<'_> {
|
||||
n_spinners,
|
||||
stars,
|
||||
max_combo,
|
||||
aim_difficult_strain_count,
|
||||
speed_difficult_strain_count,
|
||||
}
|
||||
}
|
||||
Self::Taiko(attrs) => {
|
||||
@@ -230,4 +234,6 @@ getters! {
|
||||
n_tiny_droplets as usize: (Catch),
|
||||
ar as f64: (Osu, Catch),
|
||||
hit_window as f64: (Taiko, Mania),
|
||||
aim_difficult_strain_count as f64: (Osu),
|
||||
speed_difficult_strain_count as f64: (Osu),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user