mpastell / Pweave

Pweave is a scientific report generator and a literate programming tool for Python. It can capture the results and plots from data analysis and works well with numpy, scipy and matplotlib.
http://mpastell.com/pweave
Other
435 stars 64 forks source link

Python 2.* Compatibility #46

Open brandonwillard opened 8 years ago

brandonwillard commented 8 years ago

Looks like some of the current syntax requires Python 3, i.e.

(pweave-env)$ python setup.py develop
Traceback (most recent call last):
  File "setup.py", line 4, in <module>
    import pweave
  File "/home/bwillar0/projects/python/Pweave/pweave/__init__.py", line 7, in <module>
    from .pweb import *
  File "/home/bwillar0/projects/python/Pweave/pweave/pweb.py", line 26
    def __init__(self, source, doctype = None, *, informat = None, kernel = "python3",
                                                ^
SyntaxError: invalid syntax

Is there no longer Python 2.* compatibility?

mpastell commented 8 years ago

Current master is Python 3 only and so will be the next 0.3 release. I haven't updated the setup.py yet.

You can still run documents with Python 2 code with the --kernel option.

abukaj commented 7 years ago

I started working on a generic branch (both Python 2 and 3 compatible).

When run in Python 2.7 environment, it switches to Python 2 kernel.

brandonwillard commented 7 years ago

This version compatibility question was exclusively in reference to the source/development version of Python, which has already been addressed.

abukaj commented 7 years ago

@mpastell Just crossed my mind: have you definitively decided to abandon support for Python 2, or is this still possible in the project to support it?

I am thinking either about making the code P2/3 compatible or keeping P2 branch in sync with master.

mpastell commented 7 years ago

I have three reasons for wanting to drop Python 2:

So personally I find this a good time to drop it, if it would be included in the release it means I feel the need to support it. Python 2 users can still use new version of Pweave with Python 2 kernel.

See also: http://www.python3statement.org/

abukaj commented 7 years ago

I see. My approach is slightly different - I try to keep my code both P2/3 compatible, so I can maintain the support with minimal effort.

The only drawback I can see of abandoning Python 2 is referencing the used Pweave version pweave.__version__. I can see two solutions to fix that:

JamesLarkinWhite commented 6 years ago

Dear all... i just installed Peweave only to realize that it doesn´t support python 2. There is a comment here that i can change the kernel settings but i have no clue what this means. Would someone be willing to guide me? Thank you in advance

JamesLarkinWhite commented 6 years ago

IF i try to trun one of the test documents like: pweave -f md2html --kernel python2 FIR_designp.pmd or pweave -f md2html -k python2 FIR_designp.pmd

I still get this error:

Traceback (most recent call last): File "C:\Program Files (x86)\Python27\Lib\runpy.py", line 162, in _run_module_as_main "main", fname, loader, pkg_name) File "C:\Program Files (x86)\Python27\Lib\runpy.py", line 72, in _run_code exec code in run_globals File "C:\Program Files (x86)\Python27\Scripts\pweave.exe__main.py", line 5, in File "c:\program files (x86)\python27\lib\site-packages\pweave\init__.py", line 6, in from . import readers File "c:\program files (x86)\python27\lib\site-packages\pweave\readers.py", line 8, in from urllib import request, parse ImportError: cannot import name request

I would really appreciate any help you are willing to offer. At the moment i can not install python3 on this mashine

piccolbo commented 6 years ago

Python 2 will be a dead language in two years' time. The dependencies like ipython going away it the other nail in the coffin. I think @mpastell made the right call when he closed this issue.