GithubHelp home page GithubHelp logo

Comments (16)

mpreiner avatar mpreiner commented on June 23, 2024

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.

mballance avatar mballance commented on June 23, 2024

from boolector.

mpreiner avatar mpreiner commented on June 23, 2024

That's great! Thanks! You can go ahead with the PyPi package. Let us know if you need anything from us!

from boolector.

obijywk avatar obijywk commented on June 23, 2024

@mballance any progress on this? I'd be very interested in a PyPI package for Boolector as well.

from boolector.

mballance avatar mballance commented on June 23, 2024

@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.

obijywk avatar obijywk commented on June 23, 2024

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.

mballance avatar mballance commented on June 23, 2024

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.

obijywk avatar obijywk commented on June 23, 2024

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.

mballance avatar mballance commented on June 23, 2024

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.

obijywk avatar obijywk commented on June 23, 2024

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.

mballance avatar mballance commented on June 23, 2024

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.

mballance avatar mballance commented on June 23, 2024

Here's a link to the updated pull request: #72

from boolector.

skochinsky avatar skochinsky commented on June 23, 2024

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.

skochinsky avatar skochinsky commented on June 23, 2024

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.

mballance avatar mballance commented on June 23, 2024

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.

mpreiner avatar mpreiner commented on June 23, 2024

Added with #72.

from boolector.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.