13 Commits

Author SHA1 Message Date
tsunyoku 642491f410 attempt to fix macos builds with newer setup-python 2024-09-01 17:20:36 +01:00
Josh Smith c9f1a72dc8 Create CODEOWNERS 2024-06-15 19:30:50 -04:00
tsunyoku d4f712e826 bump akatsuki-pp 2024-06-01 00:43:47 +01:00
tsunyoku a8cd1bc89d bump akatsuki-pp 2024-05-31 23:07:09 +01:00
tsunyoku e5bd157c62 bump akatsuki-pp 2024-05-31 22:44:31 +01:00
James Wilson 63e32758c4 update pp crate (#3)
* update pp crate

* update crate version

* update pyproject version
2024-05-12 01:05:22 +01:00
tsunyoku 4b2f5f5ba7 update pp version 2024-04-14 14:46:28 +01:00
tsunyoku 068f538643 update pyproject file 2023-11-16 20:39:40 +00:00
tsunyoku b1b647d1ea hotfix 2023-11-16 20:24:37 +00:00
James fdd668da2b fix pyproject version 2023-11-16 19:49:39 +00:00
tsunyoku 618c33486d deploy new pp version 2023-11-16 19:36:20 +00:00
tsunyoku cc222094b6 v0.9.8: fix typing pt 2 2023-09-23 23:35:49 +01:00
tsunyoku c881e301a4 v0.9.7: typing fixes 2023-09-23 23:21:18 +01:00
8 changed files with 191 additions and 66 deletions
+4 -4
View File
@@ -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 }}
+6
View File
@@ -0,0 +1,6 @@
* @tsunyoku @cmyui
# Infrastructure
/.github/* @cmyui
/tf/* @cmyui
/chart/* @cmyui
Generated
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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"
+2
View File
@@ -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
View File
@@ -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),
}