Re: [sage-support] Print statement vs function in Sage-py3

2019-04-03 Thread dsejas . mathematics


On Wednesday, April 3, 2019 at 1:56:03 PM UTC-4, John H Palmieri wrote:
>
>
>
> On Wednesday, April 3, 2019 at 10:11:19 AM UTC-7, kcrisman wrote:
>>
>>
>>
>> On Tuesday, April 2, 2019 at 6:03:23 PM UTC-4, Dima Pasechnik wrote:
>>>
>>> On Tue, Apr 2, 2019 at 10:47 PM  wrote: 
>>> > 
>>> > Hello, Sage community. 
>>> > With the upcoming migration of Sage from Python2 to Python3, I was 
>>> wondering if the "print" statement will be changed to the new "print" 
>>> function. In any case, will there be backwards compatibility with the 
>>> current behavior? 
>>>
>>> As you can see in the current sage sources, there are no print 
>>> statements left, 
>>> only print functions. 
>>>
>>> the trick with Python 2 is to do 
>>>
>>> from __future__ import print_function 
>>>
>>> to get this compatibility 
>>>
>>
>> I think the post was asking for the reverse compatibility, though. 
>>  Presumably this would be possible (but perhaps not advisable) with adding 
>> something to the preparser.  I would be okay with a preparser addition that 
>> would look for this and say something like "print blah should now be 
>> print(blah)" but raise an error.
>>
>
> Some of this has been discussed at https://trac.sagemath.org/ticket/23674 
> .
>  
> That ticket should be revived, especially if there is any consensus about 
> how to handle this. I like the idea of deprecating statements like "print 
> x" ASAP.
>
> -- 
> John
>
> +1 for John's suggestion.
I agree that the print statement should be deprecated, not just because the 
print function seems to be a more modern approach, but also because it is 
important for users to have a standard way of printing results in this two 
"sister languages", Python and Sage. Being Sage built on Python, it would 
be a philosophy clash that one uses a print function and the other a print 
statement.
However, I also believe in backwards compatibility, so I would think that 
there should be a way to indicate SageMath to execute a program using 
Python2 conventions. Maybe something like "sage -std=py2 
", or even a directive like "#! python2" at the beginning 
of the script. I would also think of a "from standards import python2", or 
a command "guess_estandard()" so that the preparser can automatically take 
care of recognizing Pyhton 2 syntax. There are many ways to deal with this 
matter.
Anyway, how can we revive ticket https://trac.sagemath.org/ticket/23674?

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-support] Print statement vs function in Sage-py3

2019-04-03 Thread John Cremona
On Wed, 3 Apr 2019 at 18:56, John H Palmieri  wrote:

>
>
> On Wednesday, April 3, 2019 at 10:11:19 AM UTC-7, kcrisman wrote:
>>
>>
>>
>> On Tuesday, April 2, 2019 at 6:03:23 PM UTC-4, Dima Pasechnik wrote:
>>>
>>> On Tue, Apr 2, 2019 at 10:47 PM  wrote:
>>> >
>>> > Hello, Sage community.
>>> > With the upcoming migration of Sage from Python2 to Python3, I was
>>> wondering if the "print" statement will be changed to the new "print"
>>> function. In any case, will there be backwards compatibility with the
>>> current behavior?
>>>
>>> As you can see in the current sage sources, there are no print
>>> statements left,
>>> only print functions.
>>>
>>> the trick with Python 2 is to do
>>>
>>> from __future__ import print_function
>>>
>>> to get this compatibility
>>>
>>
>> I think the post was asking for the reverse compatibility, though.
>> Presumably this would be possible (but perhaps not advisable) with adding
>> something to the preparser.  I would be okay with a preparser addition that
>> would look for this and say something like "print blah should now be
>> print(blah)" but raise an error.
>>
>
> Some of this has been discussed at https://trac.sagemath.org/ticket/23674.
> That ticket should be revived, especially if there is any consensus about
> how to handle this. I like the idea of deprecating statements like "print
> x" ASAP.
>

+1

For what it's worth, running pyflakes on src/sage now outputs 4192 lines of
which 2438 are just "imported but unused" while pyflakes3 only only outputs
4106 lines (and the same number of "imported but unused".  That seems
somehow encouraging.


>
> --
> John
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-support+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-support@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-support] Print statement vs function in Sage-py3

2019-04-03 Thread John H Palmieri


On Wednesday, April 3, 2019 at 10:11:19 AM UTC-7, kcrisman wrote:
>
>
>
> On Tuesday, April 2, 2019 at 6:03:23 PM UTC-4, Dima Pasechnik wrote:
>>
>> On Tue, Apr 2, 2019 at 10:47 PM > 
>> wrote: 
>> > 
>> > Hello, Sage community. 
>> > With the upcoming migration of Sage from Python2 to Python3, I was 
>> wondering if the "print" statement will be changed to the new "print" 
>> function. In any case, will there be backwards compatibility with the 
>> current behavior? 
>>
>> As you can see in the current sage sources, there are no print statements 
>> left, 
>> only print functions. 
>>
>> the trick with Python 2 is to do 
>>
>> from __future__ import print_function 
>>
>> to get this compatibility 
>>
>
> I think the post was asking for the reverse compatibility, though. 
>  Presumably this would be possible (but perhaps not advisable) with adding 
> something to the preparser.  I would be okay with a preparser addition that 
> would look for this and say something like "print blah should now be 
> print(blah)" but raise an error.
>

Some of this has been discussed at https://trac.sagemath.org/ticket/23674. 
That ticket should be revived, especially if there is any consensus about 
how to handle this. I like the idea of deprecating statements like "print 
x" ASAP.

-- 
John

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-support] Print statement vs function in Sage-py3

2019-04-03 Thread kcrisman


On Tuesday, April 2, 2019 at 6:03:23 PM UTC-4, Dima Pasechnik wrote:
>
> On Tue, Apr 2, 2019 at 10:47 PM  wrote: 
> > 
> > Hello, Sage community. 
> > With the upcoming migration of Sage from Python2 to Python3, I was 
> wondering if the "print" statement will be changed to the new "print" 
> function. In any case, will there be backwards compatibility with the 
> current behavior? 
>
> As you can see in the current sage sources, there are no print statements 
> left, 
> only print functions. 
>
> the trick with Python 2 is to do 
>
> from __future__ import print_function 
>
> to get this compatibility 
>

I think the post was asking for the reverse compatibility, though. 
 Presumably this would be possible (but perhaps not advisable) with adding 
something to the preparser.  I would be okay with a preparser addition that 
would look for this and say something like "print blah should now be 
print(blah)" but raise an error.

- kcrisman 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-support] Print statement vs function in Sage-py3

2019-04-02 Thread Dima Pasechnik
On Tue, Apr 2, 2019 at 10:47 PM  wrote:
>
> Hello, Sage community.
> With the upcoming migration of Sage from Python2 to Python3, I was wondering 
> if the "print" statement will be changed to the new "print" function. In any 
> case, will there be backwards compatibility with the current behavior?

As you can see in the current sage sources, there are no print statements left,
only print functions.

the trick with Python 2 is to do

from __future__ import print_function

to get this compatibility


> Thanks in advance for your answers!
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to sage-support+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-support@googlegroups.com.
> Visit this group at https://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.