SolidCode / SolidPython

A python frontend for solid modelling that compiles to OpenSCAD
1.11k stars 172 forks source link

Feature request: Python 3 support? #23

Closed dmopalmer closed 7 years ago

dmopalmer commented 10 years ago

Is there a roadmap to support Python3?

The stock pyeuclid doesn't support python3, but the https://github.com/ezag/pyeuclid fork seems to install without complaint.

etjones commented 10 years ago

Excellent suggestion. I'll get on this shortly.

On Aug 25, 2014, at 9:26 PM, David Palmer notifications@github.com wrote:

Is there a roadmap to support Python3?

The stock pyeuclid doesn't support python3, but the https://github.com/ezag/pyeuclid fork seems to install without complaint.

— Reply to this email directly or view it on GitHub.

etjones commented 10 years ago

Hi - I made all the changes so that SolidPython now supports Python3, and just pushed them to master in 96c5d94fdab47cba19a4e4be03309a55bf7d70b1 I'm ready to submit a new, Python3-friendly version to PyPI as soon as pyeuclid does the same. And I got in touch with ezag about submitting to PyPI, so I'm hopeful we can take care of that in the next week or so. In the meantime, if you were to download the latest SolidPython repo and ezag's pyeuclid version and install them both with cd [$SOLIDPYTHON_DIR | $EUCLID_DIR]; pip install -e ., you'd be Python3-capable.

dmopalmer commented 10 years ago

Excellent! Thank you.

Going through all the examples:

use(os.path.join(os.path.dirname(__file__), "scad_to_include.scad")) #  could also use 'include', but that has side-effects

to allow it to be run from a different directory.

  File "/Users/palmer/repo/others/3dprinting/SolidPython/solid/utils.py", line 499, in bill_of_materials
    if all_costs > 0:
TypeError: unorderable types: dict() > int()

so maybe len(all_costs) > 0 does what you want there?

All the other examples work.

etjones commented 10 years ago

Man, that is so great, David. Somebody doing my QC for me? Luxury.

I just pushed fixes for all these at 23eacb70aedb33b3a13195443029481f3d997403

Let me know if you find anything else, and happy modeling!

Evan

On Aug 26, 2014, at 8:14 PM, David Palmer notifications@github.com wrote:

Excellent! Thank you.

Going through all the examples:

koch.scad doesn't render anything visible in openSCAD (because it's 2D?) basic_scad_include: line 10 should be use(os.path.join(os.path.dirname(file), "scad_to_include.scad")) # could also use 'include', but that has side-effects to allow it to be run from a different directory.

bom.scad runs into the error: File "/Users/palmer/repo/others/3dprinting/SolidPython/solid/utils.py", line 499, in bill_of_materials if all_costs > 0: TypeError: unorderable types: dict() > int() so maybe len(all_costs) > 0 does what you want there?

All the other examples work.

— Reply to this email directly or view it on GitHub.

etjones commented 7 years ago

Since PyEuclid is stuck in maintainer-change hell, I've changed the internal dependency to the Py3-safe euclid3 package. Haven't yet updated the PyPI package, but hope to do so today. Cloning master works on Py2 or Py3, pip install solidpython should work shortly as well.