43 lines
979 B
ReStructuredText
43 lines
979 B
ReStructuredText
osu! pp and difficulty calculator. automatically generated C bindings for
|
|
https://github.com/Francesco149/oppai-ng
|
|
|
|
usage
|
|
===========
|
|
.. code-block:: sh
|
|
|
|
pip install oppai
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
#!/usr/bin/env python
|
|
|
|
import sys
|
|
from oppai import *
|
|
|
|
ez = ezpp_new()
|
|
ezpp(ez, sys.argv[1])
|
|
print("%g pp" % ezpp_pp(ez))
|
|
ezpp_free(ez)
|
|
|
|
|
|
.. code-block:: sh
|
|
|
|
./example.py /path/to/file.osu
|
|
|
|
.. code-block:: sh
|
|
|
|
python -c 'help("oppai")'
|
|
|
|
for a list of functions, or just read the top of oppai.c for better doc
|
|
|
|
|
|
limitations
|
|
===========
|
|
for some reason, python3 doesn't provide a persisting pointer to strings
|
|
you pass to c code even if you aren't doing anything with them, so if you
|
|
want to reuse the handle at all you have to use ezpp_dup and ezpp_data_dup,
|
|
which create a copy of the strings you pass in. this is inefficient so
|
|
it's recommended to use autocalc mode and only call ezpp_dup or
|
|
ezpp_data_dup when you're actually changing map
|