Comments (16)
Hi Matthew,
Thanks for the offer! Would you be also willing to take care and maintain PyPi releases for new versions of Boolector? As soon as there is a PyPi package users probably expect it to be up-to-date and I'm not sure if we currently have the bandwidth to do it ourselves.
Cheers,
Mathias
from boolector.
from boolector.
That's great! Thanks! You can go ahead with the PyPi package. Let us know if you need anything from us!
from boolector.
@mballance any progress on this? I'd be very interested in a PyPI package for Boolector as well.
from boolector.
@obijywk, great to hear that you are also interested in this! This project has been lagging behind a couple of my other projects, but I expect to be able to get an initial version ready in the next week or so. Turns out Python packaging has lots of moving parts -- especially if the package involves native extensions like Boolector does. Just out of curiosity, what is your preferred platform (eg Windows, Linux, OS-X)?
-Matthew
from boolector.
Yeah, I don't expect this to be trivial to do :-/ let me know if there's anything I can do to help. I'm only interested in Linux.
from boolector.
Okay, I have an initial version that seems to be working. Building a binary package that should work across Linux versions requires using a very old version of Centos, which required a few small patches to the Boolector and Lingeling sources.
For now, I'm storing the relevant files (Dockerfile, scripts, setup.py, etc) here: https://github.com/mballance/pyboolector.
If anyone is interested in trying this out, you can do the following :
% pip install --index-url https://test.pypi.org/simple pyboolector
Note that the binary packages are Linux-only at the moment, and only on the 'Testing' PyPi site.
from boolector.
Worked for me! I tried it in https://colab.research.google.com by running the following:
import sys
!{sys.executable} -m pip install --index-url https://test.pypi.org/simple pyboolector
so not sure exactly what kind of Linux it's running under, but it worked.
from boolector.
That's great to hear, @obijywk! It's working for me as well, so I guess the next step is to figure out how to get this more-integrated with the CI environment that Boolector uses.
from boolector.
any progress on getting this into the real PyPI (not the test instance)? looking forward to adding it to requirements.txt for my project.
from boolector.
Yes, actually. I've been working on getting an Azure pipelines project setup within Boolector to automatically build and push a release to PyPi, since I believe that is the right path forward. At the moment, I believe I have everything working on a branch, with a PR to come. You should be able to install directly from PyPi now. As always, feedback is much appreciated!
-Matthew
from boolector.
Here's a link to the updated pull request: #72
from boolector.
Any chance for Windows support? Currently getting this:
Collecting pyboolector
Downloading https://files.pythonhosted.org/packages/ec/23/f499c92ddfa1493d23dce0c8bbee2047a3c88b8b6bf3843a4d3ce8b1720a
/PyBoolector-3.2.0.20200301.4.tar.gz
ERROR: Command errored out with exit status 1:
command: 'C:\Program Files\Python38\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\
\Igor\\AppData\\Local\\Temp\\pip-install-thmt_klo\\pyboolector\\setup.py'"'"'; __file__='"'"'C:\\Users\\Igor\\AppData\\L
ocal\\Temp\\pip-install-thmt_klo\\pyboolector\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.
read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-bas
e pip-egg-info
cwd: C:\Users\Igor\AppData\Local\Temp\pip-install-thmt_klo\pyboolector\
Complete output (5 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Igor\AppData\Local\Temp\pip-install-thmt_klo\pyboolector\setup.py", line 14, in <module>
with open(cmakelists_txt, "r") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Igor\\AppData\\Local\\Temp\\pip-install-thmt_klo
\\CMakeLists.txt'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Build on install is unlikely to work with so many dependencies so prebuilt binaries would be appreciated.
from boolector.
same story on Mac:
Collecting pyboolector
Using cached https://files.pythonhosted.org/packages/ec/23/f499c92ddfa1493d23dce0c8bbee2047a3c88b8b6bf3843a4d3c720a/PyBoolector-3.2.0.20200301.4.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/12/yvjfpl856hl12y1p90tg7mgw0000gt/T/pip-install-l_38ao0n/pyboolector/setup.py", 14, in <module>
with open(cmakelists_txt, "r") as f:
FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/12/yvjfpl856hl12y1p90tg7mgw0000/pip-install-l_38ao0n/CMakeLists.txt'
from boolector.
Hi @skochinsky, I agree that both Windows and OS-X support are desirable. Of the two, Windows seems more difficult because Python packaging wants native packages to be compiled with Visual Studio compilers. Unfortunately, Boolector doesn't compile cleanly with VS at the moment. OS-X may be simpler, but I don't have any personal experience here.
Are you able to help with either of these issues?
I would ask the Boolector maintainers whether there is interest/openness to a Visual Studio build of Boolector. Based on my initial investigation I suspect it's quite doable, though it appears it will require a non-trivial number of mostly-trivial changes.
-Matthew
from boolector.
Added with #72.
from boolector.
Related Issues (20)
- Is there any Distribution Constraint sv equivalent in boolector?
- Printing of Constant Arrays
- Linker error when building boolector from source HOT 2
- windows10 install pyboolector failed HOT 1
- ./configure.sh problem HOT 2
- install pyboolector failed on python 3.11 macos
- Stuck rewriting in rewrite_eq_exp
- Installing pyboolector fails for python 3.11.3 on Linux (Arch) HOT 2
- install error on macos 13.4.1
- Hello, how do I install Boolector and cryptominisat offline? HOT 1
- Make error while running btor2tools HOT 15
- How to install pyboolector for pypy HOT 1
- Tests fail to compile: error: no member named 'make_unique' in namespace 'std', etc. HOT 1
- FileNotFoundError when installing on windows
- BtorMC --kind not converging
- Wrong path for libbtor2parser.a in reach's Makefile HOT 1
- Difference of boolector_not and boolector_neg? HOT 1
- PyBoolector metadata version mismatch causing install failure HOT 4
- Tests fail to build: error: C++ versions less than C++14 are not supported HOT 3
- The test 'bv' doesn't finish in 8 mins
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from boolector.