diff --git a/.gitignore b/.gitignore index 9236dfa..a00e123 100755 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ docs/_build Releases/ dist/ +*.egg-info Tutorials/Klarner2018/jobs.py Tutorials/*/*.json diff --git a/MANIFEST.in b/MANIFEST.in index 4714416..650ff85 100755 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,5 @@ global-exclude *~ global-exclude *.pyc + +recursive-include pyboolnet/binaries * +recursive-include pyboolnet/repository * \ No newline at end of file diff --git a/binaries/conda/settings.cfg b/pyboolnet/binaries/conda/settings.cfg similarity index 100% rename from binaries/conda/settings.cfg rename to pyboolnet/binaries/conda/settings.cfg diff --git a/binaries/linux64/BNetToPrime/BNetToPrime_linux64 b/pyboolnet/binaries/linux64/BNetToPrime/BNetToPrime_linux64 similarity index 100% rename from binaries/linux64/BNetToPrime/BNetToPrime_linux64 rename to pyboolnet/binaries/linux64/BNetToPrime/BNetToPrime_linux64 diff --git a/binaries/linux64/BNetToPrime/CMakeLists.txt b/pyboolnet/binaries/linux64/BNetToPrime/CMakeLists.txt similarity index 100% rename from binaries/linux64/BNetToPrime/CMakeLists.txt rename to pyboolnet/binaries/linux64/BNetToPrime/CMakeLists.txt diff --git a/binaries/linux64/BNetToPrime/README.md b/pyboolnet/binaries/linux64/BNetToPrime/README.md similarity index 100% rename from binaries/linux64/BNetToPrime/README.md rename to pyboolnet/binaries/linux64/BNetToPrime/README.md diff --git a/binaries/linux64/BNetToPrime/main.cpp b/pyboolnet/binaries/linux64/BNetToPrime/main.cpp similarity index 100% rename from binaries/linux64/BNetToPrime/main.cpp rename to pyboolnet/binaries/linux64/BNetToPrime/main.cpp diff --git a/binaries/linux64/NuSMV-a/NuSMVa_linux64 b/pyboolnet/binaries/linux64/NuSMV-a/NuSMVa_linux64 similarity index 100% rename from binaries/linux64/NuSMV-a/NuSMVa_linux64 rename to pyboolnet/binaries/linux64/NuSMV-a/NuSMVa_linux64 diff --git a/binaries/linux64/NuSMV-a/libreadline.so.6 b/pyboolnet/binaries/linux64/NuSMV-a/libreadline.so.6 similarity index 100% rename from binaries/linux64/NuSMV-a/libreadline.so.6 rename to pyboolnet/binaries/linux64/NuSMV-a/libreadline.so.6 diff --git a/binaries/linux64/NuSMV-a/ltl2smv b/pyboolnet/binaries/linux64/NuSMV-a/ltl2smv similarity index 100% rename from binaries/linux64/NuSMV-a/ltl2smv rename to pyboolnet/binaries/linux64/NuSMV-a/ltl2smv diff --git a/binaries/linux64/clasp-3.1.1/clasp-3.1.1-x86-linux b/pyboolnet/binaries/linux64/clasp-3.1.1/clasp-3.1.1-x86-linux similarity index 100% rename from binaries/linux64/clasp-3.1.1/clasp-3.1.1-x86-linux rename to pyboolnet/binaries/linux64/clasp-3.1.1/clasp-3.1.1-x86-linux diff --git a/binaries/linux64/eqntott/eqntott_linux64 b/pyboolnet/binaries/linux64/eqntott/eqntott_linux64 similarity index 100% rename from binaries/linux64/eqntott/eqntott_linux64 rename to pyboolnet/binaries/linux64/eqntott/eqntott_linux64 diff --git a/binaries/linux64/espresso/espresso_linux64 b/pyboolnet/binaries/linux64/espresso/espresso_linux64 similarity index 100% rename from binaries/linux64/espresso/espresso_linux64 rename to pyboolnet/binaries/linux64/espresso/espresso_linux64 diff --git a/binaries/linux64/gringo-4.4.0/gringo b/pyboolnet/binaries/linux64/gringo-4.4.0/gringo similarity index 100% rename from binaries/linux64/gringo-4.4.0/gringo rename to pyboolnet/binaries/linux64/gringo-4.4.0/gringo diff --git a/binaries/linux64/settings.cfg b/pyboolnet/binaries/linux64/settings.cfg similarity index 56% rename from binaries/linux64/settings.cfg rename to pyboolnet/binaries/linux64/settings.cfg index 0f20bb3..93ead7b 100755 --- a/binaries/linux64/settings.cfg +++ b/pyboolnet/binaries/linux64/settings.cfg @@ -5,10 +5,3 @@ clasp = ./clasp-3.1.1/clasp-3.1.1-x86-linux bnet2prime = ./BNetToPrime/BNetToPrime_linux64 espresso = ./espresso/espresso_linux64 eqntott = ./eqntott/eqntott_linux64 -dot = /usr/bin/dot -neato = /usr/bin/neato -fdp = /usr/bin/fdp -sfdp = /usr/bin/sfdp -circo = /usr/bin/circo -twopi = /usr/bin/twopi -convert = /usr/bin/convert diff --git a/binaries/mac64/BNetToPrime/BNetToPrime_mac64 b/pyboolnet/binaries/mac64/BNetToPrime/BNetToPrime_mac64 similarity index 100% rename from binaries/mac64/BNetToPrime/BNetToPrime_mac64 rename to pyboolnet/binaries/mac64/BNetToPrime/BNetToPrime_mac64 diff --git a/binaries/mac64/NuSMV-a/NuSMVa_mac64 b/pyboolnet/binaries/mac64/NuSMV-a/NuSMVa_mac64 similarity index 100% rename from binaries/mac64/NuSMV-a/NuSMVa_mac64 rename to pyboolnet/binaries/mac64/NuSMV-a/NuSMVa_mac64 diff --git a/binaries/mac64/NuSMV-a/ltl2smv b/pyboolnet/binaries/mac64/NuSMV-a/ltl2smv similarity index 100% rename from binaries/mac64/NuSMV-a/ltl2smv rename to pyboolnet/binaries/mac64/NuSMV-a/ltl2smv diff --git a/binaries/mac64/clasp-3.2.0/CHANGES b/pyboolnet/binaries/mac64/clasp-3.2.0/CHANGES similarity index 100% rename from binaries/mac64/clasp-3.2.0/CHANGES rename to pyboolnet/binaries/mac64/clasp-3.2.0/CHANGES diff --git a/binaries/mac64/clasp-3.2.0/COPYING b/pyboolnet/binaries/mac64/clasp-3.2.0/COPYING similarity index 100% rename from binaries/mac64/clasp-3.2.0/COPYING rename to pyboolnet/binaries/mac64/clasp-3.2.0/COPYING diff --git a/binaries/mac64/clasp-3.2.0/README b/pyboolnet/binaries/mac64/clasp-3.2.0/README similarity index 100% rename from binaries/mac64/clasp-3.2.0/README rename to pyboolnet/binaries/mac64/clasp-3.2.0/README diff --git a/binaries/mac64/clasp-3.2.0/clasp-3.2.0_mac64 b/pyboolnet/binaries/mac64/clasp-3.2.0/clasp-3.2.0_mac64 similarity index 100% rename from binaries/mac64/clasp-3.2.0/clasp-3.2.0_mac64 rename to pyboolnet/binaries/mac64/clasp-3.2.0/clasp-3.2.0_mac64 diff --git a/binaries/mac64/eqntott/eqntott_mac64 b/pyboolnet/binaries/mac64/eqntott/eqntott_mac64 similarity index 100% rename from binaries/mac64/eqntott/eqntott_mac64 rename to pyboolnet/binaries/mac64/eqntott/eqntott_mac64 diff --git a/binaries/mac64/espresso/espresso_mac64 b/pyboolnet/binaries/mac64/espresso/espresso_mac64 similarity index 100% rename from binaries/mac64/espresso/espresso_mac64 rename to pyboolnet/binaries/mac64/espresso/espresso_mac64 diff --git a/binaries/mac64/gringo-4.4.0/CHANGES b/pyboolnet/binaries/mac64/gringo-4.4.0/CHANGES similarity index 100% rename from binaries/mac64/gringo-4.4.0/CHANGES rename to pyboolnet/binaries/mac64/gringo-4.4.0/CHANGES diff --git a/binaries/mac64/gringo-4.4.0/COPYING b/pyboolnet/binaries/mac64/gringo-4.4.0/COPYING similarity index 100% rename from binaries/mac64/gringo-4.4.0/COPYING rename to pyboolnet/binaries/mac64/gringo-4.4.0/COPYING diff --git a/binaries/mac64/gringo-4.4.0/INSTALL b/pyboolnet/binaries/mac64/gringo-4.4.0/INSTALL similarity index 100% rename from binaries/mac64/gringo-4.4.0/INSTALL rename to pyboolnet/binaries/mac64/gringo-4.4.0/INSTALL diff --git a/binaries/mac64/gringo-4.4.0/NOTES b/pyboolnet/binaries/mac64/gringo-4.4.0/NOTES similarity index 100% rename from binaries/mac64/gringo-4.4.0/NOTES rename to pyboolnet/binaries/mac64/gringo-4.4.0/NOTES diff --git a/binaries/mac64/gringo-4.4.0/README b/pyboolnet/binaries/mac64/gringo-4.4.0/README similarity index 100% rename from binaries/mac64/gringo-4.4.0/README rename to pyboolnet/binaries/mac64/gringo-4.4.0/README diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/README b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/README similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/README rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/README diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/gbie1.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/gbie1.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/gbie1.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/gbie1.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/gbie2.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/gbie2.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/gbie2.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/gbie2.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_01.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_01.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_01.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_01.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_02.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_02.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_02.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_02.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_03.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_03.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_03.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/sat_03.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/queens/README b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/queens/README similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/queens/README rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/queens/README diff --git a/binaries/mac64/gringo-4.4.0/examples/queens/queens1.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/queens/queens1.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/queens/queens1.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/queens/queens1.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/queens/queens2.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/queens/queens2.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/queens/queens2.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/queens/queens2.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/rec-cond/README b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/rec-cond/README similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/rec-cond/README rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/rec-cond/README diff --git a/binaries/mac64/gringo-4.4.0/examples/rec-cond/encoding.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/rec-cond/encoding.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/rec-cond/encoding.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/rec-cond/encoding.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/rec-cond/instance.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/rec-cond/instance.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/rec-cond/instance.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/rec-cond/instance.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/toh/README b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/toh/README similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/toh/README rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/toh/README diff --git a/binaries/mac64/gringo-4.4.0/examples/toh/tohE.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/toh/tohE.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/toh/tohE.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/toh/tohE.lp diff --git a/binaries/mac64/gringo-4.4.0/examples/toh/tohI.lp b/pyboolnet/binaries/mac64/gringo-4.4.0/examples/toh/tohI.lp similarity index 100% rename from binaries/mac64/gringo-4.4.0/examples/toh/tohI.lp rename to pyboolnet/binaries/mac64/gringo-4.4.0/examples/toh/tohI.lp diff --git a/binaries/mac64/gringo-4.4.0/gringo_mac64 b/pyboolnet/binaries/mac64/gringo-4.4.0/gringo_mac64 similarity index 100% rename from binaries/mac64/gringo-4.4.0/gringo_mac64 rename to pyboolnet/binaries/mac64/gringo-4.4.0/gringo_mac64 diff --git a/binaries/mac64/settings.cfg b/pyboolnet/binaries/mac64/settings.cfg similarity index 55% rename from binaries/mac64/settings.cfg rename to pyboolnet/binaries/mac64/settings.cfg index e5edd10..c2bfad8 100755 --- a/binaries/mac64/settings.cfg +++ b/pyboolnet/binaries/mac64/settings.cfg @@ -5,10 +5,3 @@ clasp = ./clasp-3.2.0/clasp-3.2.0_mac64 bnet2prime = ./BNetToPrime/BNetToPrime_mac64 espresso = ./espresso/espresso_mac64 eqntott = ./eqntott/eqntott_mac64 -dot = /usr/bin/dot -neato = /usr/bin/neato -fdp = /usr/bin/fdp -sfdp = /usr/bin/sfdp -circo = /usr/bin/circo -twopi = /usr/bin/twopi -convert = /usr/bin/convert diff --git a/binaries/win64/BNetToPrime/BNetToPrime_win64.exe b/pyboolnet/binaries/win64/BNetToPrime/BNetToPrime_win64.exe similarity index 100% rename from binaries/win64/BNetToPrime/BNetToPrime_win64.exe rename to pyboolnet/binaries/win64/BNetToPrime/BNetToPrime_win64.exe diff --git a/binaries/win64/BNetToPrime/libgcc_s_dw2-1.dll b/pyboolnet/binaries/win64/BNetToPrime/libgcc_s_dw2-1.dll similarity index 100% rename from binaries/win64/BNetToPrime/libgcc_s_dw2-1.dll rename to pyboolnet/binaries/win64/BNetToPrime/libgcc_s_dw2-1.dll diff --git a/binaries/win64/BNetToPrime/libstdc++-6.dll b/pyboolnet/binaries/win64/BNetToPrime/libstdc++-6.dll similarity index 100% rename from binaries/win64/BNetToPrime/libstdc++-6.dll rename to pyboolnet/binaries/win64/BNetToPrime/libstdc++-6.dll diff --git a/binaries/win64/NuSMV-a/NuSMVa_win32.exe b/pyboolnet/binaries/win64/NuSMV-a/NuSMVa_win32.exe similarity index 100% rename from binaries/win64/NuSMV-a/NuSMVa_win32.exe rename to pyboolnet/binaries/win64/NuSMV-a/NuSMVa_win32.exe diff --git a/binaries/win64/NuSMV-a/libatomic-1.dll b/pyboolnet/binaries/win64/NuSMV-a/libatomic-1.dll similarity index 100% rename from binaries/win64/NuSMV-a/libatomic-1.dll rename to pyboolnet/binaries/win64/NuSMV-a/libatomic-1.dll diff --git a/binaries/win64/NuSMV-a/libcharset-1.dll b/pyboolnet/binaries/win64/NuSMV-a/libcharset-1.dll similarity index 100% rename from binaries/win64/NuSMV-a/libcharset-1.dll rename to pyboolnet/binaries/win64/NuSMV-a/libcharset-1.dll diff --git a/binaries/win64/NuSMV-a/libexpat-1.dll b/pyboolnet/binaries/win64/NuSMV-a/libexpat-1.dll similarity index 100% rename from binaries/win64/NuSMV-a/libexpat-1.dll rename to pyboolnet/binaries/win64/NuSMV-a/libexpat-1.dll diff --git a/binaries/win64/NuSMV-a/libgcc_s_dw2-1.dll b/pyboolnet/binaries/win64/NuSMV-a/libgcc_s_dw2-1.dll similarity index 100% rename from binaries/win64/NuSMV-a/libgcc_s_dw2-1.dll rename to pyboolnet/binaries/win64/NuSMV-a/libgcc_s_dw2-1.dll diff --git a/binaries/win64/NuSMV-a/libgettextlib-0-18-3.dll b/pyboolnet/binaries/win64/NuSMV-a/libgettextlib-0-18-3.dll similarity index 100% rename from binaries/win64/NuSMV-a/libgettextlib-0-18-3.dll rename to pyboolnet/binaries/win64/NuSMV-a/libgettextlib-0-18-3.dll diff --git a/binaries/win64/NuSMV-a/libgettextpo-0.dll b/pyboolnet/binaries/win64/NuSMV-a/libgettextpo-0.dll similarity index 100% rename from binaries/win64/NuSMV-a/libgettextpo-0.dll rename to pyboolnet/binaries/win64/NuSMV-a/libgettextpo-0.dll diff --git a/binaries/win64/NuSMV-a/libgettextsrc-0-18-3.dll b/pyboolnet/binaries/win64/NuSMV-a/libgettextsrc-0-18-3.dll similarity index 100% rename from binaries/win64/NuSMV-a/libgettextsrc-0-18-3.dll rename to pyboolnet/binaries/win64/NuSMV-a/libgettextsrc-0-18-3.dll diff --git a/binaries/win64/NuSMV-a/libgmp-10.dll b/pyboolnet/binaries/win64/NuSMV-a/libgmp-10.dll similarity index 100% rename from binaries/win64/NuSMV-a/libgmp-10.dll rename to pyboolnet/binaries/win64/NuSMV-a/libgmp-10.dll diff --git a/binaries/win64/NuSMV-a/libgmpxx-4.dll b/pyboolnet/binaries/win64/NuSMV-a/libgmpxx-4.dll similarity index 100% rename from binaries/win64/NuSMV-a/libgmpxx-4.dll rename to pyboolnet/binaries/win64/NuSMV-a/libgmpxx-4.dll diff --git a/binaries/win64/NuSMV-a/libgomp-1.dll b/pyboolnet/binaries/win64/NuSMV-a/libgomp-1.dll similarity index 100% rename from binaries/win64/NuSMV-a/libgomp-1.dll rename to pyboolnet/binaries/win64/NuSMV-a/libgomp-1.dll diff --git a/binaries/win64/NuSMV-a/libiconv-2.dll b/pyboolnet/binaries/win64/NuSMV-a/libiconv-2.dll similarity index 100% rename from binaries/win64/NuSMV-a/libiconv-2.dll rename to pyboolnet/binaries/win64/NuSMV-a/libiconv-2.dll diff --git a/binaries/win64/NuSMV-a/libintl-8.dll b/pyboolnet/binaries/win64/NuSMV-a/libintl-8.dll similarity index 100% rename from binaries/win64/NuSMV-a/libintl-8.dll rename to pyboolnet/binaries/win64/NuSMV-a/libintl-8.dll diff --git a/binaries/win64/NuSMV-a/libltdl-7.dll b/pyboolnet/binaries/win64/NuSMV-a/libltdl-7.dll similarity index 100% rename from binaries/win64/NuSMV-a/libltdl-7.dll rename to pyboolnet/binaries/win64/NuSMV-a/libltdl-7.dll diff --git a/binaries/win64/NuSMV-a/libmpc-3.dll b/pyboolnet/binaries/win64/NuSMV-a/libmpc-3.dll similarity index 100% rename from binaries/win64/NuSMV-a/libmpc-3.dll rename to pyboolnet/binaries/win64/NuSMV-a/libmpc-3.dll diff --git a/binaries/win64/NuSMV-a/libmpfr-4.dll b/pyboolnet/binaries/win64/NuSMV-a/libmpfr-4.dll similarity index 100% rename from binaries/win64/NuSMV-a/libmpfr-4.dll rename to pyboolnet/binaries/win64/NuSMV-a/libmpfr-4.dll diff --git a/binaries/win64/NuSMV-a/libquadmath-0.dll b/pyboolnet/binaries/win64/NuSMV-a/libquadmath-0.dll similarity index 100% rename from binaries/win64/NuSMV-a/libquadmath-0.dll rename to pyboolnet/binaries/win64/NuSMV-a/libquadmath-0.dll diff --git a/binaries/win64/NuSMV-a/libssp-0.dll b/pyboolnet/binaries/win64/NuSMV-a/libssp-0.dll similarity index 100% rename from binaries/win64/NuSMV-a/libssp-0.dll rename to pyboolnet/binaries/win64/NuSMV-a/libssp-0.dll diff --git a/binaries/win64/NuSMV-a/libstdc++-6.dll b/pyboolnet/binaries/win64/NuSMV-a/libstdc++-6.dll similarity index 100% rename from binaries/win64/NuSMV-a/libstdc++-6.dll rename to pyboolnet/binaries/win64/NuSMV-a/libstdc++-6.dll diff --git a/binaries/win64/NuSMV-a/mingwm10.dll b/pyboolnet/binaries/win64/NuSMV-a/mingwm10.dll similarity index 100% rename from binaries/win64/NuSMV-a/mingwm10.dll rename to pyboolnet/binaries/win64/NuSMV-a/mingwm10.dll diff --git a/binaries/win64/NuSMV-a/pthreadGC-3.dll b/pyboolnet/binaries/win64/NuSMV-a/pthreadGC-3.dll similarity index 100% rename from binaries/win64/NuSMV-a/pthreadGC-3.dll rename to pyboolnet/binaries/win64/NuSMV-a/pthreadGC-3.dll diff --git a/binaries/win64/NuSMV-a/zlib1.dll b/pyboolnet/binaries/win64/NuSMV-a/zlib1.dll similarity index 100% rename from binaries/win64/NuSMV-a/zlib1.dll rename to pyboolnet/binaries/win64/NuSMV-a/zlib1.dll diff --git a/binaries/win64/clasp-3.1.1/CHANGES b/pyboolnet/binaries/win64/clasp-3.1.1/CHANGES similarity index 100% rename from binaries/win64/clasp-3.1.1/CHANGES rename to pyboolnet/binaries/win64/clasp-3.1.1/CHANGES diff --git a/binaries/win64/clasp-3.1.1/COPYING b/pyboolnet/binaries/win64/clasp-3.1.1/COPYING similarity index 100% rename from binaries/win64/clasp-3.1.1/COPYING rename to pyboolnet/binaries/win64/clasp-3.1.1/COPYING diff --git a/binaries/win64/clasp-3.1.1/README b/pyboolnet/binaries/win64/clasp-3.1.1/README similarity index 100% rename from binaries/win64/clasp-3.1.1/README rename to pyboolnet/binaries/win64/clasp-3.1.1/README diff --git a/binaries/win64/clasp-3.1.1/clasp-3.1.1_win64.exe b/pyboolnet/binaries/win64/clasp-3.1.1/clasp-3.1.1_win64.exe similarity index 100% rename from binaries/win64/clasp-3.1.1/clasp-3.1.1_win64.exe rename to pyboolnet/binaries/win64/clasp-3.1.1/clasp-3.1.1_win64.exe diff --git a/binaries/win64/eqntott/eqntott_win64.exe b/pyboolnet/binaries/win64/eqntott/eqntott_win64.exe similarity index 100% rename from binaries/win64/eqntott/eqntott_win64.exe rename to pyboolnet/binaries/win64/eqntott/eqntott_win64.exe diff --git a/binaries/win64/espresso/espresso_win64.exe b/pyboolnet/binaries/win64/espresso/espresso_win64.exe similarity index 100% rename from binaries/win64/espresso/espresso_win64.exe rename to pyboolnet/binaries/win64/espresso/espresso_win64.exe diff --git a/binaries/win64/gringo-4.4.0/CHANGES b/pyboolnet/binaries/win64/gringo-4.4.0/CHANGES similarity index 100% rename from binaries/win64/gringo-4.4.0/CHANGES rename to pyboolnet/binaries/win64/gringo-4.4.0/CHANGES diff --git a/binaries/win64/gringo-4.4.0/COPYING b/pyboolnet/binaries/win64/gringo-4.4.0/COPYING similarity index 100% rename from binaries/win64/gringo-4.4.0/COPYING rename to pyboolnet/binaries/win64/gringo-4.4.0/COPYING diff --git a/binaries/win64/gringo-4.4.0/INSTALL b/pyboolnet/binaries/win64/gringo-4.4.0/INSTALL similarity index 100% rename from binaries/win64/gringo-4.4.0/INSTALL rename to pyboolnet/binaries/win64/gringo-4.4.0/INSTALL diff --git a/binaries/win64/gringo-4.4.0/NOTES b/pyboolnet/binaries/win64/gringo-4.4.0/NOTES similarity index 100% rename from binaries/win64/gringo-4.4.0/NOTES rename to pyboolnet/binaries/win64/gringo-4.4.0/NOTES diff --git a/binaries/win64/gringo-4.4.0/README b/pyboolnet/binaries/win64/gringo-4.4.0/README similarity index 100% rename from binaries/win64/gringo-4.4.0/README rename to pyboolnet/binaries/win64/gringo-4.4.0/README diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/README b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/README similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/README rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/README diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/gbie1.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/gbie1.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/gbie1.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/gbie1.lp diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/gbie2.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/gbie2.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/gbie2.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/gbie2.lp diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_01.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_01.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_01.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_01.lp diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_02.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_02.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_02.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_02.lp diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_03.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_03.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_03.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/sat_03.lp diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_01.lp diff --git a/binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/gbie/instances/unsat_02.lp diff --git a/binaries/win64/gringo-4.4.0/examples/queens/README b/pyboolnet/binaries/win64/gringo-4.4.0/examples/queens/README similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/queens/README rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/queens/README diff --git a/binaries/win64/gringo-4.4.0/examples/queens/queens1.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/queens/queens1.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/queens/queens1.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/queens/queens1.lp diff --git a/binaries/win64/gringo-4.4.0/examples/queens/queens2.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/queens/queens2.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/queens/queens2.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/queens/queens2.lp diff --git a/binaries/win64/gringo-4.4.0/examples/rec-cond/README b/pyboolnet/binaries/win64/gringo-4.4.0/examples/rec-cond/README similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/rec-cond/README rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/rec-cond/README diff --git a/binaries/win64/gringo-4.4.0/examples/rec-cond/encoding.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/rec-cond/encoding.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/rec-cond/encoding.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/rec-cond/encoding.lp diff --git a/binaries/win64/gringo-4.4.0/examples/rec-cond/instance.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/rec-cond/instance.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/rec-cond/instance.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/rec-cond/instance.lp diff --git a/binaries/win64/gringo-4.4.0/examples/toh/README b/pyboolnet/binaries/win64/gringo-4.4.0/examples/toh/README similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/toh/README rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/toh/README diff --git a/binaries/win64/gringo-4.4.0/examples/toh/tohE.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/toh/tohE.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/toh/tohE.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/toh/tohE.lp diff --git a/binaries/win64/gringo-4.4.0/examples/toh/tohI.lp b/pyboolnet/binaries/win64/gringo-4.4.0/examples/toh/tohI.lp similarity index 100% rename from binaries/win64/gringo-4.4.0/examples/toh/tohI.lp rename to pyboolnet/binaries/win64/gringo-4.4.0/examples/toh/tohI.lp diff --git a/binaries/win64/gringo-4.4.0/gringo_win64.exe b/pyboolnet/binaries/win64/gringo-4.4.0/gringo_win64.exe similarity index 100% rename from binaries/win64/gringo-4.4.0/gringo_win64.exe rename to pyboolnet/binaries/win64/gringo-4.4.0/gringo_win64.exe diff --git a/binaries/win64/settings.cfg b/pyboolnet/binaries/win64/settings.cfg similarity index 65% rename from binaries/win64/settings.cfg rename to pyboolnet/binaries/win64/settings.cfg index 7fa9687..47a2bd3 100755 --- a/binaries/win64/settings.cfg +++ b/pyboolnet/binaries/win64/settings.cfg @@ -5,10 +5,3 @@ clasp = ./clasp-3.1.1/clasp-3.1.1_win64.exe bnet2prime = ./BNetToPrime/BNetToPrime_win64.exe espresso = ./espresso/espresso_win64.exe eqntott = ./eqntott/eqntott_win64.exe -dot = dot -neato = neato -fdp = fdp -sfdp = sfdp -circo = circo -twopi = twopi -convert = convert diff --git a/pyboolnet/helpers.py b/pyboolnet/helpers.py index dc1281e..ad33c16 100755 --- a/pyboolnet/helpers.py +++ b/pyboolnet/helpers.py @@ -4,11 +4,23 @@ import logging import math import os + +import platform +from importlib.resources import files, as_file +from pathlib import Path +import shutil + from typing import List from configparser import ConfigParser ROOT_DIR = os.path.join(os.path.dirname(__file__)) +_SUBDIR_MAP = { + "Linux": "linux64", + "Darwin": "mac64", + "Windows": "win64", +} + log = logging.getLogger(__name__) @@ -17,20 +29,48 @@ def read_txt_version() -> str: with open(os.path.join(ROOT_DIR, "version.txt"), "r") as fp: return fp.read() +def _get_platform_subdir() -> str: + system = platform.system() + try: + return _SUBDIR_MAP[system] + except KeyError: + raise RuntimeError(f"Unsupported OS: {system}") def read_executables() -> dict: - config_parser = ConfigParser() - settings_file = os.path.join(ROOT_DIR, "binaries", "settings.cfg") - - if not os.path.exists(settings_file): - execs = dict( - nusmv="./NuSMV-2.6.0/bin/NuSMV", - gringo="./gringo-4.4.0-x86-linux/gringo", - clasp="./clasp-3.1.1/clasp-3.1.1-x86-linux", - bnet2prime="./BNetToPrime/BNetToPrime") - else: - config_parser.read(settings_file) - execs = {n: config_parser.get("Executables", n) for n in config_parser.options("Executables")} + """ + Collects paths to executables + """ + + execs = {} + + # OS-specific binaries directory within installed package + subdir = _get_platform_subdir() + binaries_dir = files("pyboolnet.binaries") / subdir + settings_resource = binaries_dir / "settings.cfg" + + if not settings_resource.exists(): + raise RuntimeError(f"Missing settings.cfg in {binaries_dir}") + + with as_file(settings_resource) as settings_path: + config_parser = ConfigParser() + config_parser.read(settings_path) + for name in config_parser.options("Executables"): + raw_path = config_parser.get("Executables", name) + p = Path(raw_path) + + # relative path to the settings.cfg file + if p.is_absolute(): + execs[name] = str(p) + else: + execs[name] = str((binaries_dir / raw_path).resolve()) + + # system tools + for executable in ["dot", "neato", "fdp", "sfdp", "circo", "twopi", "convert"]: + path = shutil.which(executable) + if path is None: + log.warning("Executable %s not found in system PATH", executable) + else: + execs[executable] = path return execs diff --git a/setup.py b/setup.py index 564bab1..69da882 100755 --- a/setup.py +++ b/setup.py @@ -9,39 +9,6 @@ from pyboolnet import VERSION -PACKAGE_DATA_FILES = [] -THIS_OS = platform.system() -SUBDIR_MAP = dict( - Linux="linux64", - Darwin="mac64", - Windows="win64", -) - -if "CONDA_BUILD" in os.environ: - subdir = "conda" -else: - try: - subdir = SUBDIR_MAP[THIS_OS] - except KeyError: - print(f"the operating system is not recognized: os={THIS_OS}") - sys.exit(1) - -BINARIES_SOURCE_DIR = os.path.join("binaries", subdir) -print(f"detected os and binaries: {THIS_OS=}, {BINARIES_SOURCE_DIR=}") - -BINARIES_TARGET_DIR = os.path.join("pyboolnet", "binaries") -copy_tree(src=BINARIES_SOURCE_DIR, dst=BINARIES_TARGET_DIR) -print(f"copy_tree: {BINARIES_SOURCE_DIR=}, {BINARIES_TARGET_DIR=}") - -for root, _, filenames in os.walk(BINARIES_TARGET_DIR): - root = root.replace(BINARIES_TARGET_DIR, "binaries") - PACKAGE_DATA_FILES.extend([os.path.join(root, x) for x in filenames]) - -REPOSITORY_PATH = os.path.join("pyboolnet", "repository") -for root, _, filenames in os.walk(REPOSITORY_PATH): - root = root.replace(REPOSITORY_PATH, "repository") - PACKAGE_DATA_FILES.extend([os.path.join(root, x) for x in filenames]) - setup( name="pyboolnet", version=VERSION, @@ -49,9 +16,15 @@ author="Hannes Klarner", author_email="leevilux@yahoo.de", url="https://github.com/hklarner/pyboolnet", - package_data={"pyboolnet": PACKAGE_DATA_FILES, "": ['version.txt']}, packages=find_packages(), include_package_data=True, + package_data={ + "pyboolnet": [ + "binaries/*/*", + "binaries/*/*/*", + "repository/**/*"], + "": ['version.txt'], + }, classifiers=[ "Programming Language :: Python", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",