Osu!难度计算器

pyttanko的Python项目详细描述


https://travis-ci.org/Francesco149/pyttanko.svg?branch=master

奥苏!pp和难度计算器。纯python实现 https://github.com/Francesco149/oppai-ng

这是一个独立的单文件模块 只使用Python2.6+内置函数尽可能地可移植,而不使用 额外依赖项

如果需要命令行界面,请签出 oppai-ng

用法

pyttanko是一个单独的文件模块,因此使用它的最简单方法 只需将其放在项目的文件夹中:

cd my/project
curl https://raw.githubusercontent.com/Francesco149/pyttanko/master/pyttanko.py > pyttanko.py

这样,克隆项目的任何人都不必安装 Pyttanko,因为它将被捆绑

如果您愿意,也可以在pip上找到它

pip install pyttanko

也可以手动安装,如下所示:

curl -L https://github.com/Francesco149/pyttanko/archive/HEAD.tar.gz -o HEAD.tar.gz
cd pyttanko-*
python setup.py install --user

退房

pydoc pyttanko

python -c "help('pyttanko')"

对于完整的文档

最小示例:

#!/usr/bin/env pythonimportsysimportpyttankoasosup=osu.parser()bmap=p.map(sys.stdin)stars=osu.diff_calc().calc(bmap)print("%g stars"%stars.total)pp,_,_,_,_=osu.ppv2(stars.aim,stars.speed,bmap=bmap)print("%g pp"%pp)

您可以使用它运行:

cat /path/to/file.osu | ./example.py

性能

pyttanko运行测试套件的速度比原始测试套件慢10倍以上 C实现并使用大约8倍的内存,因此如果需要 要批量处理数千个分数,您应该考虑编写 C版本的本机绑定。

测试在Linux 4.9.38、Python2.7.10和i7-4790k上执行

考虑到python是 解释

$ cd ~/src/pyttanko/
$ time -v ./run_test
...
    Command being timed: "./run_test"
    User time(seconds): 101.68
    System time(seconds): 0.61
    Percent of CPU this job got: 99%
    Elapsed (wall clock)time(h:mm:ss or m:ss): 1m 42.34s
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 88688
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 631637
    Voluntary context switches: 1
    Involuntary context switches: 4116
    Swaps: 0
    File system inputs: 0
    File system outputs: 56
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

$ cd ~/src/oppai-ng/test
$ ./build
$ time -v ./oppai_test
...
    Command being timed: "./oppai_test"
    User time(seconds): 9.09
    System time(seconds): 0.06
    Percent of CPU this job got: 99%
    Elapsed (wall clock)time(h:mm:ss or m:ss): 0m 9.15s
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 11840
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 304
    Voluntary context switches: 1
    Involuntary context switches: 39
    Swaps: 0
    File system inputs: 0
    File system outputs: 0
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Gson类中的java验证错误   If和elseif之间的java差异?   字典Java8地图。输入比较器   java连接到远程计算机以获得WMI支持   java如何使用改型处理JSON对象中的空值   在Java中使用Comparator时不可编译的源代码   java将Jar添加到JSP的运行时路径   带有随机对象的while循环的java大O时间复杂性   java可以在不考虑参数的情况下模拟方法吗?   java我有一个简单的代码,它不工作。无法修复错误“println”   向eclipse添加Xively java库   java是否可以启用本机代码的缓存?   全局变量如何在Java中的所有类之间共享要使用的语言环境?   Java内存游戏如何翻转单个卡?