nissy-core

The "engine" of nissy, including the H48 optimal solver.
git clone https://git.tronto.net/nissy-core
Download | Log | Files | Refs | README | LICENSE

commit 4544e08997a7af6a8defa47efae1e9ba5c2c30f6
parent d25f23805c6d7128b508a359d47af136dd2fd0db
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Mon, 11 Aug 2025 12:05:08 +0200

Simplified name of Python module

Diffstat:
M.gitignore | 1+
MREADME.md | 4++--
Mbuild | 2+-
Mpython/examples/move.py | 7+++++--
Mpython/examples/solve.py | 11++++++-----
Mpython/examples/variations.py | 5+++--
Mpython/nissy_module.c | 6+++---
7 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -36,6 +36,7 @@ tools/results *.a *.o *.so +*/*.so *.s *.pyd *.dll diff --git a/README.md b/README.md @@ -224,8 +224,8 @@ $ ./build python And to import it ``` -$ python # In the main folder ->>> import nissy_python_module as nissy # In the python shell +$ python # In the main folder or in the python subfolder +>>> import nissy # In the python shell ``` From here you can call the library functions directly, for example: diff --git a/build b/build @@ -280,7 +280,7 @@ build_python() { fi build_nissy || exit 1 run $CC $PYCFLAGS $WFLAGS $PYTHON3_INCLUDES $OFLAGS -shared \ - -o nissy_python_module.so nissy.o python/nissy_module.c + -o python/nissy.so nissy.o python/nissy_module.c } build_cpp() { diff --git a/python/examples/move.py b/python/examples/move.py @@ -1,10 +1,13 @@ -# Small example of nissy_python_module usage +# Small example of nissy Python module usage # See the solve.py example for more details on how this works import os, sys +# Assume we are eithe rin the top-level directory of the nissy-core repo, +# or in the python subdirectory sys.path.append(os.getcwd()) -import nissy_python_module as nissy +sys.path.append(os.getcwd() + os.path.sep + "python") +import nissy cube = nissy.applymoves(nissy.solved_cube, "R' U' F"); print("Cube after the moves R' U' F:") diff --git a/python/examples/solve.py b/python/examples/solve.py @@ -1,14 +1,15 @@ -# Small example of nissy_python_module usage +# Small example of nissy Python module usage -# Compile the python module with "make python", then run this from the main -# folder containing nissy_python_module.so +# Run "./build python", then run this from either the top-level directory +# of the nissy-core repo or from the python subdirectory. -# Append the main folder to the python path so we can load the module +# Append the directories to the python path so we can load the module import sys, os sys.path.append(os.getcwd()) +sys.path.append(os.getcwd() + os.path.sep + "python") # Import with a nicer name -import nissy_python_module as nissy +import nissy # Choose the solver you prefer solver = "h48h0k4" diff --git a/python/examples/variations.py b/python/examples/variations.py @@ -1,9 +1,10 @@ -# Small example of nissy_python_module usage +# Small example of nissy Python module usage # See the solve.py example for more details on how this works import sys, os sys.path.append(os.getcwd()) -import nissy_python_module as nissy +sys.path.append(os.getcwd() + os.path.sep + "python") +import nissy moves = "R U' Bw2 M D' x' F B(E2 F D B' Lw2 U2 U' S2 B)" diff --git a/python/nissy_module.c b/python/nissy_module.c @@ -431,7 +431,7 @@ static PyMethodDef nissy_methods[] = { { NULL, NULL, 0, NULL } }; -static struct PyModuleDef nissy_python_module = { +static struct PyModuleDef nissy = { .m_base = PyModuleDef_HEAD_INIT, .m_name = "nissy", .m_doc = "python module for libnissy", @@ -449,11 +449,11 @@ log_stdout(const char *str, void *unused) fprintf(stderr, "%s", str); } -PyMODINIT_FUNC PyInit_nissy_python_module(void) { +PyMODINIT_FUNC PyInit_nissy(void) { PyObject *module; nissy_setlogger(log_stdout, NULL); - module = PyModule_Create(&nissy_python_module); + module = PyModule_Create(&nissy); PyModule_AddStringConstant(module, "solved_cube", NISSY_SOLVED_CUBE); PyModule_AddIntConstant(module, "nissflag_normal", NISSY_NISSFLAG_NORMAL);