Difficulty and performance calculation for osu!
Project description
rosu-pp-py
Library to calculate difficulty and performance attributes for all osu! modes.
This is a python binding to the Rust library rosu-pp which was bootstrapped through PyO3. As such, its performance is much faster than a native python library.
Usage
The library exposes multiple classes:
Beatmap
: Parsed.osu
fileGameMode
- Calculators
Difficulty
: Class to calculate difficulty attributes, strains, or create gradual calculatorsPerformance
: Performance attributes calculatorGradualDifficulty
: Calculator to calculate difficulty attributes after each hitobjectGradualPerformance
: Calculator to calculator performance attributes after each hitresultBeatmapAttributesBuilder
: Beatmap attributes calculator
- Results
DifficultyAttributes
Strains
: Strain values of a difficulty calculation, suitable to plot difficulty over timePerformanceAttributes
BeatmapAttributes
HitResultPriority
: Passed toPerformance
, decides whether specified accuracy should be realized through good or bad hitresultsScoreState
: Hitresults and max combo of a score, found inPerformanceAttributes
and passed to gradual calculators
Example
Calculating performance
import rosu_pp_py as rosu
# either `path`, `bytes`, or `content` must be specified when parsing a map
map = rosu.Beatmap(path = "/path/to/file.osu")
# Optionally convert to a specific mode
map.convert(rosu.GameMode.Mania)
perf = rosu.Performance(
# various kwargs available
accuracy = 98.76,
misses = 2,
combo = 700,
hitresult_priority = rosu.HitResultPriority.WorstCase, # favors bad hitresults
)
# Each kwarg can also be specified afterwards through setters
perf.set_accuracy(99.11) # override previously specified accuracy
perf.set_mods(8 + 64) # HDDT
perf.set_clock_rate(1.4)
# Second argument of map attributes specifies whether mods still need to be accounted for
# `True`: mods already considered; `False`: value should still be adjusted
perf.set_ar(10.5, True)
perf.set_od(5, False)
# Calculate for the map
attrs = perf.calculate(map)
# Note that calculating via map will have to calculate difficulty attributes
# internally which is fairly expensive. To speed it up, you can also pass in
# previously calculated attributes, but be sure they were calculated for the
# same difficulty settings like mods, clock rate, custom map attributes, ...
perf.set_accuracy(100)
perf.set_misses(None)
perf.set_combo(None)
# Calculate a new set of attributes by re-using previous attributes instead of the map
max_attrs = perf.calculate(attrs)
print(f'PP: {attrs.pp}/{max_attrs.pp} | Stars: {max_attrs.difficulty.stars}')
Gradual calculation
import rosu_pp_py as rosu
# Parsing the map, this time through the `content` kwarg
with open("/path/to/file.osu") as file:
map = rosu.Beatmap(content = file.read())
# Specifying some difficulty parameters
diff = rosu.Difficulty(
mods = 16 + 1024, # HRFL
clock_rate = 1.1,
ar = 10.2,
ar_with_mods = True,
)
# Gradually calculating *difficulty* attributes
gradual_diff = diff.gradual_difficulty(map)
for i, attrs in enumerate(gradual_diff, 1):
print(f'Stars after {i} hitobjects: {attrs.stars}')
# Gradually calculating *performance* attributes
gradual_perf = diff.gradual_performance(map)
i = 1
while True:
state = rosu.ScoreState(
max_combo = i,
n300 = i,
n100 = 0,
# ...
)
attrs = gradual_perf.next(state)
if attrs is None:
# All hitobjects have been processed
break
print(f'PP: {attrs.pp}')
i += 1
Mods
Wherever mods are specified, their type should coincide with the following alias definition:
GameMods = Union[int, str, GameMod, List[Union[GameMod, str, int]]]
GameMod = dict[str, Union[str, GameModSettings]]
GameModSettings = dict[str, Union[bool, float, str]]
That means, mods can be given either through their (legacy) bitflags,
a string for acronyms, a "GameMod" dict
, or a sequence whose items are either
a "GameMod" dict
, a single acronym string, or bitflags for a single mod.
A "GameMod" dict
must have the item 'acronym': str
and an optional item 'settings': GameModSettings
.
Some examples for valid mods look as follows:
mods = 8 + 64 # Hidden, DoubleTime
mods = "hRNcWIez" # HardRock, Nightcore, Wiggle, Easy
mods = { 'acronym': "FI" } # FadeIn
mods = [
1024,
'nf',
{
'acronym': "AC",
'settings': {
'minimum_accuracy': 95,
'restart': True
}
}
] # Flashlight, NoFail, AccuracyChallenge
import json
mods_json = '[{"acronym": "TC"}, {"acronym": "HT", "settings": {"speed_change": 0.6}}]'
mods = json.loads(mods_json) # Traceable, HalfTime
Installing rosu-pp-py
Installing rosu-pp-py requires a supported version of Python and Rust.
Once Python and Rust are ready to go, you can install the project with pip:
$ pip install rosu-pp-py
or
$ pip install git+https://github.com/MaxOhn/rosu-pp-py
Learn More
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for rosu_pp_py-1.1.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df3977e173f278d593ffc4ef725fec1edb5d1cdaf90298f9bd4df5fc3ca49ebf |
|
MD5 | e694247d44b6449fe8d132ca182cdb47 |
|
BLAKE2b-256 | a55d2545331fa99c05e898929a77c2f4693fce5d195e484ac2d486c55032b06a |
Hashes for rosu_pp_py-1.1.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09de1b3b12bf2a703a195381dc0bba8a494906563f50b748b1fd7f4f8ccc4364 |
|
MD5 | b6c5aad82bb771d8bf07e30060b4516e |
|
BLAKE2b-256 | 4f7347cadfe3cd72d62aa73950cbecc8ae696f343f64065c11e7e56b62685661 |
Hashes for rosu_pp_py-1.1.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13ec38d1db9fdff119ee74e15358da67b77ca21bcb3e559f4662d674f3213b99 |
|
MD5 | 4ff8514c90353f6fc49981f9c98a2d77 |
|
BLAKE2b-256 | 3f4c928c1b814167062de23c48274d07552200a4aece4987d2c8744335305374 |
Hashes for rosu_pp_py-1.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef02a2cfd3df62693736f66cbf6f35e2b28c51e34106c7a9fac7b3216fb86933 |
|
MD5 | 55595c5bd0f7f735cbfc8ea3a5702b56 |
|
BLAKE2b-256 | 9d23b7d660dd8c77790a29673ec3da6b9745e2714c90e4f4cd0886051c73a9a8 |
Hashes for rosu_pp_py-1.1.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a8aa5d447e0ff82eac03814ac819513b02273d2d17ced3e24c71ea88a477f00 |
|
MD5 | 48d74aee4859697600ed880f47731f8b |
|
BLAKE2b-256 | 217def1e1432b7dc590efeb13bbc39e90f81987d7befc60854c93cc6c260196a |
Hashes for rosu_pp_py-1.1.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2f014d942b0a0669c8a816d6b42bd3285331554ebb6de03e3d5387a11dfcd61 |
|
MD5 | 4c0758bddb05b4f6dbf95a1da873909d |
|
BLAKE2b-256 | 4f689f3bad39d843be06942a96c4acf162794f4c7a7f7a3ca0d4900a43ffa9fd |
Hashes for rosu_pp_py-1.1.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc3d338459e7fbc4a2492895a03242736064df5843862fdad2e4984ac5abe352 |
|
MD5 | 2e4af5c0a195efb355864f0a1dee0e49 |
|
BLAKE2b-256 | 21f3325e65abd1ede6257f9956783f62e10c0a805430672525a3fba85a9dab0d |
Hashes for rosu_pp_py-1.1.0-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9ac93c427f6f0780b49137ac383905d2d556892b9bd4026386dd1f8463a1931 |
|
MD5 | bba4cb87c07b67357841ed30df41b531 |
|
BLAKE2b-256 | 73b5725e19c1271ee21478a300b57f7bd54edf0e16ace13587a296f0e5e758f5 |
Hashes for rosu_pp_py-1.1.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e70b41c7aed7f790f319ffbe3f0905f71ed817e4a807682872ddbd5924893ac |
|
MD5 | 562a3e09e25674eb14fe646a9b059585 |
|
BLAKE2b-256 | 245f7424f3939568b472a0a78a4e462dd9d81e94f6a0ae93de942775623cbe45 |
Hashes for rosu_pp_py-1.1.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87b463d19017869769739f58a093a7a389dc4aef6e66331d22d7fc3f23e40e29 |
|
MD5 | 3e1ad7f3ebf6e8516e24b82cb92b801f |
|
BLAKE2b-256 | 7ee58c5298ee8a6563bd689dd6ffdd302b77f26960a403dc03735b4006d50978 |
Hashes for rosu_pp_py-1.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0d5c37e3756ffb33638f5fddb0c566be68dddcf69c95d8e0efb63902db5b81a |
|
MD5 | c35acb2002fae7bac3a23d78c69e7706 |
|
BLAKE2b-256 | d80ada6b8e1289ebeb80ce24a6faea0c9361778839de6289c22ed4e00f18712a |
Hashes for rosu_pp_py-1.1.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d29c5014b5891a5fc38dc6f0f17cb030fd7b15cfd09d406ec2f1c01d70597fe5 |
|
MD5 | 9fc585ac6995465d0ea4f29dc8c8ff44 |
|
BLAKE2b-256 | 1c8cc67695e68377478875ef959de19e13200182fb36838fd9e4f2f0e3ccf9ab |
Hashes for rosu_pp_py-1.1.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 072b9aa9f42b1cc5278ea1058dbabf297c6596045d1a890e9c1f39c1dd6dd500 |
|
MD5 | 83294ee4c1a1eff96fff3b8ba51d47ca |
|
BLAKE2b-256 | 18b7061d02d5466996929e095f55d6877e620fed983ab43c94a965561475de8b |
Hashes for rosu_pp_py-1.1.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bde0ae577a2aa399b1c69a9899f2325cd3645e6d2f2d7c4ea438ed7ecd20c3b |
|
MD5 | 25954d69dd29b68a25408748371dbb9e |
|
BLAKE2b-256 | f56603bf17eee23f085d5ece680c618ccba99d6f74e5476c97a841cabe62689e |
Hashes for rosu_pp_py-1.1.0-cp313-none-win_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b9edfb7d47d61d362f0ab524e44c752c49b0641ca107c154133cc9b3191c8c9 |
|
MD5 | ba48867121380078016534c20d7907c4 |
|
BLAKE2b-256 | 24526a2f1f441f257d7e851a7828a5cc17dc4e197766c61e1fa2ed0ae6845e08 |
Hashes for rosu_pp_py-1.1.0-cp313-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8577ebf568123a29bd64ef52586a489035b79b65c3d53dbd6016a43bc5926e4 |
|
MD5 | 6d6db48e59dba0dc952a334d4a729987 |
|
BLAKE2b-256 | 6555d5c40546f30aa064e36aebce88ca03e973fa268134703d96bb89f24abf5c |
Hashes for rosu_pp_py-1.1.0-cp313-cp313-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b27f091cfbf283129cb5948ff0555433e33e2c4735c44245358f87af41d405f |
|
MD5 | d0e9463676403e841adad27af9179cf2 |
|
BLAKE2b-256 | 9fef5f6a389a00ff72b3aa1b7f9d711edc812063c3abb696fc8b1e4f1f066ac3 |
Hashes for rosu_pp_py-1.1.0-cp313-cp313-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8312d63402ec8f92f91fbc498045b73acf15cdd06f5af4feb82b01d611506ba5 |
|
MD5 | 14701e24c52947803488acdc28734d2d |
|
BLAKE2b-256 | 932c5b726196b3b96fbf23968828f9f3bc61a9cc3f6067a9b0b1db3944adc937 |
Hashes for rosu_pp_py-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2aa5a1b79849d4a4136ad17f5d3a5dadee49f25e3871fd1d46191c644cfed0a8 |
|
MD5 | fbce9dc3a8df29d86a6a2c7f839bdc24 |
|
BLAKE2b-256 | 9cae9be51b688e679c7139998929d00b838c5915ae2ae078fc9d9edab2a66777 |
Hashes for rosu_pp_py-1.1.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1de0c60f481baecc630bce5e3f2d15cd17daf8d1e6fa25866279ef5c59e6c61 |
|
MD5 | 36d82dff51e3a084f3a1fbf9a778badb |
|
BLAKE2b-256 | 1c7d14795f35972277ed249d1fabc26036cbb000fc53eb7042ff4bbb95cbe515 |
Hashes for rosu_pp_py-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c3b12eaf49a5f240255687adce47c26d459d558dc53c2513e53f13cec5ba1dc |
|
MD5 | a60c87e4135e7514e5488db0caaca5b3 |
|
BLAKE2b-256 | 2d7b96e79a44988962e8f8313d570f613a79d85ec18020345f2d82fe0a1723ad |
Hashes for rosu_pp_py-1.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5095b6100756cdff6a9ff65ec1bf303e9a0948f863816223f2eec99a379e93e9 |
|
MD5 | a97f29cb11acd2a2bbafd1fd2fc36a3f |
|
BLAKE2b-256 | 9ab1696a9cebd2f04505f6b7cfbcd4f5710133a3b1cc27b8f7270feb8ca1c3e3 |
Hashes for rosu_pp_py-1.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8bd4b812625c326eb7efb4bde92e961fb39302bf604e7b11cd5358a4fbb24b4 |
|
MD5 | 8247b354b49da016ed46f4457f38095b |
|
BLAKE2b-256 | 199bef5afec22ccb6713c01766d65b1532091631f0286a259be8b749c46d982c |
Hashes for rosu_pp_py-1.1.0-cp312-none-win_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 946272ccd33837b787c694851f8d6580d53631bf52a65b82787d9db1162965ad |
|
MD5 | 2b93725893637660b72f7031ceab7819 |
|
BLAKE2b-256 | f32037d46d470f2b43ee062449a29b41b67275b0007dcb0378bcc9fe1c296c53 |
Hashes for rosu_pp_py-1.1.0-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 628a144a3d6ba83003b20bf8e4905d8ce4fed3e3c85736fd77a9fc3a7e103f40 |
|
MD5 | a6a5955f4a6e9045c6df809fd4e0e723 |
|
BLAKE2b-256 | e24251f1247698b325db02b27ff7b9d945531fe1de499ecb7b950b9faf7c41c3 |
Hashes for rosu_pp_py-1.1.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92bd10efcf0c32f4efc9d39119aa4a0543976bdbf1e36cc37aca1807615e4753 |
|
MD5 | 43d306e9038bebd31ed0f5e2e2cf1dfd |
|
BLAKE2b-256 | 5e39afed50f7f3447c01a257231d541dfd0ba23b4f824c1b2cd43eba2da06616 |
Hashes for rosu_pp_py-1.1.0-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3f48028d713ec529315cec7f2068e94a9c878342857574414e607e8da2ee58b |
|
MD5 | 13343205ca36961d8e9dc8e71ab92eae |
|
BLAKE2b-256 | 3243b639a1c86bfe3817dc028f2a553e8303c1413d0d720893e2cd5b1f66a7a2 |
Hashes for rosu_pp_py-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edc6487ee57a0e95e42e78a0ca36f4d678cc5cee845e832f6503926d19e8ff01 |
|
MD5 | 2d7ac02c96fb45271185e4f685a4ba3f |
|
BLAKE2b-256 | 8f577fea54819ff4c6139563fac282de0a98ead7ef63471e79b9d05e79a93249 |
Hashes for rosu_pp_py-1.1.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb8de3ae564b201e47002e150b7554655d7385456ccb41bdae63430dc30c0dd9 |
|
MD5 | 16b6293901ab23e0a81fb65a73dc0119 |
|
BLAKE2b-256 | d09ea8ec48d82ce05d541567624e02ae42221595dbd2b6cd13ba227ec31b7af2 |
Hashes for rosu_pp_py-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30e765aeb03c8ae3164ac99ad3de221b0d2ae728fa37e25f2fa96fdb79b758c9 |
|
MD5 | 72b7b13fab6596625c0563dcd3743a32 |
|
BLAKE2b-256 | 0bd701417418c64bf9552236e44da78100e224a7fa40026edd7718afc33ae504 |
Hashes for rosu_pp_py-1.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0e39b0f079a9a0e3f9c6594c5c19436f00341d32ae020317a01fb9a184f8a7c |
|
MD5 | 832059084f31456562bda5b781a53332 |
|
BLAKE2b-256 | f6793706f9dedc7af32a6725b605ce2e21dbaedbe228a37c76d9ceeb500fd964 |
Hashes for rosu_pp_py-1.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f74ca13c660992ee90f4e5e3c53856456893f8739d9bb6c53500db1cdbfb0d8 |
|
MD5 | f8a77106a9e8c6a13b27e89c10f5b7eb |
|
BLAKE2b-256 | 54ced5004ac513eb76b23f5ab18fa5431d8b150449b05ada66c774bbd7a977fe |
Hashes for rosu_pp_py-1.1.0-cp311-none-win_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bedc101b2cf53a281eb40d653176872ca1b9ec75482f8b1c8d4ca5d2c316f37 |
|
MD5 | 41b19988457fdde1e5da74eecb812fa4 |
|
BLAKE2b-256 | 751b97724dbf269dd58ae463a7d09f16d4191166048341def3c56849310c55b2 |
Hashes for rosu_pp_py-1.1.0-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4209184f89fa756f21843f33d32ca0577ec39917a8d6d52d1d3e3196f11b072e |
|
MD5 | e526f9f12292f21a4eb694b1dab17f64 |
|
BLAKE2b-256 | 4aa99fdfc2b0e99e31ca6991481d23abfac25ef0516c0a785ddbe166ac448805 |
Hashes for rosu_pp_py-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddc86d2b7539238b361e45aa60f36f93881743a4c38166838bcde8ececcf64df |
|
MD5 | 2d99e079b67b98a0b28d361815878dec |
|
BLAKE2b-256 | af4a36208b08fb3cafc5abc4a4c45c26f6d76aeff54670147c1fa15e6776a9b5 |
Hashes for rosu_pp_py-1.1.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0d37059afd3723bd36a7c8c1dec1ba4a201b2be4371813bc41476053cf0f95c |
|
MD5 | 2eec37e9156d9344bb83e2efcf5a1c75 |
|
BLAKE2b-256 | 68fcbdc428acc05d50030ea5b38f1559c56d386ee4b3f00aa6a14a16243f8838 |
Hashes for rosu_pp_py-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 845e023a001e293d53b6621399a9e45c05046073d5bf1a0a5fb5c070f259980c |
|
MD5 | 9d28e9ca7e1a2a4cb86c7373fdf4e32f |
|
BLAKE2b-256 | d16e87fcae7050f33fb3fc71b8fe9a35e9b5a3833ea9d82a2f25d5afcf0d3549 |
Hashes for rosu_pp_py-1.1.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a37a0fbf2def0668f69eb3799cfcdaf24516577958558c8005af7b78acac7ff |
|
MD5 | 6e6ac3c8fba76f0416f08f21c8b5ee34 |
|
BLAKE2b-256 | 15e3af40d644a79788319cd62afb18dad3aac6b4af0cd6e79f4b1ecaf81ff440 |
Hashes for rosu_pp_py-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abe27e1f1d86f22aabe0d8ad4a14086e912658d82d06c4a4e0dcf817e05a9ba0 |
|
MD5 | 2f652c24290ab1d37247fdb4d68ae555 |
|
BLAKE2b-256 | d8afef5218d577e761a9dbd0a38e4b770b8cf4aa5e3cbf073a4f545f1ef6869d |
Hashes for rosu_pp_py-1.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a69c563632d20b6de7b654cc882db414a4f830ece5e589dad11cf34b86e3b4a |
|
MD5 | 609007abb06cca41bc29d9affd512705 |
|
BLAKE2b-256 | 898db987a844f10e110f29233c936863ed9cc86b7269150925099e7f05cccfae |
Hashes for rosu_pp_py-1.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22cad48437a55ffe3059617fc7810f96ea2ba4a6db3139d19af3ea2e27589fcc |
|
MD5 | 62ba847d3d1b35aa844da2c4403ea88b |
|
BLAKE2b-256 | 1c7ccd1297f850c92cdaa82579f6707394f4cfe453dcbc49602b39525b434971 |
Hashes for rosu_pp_py-1.1.0-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 597287aacdac89af46a8c056a8bb63f7b98496a451362cf537f16aef9311e402 |
|
MD5 | 66c780dd8940e907081145fef93ceb08 |
|
BLAKE2b-256 | 75b318a2073bde4ec2f14d878324f3ec9cadfe4b76c44cbaa35b77aeb84cc86b |
Hashes for rosu_pp_py-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db635b124e3640049ba9a649148c665cefeedbb5849446b3126c817a5195deb3 |
|
MD5 | 354f181bd150cb1601bf19ff807d04eb |
|
BLAKE2b-256 | c76608068b25f9c59e8b9b1429d811c6be96fb68e88678f83656aab18c3eea3e |
Hashes for rosu_pp_py-1.1.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bd0e136d0384b6fb7944b1f0ef23e993a1ccbc61eb225c9875754acb012156d |
|
MD5 | db32e1ab5b03cc12169e4f40d6677006 |
|
BLAKE2b-256 | c90e019eefc8329316167a32dc4fcbcad32cb9576646634f2c1ffe8330c45655 |
Hashes for rosu_pp_py-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4cfd8299bf08c0b4c157c9227e66eb89464fd7d1af7f8c8d1b058c975a2344f |
|
MD5 | 546796e1a6e36789e9c5781f27cefe17 |
|
BLAKE2b-256 | 4341c812c510827fbf27fc236b8d98903345c601c1c059124ece8f21445dbc00 |
Hashes for rosu_pp_py-1.1.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 398d0eb8c586d8be9b7d6d7f9f78eb8663ffb4872a0f6d70aa3190994abed555 |
|
MD5 | 47d02417e4ce6ac8e737d903bdcb86a4 |
|
BLAKE2b-256 | b6ffd871ba172eeb50ef45f5198fb1b7ae6e2c5690c684be814de9d748cf1e4e |
Hashes for rosu_pp_py-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b75a6d2dbf5ec6c7e492107c8983645b84898c400e44eb6f92236f56d717e2b4 |
|
MD5 | c803fe0d557c28a7e8abbda17e7e0181 |
|
BLAKE2b-256 | 5e8ac0e886ac2d336afc48c4a26670b0fc2c010c5c5cfac04017d2cc75f73a85 |
Hashes for rosu_pp_py-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb48d401b87bd36d476762c98b79a256a2bec144ef4c9a49817f226ca67581e6 |
|
MD5 | ec55b509c170a0ab13c2278fde0fecd7 |
|
BLAKE2b-256 | 19116b7d7ad9466b42e76e817271ab9b717ed0b5d2f7d1ce1836b9279bed1634 |
Hashes for rosu_pp_py-1.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc87b189cbe45e49f41882d1835b63c97f8d851e868ec5debeb1c9a3b8f2af1c |
|
MD5 | e20d8454ce00f256d74a393b686a13ca |
|
BLAKE2b-256 | 732899b6a88724d16219c6bcfbf91d8c0cffa1c8ab76a1a95f43ff7650ccce6b |
Hashes for rosu_pp_py-1.1.0-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35032dd337d2d2ebc1deace077592ba6f161e0782f662e0e6e65713b45f85652 |
|
MD5 | a04b02613ed7f096ac2274e458bb0f12 |
|
BLAKE2b-256 | 0dbd2197dff7adad7f210b4f00f830ee601d2edf8647ced7d50de54fdb9a7b2f |
Hashes for rosu_pp_py-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3d12a3ee4ffff61d1d4320be13bff03b58fc098c44ab3adaa237240a5512099 |
|
MD5 | 1e64446617a1e6f4a466601282d29425 |
|
BLAKE2b-256 | fc2f59d139bf609759648bc7f34f1ca66444b9e7d4b5badc51c3fce37ea57b00 |
Hashes for rosu_pp_py-1.1.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 231b0efe30478dabb8146a765e67852042f06dc36dddd66af71164f6eaceb49b |
|
MD5 | baf33a5714f979d7b51a8487c8452f8e |
|
BLAKE2b-256 | 7f9261322bf6882f16c3182750a4741e32399a2e86ea8e8fedf6d36553f41144 |
Hashes for rosu_pp_py-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b5e7cb34ca11e25e67e347e543224ccc4bfb3e0c95d814f2d7193ea4937e656 |
|
MD5 | a887784844ff12c4eeca648dcb8a72ed |
|
BLAKE2b-256 | 99085e1dd0a2c1e4cf3f41f1d3202ec27ae4c2352c60af036a7f632db4ccd21d |
Hashes for rosu_pp_py-1.1.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b578aa6731fe3a9c9611db0076f56faea1c966adb8bd251ea2a2842d5989331 |
|
MD5 | d253324898e02b477dad2af97cdc0313 |
|
BLAKE2b-256 | 27783449af56977c23ff79b35c19759bdccc1cc348aa65f3cd2f3bc64fe2ca39 |
Hashes for rosu_pp_py-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 252d7e95a32b340dd0d5e8cfa708c98a96600f538220d62fb7c0b9ae7766e5a3 |
|
MD5 | f87249c12bf906e0520ea24e3fa227ca |
|
BLAKE2b-256 | 9b71165ce1fa908196ce9702b997e8147ea3381c499d71ad4541b7882645b904 |
Hashes for rosu_pp_py-1.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c22ba24bca59cf1677510d65111a72c93f9a756001b81ab1624970535752cc53 |
|
MD5 | c0a404e42df5daa2e87212bfe9839ca4 |
|
BLAKE2b-256 | bfedf403f75263e843ec51cd77ec22d00d4d44afa2892097caba8e05fed90202 |
Hashes for rosu_pp_py-1.1.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a00382b668e8fbaefacce4c89f10379a9093bc42c24fc88a3de63c0f9f1e7af4 |
|
MD5 | 912a7be8ce4748b7ec1bbebcf3d08c9d |
|
BLAKE2b-256 | 9fde321b7bdd0b3cbfd5c805175bc67ca6a1756db17213a2da6f31199bb831ce |
Hashes for rosu_pp_py-1.1.0-cp38-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59dc72775e9ba64f10b4759f3e5e978b0b200186ae70c63e74bb0ab9fe979ef9 |
|
MD5 | eae928f951220f1cf99dca2d87c05560 |
|
BLAKE2b-256 | 59413125fce01e39851195c951f133a3d520506cbdd79bf7588fddda884e0712 |
Hashes for rosu_pp_py-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eae6b5c83d7231fed9a077950195f3c310cfa55f8fc4fb2a7400b70f6623b16b |
|
MD5 | db9736452150d2e4cc57ea8574c3e3eb |
|
BLAKE2b-256 | 4a64d4bd291f331ada25883c2ed5c57ed95ecd9fc343de8bd89021d48c9bae16 |
Hashes for rosu_pp_py-1.1.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fc19c9b6cc89d9f61252958d4f24a311697cfe7488e24fefe440a447d488ae5 |
|
MD5 | 2c7a0447292d94088ca5acbb6a1159a5 |
|
BLAKE2b-256 | f8dc4258fe0c5572e8e485b7f88abd1fbb40958948c92426cffbc9f6846ee858 |
Hashes for rosu_pp_py-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c0a40743c356d91c3e5d69ea97bfed12afcbb783c7b27be2acb47eec5c37838 |
|
MD5 | ff82eddaa9d4dd971a1284b9174913f9 |
|
BLAKE2b-256 | f6e700593a82db3338acbd5b148e31a39c55fd87bf1e9f2fee33188f933347ff |
Hashes for rosu_pp_py-1.1.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b4f6c88de7892aea6236135db7ea808450bbc3115cd8f9ec5ac1a773b97aafc |
|
MD5 | 79678bd07d6ff90cc2b9d7059c24c639 |
|
BLAKE2b-256 | b2b1ac0b7e24966cea9b99225e75f77304f7a6b2bc0bbb227e882074476234b0 |
Hashes for rosu_pp_py-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94c91ee7d523d01bdb619e97ac7577a9efa1d15b26c0da1610a7155ff8ef5162 |
|
MD5 | 7cd729d6a1556a4bc9781842c89f77d3 |
|
BLAKE2b-256 | 2bff6ff6b328f72c4f777660754505bd77f2d1df5e44e6a7e91acfab997efbc7 |
Hashes for rosu_pp_py-1.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6756740216a9388cb78dc7b3e4eadfb08fd528d1ba3c886f6d263422b65bf24 |
|
MD5 | e195bcf4978db0893209b154910b74d9 |
|
BLAKE2b-256 | ca6f6e3e6077c90fa077acda106c916c884be4ffd287cf691c54ab961135f228 |
Hashes for rosu_pp_py-1.1.0-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c010588422f025eb90bf7109b4ec23f9ed5f803fcea8dc76e3095ab927834ca8 |
|
MD5 | f4fba36753738c8c5612695f53bc1cee |
|
BLAKE2b-256 | 7e1efe3aa1d7ac23eb1a08e5c59ed45c1d07b331819f715db972b53e33435e77 |